vt: implement (untested!) insert mode

\E4l is not horizontal index, but disable INSERT mode
This commit is contained in:
Daniel Eklöf 2019-07-03 21:16:41 +02:00
parent 1373d18dbc
commit 90dadfcc22
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 20 additions and 9 deletions

9
vt.c
View file

@ -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);