summaryrefslogtreecommitdiff
path: root/src/fns.c
diff options
context:
space:
mode:
authorKim F. Storm <storm@cua.dk>2005-06-01 11:42:19 +0000
committerKim F. Storm <storm@cua.dk>2005-06-01 11:42:19 +0000
commit859463640aab206bbead70e359e5e480c8b11750 (patch)
tree1de150b23dad258eefdc8c1e63e9be78053e6d9a /src/fns.c
parent89fe657e114b167461e54cb1f4d0193514d4a850 (diff)
downloademacs-859463640aab206bbead70e359e5e480c8b11750.tar.gz
(mapcar1): Maybe exit loop if original sequence was modified.
Diffstat (limited to 'src/fns.c')
-rw-r--r--src/fns.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/fns.c b/src/fns.c
index bd3893f7538..e910c87375b 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -3132,9 +3132,9 @@ mapcar1 (leni, vals, fn, seq)
else /* Must be a list, since Flength did not get an error */
{
tail = seq;
- for (i = 0; i < leni; i++)
+ for (i = 0; i < leni && CONSP (tail); i++)
{
- dummy = call1 (fn, Fcar (tail));
+ dummy = call1 (fn, XCAR (tail));
if (vals)
vals[i] = dummy;
tail = XCDR (tail);
@@ -3172,7 +3172,7 @@ SEQUENCE may be a list, a vector, a bool-vector, or a string. */)
mapcar1 (leni, args, function, sequence);
UNGCPRO;
- for (i = leni - 1; i >= 0; i--)
+ for (i = leni - 1; i > 0; i--)
args[i + i] = args[i];
for (i = 1; i < nargs; i += 2)