From 6b25a2f544161b04915807a873af060fcb6bdc49 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 10 Jun 2002 09:00:52 +0000 Subject: [PATCH] (copy-list): Moved back from subr.el. --- lisp/emacs-lisp/cl.el | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index def4d24188c..c5d3ef0832e 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el @@ -514,6 +514,15 @@ Thus, `(list* A B C D)' is equivalent to `(nconc (list A B C) D)', or to (push (pop list) res)) (nreverse res))) +(defun copy-list (list) + "Return a copy of a list, which may be a dotted list. +The elements of the list are not copied, just the list structure itself." + (if (consp list) + (let ((res nil)) + (while (consp list) (push (pop list) res)) + (prog1 (nreverse res) (setcdr res list))) + (car list))) + (defun cl-maclisp-member (item list) (while (and list (not (equal item (car list)))) (setq list (cdr list))) list) -- 2.39.2