aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2022-09-06 12:24:32 +0200
committerLars Ingebrigtsen2022-09-06 12:24:32 +0200
commit9f3f7f1ec4fdb7152ec5edd5313924fb3575d44f (patch)
treea363dccbe3e66fa50652aa4542594b4daf6d153e
parenteaca6378d2c4b94bc70a7979642502a80bfacd11 (diff)
downloademacs-9f3f7f1ec4fdb7152ec5edd5313924fb3575d44f.tar.gz
emacs-9f3f7f1ec4fdb7152ec5edd5313924fb3575d44f.zip
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.
-rw-r--r--lisp/ffap.el6
-rw-r--r--lisp/ido.el7
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'."
1623 ((or (not ffap-newfile-prompt) 1623 ((or (not ffap-newfile-prompt)
1624 (file-exists-p filename) 1624 (file-exists-p filename)
1625 (y-or-n-p "File does not exist, create buffer? ")) 1625 (y-or-n-p "File does not exist, create buffer? "))
1626 (find-file 1626 (funcall ffap-file-finder
1627 ;; expand-file-name fixes "~/~/.emacs" bug 1627 ;; expand-file-name fixes "~/~/.emacs" bug
1628 (expand-file-name filename))) 1628 (expand-file-name filename)))
1629 ;; User does not want to find a non-existent file: 1629 ;; User does not want to find a non-existent file:
1630 ((signal 'file-missing (list "Opening file buffer" 1630 ((signal 'file-missing (list "Opening file buffer"
1631 "No such file or directory" 1631 "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."
1507 (add-hook 'minibuffer-setup-hook #'ido-minibuffer-setup) 1507 (add-hook 'minibuffer-setup-hook #'ido-minibuffer-setup)
1508 (add-hook 'choose-completion-string-functions #'ido-choose-completion-string)) 1508 (add-hook 'choose-completion-string-functions #'ido-choose-completion-string))
1509 1509
1510(defun ido--ffap-find-file (file)
1511 (find-file file))
1512
1510(define-minor-mode ido-everywhere 1513(define-minor-mode ido-everywhere
1511 "Toggle use of Ido for all buffer/file reading." 1514 "Toggle use of Ido for all buffer/file reading."
1512 :global t 1515 :global t
1513 (remove-function read-file-name-function #'ido-read-file-name) 1516 (remove-function read-file-name-function #'ido-read-file-name)
1514 (remove-function read-buffer-function #'ido-read-buffer) 1517 (remove-function read-buffer-function #'ido-read-buffer)
1515 (when (boundp 'ffap-file-finder) 1518 (when (boundp 'ffap-file-finder)
1516 (remove-function ffap-file-finder #'ido-find-file) 1519 (remove-function ffap-file-finder #'ido--ffap-find-file)
1517 (when ido-mode 1520 (when ido-mode
1518 (add-function :override ffap-file-finder #'ido-find-file))) 1521 (add-function :override ffap-file-finder #'ido--ffap-find-file)))
1519 (when ido-everywhere 1522 (when ido-everywhere
1520 (if (not ido-mode) 1523 (if (not ido-mode)
1521 (ido-mode 'both) 1524 (ido-mode 'both)