summaryrefslogtreecommitdiffstats
path: root/generic/tclUtf.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclUtf.c')
-rw-r--r--generic/tclUtf.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/generic/tclUtf.c b/generic/tclUtf.c
index 9522f11..75552f6 100644
--- a/generic/tclUtf.c
+++ b/generic/tclUtf.c
@@ -352,7 +352,7 @@ Tcl_Char16ToUtfDString(
*/
static const unsigned short cp1252[32] = {
- 0x20ac, 0x81, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
+ 0x20AC, 0x81, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x8D, 0x017D, 0x8F,
0x90, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x2DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x9D, 0x017E, 0x0178
@@ -525,7 +525,7 @@ Tcl_UtfToChar16(
unsigned short high = (((byte & 0x07) << 8) | ((src[1] & 0x3F) << 2)
| ((src[2] & 0x3F) >> 4)) - 0x40;
if (high >= 0x400) {
- /* out of range, < 0x10000 or > 0x10ffff */
+ /* out of range, < 0x10000 or > 0x10FFFF */
} else {
/* produce high surrogate, advance source pointer */
*chPtr = 0xD800 + high;
@@ -790,7 +790,7 @@ Tcl_UtfFindFirst(
#if TCL_UTF_MAX <= 3
if ((fullchar != ch) && (find >= 0xD800) && (len < 3)) {
len += TclUtfToUniChar(src + len, &find);
- fullchar = (((fullchar & 0x3ff) << 10) | (find & 0x3ff)) + 0x10000;
+ fullchar = (((fullchar & 0x3FF) << 10) | (find & 0x3FF)) + 0x10000;
}
#endif
if (fullchar == ch) {
@@ -838,7 +838,7 @@ Tcl_UtfFindLast(
#if TCL_UTF_MAX <= 3
if ((fullchar != ch) && (find >= 0xD800) && (len < 3)) {
len += TclUtfToUniChar(src + len, &find);
- fullchar = (((fullchar & 0x3ff) << 10) | (find & 0x3ff)) + 0x10000;
+ fullchar = (((fullchar & 0x3FF) << 10) | (find & 0x3FF)) + 0x10000;
}
#endif
if (fullchar == ch) {
@@ -976,7 +976,7 @@ Tcl_UniCharAtIndex(
if ((ch >= 0xD800) && (len < 3)) {
/* If last Tcl_UniChar was a high surrogate, combine with low surrogate */
(void)TclUtfToUniChar(src, &ch);
- fullchar = (((fullchar & 0x3ff) << 10) | (ch & 0x3ff)) + 0x10000;
+ fullchar = (((fullchar & 0x3FF) << 10) | (ch & 0x3FF)) + 0x10000;
}
#endif
return fullchar;
@@ -1114,7 +1114,7 @@ Tcl_UtfToUpper(
if ((ch >= 0xD800) && (len < 3)) {
len += TclUtfToUniChar(src + len, &ch);
/* Combine surrogates */
- upChar = (((upChar & 0x3ff) << 10) | (ch & 0x3ff)) + 0x10000;
+ upChar = (((upChar & 0x3FF) << 10) | (ch & 0x3FF)) + 0x10000;
}
#endif
upChar = Tcl_UniCharToUpper(upChar);
@@ -1176,7 +1176,7 @@ Tcl_UtfToLower(
if ((ch >= 0xD800) && (len < 3)) {
len += TclUtfToUniChar(src + len, &ch);
/* Combine surrogates */
- lowChar = (((lowChar & 0x3ff) << 10) | (ch & 0x3ff)) + 0x10000;
+ lowChar = (((lowChar & 0x3FF) << 10) | (ch & 0x3FF)) + 0x10000;
}
#endif
lowChar = Tcl_UniCharToLower(lowChar);
@@ -1241,7 +1241,7 @@ Tcl_UtfToTitle(
if ((ch >= 0xD800) && (len < 3)) {
len += TclUtfToUniChar(src + len, &ch);
/* Combine surrogates */
- titleChar = (((titleChar & 0x3ff) << 10) | (ch & 0x3ff)) + 0x10000;
+ titleChar = (((titleChar & 0x3FF) << 10) | (ch & 0x3FF)) + 0x10000;
}
#endif
titleChar = Tcl_UniCharToTitle(titleChar);
@@ -1261,7 +1261,7 @@ Tcl_UtfToTitle(
if ((ch >= 0xD800) && (len < 3)) {
len += TclUtfToUniChar(src + len, &ch);
/* Combine surrogates */
- lowChar = (((lowChar & 0x3ff) << 10) | (ch & 0x3ff)) + 0x10000;
+ lowChar = (((lowChar & 0x3FF) << 10) | (ch & 0x3FF)) + 0x10000;
}
#endif
/* Special exception for Georgian Asomtavruli chars, no titlecase. */
@@ -1821,7 +1821,7 @@ Tcl_UniCharIsControl(
{
if (UNICODE_OUT_OF_RANGE(ch)) {
ch &= 0x1FFFFF;
- if ((ch == 0xE0001) || ((ch >= 0xE0020) && (ch <= 0xE007f))) {
+ if ((ch == 0xE0001) || ((ch >= 0xE0020) && (ch <= 0xE007F))) {
return 1;
}
if ((ch >= 0xF0000) && ((ch & 0xFFFF) <= 0xFFFD)) {
@@ -1879,8 +1879,7 @@ Tcl_UniCharIsGraph(
int ch) /* Unicode character to test. */
{
if (UNICODE_OUT_OF_RANGE(ch)) {
- ch &= 0x1FFFFF;
- return (ch >= 0xE0100) && (ch <= 0xE01EF);
+ return ((unsigned)((ch & 0x1FFFFF) - 0xE0100) <= 0xEF);
}
return ((GRAPH_BITS >> GetCategory(ch)) & 1);
}
@@ -1932,8 +1931,7 @@ Tcl_UniCharIsPrint(
int ch) /* Unicode character to test. */
{
if (UNICODE_OUT_OF_RANGE(ch)) {
- ch &= 0x1FFFFF;
- return (ch >= 0xE0100) && (ch <= 0xE01EF);
+ return ((unsigned)((ch & 0x1FFFFF) - 0xE0100) <= 0xEF);
}
return (((GRAPH_BITS|SPACE_BITS) >> GetCategory(ch)) & 1);
}