csi: DECCOLM erases screen

This commit is contained in:
Daniel Eklöf 2019-11-05 13:21:47 +01:00
parent 33ea88aba6
commit 89dbc61a34
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

15
csi.c
View file

@ -725,6 +725,10 @@ csi_dispatch(struct terminal *term, uint8_t final)
case 3:
LOG_WARN("unimplemented: 132 column mode (DECCOLM, %s)",
csi_as_string(term, final));
term_erase(
term,
&(struct coord){0, 0},
&(struct coord){term->cols - 1, term->rows - 1});
break;
case 5:
@ -831,6 +835,10 @@ csi_dispatch(struct terminal *term, uint8_t final)
case 3:
/* DECCOLM - 80 column mode */
term_erase(
term,
&(struct coord){0, 0},
&(struct coord){term->cols - 1, term->rows - 1});
break;
case 4:
@ -843,6 +851,13 @@ csi_dispatch(struct terminal *term, uint8_t final)
term_damage_all(term);
break;
case 6: { /* DECOM */
term->origin = ORIGIN_ABSOLUTE;
struct coord new_home = term_cursor_rel_to_abs(term, 0, 0);
term_cursor_to(term, new_home.row, new_home.col);
break;
}
case 7:
term->auto_margin = false;
break;