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.
This commit is contained in:
Daniel Eklöf 2020-05-01 11:50:38 +02:00
parent b2c4115f3e
commit 67614df9f9
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -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;