summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravl <avl>2017-07-16 20:55:35 (GMT)
committeravl <avl>2017-07-16 20:55:35 (GMT)
commit6894c7fb0f40998e6ca6b250603ed5e6c74e0ec1 (patch)
tree8d1428775be06d1dfc0c8d10b6d7985bd04d810f
parentdcf0075b187c06e8c88feee09a0dfc33c14a6b88 (diff)
downloadtcl-6894c7fb0f40998e6ca6b250603ed5e6c74e0ec1.zip
tcl-6894c7fb0f40998e6ca6b250603ed5e6c74e0ec1.tar.gz
tcl-6894c7fb0f40998e6ca6b250603ed5e6c74e0ec1.tar.bz2
fileevent $ch exception ...
-rw-r--r--generic/tclIO.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 1460392..61f586a 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -8921,8 +8921,8 @@ Tcl_FileEventObjCmd(
const char *chanName;
int modeIndex; /* Index of mode argument. */
int mask;
- static const char *const modeOptions[] = {"readable", "writable", NULL};
- static const int maskArray[] = {TCL_READABLE, TCL_WRITABLE};
+ static const char *const modeOptions[] = {"readable", "writable", "exception", NULL};
+ static const int maskArray[] = {TCL_READABLE, TCL_WRITABLE, TCL_EXCEPTION };
if ((objc != 3) && (objc != 4)) {
Tcl_WrongNumArgs(interp, 1, objv, "channelId event ?script?");
@@ -8941,7 +8941,7 @@ Tcl_FileEventObjCmd(
}
chanPtr = (Channel *) chan;
statePtr = chanPtr->state;
- if ((statePtr->flags & mask) == 0) {
+ if ( ((statePtr->flags | TCL_EXCEPTION) & mask) == 0) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf("channel is not %s",
(mask == TCL_READABLE) ? "readable" : "writable"));
return TCL_ERROR;