summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-06-23 18:56:17 +0000
committerRichard M. Stallman <rms@gnu.org>1997-06-23 18:56:17 +0000
commit9d14ae763f967c44dfc99ffc4a86ed88cf6f2c48 (patch)
tree27c083e3e0095f5878098a67ed472f59778ee21c
parent7d66892d3d6c01f5c67471d04b823a7869882257 (diff)
downloademacs-9d14ae763f967c44dfc99ffc4a86ed88cf6f2c48.tar.gz
(Freverse): Simplify.
-rw-r--r--src/fns.c16
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 ();