summaryrefslogtreecommitdiffstats
path: root/generic/tclCmdMZ.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-05-01 19:42:53 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-05-01 19:42:53 (GMT)
commit190852002f644f02a6e13c6a7c9017c3f21e1003 (patch)
treebed7c42f0cd850e442f6cc56d59c3b6b5efe258a /generic/tclCmdMZ.c
parent6c4b78cfa8c06ea5963591778902da74850d1985 (diff)
downloadtcl-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.c17
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;
}