std.path review: update

Steven Schveighoffer schveiguy at yahoo.com
Wed Jul 20 07:09:19 PDT 2011


On Tue, 19 Jul 2011 15:55:29 -0400, Nick Sabalausky <a at a.a> wrote:

> If such mountings are possible, it would seem that there must be some  
> way to
> check the sensitivity (otherwise the OS itself would probably crap out on
> it).

I've done it before, mounted a windows share on a linux box via cifs.

What happens is, everything thinks it's case sensitive (i.e. any  
user-space tools), but when you go to open a file, write a file, rename a  
file, the share performs as if it were case insensitive.

For example:

ls /mnt/winshare

File.txt

find /mnt/winshare -name FILE.TXT

No files found

touch /mnt/winshare/FILE.TXT => updates date/time on File.txt

cat /mnt/winshare/FILE.TXT => outputs File.txt

So as long as you are performing operations *blindly*, the case  
insensitivity kicks in.  For example, open a file without first searching  
for it.  But if you start reading directories, tools have no idea it's on  
a case-insensitive filesystem.

> Although, at least in the case of case-insensitive mountings on posix,
> doesn't that mean such paths would have both case-sensitive and
> case-insensitive parts?
>
> Ex: /mount/damnWinDrive/dir/subdir
>
> Wouldn't the "mount/damnWinDrive" part be case-sensitive and the
> "dir/subdir" part be insensitve?

Yes, actually, this is a very good point.  And there's no way for std.path  
to make that distinction.

> (I'm starting to really despise case-insensitive filesystems.)

I've never understood why they have any benefits whatsoever.  The only  
reason I can think of them having any use is legacy.

-Steve


More information about the Digitalmars-d mailing list