summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-05-13 06:40:27 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-05-13 06:40:27 -0700
commitff68eb2b0cb646a0dc05d4379f5314fb751281a4 (patch)
treed606795cbf01034e18b2d9fed2a5a8ae8076e15c /lib.c
parent1f7ff8ca0bc67df530e3aa28e3149ef29efa8f24 (diff)
downloadtxr-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.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib.c b/lib.c
index c5d0b27e..abcce6ba 100644
--- a/lib.c
+++ b/lib.c
@@ -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),