Function: vc-dir-prepare-status-buffer
vc-dir-prepare-status-buffer is a byte-compiled function defined in
vc-dir.el.gz.
Signature
(vc-dir-prepare-status-buffer BNAME DIR BACKEND &optional CREATE-NEW)
Documentation
Find a buffer named BNAME showing DIR, or create a new one.
Source Code
;; Defined in /usr/src/emacs/lisp/vc/vc-dir.el.gz
(defun vc-dir-prepare-status-buffer (bname dir backend &optional create-new)
"Find a buffer named BNAME showing DIR, or create a new one."
(setq dir (file-name-as-directory (expand-file-name dir)))
(let* ;; Look for another buffer name BNAME visiting the same directory.
((buf (save-excursion
(unless create-new
(cl-dolist (buffer vc-dir-buffers)
(when (buffer-live-p buffer)
(set-buffer buffer)
(when (and (derived-mode-p 'vc-dir-mode)
(eq vc-dir-backend backend)
(string= default-directory dir))
(cl-return buffer))))))))
(or buf
;; Create a new buffer named BNAME.
;; We pass a filename to `create-file-buffer' because it is what
;; the function expects, and also what uniquify needs (if active)
(with-current-buffer (create-file-buffer (expand-file-name bname dir))
(setq default-directory dir)
(vc-setup-buffer (current-buffer))
;; Reset the vc-parent-buffer-name so that it does not appear
;; in the mode-line.
(setq vc-parent-buffer-name nil)
(current-buffer)))))