Function: vc-dir-deduce-fileset
vc-dir-deduce-fileset is a byte-compiled function defined in
vc-dir.el.gz.
Signature
(vc-dir-deduce-fileset &optional STATE-MODEL-ONLY-FILES)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/vc-dir.el.gz
(defun vc-dir-deduce-fileset (&optional state-model-only-files)
(let ((marked (vc-dir-marked-files))
files
only-files-list
state
model)
(if marked
(progn
(setq files marked)
(when state-model-only-files
(setq only-files-list (vc-dir-marked-only-files-and-states))))
(let ((crt (vc-dir-current-file)))
(setq files (list crt))
(when state-model-only-files
(setq only-files-list (vc-dir-child-files-and-states)))))
(when state-model-only-files
(setq state (cdar only-files-list))
;; Check that all files are in a consistent state, since we use that
;; state to decide which operation to perform.
(dolist (crt (cdr only-files-list))
(unless (vc-compatible-state (cdr crt) state)
(error "When applying VC operations to multiple files, the files are required\nto be in similar VC states.\n%s in state %s clashes with %s in state %s"
(car crt) (cdr crt) (caar only-files-list) state)))
(setq only-files-list (mapcar #'car only-files-list))
(when (and state (not (eq state 'unregistered)))
(setq model (vc-checkout-model vc-dir-backend only-files-list))))
(list vc-dir-backend files only-files-list state model)))