Subject: bug#27243: closed (Re: bug#27243: dired-auto-revert-buffer jumps point to beginning of buffer)

From: Stephen Berman <[email-masked]>
Date: Sat, 17 Jun 2017 15:32:38 +0200

On Sat, 17 Jun 2017 14:16:01 +0200 Antoine Levitt <[email-masked]> wrote:

> I just noticed this is not yet completely fixed: starting from emacs -Q,
> (setq dired-auto-revert-buffer t), open dired, open any file in that
> directory, C-x d RET to run dired again, the point jumps back to the
> beginning of the buffer.

I suppose the command `dired' should not use switch-to-buffer.  With the
following patch, executing the above recipe does not move point.

diff --git a/lisp/dired.el b/lisp/dired.el
index 8396652d50..aa59f01af9 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -786,7 +786,8 @@ dired
 If DIRNAME is already in a Dired buffer, that buffer is used without refresh."
   ;; Cannot use (interactive "D") because of wildcards.
   (interactive (dired-read-dir-and-switches ""))
-  (switch-to-buffer (dired-noselect dirname switches)))
+  (set-window-buffer (selected-window)
+                     (set-buffer (dired-noselect dirname switches))))
 
 ;;;###autoload (define-key ctl-x-4-map "d" 'dired-other-window)
 ;;;###autoload

Steve Berman