Mercurial > emacs
changeset 106410:c1162f7a37aa
(dired-auto-revert-buffer): New defcustom.
(dired-internal-noselect): Use it.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Fri, 04 Dec 2009 21:45:29 +0000 |
parents | 87bc434475d4 |
children | a8fa237ee1fa |
files | etc/NEWS lisp/ChangeLog lisp/dired.el |
diffstat | 3 files changed, 36 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/etc/NEWS Fri Dec 04 21:43:07 2009 +0000 +++ b/etc/NEWS Fri Dec 04 21:45:29 2009 +0000 @@ -201,6 +201,11 @@ exempt buffers that do correspond to files, customize the value of `desktop-files-not-to-save' instead. +** Dired + +*** The new variable `dired-auto-revert-buffer' allows to revert +dired buffers automatically on revisiting. + ** DocView *** When `doc-view-continuous' is non-nil, scrolling a line
--- a/lisp/ChangeLog Fri Dec 04 21:43:07 2009 +0000 +++ b/lisp/ChangeLog Fri Dec 04 21:45:29 2009 +0000 @@ -1,3 +1,8 @@ +2009-12-04 Juri Linkov <juri@jurta.org> + + * dired.el (dired-auto-revert-buffer): New defcustom. + (dired-internal-noselect): Use it. + 2009-12-04 Juri Linkov <juri@jurta.org> Change roles of modes and functions in image-mode.el (Bug#5062).
--- a/lisp/dired.el Fri Dec 04 21:43:07 2009 +0000 +++ b/lisp/dired.el Fri Dec 04 21:45:29 2009 +0000 @@ -752,6 +752,24 @@ buffer-read-only (dired-directory-changed-p dirname)))) +;;;###autoload +(defcustom dired-auto-revert-buffer nil + "Automatically revert dired buffer on revisiting. +If t, revisiting an existing dired buffer automatically reverts it. +If its value is a function, call this function with the directory +name as single argument and revert the buffer if it returns non-nil. +Otherwise, a message offering to revert the changed dired buffer +is displayed. +Note that this is not the same as `auto-revert-mode' that +periodically reverts at specified time intervals." + :type '(choice + (const :tag "Don't revert" nil) + (const :tag "Always revert visited dired buffer" t) + (const :tag "Revert changed dired buffer" dired-directory-changed-p) + (function :tag "Predicate function")) + :group 'dired + :version "23.2") + (defun dired-internal-noselect (dir-or-list &optional switches mode) ;; If there is an existing dired buffer for DIRNAME, just leave ;; buffer as it is (don't even call dired-revert). @@ -779,6 +797,14 @@ (setq dired-directory dir-or-list) ;; this calls dired-revert (dired-sort-other switches)) + ;; Always revert regardless of whether it has changed or not. + ((eq dired-auto-revert-buffer t) + (revert-buffer)) + ;; Revert when predicate function returns non-nil. + ((functionp dired-auto-revert-buffer) + (when (funcall dired-auto-revert-buffer dirname) + (revert-buffer) + (message "Changed directory automatically updated"))) ;; If directory has changed on disk, offer to revert. ((when (dired-directory-changed-p dirname) (message "%s"