From: Eli Zaretskii Date: Fri, 25 Mar 2016 14:18:21 +0000 (+0300) Subject: Fix 'dired-goto-file' in Dired buffers produced by find-dired X-Git-Tag: emacs-25.0.93~89^2~13 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/1e1ea22e91b8312c76eb8768bf995ae6129ac16a 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) --- diff --git a/lisp/dired.el b/lisp/dired.el index ef22d457bc..5741872cfc 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -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))