Function: image-mode--directory-buffers

image-mode--directory-buffers is a byte-compiled function defined in image-mode.el.gz.

Signature

(image-mode--directory-buffers FILE)

Documentation

Return an alist of type/buffer for all "parent" buffers to image FILE.

This is normally a list of Dired buffers, but can also be archive and tar mode buffers.

Source Code

;; Defined in /usr/src/emacs/lisp/image-mode.el.gz
(defun image-mode--directory-buffers (file)
  "Return an alist of type/buffer for all \"parent\" buffers to image FILE.
This is normally a list of Dired buffers, but can also be archive and
tar mode buffers."
  (let ((buffers nil)
        (dir (file-name-directory file)))
    (cond
     ((and (boundp 'tar-superior-buffer)
	   tar-superior-buffer)
      (when (buffer-live-p tar-superior-buffer)
        (push (cons 'tar tar-superior-buffer) buffers)))
     ((and (boundp 'archive-superior-buffer)
	   archive-superior-buffer)
      (when (buffer-live-p archive-superior-buffer)
        (push (cons 'archive archive-superior-buffer) buffers)))
     (t
      ;; Find a Dired buffer.
      (dolist (buffer (buffer-list))
        (with-current-buffer buffer
          (when (and (derived-mode-p 'dired-mode)
                     (equal (file-truename dir)
                            (file-truename default-directory)))
            (push (cons 'dired (current-buffer)) buffers))))
      ;; If we can't find any buffers to navigate in, we open a Dired
      ;; buffer.
      (unless buffers
        (push (cons 'dired (find-file-noselect dir)) buffers)
        (message "Opened a dired buffer on %s" dir))))
    buffers))