On Sun, 27 Apr 2025 at 19:22, Eric Biggers <ebigg...@kernel.org> wrote: > > I suspect that all that was really needed was case-insensitivity of ASCII a-z.
Yes. That's my argument. I think anything else ends up being a mistake. MAYBE extend it to the first 256 characters in Unicode (aka "Latin1"). Case folding on a-z is the only thing you could really effectively rely on in user space even in the DOS times, because different codepages would make for different rules for the upper 128 characters anyway, and you could be in a situation where you literally couldn't copy files from one floppy to another, because two files that had distinct names on one floppy would have the *same* name on another one. Of course, that was mostly a weird corner case that almost nobody ever actually saw in practice, because very few people even used anything else than the default codepage. And the same is afaik still true on NT, although practically speaking I suspect it went from "unusual" to "really doesn't happen EVER in practice". Extending those mistakes to full unicode and mixing in things like nonprinting codes and other things have only made things worse. And dealing with things like ß and ss and trying to make those compare as equal is a *horrible* mistake. People who really need to do that (usually for some legalistic local reason) tend to have very specific rules for sorting anyway, and they are rules specific to particular situations, not something that the filesystem should even try to work with. Linus