[Bug 9583] CompareStringW gives incorrect result for some wide strings

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Sep 11 02:56:49 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=9583

--- Comment #22 from Virgo Pärna <virgo at gaiasoft.ee> ---
I'm not a C programmer, but as  far as can see:
Any call to CompareString or CompareStringEx ends up calling
wine_compare_string. And at that moment any locale information passed together
with CompareString or CompareStringEx call (as lcid or locale parameter) is
lost. 
wine_comparer_string ends up calling compare_unicode_weights. And
CompareString/CompareStringEx end up reporting strings equal only if that call
reports  them equal (returns 0).
And compare_unicode_weights uses collation_table. And that part of the code is
little bit too complex to me. But it appears that collation_table is compiled
in and is incorrect for this use.
Someone, that is better at C, can correct me, if I misunderstood something.
CompareStringEx is in locale.c
wine_compare_string and compare_unicode_weights are in sortkey.c 
collation_table is in collation.c

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list