Function: cvs-tags->tree

cvs-tags->tree is a byte-compiled function defined in cvs-status.el.gz.

Signature

(cvs-tags->tree TAGS)

Documentation

Make a tree out of a list of TAGS.

Source Code

;; Defined in /usr/src/emacs/lisp/vc/cvs-status.el.gz
(defun cvs-tags->tree (tags)
  "Make a tree out of a list of TAGS."
  (let ((tags
	 (mapcar
	  (lambda (tag)
	    (let ((tag (cvs-tag-make-tag tag)))
	      (list (if (not (eq (cvs-tag->type tag) 'branch)) tag
		      (list (cvs-tag-make (butlast (cvs-tag->vlist tag)))
			    tag)))))
	  tags)))
    (while (cdr tags)
      (let (tl)
	(while tags
	  (push (cvs-tree-merge (pop tags) (pop tags)) tl))
	(setq tags (nreverse tl))))
    (car tags)))