From 5d451551b6457d972897fa60b3dba38e13d6589f Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 12 Aug 2021 11:35:53 +0000 Subject: [PATCH] Restore saved cursor position after a ZWJ rather than recalculating it. --- screen-write.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/screen-write.c b/screen-write.c index a11b4771..01f8a097 100644 --- a/screen-write.c +++ b/screen-write.c @@ -1775,13 +1775,13 @@ screen_write_cell(struct screen_write_ctx *ctx, const struct grid_cell *gc) if (width == 0 || (ctx->flags & SCREEN_WRITE_ZWJ)) { ctx->flags &= ~SCREEN_WRITE_ZWJ; screen_write_collect_flush(ctx, 0, __func__); - if ((gc = screen_write_combine(ctx, ud, &xx)) != 0) { + if ((gc = screen_write_combine(ctx, ud, &xx)) != NULL) { cx = s->cx; cy = s->cy; screen_write_set_cursor(ctx, xx, s->cy); screen_write_initctx(ctx, &ttyctx, 0); ttyctx.cell = gc; tty_write(tty_cmd_cell, &ttyctx); - s->cx = xx + gc->data.width; s->cy = cy; + s->cx = cx; s->cy = cy; } return; }