diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-02-06 22:43:30 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-02-06 22:43:30 (GMT) |
commit | f5f5ff4257a24b2e8a8d96c820f6874c86e81304 (patch) | |
tree | c35eaa75e3883dfc93d8992148e44ab09649cdd8 | |
parent | de0a637d7c24faa768c266bacda17bf6ac48171d (diff) | |
download | tcl-f5f5ff4257a24b2e8a8d96c820f6874c86e81304.zip tcl-f5f5ff4257a24b2e8a8d96c820f6874c86e81304.tar.gz tcl-f5f5ff4257a24b2e8a8d96c820f6874c86e81304.tar.bz2 |
Proposed fix for [10c2c17c32]: UTF-LE32 encoder mapping of surrogates. TODO: testcase
-rw-r--r-- | generic/tclEncoding.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c index 288b07c..d19e237 100644 --- a/generic/tclEncoding.c +++ b/generic/tclEncoding.c @@ -2582,6 +2582,10 @@ Utf32ToUtfProc( *dst++ = (ch & 0xFF); } else { dst += Tcl_UniCharToUtf(ch, dst); + if ((ch & ~0x3FF) == 0xD800) { + /* Bug [10c2c17c32]. If Hi surrogate, finish 3-byte UTF-8 */ + dst += Tcl_UniCharToUtf(-1, dst); + } } src += sizeof(unsigned int); } |