Subject: RE: Observations and suggestions
From: [email-masked] (Fran Litterio)

1 Jan 1997 14:36:55 -0800
Sender: [email-masked]
Approved: [email-masked]
Distribution: cygnus
Message-ID: <c=US%a=_%p=Amulet._Inc.%l=[email-masked]>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Original-To: "[email-masked]'" <[email-masked]>
X-Mailer: Microsoft Exchange Server Internet Mail Connector Version 4.0.994.63
Original-Sender: [email-masked]

Blake McBride ([email-masked]) writes:

>Unfortunately, the NT OS does not distinguish between file name case
....
>I therefore recommend that we default to ignoring case
>and allow case differentiation be again setting an environment variable
>or 'set' option.

An environment variable would be preferable to using the shell's set
command.  More than one shell will eventually be ported to the cygwin32
environment (zsh anyone?).

>[...] it would probably be best if
>'ls' would integrate case names as opposed to displaying files which
>start in caps separate from those that start in lower case.

The right way to implement this is in the low-level file-name
manipulation routines (opendir(), readdir(), open(), creat(), etc.) in
cygwin.dll.  The default behavior could be for those functions to
downcase all filenames all the time.  The whole world will look like
only lowercase filenames are allowed (even "touch FOO" will create a
file named "foo"), and consistent behavior will ensue (for instance, you
would type "ls *.c" instead of "ls *.c *.C" to see all C source files).

Yes, a small minority of tools want to manipulate files such as
"makefile" and "Makefile" at the same time _and_ have them be different
files.  To allow those tools to compile without changes, has anyone
considered doing something similar to the Win95 long-filename-trick: map
mixed-case filenames to a mangled form (e.g., "Makefile" is stored in
disk as "^M^akefile") and a hidden file in the same directory stores the
mapping from mangled to demangled name ("^M^akefile" -> "Makefile").  If
a process has the magic environment variable set, the cygwin.dll file
manipulation functions would test for the existance of the mapping file,
and bingo -- mixed-case filenames in a single-case file-system.  Of
course, those mangled names would be visible to any non-cygwin32
appliaton, but that's no different than the current mixed case solution
(and probably is completely unavoidable).

Comments?

>BTW, the mixed case mode of mount doesn't work on NT 4.0.  I think this
>may be due to NT 4.0 not allowing ^ in a file name.

NT 4.0 workstation does allow that character in a filename.  I just
tried it: touch 'foo^bar'.
--
Francis Litterio
[email-masked]
[email-masked]
>
-
For help on using this list, send a message to
"[email-masked]" with one line of text: "help".