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