From: Tino Calancha Date: Fri, 21 Jul 2017 04:32:48 +0000 (+0900) Subject: dired: Revert buffer when DIRNAME is a cons X-Git-Tag: emacs-26.0.90~518^2~42 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1d559e384b467b3f74e8b78695f124b561c884d9;p=emacs.git dired: Revert buffer when DIRNAME is a cons * lisp/dired.el (dired-internal-noselect): Revert buffer if DIR-OR-LIST is a cons, or dired-directory is a cons and DIR-OR-LIST a string (Bug#7131). Update the comments. * test/lisp/dired-tests.el (dired-test-bug7131): Test should pass. --- diff --git a/lisp/dired.el b/lisp/dired.el index 4fb4fe78f89..9d500a9f52d 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -872,13 +872,15 @@ periodically reverts at specified time intervals." :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). + ;; If DIR-OR-LIST is a string and there is an existing dired buffer + ;; for it, just leave buffer as it is (don't even call dired-revert). ;; This saves time especially for deep trees or with ange-ftp. ;; The user can type `g' easily, and it is more consistent with find-file. ;; But if SWITCHES are given they are probably different from the ;; buffer's old value, so call dired-sort-other, which does ;; revert the buffer. + ;; Revert the buffer if DIR-OR-LIST is a cons or `dired-directory' + ;; is a cons and DIR-OR-LIST is a string. ;; A pity we can't possibly do "Directory has changed - refresh? " ;; like find-file does. ;; Optional argument MODE is passed to dired-find-buffer-nocreate, @@ -898,6 +900,11 @@ periodically reverts at specified time intervals." (setq dired-directory dir-or-list) ;; this calls dired-revert (dired-sort-other switches)) + ;; Always revert when `dir-or-list' is a cons. Also revert + ;; if `dired-directory' is a cons but `dir-or-list' is not. + ((or (consp dir-or-list) (consp dired-directory)) + (setq dired-directory dir-or-list) + (revert-buffer)) ;; Always revert regardless of whether it has changed or not. ((eq dired-auto-revert-buffer t) (revert-buffer)) diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el index 791ba07fb67..bd1816172e7 100644 --- a/test/lisp/dired-tests.el +++ b/test/lisp/dired-tests.el @@ -131,7 +131,6 @@ (ert-deftest dired-test-bug7131 () "Test for http://debbugs.gnu.org/7131 ." - :expected-result :failed (let* ((dir (expand-file-name "lisp" source-directory)) (buf (dired dir))) (unwind-protect