diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-10-08 17:01:35 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-10-08 17:01:35 (GMT) |
commit | bd8e0ee8b7e71085e6e3ff9a22dbc8b2b28a77f7 (patch) | |
tree | cf486d396e67296aa5c59831dcd59e49ff489bf0 | |
parent | afd31e9f77ff6b8e891cb196529c8e81d3856d7a (diff) | |
download | tcl-bd8e0ee8b7e71085e6e3ff9a22dbc8b2b28a77f7.zip tcl-bd8e0ee8b7e71085e6e3ff9a22dbc8b2b28a77f7.tar.gz tcl-bd8e0ee8b7e71085e6e3ff9a22dbc8b2b28a77f7.tar.bz2 |
TIP #346 bugfix: -strictencoding should be resetable too
-rw-r--r-- | generic/tclIO.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c index 42c9e18..a13f32c 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -4399,6 +4399,8 @@ Write( if (GotFlag(statePtr, CHANNEL_ENCODING_STRICT)) { statePtr->outputEncodingFlags |= TCL_ENCODING_STRICT; + } else { + statePtr->outputEncodingFlags &= ~TCL_ENCODING_STRICT; } /* @@ -4722,6 +4724,8 @@ Tcl_GetsObj( if (GotFlag(statePtr, CHANNEL_ENCODING_STRICT)) { statePtr->inputEncodingFlags |= TCL_ENCODING_STRICT; + } else { + statePtr->inputEncodingFlags &= ~TCL_ENCODING_STRICT; } /* @@ -5487,6 +5491,8 @@ FilterInputBytes( if (GotFlag(statePtr, CHANNEL_ENCODING_STRICT)) { statePtr->inputEncodingFlags |= TCL_ENCODING_STRICT; + } else { + statePtr->inputEncodingFlags &= ~TCL_ENCODING_STRICT; } result = Tcl_ExternalToUtf(NULL, gsPtr->encoding, raw, rawLen, @@ -6267,6 +6273,8 @@ ReadChars( if (GotFlag(statePtr, CHANNEL_ENCODING_STRICT)) { statePtr->inputEncodingFlags |= TCL_ENCODING_STRICT; + } else { + statePtr->inputEncodingFlags &= ~TCL_ENCODING_STRICT; } /* @@ -8276,6 +8284,8 @@ Tcl_SetChannelOption( } if (newMode) { SetFlag(statePtr, CHANNEL_ENCODING_STRICT); + } else { + ResetFlag(statePtr, CHANNEL_ENCODING_STRICT); } return TCL_OK; } else if (HaveOpt(1, "-translation")) { |