Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!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: <5959@ut-sally.UUCP> Date: Wed, 8-Oct-86 20:07:05 EDT Article-I.D.: ut-sally.5959 Posted: Wed Oct 8 20:07:05 1986 Date-Received: Thu, 9-Oct-86 03:45:34 EDT Organization: IEEE P1003 Portable Operating System for Computer Environments Committee Lines: 50 Approved: jsq@sally.utexas.edu From: seismo!nbs-amrf!libes@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