diff --git a/screen-write.c b/screen-write.c index 26c9751b..41fcf38d 100644 --- a/screen-write.c +++ b/screen-write.c @@ -1,4 +1,4 @@ -/* $Id: screen-write.c,v 1.60 2009-07-15 17:43:02 nicm Exp $ */ +/* $Id: screen-write.c,v 1.61 2009-07-22 17:58:42 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -700,7 +700,6 @@ screen_write_cell( struct grid_utf8 gu, *tmp_gu; u_int width, xx, i; struct grid_cell tmp_gc, *tmp_gc2; - size_t size; int insert = 0; /* Ignore padding. */ @@ -737,11 +736,7 @@ screen_write_cell( memcpy(tmp_gu->data + i, udata, UTF8_SIZE - i); /* Assume the previous character has just been input. */ - for (size = 0; size < UTF8_SIZE; size++) { - if (udata[size] == 0xff) - break; - } - tty_write_cmd(ctx->wp, TTY_RAW, udata, size); + tty_write_cmd(ctx->wp, TTY_UTF8CHARACTER, udata); return; } diff --git a/tmux.h b/tmux.h index b2cae2de..d04d1207 100644 --- a/tmux.h +++ b/tmux.h @@ -1,4 +1,4 @@ -/* $Id: tmux.h,v 1.380 2009-07-22 17:46:53 tcunha Exp $ */ +/* $Id: tmux.h,v 1.381 2009-07-22 17:58:42 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -287,7 +287,7 @@ enum tty_cmd { TTY_INSERTCHARACTER, TTY_INSERTLINE, TTY_LINEFEED, - TTY_RAW, + TTY_UTF8CHARACTER, TTY_REVERSEINDEX, }; diff --git a/tty.c b/tty.c index 13745ceb..39411ce5 100644 --- a/tty.c +++ b/tty.c @@ -1,4 +1,4 @@ -/* $Id: tty.c,v 1.113 2009-07-12 17:08:37 nicm Exp $ */ +/* $Id: tty.c,v 1.114 2009-07-22 17:58:42 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -51,7 +51,7 @@ void tty_cmd_deleteline(struct tty *, struct window_pane *, va_list); void tty_cmd_insertcharacter(struct tty *, struct window_pane *, va_list); void tty_cmd_insertline(struct tty *, struct window_pane *, va_list); void tty_cmd_linefeed(struct tty *, struct window_pane *, va_list); -void tty_cmd_raw(struct tty *, struct window_pane *, va_list); +void tty_cmd_utf8character(struct tty *, struct window_pane *, va_list); void tty_cmd_reverseindex(struct tty *, struct window_pane *, va_list); void (*tty_cmds[])(struct tty *, struct window_pane *, va_list) = { @@ -68,7 +68,7 @@ void (*tty_cmds[])(struct tty *, struct window_pane *, va_list) = { tty_cmd_insertcharacter, tty_cmd_insertline, tty_cmd_linefeed, - tty_cmd_raw, + tty_cmd_utf8character, tty_cmd_reverseindex, }; @@ -879,16 +879,19 @@ tty_cmd_cell(struct tty *tty, struct window_pane *wp, va_list ap) } void -tty_cmd_raw(struct tty *tty, unused struct window_pane *wp, va_list ap) +tty_cmd_utf8character( + struct tty *tty, unused struct window_pane *wp, va_list ap) { u_char *buf; - size_t i, len; + size_t i; buf = va_arg(ap, u_char *); - len = va_arg(ap, size_t); - - for (i = 0; i < len; i++) + + for (i = 0; i < UTF8_SIZE; i++) { + if (buf[i] == 0xff) + break; tty_putc(tty, buf[i]); + } } void