mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
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:
10
screen.c
10
screen.c
@ -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;
|
||||
|
Reference in New Issue
Block a user