delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/03/10/20:46:42

From: rale66 AT earthlink DOT net
Subject: Mixed case filenames patch for ntfs
10 Mar 1998 20:46:42 -0800 :
Message-ID: <3505925D.D0FE9369.cygnus.gnu-win32@earthlink.net>
Mime-Version: 1.0
To: gnu-win32 AT cygnus DOT com

This is a multi-part message in MIME format.
--------------C82A0920D513B882F8151B85
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,

   I've been working on a way to allow mixed-case filenames.  So far,
I've come up with using FILE_FLAG_POSIX_SEMANTICS.

>From msdn under CreateFile:

"
FILE_FLAG_POSIX_SEMANTICS
             Indicates that the file is to be accessed according
             to POSIX rules. This includes allowing multiple
             files with names, differing only in case, for file
             systems that support such naming. Use care when
             using this option because files created with this
             flag may not be accessible by applications
             written for MS-DOS or Windows.
"

Ive had some sucess by adding this option to all the CreateFile calls.
Now, here is what happens under the normal b19.

"
Administrator@~/test# echo "This file is named TEST" > TEST
Administrator@~/test# echo "This file is named test" > test
Administrator@~/test# ls -l
total 1
-rw-rw-rw-   1 root     None           24 Mar  9 14:32 TEST
Administrator@~/test# cat TEST
This file is named test
Administrator@~/test#
"

Heres what happens with my patch.

"
Administrator@~/test# echo "This file is named TEST" > TEST
Administrator@~/test# echo "This file is named test" > test
Administrator@~/test# ls -l
total 2
-rw-rw-rw-   1 root     None           24 Mar  9 14:34 TEST
-rw-rw-rw-   1 root     None           24 Mar  9 14:34 test
Administrator@~/test# cat TEST
This file is named TEST
Administrator@~/test# cat test
This file is named test
Administrator@~/test#
"

As you can see, basic file access works fine.  It does not work with
directories, this is a limitation of windows as far as i can tell.
I havent realy tested everything yet.  tar files containing two files
with the same name/different case work right, now.  Under win95, or a
FAT fs in NT, the setting is ignored, so things work exactly like they
did before.  The real problem is when working with these files
under normal windows apps.  If you delete TEST in explorer, test is also
removed.  Ive added an option to the CYGWIN32 env. var. to control the
behavior, CYGWIN32=[no]mixed, and it defaults to nomixed.  Also, I 
changed the /dev/null handler to use "NUL", because "nul" doesnt work
with the posix semantics option.  If ive made any mistakes, or missed
anything, please let me know.  Included is a gzip'd diff with my
changes. 
Also, im about to u/l a compiled cygwinb19.dll to ftp.deninc.com, with
all of Sergey's patches, the console color patch, and the spawnfix
patch.

- Paul.
--------------C82A0920D513B882F8151B85
Content-Type: model/vrml; name="mixedcase.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="mixedcase.diff.gz"

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
Qv8LEg9deDc1AAA=
--------------C82A0920D513B882F8151B85--

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019