Case sensitive file names

Moderator, John Quarterman std-unix at ut-sally.UUCP
Thu Oct 9 10:07:05 AEST 1986


From: seismo!nbs-amrf!libes at sally.utexas.edu (Don Libes)
Date: Wed, 8 Oct 86 19:54:05 EDT

I write programs for both case-sensitive (CS) and case-insensitive
(CI) systems.  As an applications programmer, I prefer case-sensitivity.

Why?  Because my code on the CI system is full of calls to upper(),
lower(), isupper() and islower(), while the CS programs don't have
any of that.  On the CS system, case is important - it would be a
mistake to map it either way.

On the other hand, take the CI system.  If I have a user-supplied
filename, depending upon the system I may have to case-map it before
calling open.  But suppose I'm reading a directory and I want to
match the filename against the entries.  Now, I definitely have to
case-map it before doing a string comparison.  Unless you want to
supply me with a filecmp() which is just a case-map wrapped around
a strcmp().  Seems silly.

Now you may think, I'm getting annoyed over one little case-map,
but as MRC points out, OSs tend to go about this in a big way.  For
example, VMS has case-insensitive filenames, logical names, device
names, usernames, symbols, etc.  Everytime I deal with an object,
the first thing I have to do is start worrying about case.
Depending upon the utility, library, language, etc I'm working with
I then have to start thinking if their interfaces are
case-sensitive or not.  I find all of this quite annoying.

That is why, as an application programmer, I much prefer case-sensitivity.

Please don't tell me I am insensitive to users.  I am not about to
argue here whether or not users have the intelligence to hold down
the shift key at the appropriate times.

As far as m/Mail, m/Makefile goes, the problem is not that users
find them easily confused.  That should've been obvious to the
genius who reused the name.  If you want, I can easily choose
filenames that you will find confusing, even in the same case.

As far as emulator's go, I daily use Eunice, which faces this very
problem of handling case-sensitive file names in a case-insensitive
environment.  As far as case-mapping, their solution is very
elegant.  (No other claims about the elegance of Eunice are
proffered here.)  I.e.  UNIX programs see a case-sensitive
filesystem.  Further, they are also allowed arbitrary characters in
a filename, outside the legal VMS character set.)

Don Libes   {seismo,umcp-cs}!nbs-amrf!libes

Volume-Number: Volume 7, Number 37



More information about the Mod.std.unix mailing list