This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: file name case sensitivity

Sorry this is getting a bit OT...

Shankar Unni wrote:
> Very interesting. Once you do create such files [...], will regular
> Windows programs be able to even look at that directory? Or will
> they choke on those names [...] ?

Obviously, you need to do something special to get at the
files or there would be no need for such a library. But is
this really worse than the alternative, where (for example)
writing to nul.c may be silently ignored?

Once you've created such a file/directory, you will be able
to see it in a directory listing, but you can't use default
case-insensitive Win32 calls to get at them directly. Or at
least not all the files: you can still open/rename/delete
files differing only by case, just one at a time. Microsoft
has already added FILE_FLAG_POSIX_SEMANTICS to CreateFile()
to allow you to create/open/delete such files, although they
didn't go far enough and didn't apply it to other calls such
as MoveFile() and CreateDirectory(). I'm hoping CaseWise can
fill that gap.

As the name implies, the primary purpose of CaseWise is to
support mixed cases such as makefile/Makefile. Microsoft has
already made a half-hearted attempt at this, so finishing the
job should be fair game. The current pre-0.1 implementation
of CaseWise doesn't even allow you to create files with names
like "prn.c" and "nul.txt", although I did plan to address
this before posting it to SourceForge. I'm sure somebody will
post a patch ;-) to CaseWise that will allow it to optionally
suppress writing of such files.

But as I said, this is OT for Cygwin. Even if it is added to
Cygwin, it will almost certainly not be the default behavior.
But for people like me trying to maintain Cygwin versions of
Unix projects, it could be a real boon.


Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]