diff options
| author | Lars Ingebrigtsen | 2020-12-12 12:48:53 +0100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2020-12-12 12:48:53 +0100 |
| commit | 6e84addc51f3817052d852b73f00057a9af5b9c8 (patch) | |
| tree | 473e3ffd595d979de671abc0de38e6d0f2154a24 | |
| parent | f6cafe657402805f21a9651071f9768f92dacc76 (diff) | |
| download | emacs-6e84addc51f3817052d852b73f00057a9af5b9c8.tar.gz emacs-6e84addc51f3817052d852b73f00057a9af5b9c8.zip | |
Preserve point in dired buffers in dired-*-find-file* commands
* lisp/dired.el (dired--find-file): New function (bug#28949).
(dired-find-file): Use it.
(dired-mouse-find-file): Ditto.
(dired-find-file-other-window): Ditto.
| -rw-r--r-- | lisp/dired.el | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lisp/dired.el b/lisp/dired.el index 6ad2497c9a9..baf99da7b48 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -2501,6 +2501,10 @@ directory in another window." | |||
| 2501 | (defun dired-find-file () | 2501 | (defun dired-find-file () |
| 2502 | "In Dired, visit the file or directory named on this line." | 2502 | "In Dired, visit the file or directory named on this line." |
| 2503 | (interactive) | 2503 | (interactive) |
| 2504 | (dired--find-file #'find-file (dired-get-file-for-visit))) | ||
| 2505 | |||
| 2506 | (defun dired--find-file (find-file-function file) | ||
| 2507 | "Call FIND-FILE-FUNCTION on FILE, but bind some relevant variables." | ||
| 2504 | ;; Bind `find-file-run-dired' so that the command works on directories | 2508 | ;; Bind `find-file-run-dired' so that the command works on directories |
| 2505 | ;; too, independent of the user's setting. | 2509 | ;; too, independent of the user's setting. |
| 2506 | (let ((find-file-run-dired t) | 2510 | (let ((find-file-run-dired t) |
| @@ -2513,7 +2517,7 @@ directory in another window." | |||
| 2513 | (if dired-auto-revert-buffer | 2517 | (if dired-auto-revert-buffer |
| 2514 | nil | 2518 | nil |
| 2515 | switch-to-buffer-preserve-window-point))) | 2519 | switch-to-buffer-preserve-window-point))) |
| 2516 | (find-file (dired-get-file-for-visit)))) | 2520 | (funcall find-file-function file))) |
| 2517 | 2521 | ||
| 2518 | (defun dired-find-alternate-file () | 2522 | (defun dired-find-alternate-file () |
| 2519 | "In Dired, visit file or directory on current line via `find-alternate-file'. | 2523 | "In Dired, visit file or directory on current line via `find-alternate-file'. |
| @@ -2549,7 +2553,7 @@ respectively." | |||
| 2549 | (select-window window) | 2553 | (select-window window) |
| 2550 | (funcall find-dir-func file))) | 2554 | (funcall find-dir-func file))) |
| 2551 | (select-window window) | 2555 | (select-window window) |
| 2552 | (funcall find-file-func (file-name-sans-versions file t))))) | 2556 | (dired--find-file find-file-func (file-name-sans-versions file t))))) |
| 2553 | 2557 | ||
| 2554 | (defun dired-mouse-find-file-other-window (event) | 2558 | (defun dired-mouse-find-file-other-window (event) |
| 2555 | "In Dired, visit the file or directory name you click on in another window." | 2559 | "In Dired, visit the file or directory name you click on in another window." |
| @@ -2576,7 +2580,7 @@ Otherwise, display it in another buffer." | |||
| 2576 | (defun dired-find-file-other-window () | 2580 | (defun dired-find-file-other-window () |
| 2577 | "In Dired, visit this file or directory in another window." | 2581 | "In Dired, visit this file or directory in another window." |
| 2578 | (interactive) | 2582 | (interactive) |
| 2579 | (find-file-other-window (dired-get-file-for-visit))) | 2583 | (dired--find-file #'find-file-other-window (dired-get-file-for-visit))) |
| 2580 | 2584 | ||
| 2581 | (defun dired-display-file () | 2585 | (defun dired-display-file () |
| 2582 | "In Dired, display this file or directory in another window." | 2586 | "In Dired, display this file or directory in another window." |