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))))))