Function: vc-cvs-dir-status-heuristic
vc-cvs-dir-status-heuristic is a byte-compiled function defined in
vc-cvs.el.gz.
Signature
(vc-cvs-dir-status-heuristic DIR UPDATE-FUNCTION &optional BASEDIR)
Documentation
Find the CVS state of all files in DIR, using only local information.
Source Code
;; Defined in /usr/src/emacs/lisp/vc/vc-cvs.el.gz
;; Based on vc-cvs-dir-state-heuristic from Emacs 22.
;; FIXME does not mention unregistered files.
(defun vc-cvs-dir-status-heuristic (dir update-function &optional basedir)
"Find the CVS state of all files in DIR, using only local information."
(let (file basename status result dirlist)
(with-temp-buffer
(vc-cvs-get-entries dir)
(goto-char (point-min))
(while (not (eobp))
(if (looking-at "D/\\([^/]*\\)////")
(push (expand-file-name (match-string 1) dir) dirlist)
;; CVS-removed files are not taken under VC control.
(when (looking-at "/\\([^/]*\\)/[^/-]")
(setq basename (match-string 1)
file (expand-file-name basename dir)
status (or (vc-file-getprop file 'vc-state)
(vc-cvs-parse-entry file t)))
(unless (eq status 'up-to-date)
(push (list (if basedir
(file-relative-name file basedir)
basename)
status) result))))
(forward-line 1)))
(dolist (subdir dirlist)
(setq result (append result
(vc-cvs-dir-status-heuristic subdir nil
(or basedir dir)))))
(if basedir result
(funcall update-function result))))