Subject: Re: bug#32215: 27.0.50; Minibuffer completion fails with /~<partial-name>

From: Stephen Berman <[email-masked]>
Date: Fri, 20 Jul 2018 16:28:15 +0200

On Fri, 20 Jul 2018 09:58:10 -0400 Noam Postavsky <[email-masked]> wrote:

> On 20 July 2018 at 04:31, Stephen Berman <[email-masked]> wrote:
>> On Thu, 19 Jul 2018 21:02:11 -0400 Noam Postavsky <[email-masked]> wrote:
>>
>>> Stephen Berman <[email-masked]> writes:
>>>
>>>> On Thu, 19 Jul 2018 21:19:36 +0300 Eli Zaretskii <[email-masked]> wrote:
>>>>
>>>>>> From: Stephen Berman <[email-masked]>
>>>>>> Date: Thu, 19 Jul 2018 19:55:18 +0200
>>>>>>
>>>>>> 0. emacs -Q
>>>>>> 1. C-x d / ~ TAB
>>>>>>    This pops up a *Completions* buffer showing directory names of all
>>>>>>    members of (system-users), e.g. steve/
>>>>>> 2. Continuing from step 1, when I type any of 's TAB', 'st TAB', 'ste
>>>>>>    TAB' or 'stev TAB', Emacs responds with [No match], but 'steve TAB'
>>>>>>    completes to steve/
>>>>>>
>>>>>> The failure only happens with '/~<partial-name>', typing e.g. '~/Downl
>>>>>> TAB' here completes to ~/Downloads/
>>>>>
>>>>> Doesn't happen here, FWIW.  Strange.
>>>>
>>>> Strange indeed, assuming you tested on GNU/Linux or another POSIX
>>>> system, since IIUC on MS-Windows system-users returns only
>>>> user-real-login-name (at least it does here on Emacs 25.3 under Windows
>>>> 8).  I also tested on another GNU/Linux system I have with Emacs 24.3
>>>> and see exactly the same behavior I described above.
>>>
>>> I see it on both Windows and GNU/Linux.
>>
>> Like Eli, I'm surprised you see it on Windows.
>
> Oh, I skipped the TAB in step 1. With that, all of the leading text
> before the ~ is removed, so there is no problem (and it indeed
> completes immediately to my current user on Windows).
>
>>
>>>                                          I notice that the after typing
>>> the first letter of the user name, the leading "/" is no longer in
>>> shadow face,
>>
>> Yes, I didn't notice that when I tested before but I do now.
>
> Ah, so when you hit TAB, the leading "/" is not removed?

Nothing is removed.  To be explicit, when I start with -Q and type 'C-x
d', the minibuffer displays this:

Dired (directory): ~/

with point after '/'.  When I now type '/', the face of '~/' changes to
shadow, and when I then type '~', the face of the second '/' also
changes to shadow.  When I now type TAB, the minibuffer looks like this:

Dired (directory): ~//~

with '~//' in shadow face, and a *Completions* buffer pops up and shows
the directory names of all members of (system-users).  When I now type
's TAB', the face of the second '/' changes from shadow to default
(black), '[No match]' appears after the cursor and the *Completions*
buffer disappears.  I.e., the minibuffer looks like this on hitting TAB:

Dired (directory): ~//~s█[No match]

with '~/' in shadow face and '/~s' in default face, and after a couple
of seconds, '[No match]' disappears, leaving the rest.

Steve Berman