summaryrefslogtreecommitdiffstats
path: root/generic/tclEncoding.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2019-12-10 13:16:48 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2019-12-10 13:16:48 (GMT)
commitdb4a693d72766bc7a355c1012d5bcd0f12841c5b (patch)
treeb29ca4211e615e54d006d8f2ec0bf7544a99b994 /generic/tclEncoding.c
parent5caaa0f557d84c6f010ea30242b39d166bee3a59 (diff)
parent216a1d1937f2844d311f703e5a8e0ee41806c7f2 (diff)
downloadtcl-db4a693d72766bc7a355c1012d5bcd0f12841c5b.zip
tcl-db4a693d72766bc7a355c1012d5bcd0f12841c5b.tar.gz
tcl-db4a693d72766bc7a355c1012d5bcd0f12841c5b.tar.bz2
Fix [5f236bc67a]: valgrind report for Tcl_UniCharToUtf. Also add test-cases for more corner-cases.
Diffstat (limited to 'generic/tclEncoding.c')
-rw-r--r--generic/tclEncoding.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c
index ffa23f3..8990385 100644
--- a/generic/tclEncoding.c
+++ b/generic/tclEncoding.c
@@ -2365,7 +2365,7 @@ UtfToUtfProc(
/* A surrogate character is detected, handle especially */
Tcl_UniChar low = *chPtr;
size_t len = (src <= srcEnd-3) ? Tcl_UtfToUniChar(src, &low) : 0;
- if (((low | 0x3FF) != 0xDFFF) || !(*chPtr & 0x800)) {
+ if (((low | 0x3FF) != 0xDFFF) || (*chPtr & 0x400)) {
*dst++ = (char) (((*chPtr >> 12) | 0xE0) & 0xEF);
*dst++ = (char) (((*chPtr >> 6) | 0x80) & 0xBF);
*dst++ = (char) ((*chPtr | 0x80) & 0xBF);