diff options
| author | dgp <dgp@users.sourceforge.net> | 2020-04-17 05:16:55 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2020-04-17 05:16:55 (GMT) |
| commit | 98700eaf2b0d54d262c427dd5dd30133e6a14fbd (patch) | |
| tree | 3e98250863dd97f27569a1c73642052b44c408e4 | |
| parent | dc5d14fded7f32d5548ac3bef0e00df4ae0456f9 (diff) | |
| parent | ad85391b59eba72ecf8c0af3e83f800c61e52f26 (diff) | |
| download | tcl-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.c | 10 | ||||
| -rw-r--r-- | tests/utf.test | 16 |
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 |
