aboutsummaryrefslogtreecommitdiff
path: root/jim-interactive.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2010-01-24 13:46:32 +1000
committerSteve Bennett <steveb@workware.net.au>2010-10-15 11:02:45 +1000
commitee6dbe0a8d66f8f17a5da82e8dad810d88e33bf6 (patch)
tree994b59d11b3199f697adaea8303ae8b5dc438397 /jim-interactive.c
parent541fe7c30691ace08847a35280d9cc8bc02e9a72 (diff)
downloadjimtcl-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.c13
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);