From 3c67628c57b03f6faabe61d04b13297eac80bb6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 3 Jul 2019 21:18:06 +0200 Subject: [PATCH] vt: implement (untested!) smam and rmam (auto margins) Default is auto-margins enabled (scroll when cursor reaches right margin). --- csi.c | 4 ++-- main.c | 1 + vt.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/csi.c b/csi.c index 6fca2c24..bb805134 100644 --- a/csi.c +++ b/csi.c @@ -585,7 +585,7 @@ csi_dispatch(struct terminal *term, uint8_t final) break; case 7: - LOG_WARN("unimplemented: smam (automatic margins)"); + term->auto_margin = true; break; case 12: @@ -655,7 +655,7 @@ csi_dispatch(struct terminal *term, uint8_t final) break; case 7: - LOG_WARN("unimplemented: smam (automatic margins)"); + term->auto_margin = false; break; case 12: diff --git a/main.c b/main.c index b69f42de..a87598c4 100644 --- a/main.c +++ b/main.c @@ -864,6 +864,7 @@ main(int argc, char *const *argv) .ptmx = posix_openpt(O_RDWR | O_NOCTTY), .decckm = DECCKM_CSI, .keypad_mode = KEYPAD_NUMERICAL, /* TODO: verify */ + .auto_margin = true, .vt = { .state = 1, /* STATE_GROUND */ }, diff --git a/vt.c b/vt.c index b00b840d..8f1db921 100644 --- a/vt.c +++ b/vt.c @@ -690,7 +690,7 @@ action(struct terminal *term, enum action action, uint8_t c) break; case ACTION_PRINT: { - if (term->print_needs_wrap) { + if (term->auto_margin && term->print_needs_wrap) { if (term->cursor.row == term->scroll_region.end - 1) { term_scroll(term, 1); term_cursor_to(term, term->cursor.row, 0);