mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-02 03:52:49 -05:00
Support in the cross-platform code for translating to and from
UTF-16 when exchanging wchar_t strings with the front end. Enabled by a #define in the platform's header file (one should not promiscuously translate UTF-16 surrogate pairs on 32-bit wchar_t platforms since that could give rise to redundant encoding attacks), which is present on Windows. [originally from svn r8495]
This commit is contained in:
13
terminal.c
13
terminal.c
@ -5262,8 +5262,17 @@ static void clipme(Terminal *term, pos top, pos bottom, int rect, int desel)
|
||||
|
||||
set = (uc & CSET_MASK);
|
||||
c = (uc & ~CSET_MASK);
|
||||
cbuf[0] = uc;
|
||||
cbuf[1] = 0;
|
||||
#ifdef PLATFORM_IS_UTF16
|
||||
if (uc > 0x10000 && uc < 0x110000) {
|
||||
cbuf[0] = 0xD800 | ((uc - 0x10000) >> 10);
|
||||
cbuf[1] = 0xDC00 | ((uc - 0x10000) & 0x3FF);
|
||||
cbuf[2] = 0;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
cbuf[0] = uc;
|
||||
cbuf[1] = 0;
|
||||
}
|
||||
|
||||
if (DIRECT_FONT(uc)) {
|
||||
if (c >= ' ' && c != 0x7F) {
|
||||
|
Reference in New Issue
Block a user