From 9c07903ae911030bbbed0b9d4161c5d7ab3d4780 Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 18 Jul 2025 20:44:13 +0000 Subject: [PATCH] Correctly remove overwritten wide characters at column 1. --- grid.c | 1 + screen-write.c | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/grid.c b/grid.c index 0098c81c..a0a52a0e 100644 --- a/grid.c +++ b/grid.c @@ -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); } diff --git a/screen-write.c b/screen-write.c index d860c0d0..1658cfd5 100644 --- a/screen-write.c +++ b/screen-write.c @@ -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); + } } }