Subject: Re: bug#11339: 24.1.50; read-{buffer,file-name}-completion-ignore-case fails on non-ascii

From: Eli Zaretskii <[email-masked]>
Date: Mon, 04 Nov 2019 19:12:03 +0200

> From: Stephen Berman <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Mon, 04 Nov 2019 17:22:30 +0100
> 
> After your fix:
> 
> 1. $ emacs-master -Q  --eval '(setq read-buffer-completion-ignore-case tread-file-name-completion-ignore-case t)' /tmp/{bah,bAh,bäh,bÄh}
> (*Buffer List* show the buffers bah,bAh,bäh,bÄh)
> 2. C-x b *scratch*
> 3a. C-x b ba TAB
>    => completes to bah and after TAB displays [Sole completion]
> 3b. C-g C-x b bA TAB
>    => completes to bAh and after TAB displays [Sole completion]
> 4a. C-g C-x b bä TAB
>    => completes to bäh and after TAB displays [Sole completion]
> 4b. C-g C-x b bÄ TAB
>    => completes to bÄh and after TAB displays [Sole completion]
> 5a. C-g C-x C-f /tmp/ba TAB
>    => completes to bah and after TAB displays [Complete, but not unique]
>       and *Completions* pops up showing `bAh' and `bah'
> 5b. C-g C-x C-f /tmp/bA TAB
>    => completes to bAh and after TAB displays [Complete, but not unique]
>       and *Completions* pops up showing `bAh' and `bah'
> 6a. C-g C-x C-f /tmp/bä TAB
>    => completes to /tmp/bäh and after TAB displays [Complete, but not unique]
>       and *Completions* pops up showing `bAh' and `bah'
> 6a. C-g C-x C-f /tmp/bÄ TAB
>    => completes to /tmp/bÄh and after TAB displays [Complete, but not unique]
>       and *Completions* pops up showing `bAh' and `bah'
> 
> So, before your fix file name completion involving non-ASCII strings
> behaved the same as buffer name completion involving both ASCII-only and
> non-ASCII strings, but file name completion involving ASCII-only strings
> differed.  Now, after your fix, file name completion involving non-ASCII
> strings works the same as file name completion involving ASCII-only
> strings did before your fix and still does after, but all the cases of
> file name completion differ from the corresponding cases of buffer name
> completion.  I would prefer buffer name completion to work the way file
> name completion uniformly works after your fix.

"You are in a maze of twisty little passages, all alike."

(I'm confused by a dozen of similar examples which don't say which
result is deemed to be correct and which isn't.)

Previously, you said that buffer-name completion works correctly, so I
never looked at that (which explains why there's no change in that
behavior before and after my changes).  The changes I made are in code
that is used only for completing file names, which again explains why
completion of buffer names didn't change.

Now you are saying that buffer-name completion works incorrectly?  Or
are you saying something else?  I'd like to be sure what is it that
you consider in the need of fixing, and why.

Thanks.