locale: [1/1] patch - 0x10000000 flag is NORM_STOP_ON_NULL

Donat Enikeev donat at enikeev.net
Sat Apr 4 16:09:07 CDT 2015

Hi all,

While investigating reasons of one application not running with Wine, I met again:

fixme:nls:CompareStringEx semi-stub behavor for flag(s) 0x10000000

Quite common message affecting a lot of applications. Decided to get to bottom of this. 

Found no information about this flag on MSDN. While it was said in comment at locale.c about some diacritic language specifics I had been digging in wrong direction for a while, and checking .NET equivalents without any success though. Then started to search by 0x10000000 on different codes hosting and found 

const DWORD NORM_STOP_ON_NULL = 0x10000000;

At http://andrew-grechkin.googlecode.com/svn-history/r250/trunk/libbase/include/libbase/pcstr.hpp

So, I assumed that idea of this flag is to stop comparing whenever null is met even if length is defined explicitly. I've checked and confirmed this version on free Windows 10 TechPreview+Visual studio by some tests (sample code and output attached as well) for: CompareStringEx, CompareStringW, CompareStringA

Please have a look, one can imagine case when incorrect processing of this flag could lead to completely unexpected behavior.

P.s. Confirmed correctness of some presenting tests in wine.git

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: output_windows_10.txt
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20150405/e409e504/attachment.txt>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ConsoleApplication1.cpp
Type: text/x-c++
Size: 3192 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20150405/e409e504/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-NORM_STOP_ON_NULL-flag.patch
Type: text/x-diff
Size: 7433 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20150405/e409e504/attachment.patch>

More information about the wine-patches mailing list