git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Re-casing directories on case-insensitive systems

From
David Kastrup <dak@gnu.org>
Date
Jan 11, 2008, 23:10 UTC
Message-ID
<85abnc6jsg.fsf@lola.goethe.zz>
In-Reply-To
<alpine.LFD.1.00.0801111356000.3148@woody.linux-foundation.org>
Linus Torvalds <torvalds@linux-foundation.org> writes:
Show 6 quoted lines
> I do agree that we could/should do something to help with case-insensitive 
> filesystems.
>
> I absolutely *detest* those things, and I think that people who design 
> them are total morons - with MS-DOS, you could understand it (people 
> didn't know better),

Ah, those young whippersnappers who think they are so smart... there is a history to that, you know. Early character sets (like those on punch cards) had just capital letters. Even when lowercase letters were introduced, those tended to use more space (12 instead of 6 bit) and be harder to print (and the line printers who churned out 40 lines per second did not bother with such finesse, anyway). But capital letters are not designed for readability of long lines. So when printing or even screen terminals came into use, one tended to prefer writing in lowercase letters. Which actually had the uppercase code points usually. Some early microcomputers (for which CP/M was designed) actually were hooked up with a "standard" 50 or 110 Baud teletype as I/O device, and those tended to have only lowercase letters, too, in their basic incantations. So CP/M, not knowing which kind of input device would be used and whether it would prefer (or offer exclusively) upper or lower case, had case-insensitive commands, and consequently also case-insensitive file names. And QDOS (whence MSDOS) was basically intended to be a CP/M ripoff.

> but with OS X?

OS X has an Apple inheritance, Apple has the same inheritance as other microcomputers which includes a case-insensitive BASIC interpreter (BASIC again coming from old teletype times). It is, again, a decision to drag along old history.

But actually, there is more to it nowadays: two file names containing ü, but one with a single letter and one with combining accent, look exactly the same. If they don't act exactly the same, one opens up quite a hole for spoofing attacks. Well, probably hard to avoid (since things like uppercase Alpha and uppercase A look the same and need to be different code points, too). But one also opens a can of worms for confusion. So the problem of canonical file names does not go away just with case sensitivity.

> But considering that they exist, we should probably offer at least
> *some* help for people who didn't realize that you could make OS X
> behave better.

It is not like Linux does not support some case-insensitive file system types, too. So the same problems can be had there as well.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum
Previous: Linus TorvaldsNext: Kevin Ballard
Message 11 of 29 in “Re-casing directories on case-insensitive systems”
  1. Kevin BallardJan 11, 2008
  2. Kevin BallardJan 11, 2008
  3. Kevin BallardJan 11, 2008
  4. Linus TorvaldsJan 11, 2008
  5. Robin RosenbergJan 11, 2008
  6. Linus TorvaldsJan 11, 2008
  7. Johannes SchindelinJan 11, 2008
  8. Kevin BallardJan 11, 2008
  9. Johannes SchindelinJan 11, 2008
  10. Linus TorvaldsJan 11, 2008
  11. David KastrupJan 11, 2008
  12. Kevin BallardJan 11, 2008
  13. Robin RosenbergJan 11, 2008
  14. Kevin BallardJan 12, 2008
  15. Robin RosenbergJan 12, 2008
  16. Kevin BallardJan 12, 2008
  17. Junio C HamanoJan 12, 2008
  18. Johannes SchindelinJan 12, 2008
  19. Kevin BallardJan 12, 2008
  20. Junio C HamanoJan 12, 2008
  21. Kevin BallardJan 12, 2008
  22. David KastrupJan 12, 2008
  23. Dmitry PotapovJan 12, 2008
  24. Junio C HamanoJan 12, 2008
  25. Robin RosenbergJan 12, 2008
  26. Johannes SchindelinJan 12, 2008
  27. Dmitry PotapovJan 12, 2008
  28. Linus TorvaldsJan 12, 2008
  29. Dmitry PotapovJan 12, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.