Function: vc-deduce-fileset-1

vc-deduce-fileset-1 is a byte-compiled function defined in vc.el.gz.

Signature

(vc-deduce-fileset-1 NOT-STATE-CHANGING ALLOW-UNREGISTERED STATE-MODEL-ONLY-FILES)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc.el.gz
(defun vc-deduce-fileset-1 (not-state-changing
                            allow-unregistered
                            state-model-only-files)
  (let (backend)
    (cond
     ((derived-mode-p 'vc-dir-mode)
      (vc-dir-deduce-fileset state-model-only-files))
     ((derived-mode-p 'dired-mode)
      (dired-vc-deduce-fileset state-model-only-files not-state-changing))
     ((setq backend (vc-backend buffer-file-name))
      (if state-model-only-files
	(list backend (list buffer-file-name)
	      (list buffer-file-name)
	      (vc-state buffer-file-name)
	      (vc-checkout-model backend buffer-file-name))
	(list backend (list buffer-file-name))))
     ((and (buffer-live-p vc-parent-buffer)
           ;; FIXME: Why this test?  --Stef
           (or (buffer-file-name vc-parent-buffer)
				(with-current-buffer vc-parent-buffer
				  (or (derived-mode-p 'vc-dir-mode)
				      (derived-mode-p 'dired-mode)))))
      (progn                  ;FIXME: Why not `with-current-buffer'? --Stef.
	(set-buffer vc-parent-buffer)
	(vc-deduce-fileset-1 not-state-changing allow-unregistered state-model-only-files)))
     ((and (not buffer-file-name)
	   (setq backend (vc-responsible-backend default-directory)))
      (list backend nil))
     ((and allow-unregistered (not (vc-registered buffer-file-name)))
      (if state-model-only-files
	  (list (vc-backend-for-registration (buffer-file-name))
		(list buffer-file-name)
		(list buffer-file-name)
		(when state-model-only-files 'unregistered)
		nil)
	(list (vc-backend-for-registration (buffer-file-name))
	      (list buffer-file-name))))
     (t (error "File is not under version control")))))