Check padding when writing any character with width > 1, in case they

overlap after the first character (for example with cells xy and ab, y
is replacing a).
This commit is contained in:
nicm 2016-09-29 08:50:43 +00:00
parent bb5798aa0e
commit cf7f3a436a

View File

@ -1267,10 +1267,10 @@ screen_write_overwrite(struct screen_write_ctx *ctx, struct grid_cell *gc,
} }
/* /*
* Overwrite any padding cells that belong to a UTF-8 character * Overwrite any padding cells that belong to any UTF-8 characters we'll be
* we'll be overwriting with the current character. * overwriting with the current character.
*/ */
if (gc->data.width != 1 || gc->flags & GRID_FLAG_PADDING) { if (width != 1 || gc->data.width != 1 || gc->flags & GRID_FLAG_PADDING) {
xx = s->cx + width - 1; xx = s->cx + width - 1;
while (++xx < screen_size_x(s)) { while (++xx < screen_size_x(s)) {
grid_view_get_cell(gd, xx, s->cy, &tmp_gc); grid_view_get_cell(gd, xx, s->cy, &tmp_gc);