diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-01-24 20:00:22 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-01-24 20:00:22 (GMT) |
commit | 1dd572d476fbff934a84ba34dddbad744ce96091 (patch) | |
tree | b023d0a8000ef1269e62bcc75edfb2e963b69b36 /generic/tclIO.c | |
parent | 42b0b497a1e9f9a11105c85fb907e665a8703fdf (diff) | |
parent | 20ace1aa6c737f4ec24387b2f49407242034670f (diff) | |
download | tcl-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.c | 8 |
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); |