Corinna Vinschen schrieb:
So, in the Linux/FAT example we have a case-sensitive OS with a
case-insensitive FS, with Win32/NTFS (Cygwin/NTFS) we have a
case-insensitive OS with a case-sensitive FS. While the NT kernel can
return information about the case-sensitivity of the underlying FS (***)
(****), I don't know about other OSes.
BTW, I just improved the perl API concerning Win32 case-tolerance.
perldoc File::Spec
Cygwin
Cygwin case-tolerance depends on managed mount settings and as with
MsWin32 on GetVolumeInformation() ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
Default: 1
MsWin32
MSWin32 case-tolerance depends on GetVolumeInformation() ouFsFlags ==
FS_CASE_SENSITIVE, indicating the case significance when comparing file
specifications.
Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
Default: 1
Interestingly:
Epoc, VMS, OS2 and Mac are all case tolerant, too.
So we're back to fpathconf(_PC_CASE_INSENSITIVE): It appears that
case-insensitive operation on the POSIX application level depends on
such a flag. I'm also planning to allow case-sensitive operation on
NTFS in Cygwin at one point, which would make this flag necessary as
well. I don't think it would ever become part of the POSIX standard,
though.
Corinna
(*) In theory, Cygwin's rename could do the same and still move within
POSIX rules, no matter how frustrating this behaviour might be.
(**) Plus a registry setting since XP.
(***) See the FILE_CASE_SENSITIVE_SEARCH file system flag:
http://cygwin.com/ml/cygwin/2007-08/msg00013.html
(****) As far as the underlying FS returns the correct flags, of course.
--
Reini Urban
http://phpwiki.org/ http://murbreak.at/
http://helsinki.at/ http://spacemovie.mur.at/
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/