Function: vc-registered

vc-registered is a byte-compiled function defined in vc-hooks.el.gz.

Signature

(vc-registered FILE)

Documentation

Return non-nil if FILE is registered in a version control system.

This function performs the check each time it is called. To rely on the result of a previous call, use vc-backend instead. If the file was previously registered under a certain backend, then that backend is tried first.

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc-hooks.el.gz
;; Access functions to file properties
;; (Properties should be _set_ using vc-file-setprop, but
;; _retrieved_ only through these functions, which decide
;; if the property is already known or not.  A property should
;; only be retrieved by vc-file-getprop if there is no
;; access function.)

;; properties indicating the backend being used for FILE

(defun vc-registered (file)
  "Return non-nil if FILE is registered in a version control system.

This function performs the check each time it is called.  To rely
on the result of a previous call, use `vc-backend' instead.  If the
file was previously registered under a certain backend, then that
backend is tried first."
  ;; Subprocesses (and with them, VC backends) can't run from /contents
  ;; or /actions, which are fictions maintained by Emacs that do not
  ;; exist in the filesystem.
  (if (and (eq system-type 'android)
           (string-match-p "/\\(content\\|assets\\)[/$]"
                           (expand-file-name file)))
      nil
    (let (handler)
      (cond
       ((and (file-name-directory file)
             (string-match vc-ignore-dir-regexp (file-name-directory file)))
        nil)
       ((setq handler (find-file-name-handler file 'vc-registered))
        ;; handler should set vc-backend and return t if registered
        (funcall handler 'vc-registered file))
       (t
        ;; There is no file name handler.
        ;; Try vc-BACKEND-registered for each handled BACKEND.
        (catch 'found
	  (let ((backend (vc-file-getprop file 'vc-backend)))
	    (mapc
	     (lambda (b)
	       (and (vc-call-backend b 'registered file)
		    (vc-file-setprop file 'vc-backend b)
		    (throw 'found t)))
	     (if (or (not backend) (eq backend 'none))
                 vc-handled-backends
	       (cons backend vc-handled-backends))))
          ;; File is not registered.
          (vc-file-setprop file 'vc-backend 'none)
          nil))))))