aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2025-07-07 15:43:47 +1000
committerSteve Bennett <steveb@workware.net.au>2025-07-16 09:34:08 +1000
commit6eded62de5941902deb5e276e88a579677abf929 (patch)
tree51f0edaa9b42121880f730e172a333757ec4f26a
parentdc7ef5c159119a1f31c7835b4d9c7f44f3eb33a0 (diff)
downloadjimtcl-6eded62de5941902deb5e276e88a579677abf929.zip
jimtcl-6eded62de5941902deb5e276e88a579677abf929.tar.gz
jimtcl-6eded62de5941902deb5e276e88a579677abf929.tar.bz2
configure --compat should enable expr with multiple args
Not disable it. Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--jim.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/jim.c b/jim.c
index 03f5d64..1454bc4 100644
--- a/jim.c
+++ b/jim.c
@@ -14110,20 +14110,20 @@ static int Jim_UplevelCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *
/* [expr] */
static int Jim_ExprCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
{
- int retcode;
-
- if (argc == 2) {
- retcode = Jim_EvalExpression(interp, argv[1]);
- }
- else {
+#ifdef JIM_COMPAT
+ if (argc > 2) {
+ int retcode;
Jim_Obj *objPtr;
objPtr = Jim_ConcatObj(interp, argc - 1, argv + 1);
Jim_IncrRefCount(objPtr);
retcode = Jim_EvalExpression(interp, objPtr);
Jim_DecrRefCount(interp, objPtr);
+
+ return retcode;
}
- return retcode;
+#endif
+ return Jim_EvalExpression(interp, argv[1]);
}
static int JimBreakContinueHelper(Jim_Interp *interp, int argc, Jim_Obj *const *argv, int retcode)
@@ -16696,7 +16696,7 @@ static const struct jim_core_cmd_def_t {
{"eval", Jim_EvalCoreCommand, 1, -1, "arg ?arg ...?" },
{"exists", Jim_ExistsCoreCommand, 1, 2, "?-command|-proc|-alias|-channel|-var? name" },
{"exit", Jim_ExitCoreCommand, 0, 1, "?exitCode?" },
-#ifndef JIM_COMPAT
+#ifdef JIM_COMPAT
{"expr", Jim_ExprCoreCommand, 1, -1, "expression ?...?" },
#else
{"expr", Jim_ExprCoreCommand, 1, 1, "expression" },