mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 21:56:57 +00:00
Sync OpenBSD patchset 421:
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.
This commit is contained in:
7
tty.c
7
tty.c
@ -1,4 +1,4 @@
|
||||
/* $Id: tty.c,v 1.157 2009-10-23 17:13:10 tcunha Exp $ */
|
||||
/* $Id: tty.c,v 1.158 2009-10-23 17:16:24 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -347,7 +347,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)
|
||||
@ -357,8 +357,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
|
||||
|
Reference in New Issue
Block a user