diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | eval.c | 10 |
2 files changed, 14 insertions, 5 deletions
@@ -1,3 +1,12 @@ +2014-06-15 Kaz Kylheku <kaz@kylheku.com> + + Bugfix: range and range* broken when "to" argument is + omitted. This was broken in version 89, by the + 2014-04-08 commit. + + * eval.c (rangev_func, range_star_v_func): Only perform + numeric tests between from and to if to is not nil. + 2014-06-12 Kaz Kylheku <kaz@kylheku.com> * Makefile: Install share/txr/stdlib/*.txr material. @@ -2789,8 +2789,8 @@ static val rangev_func(val env, val lcons) rplaca(lcons, from); - if (numeq(from, to) || - (to && + if (to && + (numeq(from, to) || ((lt(from, to) && gt(next, to)) || (gt(from, to) && lt(next, to))))) { @@ -2823,10 +2823,10 @@ static val range_star_v_func(val env, val lcons) rplaca(lcons, from); - if (numeq(next, to) || - (to && + if (to && + (numeq(next, to) || ((lt(from, to) && gt(next, to)) || - (gt(from, to) && lt(next, to))))) + (gt(from, to) && lt(next, to))))) { rplacd(lcons, nil); return nil; |