summaryrefslogtreecommitdiff
path: root/Src/builtin.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/builtin.c')
-rw-r--r--Src/builtin.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Src/builtin.c b/Src/builtin.c
index 8ded1c131..299ad3758 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -5472,7 +5472,7 @@ zread(int izle, int *readchar)
/* holds arguments for testlex() */
/**/
-char **testargs;
+char **testargs, **curtestarg;
/* test, [: the old-style general purpose logical expression builtin */
@@ -5483,7 +5483,7 @@ testlex(void)
if (tok == LEXERR)
return;
- tokstr = *testargs;
+ tokstr = *(curtestarg = testargs);
if (!*testargs) {
/* if tok is already zero, reading past the end: error */
tok = tok ? NULLTOK : LEXERR;
@@ -5557,6 +5557,11 @@ bin_test(char *name, char **argv, UNUSED(Options ops), int func)
return 1;
}
+ if (*curtestarg) {
+ zwarnnam(name, "too many arguments");
+ return 1;
+ }
+
/* syntax is OK, so evaluate */
state.prog = prog;