From 27115905223141fe2730b8519552bbffeeeb7bc1 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Sun, 21 Jan 2024 16:26:40 +0000 Subject: Optimize Tcl_UniCharIsControl(). Don't worry about range >= U+F0000, that's for TCL_UTF_MAX>3, which is unsupported for 8.6. --- generic/regc_locale.c | 3 +-- 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); -- cgit v0.12