From: Random832 <random832@fastmail.com>
To: 22169@debbugs.gnu.org
Subject: bug#22169: 25.0.50; File name compiletion doesn't work with non-ASCII characters on OS X
Date: Wed, 16 Dec 2015 11:00:57 -0500 [thread overview]
Message-ID: <874mfimlhi.fsf@fastmail.com> (raw)
In-Reply-To: <CABr8ebY7KmucTeRXtHedw77LZ651jfDPw=5w9ONAbAewtDQskg@mail.gmail.com>
Eli Zaretskii <eliz@gnu.org> writes:
> I guess some code is not ready to cope with a list of candidate
> completions some of which don't match the string-to-complete. Can you
> spot which code causes the deletion, and whether that is somehow
> related to file-name-all-completions returning all the 3 file names in
> this case?
It's almost certainly related to that. I couldn't follow all the
details about how the completion code works, but it looks like
the entire design of completion-pcm--merge-completions is based
around finding a common prefix and suffix in the returned
strings irrespective of the originally entered text.
>> I'd expect it to either offer all three filenames, or just a3.
>
> It's not really clear what is correct behavior in this case. On other
> platforms Emacs will return only a3, but HFS+ stores decomposed
> characters precisely to allow all 3 to match. So I think we should
> at least cause Emacs return only a3, and ideally also support the
> other behavior as an option.
I'm not aware of any published rationale for the decision to
store decomposed characters. (In my testing I did notice that
zsh and bash handle globbing differently - all of the files
match a* in bash but not zsh.)
I think maybe lax matching as an option would be better than
blindly doing comparisons based on the decomposed form. With
letters with multiple diacritics, for example, the naïve
behavior would mean that one of the one-diacritic forms would
match and the other would not. If users really want that
behavior they can after all just set the file system encoding to
utf-8 instead of utf-8-hfs.
> Btw, why is completion-ignore-case nil on HFS+? I understand it's a
> case-insensitive file system, isn't it?
No idea. (IIRC In principle it's an option that can be disabled,
though it's case-insensitive by default)
I also feel like I should ask what provisions Emacs has for
filesystem-specific case folding - NTFS and HFS both have their
own algorithms which are different from each other and may both
be different from general-purpose case matching algorithms.
>> Why exactly does completion do matching with encoded prefix
>> against raw filenames, rather than with unicode prefix against
>> decoded filenames, anyway?
>
> Performance: we don't want to decode every file name that readdir
> returns.
I'm not sure there's a way around it if we want to be 100%
correct and consistent, given the existence of parts of the
completion system that do work with the strings in Unicode.
next prev parent reply other threads:[~2015-12-16 16:00 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-14 19:08 bug#22169: 25.0.50; File name compiletion doesn't work with non-ASCII characters on OS X Anders Lindgren
2015-12-14 19:20 ` Eli Zaretskii
2015-12-14 21:09 ` Eli Zaretskii
2015-12-14 22:07 ` Anders Lindgren
2015-12-15 3:42 ` Eli Zaretskii
2015-12-15 5:12 ` Anders Lindgren
2015-12-15 9:31 ` Andreas Schwab
2015-12-15 10:21 ` Anders Lindgren
2015-12-15 16:11 ` Eli Zaretskii
2015-12-15 15:58 ` Eli Zaretskii
2015-12-15 19:16 ` Anders Lindgren
2015-12-15 19:56 ` Eli Zaretskii
2015-12-15 20:05 ` Anders Lindgren
2015-12-17 22:01 ` Anders Lindgren
2015-12-18 2:46 ` Random832
2015-12-18 6:29 ` Anders Lindgren
2015-12-18 7:07 ` Eli Zaretskii
2015-12-18 15:26 ` Random832
2015-12-18 17:06 ` Eli Zaretskii
2015-12-20 17:56 ` Eli Zaretskii
2015-12-20 19:16 ` Anders Lindgren
2015-12-20 19:39 ` Eli Zaretskii
2015-12-20 22:00 ` Anders Lindgren
2015-12-21 3:39 ` Eli Zaretskii
2015-12-21 6:52 ` Anders Lindgren
2015-12-21 16:09 ` Eli Zaretskii
2015-12-21 22:03 ` Anders Lindgren
2015-12-22 3:37 ` Eli Zaretskii
2015-12-22 5:42 ` Anders Lindgren
2015-12-22 17:10 ` Eli Zaretskii
2015-12-22 22:29 ` Anders Lindgren
2015-12-23 3:37 ` Eli Zaretskii
2015-12-23 6:17 ` Anders Lindgren
2015-12-23 17:36 ` Eli Zaretskii
2015-12-24 19:23 ` Anders Lindgren
2015-12-24 19:33 ` Anders Lindgren
2015-12-24 19:42 ` Eli Zaretskii
2015-12-18 7:25 ` Eli Zaretskii
2015-12-18 8:38 ` Anders Lindgren
2015-12-18 9:15 ` Eli Zaretskii
2015-12-18 15:42 ` Random832
2015-12-15 21:53 ` Random832
2015-12-16 3:32 ` Eli Zaretskii
2015-12-16 5:05 ` Random832
2015-12-16 10:17 ` Eli Zaretskii
2015-12-16 16:00 ` Random832 [this message]
2015-12-16 17:22 ` Eli Zaretskii
2015-12-16 18:19 ` Random832
2015-12-16 18:51 ` Eli Zaretskii
2015-12-14 20:49 ` Random832
2015-12-14 22:41 ` bug#22169: 25.0.50; File name compiletion doesn't work with non-ASCII ch Anders Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874mfimlhi.fsf@fastmail.com \
--to=random832@fastmail.com \
--cc=22169@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.