diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-03-22 09:41:00 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-03-22 09:41:00 (GMT) |
commit | 44357a25341fc6b531fda7e2d69f83c05ad7702d (patch) | |
tree | 6e41e7c1d4f4b4a4ec079e230f3bb1dcbdcabbd1 | |
parent | 133af7524b7bdfc62eb504a932faef09a0ae03e9 (diff) | |
download | tcl-44357a25341fc6b531fda7e2d69f83c05ad7702d.zip tcl-44357a25341fc6b531fda7e2d69f83c05ad7702d.tar.gz tcl-44357a25341fc6b531fda7e2d69f83c05ad7702d.tar.bz2 |
code cleanup: use more *SURROGATE() macro's
-rw-r--r-- | generic/tclEncoding.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c index fc62d7c..fc9d241 100644 --- a/generic/tclEncoding.c +++ b/generic/tclEncoding.c @@ -2778,7 +2778,7 @@ Utf32ToUtfProc( } else { ch = (src[0] & 0xFF) << 24 | (src[1] & 0xFF) << 16 | (src[2] & 0xFF) << 8 | (src[3] & 0xFF); } - if (((prev & ~0x3FF) == 0xD800) && ((ch & ~0x3FF) != 0xDC00)) { + if (HIGH_SURROGATE(prev) && !LOW_SURROGATE(ch)) { /* Bug [10c2c17c32]. If Hi surrogate not followed by Lo surrogate, finish 3-byte UTF-8 */ dst += Tcl_UniCharToUtf(-1, dst); } @@ -2805,7 +2805,7 @@ Utf32ToUtfProc( if ((unsigned)ch - 1 < 0x7F) { *dst++ = (ch & 0xFF); } else { - if (((prev & ~0x3FF) != 0xD800) && ((ch & ~0x3FF) == 0xDC00)) { + if (!HIGH_SURROGATE(prev) && LOW_SURROGATE(ch)) { *dst = 0; /* In case of lower surrogate, don't try to combine */ } dst += Tcl_UniCharToUtf(ch, dst); @@ -2813,7 +2813,7 @@ Utf32ToUtfProc( src += 4; } - if ((ch & ~0x3FF) == 0xD800) { + if (HIGH_SURROGATE(ch)) { /* Bug [10c2c17c32]. If Hi surrogate, finish 3-byte UTF-8 */ dst += Tcl_UniCharToUtf(-1, dst); } @@ -3031,7 +3031,7 @@ Utf16ToUtfProc( } else { ch = (src[0] & 0xFF) << 8 | (src[1] & 0xFF); } - if (((prev & ~0x3FF) == 0xD800) && ((ch & ~0x3FF) != 0xDC00)) { + if (HIGH_SURROGATE(prev) && !LOW_SURROGATE(ch)) { if (PROFILE_STRICT(flags)) { result = TCL_CONVERT_SYNTAX; src -= 2; /* Go back to beginning of high surrogate */ @@ -3050,9 +3050,9 @@ Utf16ToUtfProc( if ((unsigned)ch - 1 < 0x7F) { *dst++ = (ch & 0xFF); - } else if (((prev & ~0x3FF) == 0xD800) || ((ch & ~0x3FF) == 0xD800)) { + } else if (HIGH_SURROGATE(prev) || HIGH_SURROGATE(ch)) { dst += Tcl_UniCharToUtf(ch, dst); - } else if (((ch & ~0x3FF) == 0xDC00) && PROFILE_STRICT(flags)) { + } else if (LOW_SURROGATE(ch) && PROFILE_STRICT(flags)) { /* Lo surrogate not preceded by Hi surrogate */ result = TCL_CONVERT_SYNTAX; break; @@ -3063,7 +3063,7 @@ Utf16ToUtfProc( src += sizeof(unsigned short); } - if ((ch & ~0x3FF) == 0xD800) { + if (HIGH_SURROGATE(ch)) { if (PROFILE_STRICT(flags)) { result = TCL_CONVERT_SYNTAX; src -= 2; @@ -3301,7 +3301,7 @@ UtfToUcs2Proc( ch = UNICODE_REPLACE_CHAR; } #endif - if (PROFILE_STRICT(flags) && ((ch & ~0x7FF) == 0xD800)) { + if (PROFILE_STRICT(flags) && SURROGATE(ch)) { result = TCL_CONVERT_SYNTAX; break; } |