From 9f3f7f1ec4fdb7152ec5edd5313924fb3575d44f Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Tue, 6 Sep 2022 12:24:32 +0200 Subject: [PATCH] Make ffap-file-finder work again * lisp/ffap.el (find-file-at-point): Allow people to set ffap-file-finder again (bug#50279). * lisp/ido.el (ido-everywhere): Add an interstitial to fulfil ffap-file-handler semantics. --- lisp/ffap.el | 6 +++--- lisp/ido.el | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lisp/ffap.el b/lisp/ffap.el index 88b4bce9fd1..7ea05dccbdd 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -1623,9 +1623,9 @@ and `ffap-url-at-point'." ((or (not ffap-newfile-prompt) (file-exists-p filename) (y-or-n-p "File does not exist, create buffer? ")) - (find-file - ;; expand-file-name fixes "~/~/.emacs" bug - (expand-file-name filename))) + (funcall ffap-file-finder + ;; expand-file-name fixes "~/~/.emacs" bug + (expand-file-name filename))) ;; User does not want to find a non-existent file: ((signal 'file-missing (list "Opening file buffer" "No such file or directory" diff --git a/lisp/ido.el b/lisp/ido.el index 520513b1d29..1d0082da97c 100644 --- a/lisp/ido.el +++ b/lisp/ido.el @@ -1507,15 +1507,18 @@ Removes badly formatted data and ignored directories." (add-hook 'minibuffer-setup-hook #'ido-minibuffer-setup) (add-hook 'choose-completion-string-functions #'ido-choose-completion-string)) +(defun ido--ffap-find-file (file) + (find-file file)) + (define-minor-mode ido-everywhere "Toggle use of Ido for all buffer/file reading." :global t (remove-function read-file-name-function #'ido-read-file-name) (remove-function read-buffer-function #'ido-read-buffer) (when (boundp 'ffap-file-finder) - (remove-function ffap-file-finder #'ido-find-file) + (remove-function ffap-file-finder #'ido--ffap-find-file) (when ido-mode - (add-function :override ffap-file-finder #'ido-find-file))) + (add-function :override ffap-file-finder #'ido--ffap-find-file))) (when ido-everywhere (if (not ido-mode) (ido-mode 'both) -- 2.39.2