summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2015-08-20 01:31:50 -0400
committerJesse Luehrs <doy@tozt.net>2015-08-20 01:31:50 -0400
commitc59da47832a34a016da82782ff39dc83b0c3890f (patch)
treed65ec267ee8db8f13e1f455e316f633d05bb71d4
parent7a8324949027d7ece88af525f8ae7fe67b379e72 (diff)
downloadlibvt100-c59da47832a34a016da82782ff39dc83b0c3890f.tar.gz
libvt100-c59da47832a34a016da82782ff39dc83b0c3890f.zip
Revert "keep track of scrollback when scrolling"
This reverts commit 7a8324949027d7ece88af525f8ae7fe67b379e72.
-rw-r--r--src/screen.c33
1 files changed, 5 insertions, 28 deletions
diff --git a/src/screen.c b/src/screen.c
index 336f2f1..8da88d6 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -531,34 +531,11 @@ void vt100_screen_scroll_down(VT100Screen *vt, int count)
}
}
else {
- int scrollback = vt->scrollback_length;
-
- if (vt->grid->row_count + count > scrollback) {
- int overflow = vt->grid->row_count + count - scrollback;
-
- vt100_screen_ensure_capacity(vt, scrollback);
- for (i = 0; i < overflow; ++i) {
- free(vt->grid->rows[i].cells);
- }
- memmove(
- &vt->grid->rows[0], &vt->grid->rows[overflow],
- (scrollback - overflow) * sizeof(struct vt100_row));
- for (i = scrollback - count; i < scrollback; ++i) {
- vt->grid->rows[i].cells = calloc(
- vt->grid->max.col, sizeof(struct vt100_cell));
- }
- vt->grid->row_count = scrollback;
- vt->grid->row_top = scrollback - vt->grid->max.row;
- }
- else {
- vt100_screen_ensure_capacity(vt, vt->grid->row_count + count);
- for (i = 0; i < count; ++i) {
- row = vt100_screen_row_at(vt, i + vt->grid->max.row);
- row->cells = calloc(
- vt->grid->max.col, sizeof(struct vt100_cell));
- }
- vt->grid->row_count += count;
- vt->grid->row_top += count;
+ for (i = 0; i < bottom - top + 1; ++i) {
+ row = vt100_screen_row_at(vt, top + i);
+ memset(
+ row->cells, 0, vt->grid->max.col * sizeof(struct vt100_cell));
+ row->wrapped = 0;
}
}