summaryrefslogtreecommitdiffstats
path: root/src/screen.c
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-09-14 21:55:12 -0400
committerJesse Luehrs <doy@tozt.net>2014-09-14 21:55:12 -0400
commitbe88a8a25b02b8a4c267faa5523189406aecaf78 (patch)
tree12b5fce2b33fd1fbc447b54442d52000e30b66f0 /src/screen.c
parent10f748a2dfa64e1fe099f86277823ee54597459e (diff)
downloadlibvt100-be88a8a25b02b8a4c267faa5523189406aecaf78.tar.gz
libvt100-be88a8a25b02b8a4c267faa5523189406aecaf78.zip
stop hardcoding the default scrollback length
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c11
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;