diff options
| author | Kim F. Storm | 2005-06-01 11:42:19 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2005-06-01 11:42:19 +0000 |
| commit | 859463640aab206bbead70e359e5e480c8b11750 (patch) | |
| tree | 1de150b23dad258eefdc8c1e63e9be78053e6d9a /src | |
| parent | 89fe657e114b167461e54cb1f4d0193514d4a850 (diff) | |
| download | emacs-859463640aab206bbead70e359e5e480c8b11750.tar.gz emacs-859463640aab206bbead70e359e5e480c8b11750.zip | |
(mapcar1): Maybe exit loop if original sequence was modified.
Diffstat (limited to 'src')
| -rw-r--r-- | src/fns.c | 6 |
1 files changed, 3 insertions, 3 deletions
| @@ -3132,9 +3132,9 @@ mapcar1 (leni, vals, fn, seq) | |||
| 3132 | else /* Must be a list, since Flength did not get an error */ | 3132 | else /* Must be a list, since Flength did not get an error */ |
| 3133 | { | 3133 | { |
| 3134 | tail = seq; | 3134 | tail = seq; |
| 3135 | for (i = 0; i < leni; i++) | 3135 | for (i = 0; i < leni && CONSP (tail); i++) |
| 3136 | { | 3136 | { |
| 3137 | dummy = call1 (fn, Fcar (tail)); | 3137 | dummy = call1 (fn, XCAR (tail)); |
| 3138 | if (vals) | 3138 | if (vals) |
| 3139 | vals[i] = dummy; | 3139 | vals[i] = dummy; |
| 3140 | tail = XCDR (tail); | 3140 | tail = XCDR (tail); |
| @@ -3172,7 +3172,7 @@ SEQUENCE may be a list, a vector, a bool-vector, or a string. */) | |||
| 3172 | mapcar1 (leni, args, function, sequence); | 3172 | mapcar1 (leni, args, function, sequence); |
| 3173 | UNGCPRO; | 3173 | UNGCPRO; |
| 3174 | 3174 | ||
| 3175 | for (i = leni - 1; i >= 0; i--) | 3175 | for (i = leni - 1; i > 0; i--) |
| 3176 | args[i + i] = args[i]; | 3176 | args[i + i] = args[i]; |
| 3177 | 3177 | ||
| 3178 | for (i = 1; i < nargs; i += 2) | 3178 | for (i = 1; i < nargs; i += 2) |