From 67614df9f90021a091128a37caac16cf130a03a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 1 May 2020 11:50:38 +0200 Subject: [PATCH] term: print: reset combining characters for this cell This is the *only* place combining characters are reset. In particular, we do *not* reset them in a normal cell erase. This is a performance design decision - clearing the combining characters in erase is way too slow. This way, we clear it only when we *have* to. Anything looking at the combining characters must first ensure the base character is not 0. --- terminal.c | 1 + 1 file changed, 1 insertion(+) diff --git a/terminal.c b/terminal.c index 1f1ef782..8e859a1e 100644 --- a/terminal.c +++ b/terminal.c @@ -2295,6 +2295,7 @@ term_print(struct terminal *term, wchar_t wc, int width) cell->wc = term->vt.last_printed = wc; cell->attrs = term->vt.attrs; + row->comb_chars[term->grid->cursor.point.col].count = 0; row->dirty = true; cell->attrs.clean = 0;