projects
/
apps
/
madtty.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added patch by Johan Bevemyr (jb@bevemyr.com)
[apps/madtty.git]
/
inject.c
diff --git
a/inject.c
b/inject.c
index
f9f40e8
..
031b809
100644
(file)
--- a/
inject.c
+++ b/
inject.c
@@
-23,6
+23,7
@@
Copyright (c) 2004 Bruno T. C. de Oliveira
#include "roteprivate.h"
#include "inject_csi.h"
#include <string.h>
#include "roteprivate.h"
#include "inject_csi.h"
#include <string.h>
+#include <stdio.h>
static void cursor_line_down(RoteTerm *rt) {
int i;
static void cursor_line_down(RoteTerm *rt) {
int i;
@@
-80,6
+81,13
@@
static inline void put_normal_char(RoteTerm *rt, char c) {
cursor_line_down(rt);
}
cursor_line_down(rt);
}
+ if (rt->insert) {
+ int i;
+
+ for(i = rt->cols - 1; i >= rt->ccol+1; i--)
+ rt->cells[rt->crow][i] = rt->cells[rt->crow][i-1];
+ }
+
rt->cells[rt->crow][rt->ccol].ch = c;
rt->cells[rt->crow][rt->ccol].attr = rt->curattr;
rt->ccol++;
rt->cells[rt->crow][rt->ccol].ch = c;
rt->cells[rt->crow][rt->ccol].attr = rt->curattr;
rt->ccol++;
@@
-128,7
+136,8
@@
static void handle_control_char(RoteTerm *rt, char c) {
rt->curpos_dirty = true;
break;
case '\t': /* tab */
rt->curpos_dirty = true;
break;
case '\t': /* tab */
- while (rt->ccol % 8) put_normal_char(rt, ' ');
+ rt->ccol += 8 - (rt->ccol % 8);
+ clamp_cursor_to_bounds(rt);
break;
case '\x1B': /* begin escape sequence (aborting previous one if any) */
new_escape_sequence(rt);
break;
case '\x1B': /* begin escape sequence (aborting previous one if any) */
new_escape_sequence(rt);