From 0f73af876f1222000a9eea76c70ae9a51ecb95e1 Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 15 Jul 2016 00:49:08 +0000 Subject: Don't update cells in each block of data read from a pane immediately, instead track them as change (dirty) and update them once at the end, saves much time if repeatedly writing the same cell. Also fix comparison of cells being equal in a few places (memcmp is not enough). --- screen.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'screen.c') diff --git a/screen.c b/screen.c index 4fa8e4c9..f5f39d37 100644 --- a/screen.c +++ b/screen.c @@ -38,6 +38,9 @@ screen_init(struct screen *s, u_int sx, u_int sy, u_int hlimit) s->ccolour = xstrdup(""); s->tabs = NULL; + s->dirty = NULL; + s->dirtysize = 0; + screen_reinit(s); } @@ -64,6 +67,7 @@ screen_reinit(struct screen *s) void screen_free(struct screen *s) { + free(s->dirty); free(s->tabs); free(s->title); free(s->ccolour); -- cgit