diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2002-12-18 18:07:49 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2002-12-18 18:07:49 +0000 |
commit | 99c9b50bb491e8e19774458e82bc9540f6d223f2 (patch) | |
tree | a24d5f8222316112e99d847820477c059c404e60 | |
parent | 9a8dfbb7b5ac843c7ae8dd12339911c0ea8103fb (diff) | |
download | zsh-99c9b50bb491e8e19774458e82bc9540f6d223f2.tar.gz zsh-99c9b50bb491e8e19774458e82bc9540f6d223f2.tar.xz zsh-99c9b50bb491e8e19774458e82bc9540f6d223f2.zip |
18015: empty math parse acts like zero
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | Src/math.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 315ecbc72..5e35f1d89 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2002-12-18 Peter Stephenson <pws@csr.com> + * 18015: Src/math.c: empty math parse e.g. $(( )) acts like a zero. + * 18013: Src/builtin.c, Src/exec.c: let and (( ... )) should return zero status on floating point only if the value compares equal to 0 as a floating point number. diff --git a/Src/math.c b/Src/math.c index 766dff679..bc0669b7e 100644 --- a/Src/math.c +++ b/Src/math.c @@ -961,7 +961,7 @@ mathevall(char *s, int prek, char **ep) stack[0].val.u.l = 0; mathparse(prek); *ep = ptr; - DPUTS(!errflag && sp, + DPUTS(!errflag && sp > 0, "BUG: math: wallabies roaming too freely in outback"); if (errflag) { @@ -1084,6 +1084,9 @@ mathparse(int pc) if (errflag) return; mtok = zzlex(); + /* Handle empty input */ + if (pc == TOPPREC && mtok == EOI) + return; checkunary(mtok, optr); while (prec[mtok] <= pc) { if (errflag) |