There is no point in keeping a bunch of different text buffers for each

line when writing, we only need one as big as the line width - there
can't be any more text than that since newer will overwrite older.
This commit is contained in:
nicm
2020-04-18 15:12:28 +00:00
parent 4a93294152
commit ea5fdd5331
3 changed files with 57 additions and 21 deletions

View File

@ -85,6 +85,8 @@ screen_init(struct screen *s, u_int sx, u_int sy, u_int hlimit)
s->tabs = NULL;
s->sel = NULL;
s->write_list = NULL;
screen_reinit(s);
}
@ -122,6 +124,9 @@ screen_free(struct screen *s)
free(s->title);
free(s->ccolour);
if (s->write_list != NULL)
screen_write_free_list(s);
if (s->saved_grid != NULL)
grid_destroy(s->saved_grid);
grid_destroy(s->grid);
@ -222,6 +227,11 @@ screen_resize_cursor(struct screen *s, u_int sx, u_int sy, int reflow,
{
u_int tcx, tcy;
if (s->write_list != NULL) {
screen_write_free_list(s);
s->write_list = NULL;
}
if (cx == NULL)
cx = &tcx;
*cx = s->cx;