GNU bug report logs -
#49761
file-cache-minibuffer-complete has become unusable for duplicate file names in MacOSX 27.x emacs
Previous Next
Reported by: Aaron Cohen <aaron <at> brightbytes.net>
Date: Wed, 28 Jul 2021 19:39:01 UTC
Severity: normal
Tags: fixed
Fixed in version 28.0.50
Done: Juri Linkov <juri <at> linkov.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Oh, and I've confirmed that the workaround of `C-u C-Tab` works great for
cycling through files when `C-Tab` would otherwise get stuck. So, I'm good
until the next official release.
On Mon, Aug 2, 2021 at 1:02 PM Aaron Cohen <aaron <at> brightbytes.net> wrote:
> Very much appreciated!!
>
> And thank you for investigating and isolating the issue: I had
> misidentified the actual problem and didn't provide a duplication recipe,
> making your job much harder.
>
> I promise to do better next time, and provide a test case. :-)
>
> Thanks again!!
>
> On Sun, Aug 1, 2021 at 1:41 AM Juri Linkov <juri <at> linkov.net> wrote:
>
>> tags 49761 fixed
>> close 49761 28.0.50
>> thanks
>>
>> > Well, it's now the default behavior. It wasn't previously. :-)
>>
>> And new is not always better ;-)
>>
>> So now the new behavior (that became old now) was fixed
>> in the master branch for Emacs 28, and all test cases
>> that you presented work completely as expected.
>> Thanks for helping to understand where the problem was.
>>
>> BTW, after the fix, the following additional information
>> is not necessary, but I discovered that in old versions
>> you can use the prefix argument to force C-TAB cycling.
>>
>> An excerpt from etc/NEWS.20:
>>
>> ** file-cache-minibuffer-complete now accepts a prefix argument.
>> With a prefix argument, it does not try to do completion of
>> the file name within its directory; it only checks for other
>> directories that contain the same file name.
>> Thus, given the file name Makefile, and assuming that a file
>> Makefile.in exists in the same directory, ordinary
>> file-cache-minibuffer-complete will try to complete Makefile to
>> Makefile.in and will therefore never look for other directories that
>> have Makefile. A prefix argument tells it not to look for longer
>> names such as Makefile.in, so that instead it will look for other
>> directories--just as if the name were already complete in its present
>> directory.
>>
>> and a comment from bindings.el:
>>
>> ;; The prefix argument works around a bug in the minibuffer completion.
>> ;; The completion function doesn't distinguish between the states:
>> ;;
>> ;; "Multiple completions of name" (eg, Makefile, Makefile.in)
>> ;; "Name available in multiple directories" (/tmp/Makefile,
>> ~me/Makefile)
>> ;;
>> ;; The default is to do the former; a prefix arg forces the latter.
>>
>
[Message part 2 (text/html, inline)]
This bug report was last modified 3 years and 291 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.