summaryrefslogtreecommitdiffstats
path: root/generic/tclEncoding.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-11-23 00:09:05 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-11-23 00:09:05 (GMT)
commite37308d78c5351b43dcce5448d1642dacc7253c8 (patch)
tree5204e1649bc80febf15d056c018db98fca204023 /generic/tclEncoding.c
parent096106f2028a155be144690925802d5152f2c9eb (diff)
parentb5e5883c33bfb1181ca092358479a4439fa3280b (diff)
downloadtcl-e37308d78c5351b43dcce5448d1642dacc7253c8.zip
tcl-e37308d78c5351b43dcce5448d1642dacc7253c8.tar.gz
tcl-e37308d78c5351b43dcce5448d1642dacc7253c8.tar.bz2
Merge 8.7
Diffstat (limited to 'generic/tclEncoding.c')
-rw-r--r--generic/tclEncoding.c10
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;
}