From ea5fdd5331d74d305cbb61b8f47a2054fc2052fb Mon Sep 17 00:00:00 2001 From: nicm Date: Sat, 18 Apr 2020 15:12:28 +0000 Subject: 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. --- screen.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'screen.c') diff --git a/screen.c b/screen.c index d9d1aa09..5f6a39d3 100644 --- a/screen.c +++ b/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; -- cgit v1.2.3