When copying a line from one screen to another, stop only when both

source and target are beyond the allocated line length. Fixes problems
with trailing spaces on pane-border-format. GitHub issue 4688 from
Dmitry Ryabkov.
This commit is contained in:
nicm
2025-11-13 13:08:44 +00:00
parent 66279c124e
commit 113aaf37fc

View File

@@ -583,7 +583,8 @@ screen_write_fast_copy(struct screen_write_ctx *ctx, struct screen *src,
if (wp != NULL) if (wp != NULL)
screen_write_initctx(ctx, &ttyctx, 0); screen_write_initctx(ctx, &ttyctx, 0);
for (xx = px; xx < px + nx; xx++) { for (xx = px; xx < px + nx; xx++) {
if (xx >= grid_get_line(gd, yy)->cellsize) if (xx >= grid_get_line(gd, yy)->cellsize &&
s->cx >= grid_get_line(ctx->s->grid, s->cy)->cellsize)
break; break;
grid_get_cell(gd, xx, yy, &gc); grid_get_cell(gd, xx, yy, &gc);
if (xx + gc.data.width > px + nx) if (xx + gc.data.width > px + nx)