diff options
| author | dgp <dgp@users.sourceforge.net> | 2014-04-29 16:36:39 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2014-04-29 16:36:39 (GMT) |
| commit | 35a41cd0d6b0d145890a13973a3a6875b294115b (patch) | |
| tree | cf2f5e7ecc7d4ff714d94712998b08bcf3840540 | |
| parent | c69e73e1839416633daa84c608f5ae36091275ba (diff) | |
| parent | 9873314d0df039b592ded077acfe2ce71bdfc826 (diff) | |
| download | tcl-35a41cd0d6b0d145890a13973a3a6875b294115b.zip tcl-35a41cd0d6b0d145890a13973a3a6875b294115b.tar.gz tcl-35a41cd0d6b0d145890a13973a3a6875b294115b.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 a60c97d..08d0d93 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -3142,7 +3142,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) { @@ -7330,7 +7331,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); |
