diff options
| author | oehhar <harald.oehlmann@elmicron.de> | 2023-11-20 13:32:47 (GMT) |
|---|---|---|
| committer | oehhar <harald.oehlmann@elmicron.de> | 2023-11-20 13:32:47 (GMT) |
| commit | 88a32b8959860e8891f73548cc49b33749949a8f (patch) | |
| tree | 4430b7baf3d0eb3bd90404e69470d8fb730978de /generic/tclIOCmd.c | |
| parent | ee8ac648cb65c6e491229e0192fa5b7b4b6e3d06 (diff) | |
| parent | c3de06ef3212fee8a8d4b4fed7ec8b2fc2b8273d (diff) | |
| download | tcl-88a32b8959860e8891f73548cc49b33749949a8f.zip tcl-88a32b8959860e8891f73548cc49b33749949a8f.tar.gz tcl-88a32b8959860e8891f73548cc49b33749949a8f.tar.bz2 | |
Merge core-8-branch
Diffstat (limited to 'generic/tclIOCmd.c')
| -rw-r--r-- | generic/tclIOCmd.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/generic/tclIOCmd.c b/generic/tclIOCmd.c index 938fa01..9667419 100644 --- a/generic/tclIOCmd.c +++ b/generic/tclIOCmd.c @@ -459,7 +459,12 @@ Tcl_ReadObjCmd( TclChannelPreserve(chan); charactersRead = Tcl_ReadChars(chan, resultPtr, toRead, 0); if (charactersRead == TCL_IO_FAILURE) { - Tcl_DecrRefCount(resultPtr); + Tcl_Obj *returnOptsPtr = NULL; + if (TclChannelGetBlockingMode(chan)) { + returnOptsPtr = Tcl_NewDictObj(); + Tcl_DictObjPut(NULL, returnOptsPtr, Tcl_NewStringObj("-data", -1), + resultPtr); + } /* * TIP #219. * Capture error messages put by the driver into the bypass area and @@ -473,6 +478,9 @@ Tcl_ReadObjCmd( TclGetString(chanObjPtr), Tcl_PosixError(interp))); } TclChannelRelease(chan); + if (returnOptsPtr) { + Tcl_SetReturnOptions(interp, returnOptsPtr); + } return TCL_ERROR; } |
