diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-01-21 16:26:40 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-01-21 16:26:40 (GMT) |
commit | f6c924bc7323104fcefc728b1f6407e70cf585ae (patch) | |
tree | 64bf502654f02e921d34ea97ee22a5b814331978 | |
parent | de64389a11b58cab27c6ba74a0d8b090c3fed91c (diff) | |
download | tcl-f6c924bc7323104fcefc728b1f6407e70cf585ae.zip tcl-f6c924bc7323104fcefc728b1f6407e70cf585ae.tar.gz tcl-f6c924bc7323104fcefc728b1f6407e70cf585ae.tar.bz2 |
Optimize Tcl_UniCharIsControl(). Don't worry about range >= U+F0000, that's for TCL_UTF_MAX>3, which is unsupported for 8.6.
-rw-r--r-- | generic/regc_locale.c | 3 | ||||
-rw-r--r-- | generic/tclUtf.c | 8 |
2 files changed, 2 insertions, 9 deletions
diff --git a/generic/regc_locale.c b/generic/regc_locale.c index 449cff6..c0ae530 100644 --- a/generic/regc_locale.c +++ b/generic/regc_locale.c @@ -302,8 +302,7 @@ static const crange controlRangeTable[] = { {0x202A, 0x202E}, {0x2060, 0x2064}, {0x2066, 0x206F}, {0xE000, 0xF8FF}, {0xFFF9, 0xFFFB} #if CHRBITS > 16 - ,{0x13430, 0x1343F}, {0x1BCA0, 0x1BCA3}, {0x1D173, 0x1D17A}, {0xE0020, 0xE007F}, - {0xF0000, 0xFFFFD}, {0x100000, 0x10FFFD} + ,{0x13430, 0x1343F}, {0x1BCA0, 0x1BCA3}, {0x1D173, 0x1D17A}, {0xE0020, 0xE007F} #endif }; diff --git a/generic/tclUtf.c b/generic/tclUtf.c index 196c5fb..736da66 100644 --- a/generic/tclUtf.c +++ b/generic/tclUtf.c @@ -1805,13 +1805,7 @@ Tcl_UniCharIsControl( if (UNICODE_OUT_OF_RANGE(ch)) { /* Clear away extension bits, if any */ ch &= 0x1FFFFF; - if ((ch == 0xE0001) || ((ch >= 0xE0020) && (ch <= 0xE007F))) { - return 1; - } - if ((ch >= 0xF0000) && ((ch & 0xFFFF) <= 0xFFFD)) { - return 1; - } - return 0; + return ((ch == 0xE0001) || ((unsigned)(ch - 0xE0020) <= 0x5F)); } #endif return ((CONTROL_BITS >> GetCategory(ch)) & 1); |