From e25ae2d57a7b7a5252d9a13441d963b7dd2b8c1a Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 29 Jul 2014 07:20:44 -0700 Subject: * lib.c (reduce_left, reduce_right): Nullify incoming sequence argument so empty vectors and strings can be processed. --- ChangeLog | 5 +++++ lib.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index a5036e15..2e3a0e50 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-07-29 Kaz Kylheku + + * lib.c (reduce_left, reduce_right): Nullify incoming sequence + argument so empty vectors and strings can be processed. + 2014-07-29 Kaz Kylheku * eval.c (giterate_func, giterate): Adjusting semantics of giterate to diff --git a/lib.c b/lib.c index 863be13b..2b209b77 100644 --- a/lib.c +++ b/lib.c @@ -3983,6 +3983,8 @@ val reduce_left(val fun, val list, val init, val key) if (null_or_missing_p(key)) key = identity_f; + list = nullify(list); + if (missingp(init)) { if (list) init = pop(&list); @@ -4001,6 +4003,8 @@ val reduce_right(val fun, val list, val init, val key) if (null_or_missing_p(key)) key = identity_f; + list = nullify(list); + if (list) { if (missingp(init)) { if (!rest(list)) -- cgit v1.2.3