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.
