1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-29 07:58:28 +00: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)))
(if (numberp sublist) (equal sublist list) (eq sublist list)))
(defun cl-copy-tree (tree &optional vecp)
"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)
(defalias 'cl-copy-tree 'copy-tree)
;;; Property lists.