ntdll: rtlstr.c: Implement checking for control characters in RtlIsTextUnicode [try 4]
zac at zacbrown.org
Thu Jun 19 22:59:36 CDT 2008
Zac Brown wrote:
> Michael Karcher wrote:
>> Am Donnerstag, den 19.06.2008, 12:52 -0700 schrieb Zac Brown:
>>> - Because these tests are mutually exclusive, a single goto label suffices for
>>> breaking the loop.
>> As written, your tests are not mutually exclusive. It could happen that
>> flags has IS_TEXT_UNICODE_CONTROLS and IS_TEXT_UNICODE_REVERSE_CONTROLS,
>> set and out_flags contains IS_TEXT_UNICODE_REVERSE_SIGNATURE. (If the
>> caller doesn't provide flags, both flags are set, in fact!) In that
>> case, both conditions of your if statements are true.
>> I don't know whether that means that you need two goto targets or that
>> your logic should be changed, but I suspect the latter. If you test for
>> reversed control characters only I a reversed BOM was found, you should
>> not test for non-reversed control characters if a reversed BOM was
>> found, according to my intuition.
>> Michael Karcher
> Hmmm this is true. Added a test in the first if statement to do something like:
> if((flags & IS_TEXT_UNICODE_CONTROL) && (out_flags & IS_TEXT_UNICODE_SIGNATRUE))
> causes a wine test to fail.
> So either I need a goto at the end of the first if statement before the closing
> brace, or I need to adjust some other things in the code.
> Any thoughts from anyone on the proper way to approach this ;). I'd like to get
> this one done before try 10 (haha).
Actually I guess just make it an if..else..if would work too.
More information about the wine-devel