diff options
Diffstat (limited to 'Src/builtin.c')
-rw-r--r-- | Src/builtin.c | 9 |
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; |