Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!im4u!ut-sally!std-unix From: std-unix@ut-sally.UUCP (Moderator, John Quarterman) Newsgroups: mod.std.unix Subject: Re: Case sensitive file names Message-ID: <6229@ut-sally.UUCP> Date: Tue, 4-Nov-86 14:17:34 EST Article-I.D.: ut-sally.6229 Posted: Tue Nov 4 14:17:34 1986 Date-Received: Wed, 5-Nov-86 06:30:23 EST References: <6210@ut-sally.UUCP> Organization: IEEE P1003 Portable Operating System for Computer Environments Committee Lines: 59 Keywords: horse dead UNIX dmr small simple Approved: jsq@sally.utexas.edu Summary: UNIX (dmr) philosophy -- and beating a dead horse From: campbell%maynard.UUCP@harvisr.harvard.edu (Larry Campbell) Date: Tue, 4 Nov 86 10:19:11 EST Organization: The Boston Software Works, Inc. >From: @SUMEX-AIM.ARPA:MRC@PANDA (Mark Crispin) > What we are asking for is that if you try to access the ReadMe >file by specifying "readme" or "Readme" or "README" or even "rEADmE" >you should get the ReadMe file instead of a file not found error. >Furthermore, if you open "readme", "Readme", etc. for write, it should >supercede [sic] the ReadMe file and the resulting file should have the >original case of ReadMe. > > In other words, finding a file for read will match any case. >Finding a file for write will match any case, supercede [sic] any such older >file, and will preserve the case of that older file. The only way to >change the case would be with rename; the source name would be case >independent but the destination case would be preserved. Of course, >you could also change the case by deleting ReadMe and then opening >README for write... > There are filesystems that behave in this manner, and they are >quite pleasant to use. Please, if you support case-dependence, don't >give the "mixed case filesystems" class of arguments. The only two >arguments you really have are (1) it is a "feature" (however dubious) >that you can create Makefile and makefile as separate files in the >same directory, and (2) Unix does it this way. Sorry to keep beating this dead horse, but some people just haven't yet caught on to one of the principle design fundamentals of UNIX. "Keep it small and simple." As has already been pointed out, the system (I'm deliberately avoiding the term "kernel") treats filenames as uninterpreted strings of bytes. Adding case folding to the system adds complexity to the system that provides only a tiny benefit (is it really that hard to type the correct filename?). I think everyone agrees that creating "Makefile" and "makefile" in the same directory is braindamaged. What I disagree with is the notion that the system should be in the business of preventing this. Should the C compiler enforce a certain Hamming distance between identifiers? Note also that case folding is only "simple" in some languages. As has already been pointed out, there are languages (like German) where case folding is decidedly complex. And in an international environment, the case folding algorithm may need to be different for each user. I wish I could remember who said this, but someone once pointed out that "One of the reasons Dennis Ritchie is a genius is that whenever someone says `Wouldn't it be nice if UNIX had feature X?', instead of saying `Wow, yeah, I'll go hack that in', he says, `Yep, sure would.'" -- Larry Campbell MCI: LCAMPBELL The Boston Software Works, Inc. UUCP: {alliant,wjh12}!maynard!campbell 120 Fulton Street, Boston MA 02109 ARPA: campbell%maynard.uucp@harvisr.harvard.edu (617) 367-6846 Volume-Number: Volume 8, Number 35