diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-01-24 13:46:32 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:45 +1000 |
commit | ee6dbe0a8d66f8f17a5da82e8dad810d88e33bf6 (patch) | |
tree | 994b59d11b3199f697adaea8303ae8b5dc438397 /jim-interactive.c | |
parent | 541fe7c30691ace08847a35280d9cc8bc02e9a72 (diff) | |
download | jimtcl-ee6dbe0a8d66f8f17a5da82e8dad810d88e33bf6.zip jimtcl-ee6dbe0a8d66f8f17a5da82e8dad810d88e33bf6.tar.gz jimtcl-ee6dbe0a8d66f8f17a5da82e8dad810d88e33bf6.tar.bz2 |
Allow catch to specify what is caught
*: Default to the same as Tcl. Not signal, eval, exit.
*: Use 'catch -exit' to also catch exit.
*: Also map for standard return codes: [info returncodes]
*: Also Jim_ReturnCode()
*: Add Jim_FindByName() for searching in a char* array
*: Fix 'info nameofexectutable' if $::jim_argv0 is not set
Diffstat (limited to 'jim-interactive.c')
-rw-r--r-- | jim-interactive.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/jim-interactive.c b/jim-interactive.c index 9d78c9f..d4272c5 100644 --- a/jim-interactive.c +++ b/jim-interactive.c @@ -13,17 +13,16 @@ int Jim_InteractivePrompt(Jim_Interp *interp) while (1) { char buf[1024]; const char *result; - /* NOTE: These must be kept in the same order as JIM_OK, JIM_ERR, ... */ - const char *retcodestr[] = { - "ok", "error", "return", "break", "continue", "signal", "exit", "eval" - }; int reslen; if (retcode != 0) { - if (retcode >= 1 && retcode < sizeof(retcodestr) / sizeof(*retcodestr)) - printf("[%s] . ", retcodestr[retcode]); - else + const char *retcodestr = Jim_ReturnCode(retcode); + if (*retcodestr == '?') { printf("[%d] . ", retcode); + } + else { + printf("[%s] . ", retcodestr); + } } else printf(". "); fflush(stdout); |