GNU bug report logs - #43120
28.0.50; fido-mode: M-j before completions appear selects wrong choice

Previous Next

Package: emacs;

Reported by: Sean Whitton <spwhitton <at> spwhitton.name>

Date: Sun, 30 Aug 2020 21:01:01 UTC

Severity: normal

Tags: fixed

Merged with 43083

Found in version 28.0.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Sean Whitton <spwhitton <at> spwhitton.name>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 43120 <at> debbugs.gnu.org, joaotavora <at> gmail.com
Subject: bug#43120: 28.0.50; fido-mode: M-j before completions appear selects wrong choice
Date: Fri, 04 Sep 2020 07:47:24 -0700
Hello Lars,

On Fri 04 Sep 2020 at 05:27AM +02, Lars Ingebrigtsen wrote:

> Sean Whitton <spwhitton <at> spwhitton.name> writes:
>
>> Unfortunately it does not, so I guess icomplete-fido-exit is not exiting
>> the minibuffer through that path.
>
> Hm.  Am I misreading the code here?  So the else branch definitely calls
> exit-minibuffer...
>
> (defun icomplete-fido-exit (force)
> [...]
>   (if (and (not force) minibuffer--require-match)
>       (minibuffer-complete-and-exit)
>     (exit-minibuffer)))
>
> And the "then" branch ends up here:
>
> (defun minibuffer-complete-and-exit ()
> [...]
>   (completion-complete-and-exit (minibuffer-prompt-end) (point-max)
>                                 #'exit-minibuffer))
>
> Hm...  which then calls completion--complete-and-exit, which should then
> end up calling the exit function in...  hm.  Perhaps not all the
> branches?  There's a bunch of callbacks, but I thought I followed them
> all to the end and they all ended up calling the exit function, but
> perhaps not?  Would it be possible for you to edebug through
> completion-complete-and-exit?

I think I see what the problem is.  I was doing the following to
generate a test case: C-h f comp [wait for completions to appear] C-g

This leaves completion-content-when-empty populated to interfere with
the next run, as getting out of the minibuffer that way does not clear
the variable, but it should.

Might it work to set the variable buffer-local to the minibuffer?  Then
we can be sure it would always be cleared.

-- 
Sean Whitton




This bug report was last modified 4 years and 311 days ago.

Previous Next


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