diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-05-11 09:14:42 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-05-11 09:14:42 (GMT) |
commit | d9bc6cbae2f78eb2883de1d9ef9a3131da80614f (patch) | |
tree | 2d4e66afa1a947c474d979c1d8b538104f98ad5e /tools/uniParse.tcl | |
parent | 7bf3f83abd5bc0e24dbd3f02765b7e86d7ba1fa7 (diff) | |
download | tcl-d9bc6cbae2f78eb2883de1d9ef9a3131da80614f.zip tcl-d9bc6cbae2f78eb2883de1d9ef9a3131da80614f.tar.gz tcl-d9bc6cbae2f78eb2883de1d9ef9a3131da80614f.tar.bz2 |
Add emoji 11.0 to the set. Only active when compiled with TCL_UTF_MAX>3. Also prepare tooling for Unicode 11.0 (while being on it)
Diffstat (limited to 'tools/uniParse.tcl')
-rw-r--r-- | tools/uniParse.tcl | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/tools/uniParse.tcl b/tools/uniParse.tcl index e33b3c7..c712e62 100644 --- a/tools/uniParse.tcl +++ b/tools/uniParse.tcl @@ -272,6 +272,7 @@ static const unsigned char groupMap\[\] = {" * 100 = subtract delta for title/upper * 101 = sub delta for upper, sub 1 for title * 110 = sub delta for upper, add delta for lower + * 111 = subtract delta for upper * * Bits 8-31 Case delta: delta for case conversions. This should be the * highest field so we can easily sign extend. @@ -309,10 +310,14 @@ static const int groups\[\] = {" } } } elseif {$toupper} { - # subtract delta for upper, add delta for lower - set case 6 set delta $toupper - if {$tolower != $toupper} { + if {$tolower == $toupper} { + # subtract delta for upper, add delta for lower + set case 6 + } elseif {!$tolower} { + # subtract delta for upper + set case 7 + } else { error "New case conversion type needed: $toupper $tolower $totitle" } } elseif {$tolower} { @@ -396,7 +401,11 @@ enum { * Unicode character tables. */ -#define GetUniCharInfo(ch) (groups\[groupMap\[pageMap\[((ch) & 0xffff) >> OFFSET_BITS\] | ((ch) & ((1 << OFFSET_BITS)-1))\]\]) +#if TCL_UTF_MAX > 3 +# define GetUniCharInfo(ch) (groups\[groupMap\[pageMap\[((ch) & 0x1fffff) >> OFFSET_BITS\] | ((ch) & ((1 << OFFSET_BITS)-1))\]\]) +#else +# define GetUniCharInfo(ch) (groups\[groupMap\[pageMap\[((ch) & 0xffff) >> OFFSET_BITS\] | ((ch) & ((1 << OFFSET_BITS)-1))\]\]) +#endif " close $f |