diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | generic/tclUniData.c | 6 | ||||
-rw-r--r-- | tools/uniParse.tcl | 6 |
3 files changed, 20 insertions, 0 deletions
@@ -1,3 +1,11 @@ +2012-01-22 Jan Nijtmans <nijtmans@users.sf.net> + + * tools/uniClass.tcl: [Frq 3473670]: Various Unicode-related + * tools/uniParse.tcl: speedups/robustness. Enhanced tools to + * generic/tclUniData.c: be able to handle characters > 0xffff + * generic/tclUtf.c: Done in all branches in order to simplify + * generic/regc_locale.c: merges for new Unicode versions (such as 6.1) + 2012-01-19 Jan Nijtmans <nijtmans@users.sf.net> * generic/tcl.h: [Bug-3474726]: Eliminate detection of struct diff --git a/generic/tclUniData.c b/generic/tclUniData.c index 566e694..fcd81bb 100644 --- a/generic/tclUniData.c +++ b/generic/tclUniData.c @@ -1334,6 +1334,12 @@ static CONST int groups[] = { -2768575, 1859714, -9044927, -10823615, 18, 17, 10305, 10370 }; +#if UTF_MAX_LEN > 3 +# define UNICODE_OUT_OF_RANGE(ch) (((ch) & 0x1fffff) >= 0x2fa20) +#else +# define UNICODE_OUT_OF_RANGE(ch) (((ch) & 0x1f0000) != 0) +#endif + /* * The following constants are used to determine the category of a * Unicode character. diff --git a/tools/uniParse.tcl b/tools/uniParse.tcl index a7cc1ee..86f6d04 100644 --- a/tools/uniParse.tcl +++ b/tools/uniParse.tcl @@ -337,6 +337,12 @@ static CONST int groups\[\] = {" puts $f $line puts -nonewline $f "}; +#if UTF_MAX_LEN > 3 +# define UNICODE_OUT_OF_RANGE(ch) (((ch) & 0x1fffff) >= [format 0x%x $next]) +#else +# define UNICODE_OUT_OF_RANGE(ch) (((ch) & 0x1f0000) != 0) +#endif + /* * The following constants are used to determine the category of a * Unicode character. |