From ad5c4e719bb14f4c686c0482433f64729648ca02 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Fri, 20 Jan 2012 21:16:07 +0000 Subject: [PATCH] Sync OpenBSD patchset 997: Calculate last position correctly for UTF-8 wide characters, reported by Matthias Lederhofer. --- tty.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tty.c b/tty.c index 64a33271..a4e7d7b1 100644 --- a/tty.c +++ b/tty.c @@ -969,7 +969,10 @@ tty_cmd_cell(struct tty *tty, const struct tty_ctx *ctx) * move as far left as possible and redraw the last * cell to move into the last position. */ - cx = screen_size_x(s) - width; + if (ctx->last_cell.flags & GRID_FLAG_UTF8) + cx = screen_size_x(s) - ctx->last_utf8.width; + else + cx = screen_size_x(s) - 1; tty_cursor_pane(tty, ctx, cx, ctx->ocy); tty_cell(tty, &ctx->last_cell, &ctx->last_utf8); }