Correctly remove overwritten wide characters at column 1.

This commit is contained in:
nicm
2025-07-18 20:44:13 +00:00
parent 041bbf8bdf
commit 9c07903ae9
2 changed files with 8 additions and 3 deletions

1
grid.c
View File

@ -267,6 +267,7 @@ grid_set_tab(struct grid_cell *gc, u_int width)
{
memset(gc->data.data, 0, sizeof gc->data.data);
gc->flags |= GRID_FLAG_TAB;
gc->flags &= ~GRID_FLAG_PADDING;
gc->data.width = gc->data.size = gc->data.have = width;
memset(gc->data.data, ' ', gc->data.size);
}

View File

@ -1782,9 +1782,13 @@ screen_write_collect_end(struct screen_write_ctx *ctx)
grid_view_set_cell(s->grid, xx, s->cy,
&grid_default_cell);
}
if (gc.data.width > 1) {
grid_view_set_cell(s->grid, xx, s->cy,
&grid_default_cell);
if (xx != s->cx) {
if (xx == 0)
grid_view_get_cell(s->grid, 0, s->cy, &gc);
if (gc.data.width > 1) {
grid_view_set_cell(s->grid, xx, s->cy,
&grid_default_cell);
}
}
}