Sync OpenBSD patchset 420:

UTF-8 combined character fixes.

Thai can have treble combinations (1 x width=1 then 2 x width=0) so bump the
UTF-8 cell data size to 9 and alter the code to allow this.

Also break off the combining code into a separate function, handle any further
combining beyond the buffer size by replacing the character with _s, and when
redrawing the UTF-8 character don't assume the first part has just been
printed, redraw the entire line.
This commit is contained in:
Tiago Cunha
2009-10-23 17:13:10 +00:00
parent 97e02eae7d
commit c643ac4827
3 changed files with 76 additions and 39 deletions

4
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.479 2009-10-23 17:10:00 tcunha Exp $ */
/* $Id: tmux.h,v 1.480 2009-10-23 17:13:10 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -514,7 +514,7 @@ struct grid_cell {
} __packed;
/* Grid cell UTF-8 data. Used instead of data in grid_cell for UTF-8 cells. */
#define UTF8_SIZE 8
#define UTF8_SIZE 9
struct grid_utf8 {
u_char width;
u_char data[UTF8_SIZE];