summaryrefslogtreecommitdiffstats
path: root/tty.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2012-01-15 19:39:42 +0000
committerNicholas Marriott <nicm@openbsd.org>2012-01-15 19:39:42 +0000
commit299a8fd4a3ced13ed678f888aa1b61484a2b613d (patch)
tree91e59cf66cb1c62cdaeff91134f67bb7824caf96 /tty.c
parenteeaf92ad066927cd06569ceb5e100004c8bf99df (diff)
Calculate last position correctly for UTF-8 wide characters, reported by
Matthias Lederhofer.
Diffstat (limited to 'tty.c')
-rw-r--r--tty.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/tty.c b/tty.c
index dce4887b..d5fc106e 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);
}