diff options
Diffstat (limited to 'src/screen.c')
-rw-r--r-- | src/screen.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/screen.c b/src/screen.c index 15ca051..d543b13 100644 --- a/src/screen.c +++ b/src/screen.c @@ -43,6 +43,8 @@ void vt100_screen_set_window_size(VT100Screen *vt, int rows, int cols) vt->grid->max.row = rows; vt->grid->max.col = cols; + if (!vt->custom_scrollback_length) + vt->scrollback_length = rows; if (vt->grid->max.row == 0) { vt->grid->max.row = 1; @@ -92,6 +94,12 @@ void vt100_screen_set_window_size(VT100Screen *vt, int rows, int cols) vt->grid->scroll_bottom = vt->grid->max.row - 1; } +void vt100_screen_set_scrollback_length(VT100Screen *vt, int rows) +{ + vt->scrollback_length = rows; + vt->custom_scrollback_length = 1; +} + int vt100_screen_process_string(VT100Screen *vt, char *buf, size_t len) { int remaining; @@ -856,8 +864,7 @@ static void vt100_screen_scroll_down(VT100Screen *vt, int count) } } else { - /* int scrollback = vt->config.scrollback_length; */ - int scrollback = 4096; // XXX vt100 + int scrollback = vt->scrollback_length; if (vt->grid->row_count + count > scrollback) { int overflow = vt->grid->row_count + count - scrollback; |