Re: [Bug 161797] Save as... fails in win32 when curdir is on server



Tor Lillqvist writes:
 > I will check how the Win32 FoldString() behaves, and if it matches the
 > Win32 subsystem's filename casefolding behaviour. 

Nah, FoldString doesn't do casefolding. LCMapString does, but that is
then locale-specific.

Some googling revealed that on NTFS the casefolding behaviour is
actually per-volume! It's defined in a case-mapping table in a hidden
file called $UpCase on each NTFS volume. Sigh.

I wonder how much variation there are in the contents of the $UpCase
files on NTFS volumes on the Windows machines out there? Do different
Windows versions generate slightly different $UpCase table when
formatting NTFS volumes? Or does it even depend on the locale of the
user doing the formatting? Anyway, it's of course impossible to open
and read the $UpCase file. This is getting way too complex...

BTW, the Linux NTFS driver has code to produce a "default" $UpCase
table (fs/ntfs/upcase.c). But that code is GPL, so it can't be
included in GTK+ as such. I could of course just run the code and
include the generated data in GTK+. But is worth it? Would it be good
enough to just casefold the ASCII characters when comparing Win32 path
names in GTK+?

--tml





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]