for the record, my ole32 binary tree search patch is correct

Yuriy Kaminskiy yumkam at mail.ru
Wed Oct 28 21:04:39 CDT 2009


On 28.10.2009 20:30, Vincent Povirk wrote:
>> If I've not mistaken, that uses lstricmp internally for comparing keys.
> 
> It uses lstrcmpiW, which according to MSDN can behave differently
> based on locale, but I don't think the Wine version does.

Note, that, it is not only difference in >0x7f "nls" chars (somewhat
"expected"), there are difference in ascii range too (see that test from
test/locale.c). [I'm saying about difference between wine vs. windows; I'm not
sure if windows lstricmpW /really/ work differently in different locales]

[...]
> I think what saves us is that programs rarely expose storage and
> stream names directly to users, so the set of characters we have to
> deal with in practice is limited.

I've looked at some .msi files - stream names contain problematic characters:
'.' vs. '_' (mismatches between wine and windows; there are more such chars),
'_' vs. '0' (mismatches between strcasecmp and strcoll|lstricmp).

So, while "problematic" files maybe very rare, but not impossible.

> Still, we really should use a comparison function that's at least
> guaranteed to be consistent.




More information about the wine-devel mailing list