summaryrefslogtreecommitdiffstats
path: root/generic/tclUtf.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-04-10 13:02:10 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-04-10 13:02:10 (GMT)
commit50dd457a4cba1b28d263522e6e66af6beb001632 (patch)
treebf2353127a95a4f72ac4b772400673c30bdc03f2 /generic/tclUtf.c
parentc7de8a1d22c60626b19b0bb57ac58fa7d9d5cc16 (diff)
parent61e8620f8627bfd26b93e6e7695aba9a1efd7ee0 (diff)
downloadtcl-50dd457a4cba1b28d263522e6e66af6beb001632.zip
tcl-50dd457a4cba1b28d263522e6e66af6beb001632.tar.gz
tcl-50dd457a4cba1b28d263522e6e66af6beb001632.tar.bz2
Merge 8.6
Diffstat (limited to 'generic/tclUtf.c')
-rw-r--r--generic/tclUtf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/generic/tclUtf.c b/generic/tclUtf.c
index 72fefa4..8d1371a 100644
--- a/generic/tclUtf.c
+++ b/generic/tclUtf.c
@@ -472,10 +472,10 @@ Tcl_UtfToChar16(
* bytes, then we must produce a follow-up low surrogate. We only
* do that if the high surrogate matches the bits we encounter.
*/
- if ((byte >= 0x80)
+ if (((byte & 0xC0) == 0x80)
+ && ((src[1] & 0xC0) == 0x80) && ((src[2] & 0xC0) == 0x80)
&& (((((byte - 0x10) << 2) & 0xFC) | 0xD800) == (*chPtr & 0xFCFC))
- && ((src[1] & 0xF0) == (((*chPtr << 4) & 0x30) | 0x80))
- && ((src[2] & 0xC0) == 0x80)) {
+ && ((src[1] & 0xF0) == (((*chPtr << 4) & 0x30) | 0x80))) {
*chPtr = ((src[1] & 0x0F) << 6) + (src[2] & 0x3F) + 0xDC00;
return 3;
}