diff options
author | avl <avl> | 2017-07-16 20:55:35 (GMT) |
---|---|---|
committer | avl <avl> | 2017-07-16 20:55:35 (GMT) |
commit | 6894c7fb0f40998e6ca6b250603ed5e6c74e0ec1 (patch) | |
tree | 8d1428775be06d1dfc0c8d10b6d7985bd04d810f | |
parent | dcf0075b187c06e8c88feee09a0dfc33c14a6b88 (diff) | |
download | tcl-6894c7fb0f40998e6ca6b250603ed5e6c74e0ec1.zip tcl-6894c7fb0f40998e6ca6b250603ed5e6c74e0ec1.tar.gz tcl-6894c7fb0f40998e6ca6b250603ed5e6c74e0ec1.tar.bz2 |
fileevent $ch exception ...
-rw-r--r-- | generic/tclIO.c | 6 |
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; |