Subject: bug#43222: closed (Re: bug#43222: 28.0.50; fido-mode selects wrong buffer to kill when no input)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 06 Sep 2020 07:40:01 +0000

Your bug report

#43222: 28.0.50; fido-mode selects wrong buffer to kill when no input

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
43222: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=43222
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#43222: 28.0.50; fido-mode selects wrong buffer to kill when no input
From: João Távora <[email-masked]>
To: Sean Whitton <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sun, 06 Sep 2020 08:39:20 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

João Távora <[email-masked]> writes:

> Sean Whitton <[email-masked]> writes:
>
>> This is orthogonal to #43120 so far as I can tell.
>>
>> 1. emacs -q
>> 2. M-x fido-mode RET
>> 3. C-x C-f ~/src/emacs/lisp/icomplete.el RET
>> 4. M-: (find-file (locate-library "icomplete.el.gz")) RET
>> 5. C-x b icomplete.el RET
>> 6. C-x k [wait for completions] RET|M-j
>
> Followed your report and confirmed it.  Notice that the problem only
> happens because the file names share a common prefix: "icomplete.el"
>
> Maybe the title (and the severity) of this bug should be changed to
> reflect that.  Do you know how to do that, Lars?
>
>> The first completion offered by fido-mode is different from the
>> default value shown in the minibuffer prompt.
>
> This sentence indeed describes it.  There code is fido-mode to "bubble"
> up the default to the first result, but it isn't working for some
> reason.  I'd say the problem lies somewhere in
> icomplete--sorted-completions.

I've fixed this in 6fc502c1ef327ab357c971b9bffbbd7cb6a436f1.

Author: João Távora <[email-masked]>
Date:   Sun Sep 6 08:35:53 2020 +0100

  Don't resort Icomplete candidates when default already on top
  
  Fixes: bug#43222
  
  Icomplete mode re-sorts candidates, bubbling the default to top if
  it's found somewhere down the list.  This is done according to two
  criteria: exact match and prefix match.  Before this fix, it didn't
  take into account the possibility that the exact match for the default
  would already be on top, and would incorrectly bubble a prefixing
  completion down the list to the top.  This commit fixes that.
  
  * lisp/icomplete.el (icomplete--sorted-completions):
  Rework. Recomment.

Subject: 28.0.50; fido-mode selects wrong buffer to kill when no input
From: Sean Whitton <[email-masked]>
To: [email-masked]
Date: Sat, 05 Sep 2020 08:39:36 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

This is orthogonal to #43120 so far as I can tell.

1. emacs -q
2. M-x fido-mode RET
3. C-x C-f ~/src/emacs/lisp/icomplete.el RET
4. M-: (find-file (locate-library "icomplete.el.gz")) RET
5. C-x b icomplete.el RET
6. C-x k [wait for completions] RET|M-j

This should kill the buffer visiting icomplete.el (right?) but in fact
it kills the buffer visiting icomplete.el.gz.  The first completion
offered by fido-mode is different from the default value shown in the
minibuffer prompt.

-- 
Sean Whitton