summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/tty.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2009-10-20 19:18:28 +0000
committernicm <nicm@openbsd.org>2009-10-20 19:18:28 +0000
commit40cac5277baf64e035a0a2810e0bdbcaa50b0552 (patch)
treef52a5cdb6a5ff319f718cedc47acf7895d051cc3 /usr.bin/tmux/tty.c
parentUTF-8 combined character fixes. (diff)
downloadwireguard-openbsd-40cac5277baf64e035a0a2810e0bdbcaa50b0552.tar.xz
wireguard-openbsd-40cac5277baf64e035a0a2810e0bdbcaa50b0552.zip
Try to reduce the UTF-8 mess.
Get rid of passing around u_char[4]s and define a struct utf8_data which has character data, size (sequence length) and width. Move UTF-8 character collection into two functions utf8_open/utf8_append in utf8.c which fill in this struct and use these functions from input.c and the various functions in screen-write.c. Space for rather more data than is necessary for one UTF-8 sequence is in the utf8_data struct because screen_write_copy is still nasty and needs to reinject the character (after combining) into screen_write_cell.
Diffstat (limited to 'usr.bin/tmux/tty.c')
-rw-r--r--usr.bin/tmux/tty.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/usr.bin/tmux/tty.c b/usr.bin/tmux/tty.c
index bba5c95b281..0f7bd1f2683 100644
--- a/usr.bin/tmux/tty.c
+++ b/usr.bin/tmux/tty.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tty.c,v 1.53 2009/10/20 17:33:33 nicm Exp $ */
+/* $OpenBSD: tty.c,v 1.54 2009/10/20 19:18:28 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -342,7 +342,7 @@ tty_putc(struct tty *tty, u_char ch)
void
tty_pututf8(struct tty *tty, const struct grid_utf8 *gu)
{
- u_int i, width;
+ u_int i;
for (i = 0; i < UTF8_SIZE; i++) {
if (gu->data[i] == 0xff)
@@ -352,8 +352,7 @@ tty_pututf8(struct tty *tty, const struct grid_utf8 *gu)
write(tty->log_fd, &gu->data[i], 1);
}
- width = utf8_width(gu->data);
- tty->cx += width;
+ tty->cx += gu->width;
}
void