1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-25 23:10:47 -08:00

(cl-copy-tree): Moved to `copy-tree' in subr.el. Add a defalias with

the old name.
This commit is contained in:
Colin Walters 2002-06-08 22:32:06 +00:00
parent a7ed3f6a4e
commit 7f050de0b3

View file

@ -565,24 +565,7 @@ If START or END is negative, it counts from the end."
(setq list (cdr list))) (setq list (cdr list)))
(if (numberp sublist) (equal sublist list) (eq sublist list))) (if (numberp sublist) (equal sublist list) (eq sublist list)))
(defun cl-copy-tree (tree &optional vecp) (defalias 'cl-copy-tree 'copy-tree)
"Make a copy of TREE.
If TREE is a cons cell, this recursively copies both its car and its cdr.
Contrast to copy-sequence, which copies only along the cdrs. With second
argument VECP, this copies vectors as well as conses."
(if (consp tree)
(let ((p (setq tree (copy-list tree))))
(while (consp p)
(if (or (consp (car p)) (and vecp (vectorp (car p))))
(setcar p (cl-copy-tree (car p) vecp)))
(or (listp (cdr p)) (setcdr p (cl-copy-tree (cdr p) vecp)))
(cl-pop p)))
(if (and vecp (vectorp tree))
(let ((i (length (setq tree (copy-sequence tree)))))
(while (>= (setq i (1- i)) 0)
(aset tree i (cl-copy-tree (aref tree i) vecp))))))
tree)
(defalias 'copy-tree 'cl-copy-tree)
;;; Property lists. ;;; Property lists.