diff options
Diffstat (limited to 'jim-eventloop.c')
-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 */ |