diff options
| author | Richard M. Stallman <rms@gnu.org> | 1997-06-23 18:56:17 +0000 |
|---|---|---|
| committer | Richard M. Stallman <rms@gnu.org> | 1997-06-23 18:56:17 +0000 |
| commit | 9d14ae763f967c44dfc99ffc4a86ed88cf6f2c48 (patch) | |
| tree | 27c083e3e0095f5878098a67ed472f59778ee21c | |
| parent | 7d66892d3d6c01f5c67471d04b823a7869882257 (diff) | |
| download | emacs-9d14ae763f967c44dfc99ffc4a86ed88cf6f2c48.tar.gz | |
(Freverse): Simplify.
| -rw-r--r-- | src/fns.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/fns.c b/src/fns.c index d8f51afbde0..9e8a15d5578 100644 --- a/src/fns.c +++ b/src/fns.c @@ -882,17 +882,13 @@ See also the function `nreverse', which is used more often.") (list) Lisp_Object list; { - Lisp_Object length; - register Lisp_Object *vec; - register Lisp_Object tail; - register int i; - - length = Flength (list); - vec = (Lisp_Object *) alloca (XINT (length) * sizeof (Lisp_Object)); - for (i = XINT (length) - 1, tail = list; i >= 0; i--, tail = Fcdr (tail)) - vec[i] = Fcar (tail); + Lisp_Object new; - return Flist (XINT (length), vec); + for (new = Qnil; CONSP (list); list = XCONS (list)->cdr) + new = Fcons (XCONS (list)->car, new); + if (!NILP (list)) + wrong_type_argument (Qconsp, list); + return new; } Lisp_Object merge (); |
