[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: for the record, my ole32 binary tree search patch is correct
From:       Yuriy Kaminskiy <yumkam () mail ! ru>
Date:       2009-10-29 2:04:39
Message-ID: hcat7n$m9d$1 () ger ! gmane ! org
[Download RAW message or body]

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.



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic