diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-06-18 15:59:19 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-06-18 15:59:19 (GMT) |
commit | 5c87050dd8b6765c40eeef94ab5773d955c3de17 (patch) | |
tree | 2f17fcdf4a7c6739c0fbe53952e68767c4657491 /generic/tclParse.c | |
parent | 5af99f55b25d479c15bfcb63d6959a9611cd6d09 (diff) | |
parent | 3c57d80efed172427e5aafa447365cb61439613c (diff) | |
download | tcl-5c87050dd8b6765c40eeef94ab5773d955c3de17.zip tcl-5c87050dd8b6765c40eeef94ab5773d955c3de17.tar.gz tcl-5c87050dd8b6765c40eeef94ab5773d955c3de17.tar.bz2 |
Merge 8.6. And add more documentation and test-cases regarding the behavior of Tcl_UniCharToUtf()
Diffstat (limited to 'generic/tclParse.c')
-rw-r--r-- | generic/tclParse.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/generic/tclParse.c b/generic/tclParse.c index 92482d6..581270c 100644 --- a/generic/tclParse.c +++ b/generic/tclParse.c @@ -979,13 +979,11 @@ TclParseBackslash( if (readPtr != NULL) { *readPtr = count; } - if ((result & 0xFC00) == 0xD800) { - dst[2] = (char) ((result | 0x80) & 0xBF); - dst[1] = (char) (((result >> 6) | 0x80) & 0xBF); - dst[0] = (char) ((result >> 12) | 0xE0); - return 3; + count = Tcl_UniCharToUtf(result, dst); + if (!count) { + count = Tcl_UniCharToUtf(-1, dst); } - return Tcl_UniCharToUtf(result, dst); + return count; } /* |