This is the mail archive of the cygwin 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]

Case sensitive filenames for non-NTFS filesystems


Hi,

As per:

http://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-casesensitive

Cygwin act on filenames on NTFS in with case preservation/sensitivity.

As this was a feature configured in the Windows kernel, the pre-existing
limitation whereby the same case sensitivity was not available for FAT32
was an understandable compromise.

Unfortunately, in providing EXFAT, Microsoft has not seen fit to carry
over the same handling in the kernel as it does in NTFS.

In my opinion, the knock on limitation in Cygwin for FAT32 was easy to
accept as it was quite inferior to NTFS. The limitation with EXFAT is a
little difficult to accept, and this is the motive behind this email.

I don't expect much interest in this suggestion, but make it here to at
least bring awareness to the problem.

Can I suggest that if it is a) feasible b) doable without too much added
degradation in performance/complexity to the file handling code, that
Cygwin add some limited support itself.

I'm not talking about going back to something like the old managed
mounts, but more to its replacement function. That being the same
handling of special characters like :, |, etc that Cygwin employs.

That is, the use of the special Unicode breakout character. It can
be used when a name collision is detected (yes, detection code required.
I don't know how costly that would be). eg.

Hello and HELLO, would end up with something like (posix=0 still
required on mount):

* Hello is created first. No Hello file preexists.
* attempt to create HELLO
* detect file exists as Hello, but filename not equal on case
* detect first case equal character is H.
* Use Unicode breakout on H in HELLO.
* Unfortunately, will need to recurse (expensive) and redo checks above
  (with breakout)

I haven't completely thought this through. And as I typed the above, it
sounds expensive. However, I'd love to hear opinion on this anyway.

Is the trade-off large enough to fall back on the "just use NTFS"
argument?

--
Thanks,
Shaddy

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


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