summaryrefslogtreecommitdiffstats
path: root/input.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-10-13 15:23:13 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-10-13 15:23:13 +0000
commit71dc6e04e8ca9ab85acbef90bbfd57463be0dc07 (patch)
tree283898377f9f1e2cb0c2f2fe1e5e09e8d8304127 /input.c
parent38df960e68302b0bce9f0812d9fcb22c42b72d19 (diff)
Handle DECCOLM by just emulating its side-effect of clearing the screen.
Diffstat (limited to 'input.c')
-rw-r--r--input.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/input.c b/input.c
index d8737888..fa7661f7 100644
--- a/input.c
+++ b/input.c
@@ -1185,6 +1185,10 @@ input_handle_sequence_sm(struct input_ctx *ictx)
screen_write_kcursormode(&ictx->ctx, 1);
log_debug("kcursor on");
break;
+ case 3: /* DECCOLM */
+ screen_write_cursormove(&ictx->ctx, 0, 0);
+ screen_write_clearscreen(&ictx->ctx);
+ break;
case 25: /* TCEM */
screen_write_cursormode(&ictx->ctx, 1);
log_debug("cursor on");
@@ -1257,6 +1261,10 @@ input_handle_sequence_rm(struct input_ctx *ictx)
screen_write_kcursormode(&ictx->ctx, 0);
log_debug("kcursor off");
break;
+ case 3: /* DECCOLM */
+ screen_write_cursormove(&ictx->ctx, 0, 0);
+ screen_write_clearscreen(&ictx->ctx);
+ break;
case 25: /* TCEM */
screen_write_cursormode(&ictx->ctx, 0);
log_debug("cursor off");