diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-05-13 06:40:27 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-05-13 06:40:27 -0700 |
commit | ff68eb2b0cb646a0dc05d4379f5314fb751281a4 (patch) | |
tree | d606795cbf01034e18b2d9fed2a5a8ae8076e15c /lib.c | |
parent | 1f7ff8ca0bc67df530e3aa28e3149ef29efa8f24 (diff) | |
download | txr-ff68eb2b0cb646a0dc05d4379f5314fb751281a4.tar.gz txr-ff68eb2b0cb646a0dc05d4379f5314fb751281a4.tar.bz2 txr-ff68eb2b0cb646a0dc05d4379f5314fb751281a4.zip |
Bugfix in - and / functions.
Improper handling of arguments in certain cases.
Test case: [[flipargs -] 2 1]. Should yield -1;
actual behavior is error.
* lib.c (minusv, divv): Correct test for more
arguments after extracting the leftmost one.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -2816,12 +2816,12 @@ val minusv(val minuend, struct args *nlist) cnum index = 0; val fi; - if (!args_more(nlist, 0)) + if (!args_more(nlist, index)) return neg(minuend); fi = args_get(nlist, &index); - if (!args_more(nlist, 0)) + if (!args_more(nlist, index)) return minus(minuend, fi); return reduce_left(func_n2(minus), args_get_list(nlist), @@ -2838,12 +2838,12 @@ val divv(val dividend, struct args *nlist) cnum index = 0; val fi; - if (!args_more(nlist, 0)) + if (!args_more(nlist, index)) return divi(one, dividend); fi = args_get(nlist, &index); - if (!args_more(nlist, 0)) + if (!args_more(nlist, index)) return divi(dividend, fi); return reduce_left(func_n2(divi), args_get_list(nlist), |