diff options
| author | Lars Ingebrigtsen | 2022-09-06 12:24:32 +0200 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2022-09-06 12:24:32 +0200 |
| commit | 9f3f7f1ec4fdb7152ec5edd5313924fb3575d44f (patch) | |
| tree | a363dccbe3e66fa50652aa4542594b4daf6d153e | |
| parent | eaca6378d2c4b94bc70a7979642502a80bfacd11 (diff) | |
| download | emacs-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.el | 6 | ||||
| -rw-r--r-- | 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'." | |||
| 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) |