aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2010-11-19 22:22:24 +1000
committerSteve Bennett <steveb@workware.net.au>2010-11-19 22:22:24 +1000
commit64de34132f32f91e573e8f66d843daf3fd50b16d (patch)
treee38258a3448a684dbd3540e725af0387464a61d9
parent408d9017562e395c06d4555ab0af1c37e9f99172 (diff)
downloadjimtcl-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.c4
-rw-r--r--jimsh.c10
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;
}
diff --git a/jimsh.c b/jimsh.c
index 1f161c4..d00862e 100644
--- a/jimsh.c
+++ b/jimsh.c
@@ -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;