mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-04 04:06:06 -05:00
vt: implement (untested!) insert mode
\E4l is not horizontal index, but disable INSERT mode
This commit is contained in:
parent
1373d18dbc
commit
90dadfcc22
3 changed files with 20 additions and 9 deletions
16
csi.c
16
csi.c
|
|
@ -484,16 +484,16 @@ csi_dispatch(struct terminal *term, uint8_t final)
|
|||
break;
|
||||
}
|
||||
|
||||
case 'l': {
|
||||
/* Horizontal index */
|
||||
case 'h':
|
||||
/* smir - insert mode enable */
|
||||
assert(false && "untested");
|
||||
int param = param_get(term, 0, 1);
|
||||
int col = term->cursor.col;
|
||||
|
||||
col = (col + param * 8) / 8 * 8;
|
||||
term_cursor_right(term, col - term->cursor.col);
|
||||
term->insert_mode = true;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
/* rmir - insert mode disable */
|
||||
term->insert_mode = false;
|
||||
break;
|
||||
}
|
||||
|
||||
case 'r': {
|
||||
int start = param_get(term, 0, 1);
|
||||
|
|
|
|||
|
|
@ -131,9 +131,11 @@ struct terminal {
|
|||
pid_t slave;
|
||||
int ptmx;
|
||||
|
||||
bool hide_cursor;
|
||||
enum decckm decckm;
|
||||
enum keypad_mode keypad_mode;
|
||||
bool hide_cursor;
|
||||
bool auto_margin;
|
||||
bool insert_mode;
|
||||
bool bracketed_paste;
|
||||
|
||||
struct vt vt;
|
||||
|
|
|
|||
9
vt.c
9
vt.c
|
|
@ -701,6 +701,15 @@ action(struct terminal *term, enum action action, uint8_t c)
|
|||
struct cell *cell = &term->grid->cur_line[term->cursor.col];
|
||||
term_damage_update(term, term->cursor.linear, 1);
|
||||
|
||||
if (term->insert_mode) {
|
||||
assert(false && "untested");
|
||||
grid_memmove(
|
||||
term->grid, term->cursor.linear + 1, term->cursor.linear,
|
||||
term->cols - term->cursor.col - 1);
|
||||
term_damage_update(
|
||||
term, term->cursor.linear + 1, term->cols - term->cursor.col - 1);
|
||||
}
|
||||
|
||||
if (term->vt.utf8.idx > 0) {
|
||||
//LOG_DBG("print: UTF8: %.*s", (int)term->vt.utf8.idx, term->vt.utf8.data);
|
||||
memcpy(cell->c, term->vt.utf8.data, term->vt.utf8.idx);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue