summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-01-24 20:00:22 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-01-24 20:00:22 (GMT)
commit1dd572d476fbff934a84ba34dddbad744ce96091 (patch)
treeb023d0a8000ef1269e62bcc75edfb2e963b69b36 /generic/tclIO.c
parent42b0b497a1e9f9a11105c85fb907e665a8703fdf (diff)
parent20ace1aa6c737f4ec24387b2f49407242034670f (diff)
downloadtcl-1dd572d476fbff934a84ba34dddbad744ce96091.zip
tcl-1dd572d476fbff934a84ba34dddbad744ce96091.tar.gz
tcl-1dd572d476fbff934a84ba34dddbad744ce96091.tar.bz2
First part of fix for [4a7397e0b3]. Not complete yet.
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r--generic/tclIO.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index e6e3560..47040d5 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -9472,7 +9472,9 @@ TclCopyChannel(
moveBytes = inStatePtr->inEofChar == '\0' /* No eofChar to stop input */
&& inStatePtr->inputTranslation == TCL_TRANSLATE_LF
&& outStatePtr->outputTranslation == TCL_TRANSLATE_LF
- && inStatePtr->encoding == outStatePtr->encoding;
+ && inStatePtr->encoding == outStatePtr->encoding
+ && (inStatePtr->flags & TCL_ENCODING_STRICT) != TCL_ENCODING_STRICT
+ && outStatePtr->flags & TCL_ENCODING_NOCOMPLAIN;
/*
* Allocate a new CopyState to maintain info about the current copy in
@@ -9799,7 +9801,9 @@ CopyData(
inBinary = (inStatePtr->encoding == NULL);
outBinary = (outStatePtr->encoding == NULL);
- sameEncoding = (inStatePtr->encoding == outStatePtr->encoding);
+ sameEncoding = inStatePtr->encoding == outStatePtr->encoding
+ && (inStatePtr->flags & TCL_ENCODING_STRICT) != TCL_ENCODING_STRICT
+ && outStatePtr->flags & TCL_ENCODING_NOCOMPLAIN;
if (!(inBinary || sameEncoding)) {
TclNewObj(bufObj);