diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-11-23 00:09:05 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-11-23 00:09:05 (GMT) |
commit | e37308d78c5351b43dcce5448d1642dacc7253c8 (patch) | |
tree | 5204e1649bc80febf15d056c018db98fca204023 /generic/tclEncoding.c | |
parent | 096106f2028a155be144690925802d5152f2c9eb (diff) | |
parent | b5e5883c33bfb1181ca092358479a4439fa3280b (diff) | |
download | tcl-e37308d78c5351b43dcce5448d1642dacc7253c8.zip tcl-e37308d78c5351b43dcce5448d1642dacc7253c8.tar.gz tcl-e37308d78c5351b43dcce5448d1642dacc7253c8.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic/tclEncoding.c')
-rw-r--r-- | generic/tclEncoding.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c index 76a936c..3013916 100644 --- a/generic/tclEncoding.c +++ b/generic/tclEncoding.c @@ -2328,7 +2328,7 @@ UtfToUtfProc( * If in input mode, and -strict is specified: This is an error. */ if (flags & TCL_ENCODING_MODIFIED) { - result = TCL_CONVERT_UNKNOWN; + result = TCL_CONVERT_SYNTAX; break; } @@ -2350,6 +2350,10 @@ UtfToUtfProc( result = TCL_CONVERT_MULTIBYTE; break; } + if (((flags & TCL_ENCODING_STRICT) == TCL_ENCODING_STRICT)) { + result = TCL_CONVERT_SYNTAX; + break; + } ch = UCHAR(*src++); } else { char chbuf[2]; @@ -2360,8 +2364,8 @@ UtfToUtfProc( } else { const char *saveSrc = src; size_t len = TclUtfToUCS4(src, &ch); - if ((len < 2) && (ch != 0) && STOPONERROR - && (flags & TCL_ENCODING_MODIFIED)) { + if ((len < 2) && (ch != 0) && (flags & TCL_ENCODING_MODIFIED) + && (((flags & TCL_ENCODING_STRICT) == TCL_ENCODING_STRICT))) { result = TCL_CONVERT_SYNTAX; break; } |