Better UTF-8 support, including combined characters. Unicode data is now stored

as UTF-8 in a separate array, the code does a lookup into this every time it
gets to a UTF-8 cell. Zero width characters are just appended onto the UTF-8
data for the previous cell. This also means that almost no bytes extra are
wasted non-Unicode data (yay).

Still some oddities, such as copy mode skips over wide characters in a strange
way, and the code could do with some tidying.
This commit is contained in:
Nicholas Marriott
2009-03-28 20:17:29 +00:00
parent 34dd72f008
commit cf7b384c43
12 changed files with 364 additions and 226 deletions

6
TODO
View File

@ -69,11 +69,6 @@
errors better
- would be nice if tmux could be the shell (tmux attach, but hard link to tmux
binary as "tmuxsh" or wrapper script?) -- problems with tty dev permissions
- UTF-8 combining characters don't work. store in one cell - pointer to table
of chains. bit of a hack and would mean max of 65536 per screen. OR maybe
utf8 should work differently; could store as multiple cells, 1 of width >0
and n of width 0, then translate cursor indexes on-the-fly would need to
adjust all cursor movement and also handle different width lines properly.
- support other mouse modes (highlight etc) and use it in copy mode
- set-remain-on-exit is a bit of a hack, some way to do it generically?
- set-option should be set-session-option and should be overall global options
@ -92,6 +87,7 @@
- refer to windows by name etc (duplicates? fnmatch?)
- a confirm-before command which asks "Are you sure? (y/n)" before executing
command, eg bind-key "&" confirm-before "kill-window"
- c&p is funny w/ UTF-8
- document repeat behaviour and -r on bind-key
- document status-keys