]> git.eshelyaron.com Git - emacs.git/commitdiff
dired: Revert buffer when DIRNAME is a cons
authorTino Calancha <tino.calancha@gmail.com>
Fri, 21 Jul 2017 04:32:48 +0000 (13:32 +0900)
committerTino Calancha <tino.calancha@gmail.com>
Fri, 21 Jul 2017 04:32:48 +0000 (13:32 +0900)
* 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.

lisp/dired.el
test/lisp/dired-tests.el

index 4fb4fe78f8991a3364cdc612d700b64c71bc2490..9d500a9f52d36535250aa2a6092ef38af57f4c43 100644 (file)
@@ -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))
index 791ba07fb6713deec71ec2d204abc30c3f0027d9..bd1816172e74af5f180e3f2d9106270a90723bb4 100644 (file)
 
 (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