From: flitterio AT amulet DOT com (Fran Litterio) Subject: RE: Observations and suggestions 1 Jan 1997 14:36:55 -0800 Sender: daemon AT cygnus DOT com Approved: cygnus DOT gnu-win32 AT cygnus DOT com Distribution: cygnus Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Original-To: "'gnu-win32 AT cygnus DOT com'" X-Mailer: Microsoft Exchange Server Internet Mail Connector Version 4.0.994.63 Original-Sender: owner-gnu-win32 AT cygnus DOT com Blake McBride (blake AT edge DOT net) 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 franl AT amulet DOT com franl AT world DOT std DOT com > - For help on using this list, send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".