diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-05-01 19:42:53 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-05-01 19:42:53 (GMT) |
commit | 190852002f644f02a6e13c6a7c9017c3f21e1003 (patch) | |
tree | bed7c42f0cd850e442f6cc56d59c3b6b5efe258a /generic/tclCmdMZ.c | |
parent | 6c4b78cfa8c06ea5963591778902da74850d1985 (diff) | |
download | tcl-190852002f644f02a6e13c6a7c9017c3f21e1003.zip tcl-190852002f644f02a6e13c6a7c9017c3f21e1003.tar.gz tcl-190852002f644f02a6e13c6a7c9017c3f21e1003.tar.bz2 |
Remove internal use of TCL_UTF_MAX=3 as much as possible, without compromizing existing TIP's
Diffstat (limited to 'generic/tclCmdMZ.c')
-rw-r--r-- | generic/tclCmdMZ.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index cd34364..46eae76 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.c @@ -1217,7 +1217,7 @@ Tcl_SplitObjCmd( Tcl_InitHashTable(&charReuseTable, TCL_ONE_WORD_KEYS); for ( ; stringPtr < end; stringPtr += len) { - len = TclUtfToUCS4(stringPtr, &ch); + len = Tcl_UtfToUniChar(stringPtr, &ch); hPtr = Tcl_CreateHashEntry(&charReuseTable, INT2PTR(ch), &isNew); if (isNew) { TclNewStringObj(objPtr, stringPtr, len); @@ -1263,9 +1263,9 @@ Tcl_SplitObjCmd( splitEnd = splitChars + splitCharLen; for (element = stringPtr; stringPtr < end; stringPtr += len) { - len = TclUtfToUCS4(stringPtr, &ch); + len = Tcl_UtfToUniChar(stringPtr, &ch); for (p = splitChars; p < splitEnd; p += splitLen) { - splitLen = TclUtfToUCS4(p, &splitChar); + splitLen = Tcl_UtfToUniChar(p, &splitChar); if (ch == splitChar) { TclNewStringObj(objPtr, element, stringPtr - element); Tcl_ListObjAppendElement(NULL, listPtr, objPtr); @@ -1895,7 +1895,7 @@ StringIsCmd( for (; string1 < end; string1 += length2, failat++) { int ucs4; - length2 = TclUtfToUCS4(string1, &ucs4); + length2 = Tcl_UtfToUniChar(string1, &ucs4); if (!chcomp(ucs4)) { result = 0; break; @@ -2517,7 +2517,7 @@ StringStartCmd( if (index > 0) { p = &string[index]; - (void)TclUniCharToUCS4(p, &ch); + ch = *p; for (cur = index; cur >= 0; cur--) { int delta = 0; const Tcl_UniChar *next; @@ -2526,10 +2526,11 @@ StringStartCmd( break; } - next = TclUCS4Prev(p, string); + next = (p > string) ? p - 1 : p; do { next += delta; - delta = TclUniCharToUCS4(next, &ch); + ch = *next; + delta = 1; } while (next + delta < p); p = next; } @@ -2587,7 +2588,7 @@ StringEndCmd( p = &string[index]; end = string+length; for (cur = index; p < end; cur++) { - p += TclUniCharToUCS4(p, &ch); + ch = *p++; if (!Tcl_UniCharIsWordChar(ch)) { break; } |