summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-10-08 17:01:35 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-10-08 17:01:35 (GMT)
commitbd8e0ee8b7e71085e6e3ff9a22dbc8b2b28a77f7 (patch)
treecf486d396e67296aa5c59831dcd59e49ff489bf0
parentafd31e9f77ff6b8e891cb196529c8e81d3856d7a (diff)
downloadtcl-bd8e0ee8b7e71085e6e3ff9a22dbc8b2b28a77f7.zip
tcl-bd8e0ee8b7e71085e6e3ff9a22dbc8b2b28a77f7.tar.gz
tcl-bd8e0ee8b7e71085e6e3ff9a22dbc8b2b28a77f7.tar.bz2
TIP #346 bugfix: -strictencoding should be resetable too
-rw-r--r--generic/tclIO.c10
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")) {