[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