GNU bug report logs - #66382
29.1; Prefixed find-file-at-point fails when ido-mode is active.

Previous Next

Package: emacs;

Reported by: Stéphane Soppera <soppera <at> google.com>

Date: Sat, 7 Oct 2023 01:28:02 UTC

Severity: normal

Found in version 29.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#66382: closed (29.1; Prefixed find-file-at-point fails when
 ido-mode is active.)
Date: Sat, 14 Oct 2023 07:34:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sat, 14 Oct 2023 10:32:58 +0300
with message-id <83jzrpslp1.fsf <at> gnu.org>
and subject line Re: bug#66382: 29.1; Prefixed find-file-at-point fails when ido-mode is active.
has caused the debbugs.gnu.org bug report #66382,
regarding 29.1; Prefixed find-file-at-point fails when ido-mode is active.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
66382: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66382
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Stéphane Soppera <soppera <at> google.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.1; Prefixed find-file-at-point fails when ido-mode is active.
Date: Fri, 6 Oct 2023 20:41:39 +0200
[Message part 3 (text/plain, inline)]
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

-- 
Stéphane SOPPERA
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: soppera <at> google.com
Cc: 66382-done <at> debbugs.gnu.org
Subject: Re: bug#66382: 29.1;
 Prefixed find-file-at-point fails when ido-mode is active.
Date: Sat, 14 Oct 2023 10:32:58 +0300
> Cc: 66382 <at> debbugs.gnu.org
> Date: Sat, 07 Oct 2023 09:47:56 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> 
> > Date: Fri, 6 Oct 2023 20:41:39 +0200
> > From:  Stéphane Soppera via "Bug reports for GNU Emacs,
> >  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> > 
> > 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.
> 
> Thanks, should be fixed now on the emacs-29 branch.

No further comments in a week, so I conclude the bug was indeed
solved, and I'm closing it.


This bug report was last modified 1 year and 276 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.