aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/dired.el21
1 files changed, 15 insertions, 6 deletions
diff --git a/lisp/dired.el b/lisp/dired.el
index c7cd894c1e1..e042bf6fc54 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -33,6 +33,8 @@
33 33
34;;; Code: 34;;; Code:
35 35
36(eval-when-compile (require 'dired-aux))
37
36;;; Customizable variables 38;;; Customizable variables
37 39
38(defgroup dired nil 40(defgroup dired nil
@@ -561,6 +563,12 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh."
561 (set-buffer old-buf) 563 (set-buffer old-buf)
562 buffer)) 564 buffer))
563 565
566(defvar dired-buffers nil
567 ;; Enlarged by dired-advertise
568 ;; Queried by function dired-buffers-for-dir. When this detects a
569 ;; killed buffer, it is removed from this list.
570 "Alist of expanded directories and their associated dired buffers.")
571
564(defun dired-find-buffer-nocreate (dirname &optional mode) 572(defun dired-find-buffer-nocreate (dirname &optional mode)
565 ;; This differs from dired-buffers-for-dir in that it does not consider 573 ;; This differs from dired-buffers-for-dir in that it does not consider
566 ;; subdirs of default-directory and searches for the first match only. 574 ;; subdirs of default-directory and searches for the first match only.
@@ -917,6 +925,7 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh."
917 (define-key map "*\C-p" 'dired-prev-marked-file) 925 (define-key map "*\C-p" 'dired-prev-marked-file)
918 (define-key map "*t" 'dired-do-toggle) 926 (define-key map "*t" 'dired-do-toggle)
919 ;; Lower keys for commands not operating on all the marked files 927 ;; Lower keys for commands not operating on all the marked files
928 (define-key map "a" 'dired-find-alternate-file)
920 (define-key map "d" 'dired-flag-file-deletion) 929 (define-key map "d" 'dired-flag-file-deletion)
921 (define-key map "e" 'dired-find-file) 930 (define-key map "e" 'dired-find-file)
922 (define-key map "f" 'dired-find-file) 931 (define-key map "f" 'dired-find-file)
@@ -1343,6 +1352,12 @@ Creates a buffer if necessary."
1343 (error "File is a symlink to a nonexistent target") 1352 (error "File is a symlink to a nonexistent target")
1344 (error "File no longer exists; type `g' to update Dired buffer"))))) 1353 (error "File no longer exists; type `g' to update Dired buffer")))))
1345 1354
1355(defun dired-find-alternate-file ()
1356 "In dired, visit this file or directory instead of the dired buffer."
1357 (interactive)
1358 (set-buffer-modified-p nil)
1359 (find-alternate-file (dired-get-filename)))
1360
1346(defun dired-mouse-find-file-other-window (event) 1361(defun dired-mouse-find-file-other-window (event)
1347 "In dired, visit the file or directory name you click on." 1362 "In dired, visit the file or directory name you click on."
1348 (interactive "e") 1363 (interactive "e")
@@ -1585,12 +1600,6 @@ regardless of the language.")
1585 1600
1586;; Keeping Dired buffers in sync with the filesystem and with each other 1601;; Keeping Dired buffers in sync with the filesystem and with each other
1587 1602
1588(defvar dired-buffers nil
1589 ;; Enlarged by dired-advertise
1590 ;; Queried by function dired-buffers-for-dir. When this detects a
1591 ;; killed buffer, it is removed from this list.
1592 "Alist of expanded directories and their associated dired buffers.")
1593
1594(defun dired-buffers-for-dir (dir &optional file) 1603(defun dired-buffers-for-dir (dir &optional file)
1595;; Return a list of buffers that dired DIR (top level or in-situ subdir). 1604;; Return a list of buffers that dired DIR (top level or in-situ subdir).
1596;; If FILE is non-nil, include only those whose wildcard pattern (if any) 1605;; If FILE is non-nil, include only those whose wildcard pattern (if any)