Recipe to reproduce:
emacs -Q
M-x ido-mode
M-x ffap-bindings
C-u M-x find-file-at-point RET
(any file can be used; the default `~/` on Unix works)
This fails with:
apply: Wrong number of arguments: #<subr ido--ffap-find-file>, 2
After doing M-x toggle-debug-on-error, the full stack is:
Debugger entered--Lisp error: (wrong-number-of-arguments #<subr ido--ffap-find-file> 2)
ido--ffap-find-file("~/" t)
apply(ido--ffap-find-file ("~/" t))
#f(advice ido--ffap-find-file :override find-file)("~/" t)
funcall-interactively(#f(advice ido--ffap-find-file :override find-file) "~/" t)
find-file-at-point()
funcall-interactively(find-file-at-point)
command-execute(find-file-at-point record)
execute-extended-command((4) "find-file-at-point" nil)
funcall-interactively(execute-extended-command (4) "find-file-at-point" nil)
command-execute(execute-extended-command)
This regression seems to come from `(call-interactively
ffap-file-finder)` with `(advice ido--ffap-find-file :override
find-file)`. Since `ido--ffap-find-file` is not interactive, the
`interactive` of `find-file` is used, which uses `find-file-read-args`
which returns two arguments and not simply one.
The function `ido--ffap-find-file` was added to fix bug #50279.
In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.37,
cairo version 1.16.0) of 2023-09-04, modified by Debian built on
--