From e52a3af6e66ce2ac13a6fcdc006706a34f1411dc Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 13 May 2016 06:40:27 -0700 Subject: 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. --- lib.c | 8 ++++---- 1 file 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), -- cgit v1.2.3