First-stage support for Unicode combining characters. The `chars'
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Thu, 14 Oct 2004 16:42:43 +0000 (16:42 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Thu, 14 Oct 2004 16:42:43 +0000 (16:42 +0000)
commitc6958dfe2ab270f7d02d02b21d4a4008478a5ea9
tree74279712e2a0e198ba6c318b5ebd0f6d068d7a94
parent0ed48730a1c7c81cf93a49ce61541461d7df5a58
First-stage support for Unicode combining characters. The `chars'
array of each `termline' structure now contains optional additional
entries after the normal number of columns, which are used to chain
a linked list of combining characters off any primary termchar that
needs it. This means we support arbitrarily many combining
characters per cell (unlike xterm's hard limit of 2).

Cut and paste works correctly (selecting a character cell containing
multiple code points causes all those code points to be cut and
pasted). Display works by simply overlaying all the relevant
characters on top of one another; this is good enough for Unix
(xterm does the same thing), and mostly seems OK for Windows except
that the Windows Unicode fonts have a nasty habit of not containing
most of the combining characters and thus overlaying an
unknown-code-point box on your perfectly good base glyph.

I had no idea how to add support in the Mac do_text(), so I've
simply stuck in an assertion that will trigger the first time a
combining character is displayed, and hopefully this will bite
someone with the clue to fix it.

git-svn-id: svn://svn.tartarus.org/sgt/putty@4622 cda61777-01e9-0310-a592-d414129be87e
mac/macterm.c
putty.h
terminal.c
terminal.h
unix/pterm.c
window.c