diff options
author | dgp@users.sourceforge.net <dgp> | 2014-04-29 16:47:48 (GMT) |
---|---|---|
committer | dgp@users.sourceforge.net <dgp> | 2014-04-29 16:47:48 (GMT) |
commit | b5a40d4328049e2a8cb096cd540a729833d7d0f6 (patch) | |
tree | 9db95a4680256c95cb043d1e64089224e1920afa | |
parent | c58cd129f8e58a43f9c3f85d032642870115e921 (diff) | |
parent | e96d1d40db7b35918b0d6cddf7bcd0381250aee1 (diff) | |
download | tcl-b5a40d4328049e2a8cb096cd540a729833d7d0f6.zip tcl-b5a40d4328049e2a8cb096cd540a729833d7d0f6.tar.gz tcl-b5a40d4328049e2a8cb096cd540a729833d7d0f6.tar.bz2 |
Fix bug exposed when buffer recycling is disabled.
-rw-r--r-- | generic/tclIO.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c index e6439ef..673497b 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -3203,7 +3203,8 @@ Tcl_Close( stickyError = 0; - if ((statePtr->encoding != NULL) && (statePtr->curOutPtr != NULL) + if ((statePtr->encoding != NULL) + && !(statePtr->outputEncodingFlags & TCL_ENCODING_START) && (CheckChannelErrors(statePtr, TCL_WRITABLE) == 0)) { statePtr->outputEncodingFlags |= TCL_ENCODING_END; if (WriteChars(chanPtr, "", 0) < 0) { @@ -7734,7 +7735,8 @@ Tcl_SetChannelOption( * iso2022, the terminated escape sequence must write to the buffer. */ - if ((statePtr->encoding != NULL) && (statePtr->curOutPtr != NULL) + if ((statePtr->encoding != NULL) + && !(statePtr->outputEncodingFlags & TCL_ENCODING_START) && (CheckChannelErrors(statePtr, TCL_WRITABLE) == 0)) { statePtr->outputEncodingFlags |= TCL_ENCODING_END; WriteChars(chanPtr, "", 0); |