summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2020-04-17 05:16:55 (GMT)
committerdgp <dgp@users.sourceforge.net>2020-04-17 05:16:55 (GMT)
commit98700eaf2b0d54d262c427dd5dd30133e6a14fbd (patch)
tree3e98250863dd97f27569a1c73642052b44c408e4
parentdc5d14fded7f32d5548ac3bef0e00df4ae0456f9 (diff)
parentad85391b59eba72ecf8c0af3e83f800c61e52f26 (diff)
downloadtcl-98700eaf2b0d54d262c427dd5dd30133e6a14fbd.zip
tcl-98700eaf2b0d54d262c427dd5dd30133e6a14fbd.tar.gz
tcl-98700eaf2b0d54d262c427dd5dd30133e6a14fbd.tar.bz2
Clean test suite for both TCL_UTF_MAX=3 and TCL_UTF_MAX=4 builds.
-rw-r--r--generic/tclUtf.c10
-rw-r--r--tests/utf.test16
2 files changed, 11 insertions, 15 deletions
diff --git a/generic/tclUtf.c b/generic/tclUtf.c
index fdf2e32..4b5d500 100644
--- a/generic/tclUtf.c
+++ b/generic/tclUtf.c
@@ -84,11 +84,7 @@ static const unsigned char complete[256] = {
#endif
2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-#if TCL_UTF_MAX > 4
4,4,4,4,4,
-#else
- 3,3,3,3,3, /* Tcl_UtfCharComplete() only checks TCL_UTF_MAX bytes */
-#endif
1,1,1,1,1,1,1,1,1,1,1
};
@@ -154,7 +150,7 @@ UtfCount(
static CONST unsigned char overlong[3] = {
0x80, /* \xD0 -- all sequences valid */
0xA0, /* \xE0\x80 through \xE0\x9F are invalid prefixes */
-#if TCL_UTF_MAX > 3
+#if TCL_UTF_MAX >= 3
0x90 /* \xF0\x80 through \xF0\x8F are invalid prefixes */
#else
0xC0 /* Not used, but reject all again for safety. */
@@ -606,14 +602,14 @@ Tcl_NumUtfChars(
src = next;
}
} else {
- register const char *endPtr = src + length - TCL_UTF_MAX;
+ register const char *endPtr = src + length - /*TCL_UTF_MAX*/ 4;
while (src < endPtr) {
next = TclUtfNext(src);
i += 1 + ((next - src) > 3);
src = next;
}
- endPtr += TCL_UTF_MAX;
+ endPtr += /*TCL_UTF_MAX*/ 4;
while ((src < endPtr) && Tcl_UtfCharComplete(src, endPtr - src)) {
next = TclUtfNext(src);
i += 1 + ((next - src) > 3);
diff --git a/tests/utf.test b/tests/utf.test
index b89be25..c584ea1 100644
--- a/tests/utf.test
+++ b/tests/utf.test
@@ -415,9 +415,9 @@ test utf-6.85 {Tcl_UtfNext - overlong sequences} testutfnext {
test utf-6.86 {Tcl_UtfNext - overlong sequences} testutfnext {
testutfnext \xF0\x80\x80\x80
} 1
-test utf-6.87 {Tcl_UtfNext - overlong sequences} {testutfnext knownBug} { # Doesn't work with TCL_UTF_MAX>3
+test utf-6.87 {Tcl_UtfNext - overlong sequences} {testutfnext} {
testutfnext \xF0\x90\x80\x80
-} 1
+} 4
test utf-6.88 {Tcl_UtfNext, pointing to 2th byte of 3-byte valid sequence} {testutfnext} {
testutfnext \xE8\xA0\xA0 1
} 2
@@ -628,15 +628,15 @@ test utf-7.37 {Tcl_UtfPrev -- overlong sequence} testutfprev {
test utf-7.38 {Tcl_UtfPrev -- overlong sequence} testutfprev {
testutfprev A\xE0\xA0\x80 2
} 1
-test utf-7.39 {Tcl_UtfPrev -- overlong sequence} {testutfprev knownBug} { # Doesn't work with TCL_UTF_MAX>3
+test utf-7.39 {Tcl_UtfPrev -- overlong sequence} {testutfprev} {
testutfprev A\xF0\x90\x80\x80
-} 4
-test utf-7.40 {Tcl_UtfPrev -- overlong sequence} {testutfprev knownBug} { # Doesn't work with TCL_UTF_MAX>3
+} 1
+test utf-7.40 {Tcl_UtfPrev -- overlong sequence} {testutfprev} {
testutfprev A\xF0\x90\x80\x80 4
-} 3
-test utf-7.41 {Tcl_UtfPrev -- overlong sequence} {testutfprev knownBug} { # Doesn't work with TCL_UTF_MAX>3
+} 1
+test utf-7.41 {Tcl_UtfPrev -- overlong sequence} {testutfprev} {
testutfprev A\xF0\x90\x80\x80 3
-} 2
+} 1
test utf-7.42 {Tcl_UtfPrev -- overlong sequence} testutfprev {
testutfprev A\xF0\x90\x80\x80 2
} 1