Function: vc-ensure-vc-buffer

vc-ensure-vc-buffer is a byte-compiled function defined in vc.el.gz.

Signature

(vc-ensure-vc-buffer)

Documentation

Make sure that the current buffer visits a version-controlled file.

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc.el.gz
;; This function should possibly honor `vc-buffer-overriding-fileset'
;; when the fileset consists of a single file, but only if that file is
;; part of the current working revision, i.e., actually on disk now.
(defun vc-ensure-vc-buffer ()
  "Make sure that the current buffer visits a version-controlled file."
  (cond
   ((derived-mode-p 'vc-dir-mode)
    (set-buffer (find-file-noselect (vc-dir-current-file))))
   ((derived-mode-p 'dired-mode)
    (set-buffer (find-file-noselect (dired-get-filename))))
   (t
    (while (and vc-parent-buffer
                (buffer-live-p vc-parent-buffer)
		;; Avoid infinite looping when vc-parent-buffer and
		;; current buffer are the same buffer.
                (not (eq vc-parent-buffer (current-buffer))))
      (set-buffer vc-parent-buffer))))
  (if (not buffer-file-name)
      (error "Buffer %s is not associated with a file" (buffer-name))
    (unless (vc-backend buffer-file-name)
      (error "File %s is not under version control" buffer-file-name))))