diff options
author | Steve Bennett <steveb@workware.net.au> | 2017-09-14 17:36:10 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2017-09-15 12:11:00 +1000 |
commit | e9a9ce8c9eb521f5f0d959996f1378721c586fc7 (patch) | |
tree | 520a874f6c55532a5d1e7439f0a574a0bd896876 | |
parent | 68df14c54972c633a7c90484145c744bc277a35a (diff) | |
download | jimtcl-e9a9ce8c9eb521f5f0d959996f1378721c586fc7.zip jimtcl-e9a9ce8c9eb521f5f0d959996f1378721c586fc7.tar.gz jimtcl-e9a9ce8c9eb521f5f0d959996f1378721c586fc7.tar.bz2 |
eventloop: return from callback is not an error
Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r-- | jim-eventloop.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/jim-eventloop.c b/jim-eventloop.c index 09e946a..1b1de47 100644 --- a/jim-eventloop.c +++ b/jim-eventloop.c @@ -119,7 +119,7 @@ int Jim_EvalObjBackground(Jim_Interp *interp, Jim_Obj *scriptObjPtr) retval = Jim_EvalObj(interp, scriptObjPtr); interp->framePtr = savedFramePtr; /* Try to report the error (if any) via the bgerror proc */ - if (retval != JIM_OK && !eventLoop->suppress_bgerror) { + if (retval != JIM_OK && retval != JIM_RETURN && !eventLoop->suppress_bgerror) { Jim_Obj *objv[2]; int rc = JIM_ERR; @@ -433,7 +433,8 @@ int Jim_ProcessEvents(Jim_Interp *interp, int flags) mask |= JIM_EVENT_EXCEPTION; if (mask) { - if (fe->fileProc(interp, fe->clientData, mask) != JIM_OK) { + int ret = fe->fileProc(interp, fe->clientData, mask); + if (ret != JIM_OK && ret != JIM_RETURN) { /* Remove the element on handler error */ Jim_DeleteFileHandler(interp, fd, mask); /* At this point fe is no longer valid - it will be assigned below */ |