diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-11-19 22:22:24 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-11-19 22:22:24 +1000 |
commit | 64de34132f32f91e573e8f66d843daf3fd50b16d (patch) | |
tree | e38258a3448a684dbd3540e725af0387464a61d9 | |
parent | 408d9017562e395c06d4555ab0af1c37e9f99172 (diff) | |
download | jimtcl-64de34132f32f91e573e8f66d843daf3fd50b16d.zip jimtcl-64de34132f32f91e573e8f66d843daf3fd50b16d.tar.gz jimtcl-64de34132f32f91e573e8f66d843daf3fd50b16d.tar.bz2 |
Allow Jim_InteractivePrompt() to return [exit] to caller
And update jimsh return code handling
Reported-By: Patrick WEBER <patrick.weber@live.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r-- | jim-interactive.c | 4 | ||||
-rw-r--r-- | jimsh.c | 10 |
2 files changed, 7 insertions, 7 deletions
diff --git a/jim-interactive.c b/jim-interactive.c index ca65941..6af5f76 100644 --- a/jim-interactive.c +++ b/jim-interactive.c @@ -117,7 +117,7 @@ int Jim_InteractivePrompt(Jim_Interp *interp) if (retcode == JIM_EXIT) { Jim_Free(history_file); - exit(Jim_GetExitCode(interp)); + return JIM_EXIT; } if (retcode == JIM_ERR) { Jim_MakeErrorMessage(interp); @@ -129,5 +129,5 @@ int Jim_InteractivePrompt(Jim_Interp *interp) } out: Jim_Free(history_file); - return 0; + return JIM_OK; } @@ -108,14 +108,14 @@ int main(int argc, char *const argv[]) fprintf(stderr, "%s\n", Jim_GetString(Jim_GetResult(interp), NULL)); } } - if (retcode == JIM_OK) { - retcode = 0; + if (retcode == JIM_EXIT) { + retcode = Jim_GetExitCode(interp); } - else if (retcode == JIM_EXIT) { - retcode = interp->exitCode; + else if (retcode == JIM_ERR) { + retcode = 1; } else { - retcode = 1; + retcode = 0; } Jim_FreeInterp(interp); return retcode; |