aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--jim.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index b9edd38..56a8ba1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
2009-08-16 Steve Bennett <steveb@workware.net.au>
+ * jim.c: Some recursion in unknown is OK, just not infinite recursion.
* jimsh.c: $argv0 should be the name of the script
* jim.c: Should be able to compare strings for order in expr
* jim.c: 'unset ::var' to unset a global var.
diff --git a/jim.c b/jim.c
index a1c1f63..06db29f 100644
--- a/jim.c
+++ b/jim.c
@@ -8348,10 +8348,10 @@ static int JimUnknown(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
Jim_Obj **v, *sv[JIM_EVAL_SARGV_LEN];
int retCode;
- /* If JimUnknown() is recursively called (e.g. error in the unknown proc,
+ /* If JimUnknown() is recursively called too many times...
* done here
*/
- if (interp->unknown_called) {
+ if (interp->unknown_called > 50) {
return JIM_ERR;
}