diff options
author | Kim F. Storm <storm@cua.dk> | 2005-06-01 11:42:19 +0000 |
---|---|---|
committer | Kim F. Storm <storm@cua.dk> | 2005-06-01 11:42:19 +0000 |
commit | 859463640aab206bbead70e359e5e480c8b11750 (patch) | |
tree | 1de150b23dad258eefdc8c1e63e9be78053e6d9a /src/fns.c | |
parent | 89fe657e114b167461e54cb1f4d0193514d4a850 (diff) | |
download | emacs-859463640aab206bbead70e359e5e480c8b11750.tar.gz |
(mapcar1): Maybe exit loop if original sequence was modified.
Diffstat (limited to 'src/fns.c')
-rw-r--r-- | src/fns.c | 6 |
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) |