Fix 'dired-goto-file' in Dired buffers produced by find-dired

* lisp/dired.el (dired-goto-file): Try looking for the file as a
relative name with leading sub-directories, before looking for the
basename alone.  (Bug#23089)
This commit is contained in:
Eli Zaretskii 2016-03-25 17:18:21 +03:00
parent 3a13472ade
commit 1e1ea22e91

View file

@ -2736,9 +2736,18 @@ instead of `dired-actual-switches'."
(save-excursion
(goto-char (point-min))
(dired-goto-file-1 file file (point-max)))
;; Otherwise, look for it as a relative name. The
;; hair is to get the result of `dired-goto-subdir'
;; without calling it if we don't have any subdirs.
;; Next, look for it as a relative name with leading
;; subdirectories. (This happens in Dired buffers
;; created by find-dired, for example.)
(save-excursion
(goto-char (point-min))
(dired-goto-file-1 (file-relative-name file
default-directory)
file (point-max)))
;; Otherwise, look for it as a relative name, a base
;; name only. The hair is to get the result of
;; `dired-goto-subdir' without calling it if we don't
;; have any subdirs.
(save-excursion
(when (if (string= dir (expand-file-name default-directory))
(goto-char (point-min))