lines[row].attr = realloc(lines[row].attr, sizeof(uint16_t) * cols);
if (t->cols < cols)
t_row_set(lines + row, t->cols, cols - t->cols, 0);
+ else
+ lines[row].dirty = true;
}
t->cols = cols;
}
while (t->rows < rows) {
lines[t->rows].text = (wchar_t *)calloc(sizeof(wchar_t), cols);
lines[t->rows].attr = (uint16_t *)calloc(sizeof(uint16_t), cols);
+ t_row_set(lines + t->rows, 0, t->cols, 0);
t->rows++;
}
t->curs_row += lines - t->lines;
- t->scroll_top += lines - t->lines;
- t->scroll_bot += lines - t->lines;
- if (t->scroll_bot > lines + t->rows)
- t->scroll_bot = lines + t->rows;
+ t->scroll_top = lines;
+ t->scroll_bot = lines + rows;
t->lines = lines;
clamp_cursor_to_bounds(t);
ioctl(t->pty, TIOCSWINSZ, &ws);