Subject: Re: bug#43120: 28.0.50; fido-mode: M-j before completions appear selects wrong choice

From: Lars Ingebrigtsen <[email-masked]>
Date: Fri, 04 Sep 2020 05:27:32 +0200

Sean Whitton <[email-masked]> 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?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no