ntdll: rtlstr.c: Implement checking for control characters in RtlIsTextUnicode [try 4]
Roy Shea
royshea at gmail.com
Fri Jun 20 10:36:24 CDT 2008
Hello Zac,
> Does anyone have feedback on whether they believe the tests for normal
> control characters vs reversed control characters should be mutually
> exlusive?
I took a look at the documentation. My read is that the tests are not
mutually exclusive.
Given your current version and my reading of the documentation you would
need two separate goto targets: control_char_done and
reverse_control_char_done.
Note that all of this is based on my reading of the documentation.
You'll need to dig into some Windows testing. Off the top of my head I
would try a set of four tests:
Flags IS_TEXT_UNICODE_CONTROLS and IS_TEXT_UNICODE_REVERSE_CONTROLS set
and then pass in a string:
- with no controls
- with unicode control
- with reversed unicode control
- with both
This teases out if your IS_TEXT_UNICODE_CONTROLS needs to expand its
conditional with:
----
!(out_flags & IS_TEXT_UNICODE_REVERSE_SIGNATURE)
----
and provides evidence as to the mutual exclusivity of the two tests.
For full Windows compliance you could also test:
- only the IS_TEXT_UNICODE_CONTROLS flag and a string with reversed
unicode controls (does it set the flag for reversed controls?)
- only the IS_TEXT_UNICODE_REVERSE_CONTROLS flag and a string with
unicode controls (does it set the flag for controls?)
One additional point. The documentation explicitly notes that:
"Only flags that are set upon input to the function are significant upon
output."
Based on the documentation, setting extra flags should not be a problem.
But for full conformance with Windows, you may not have this
flexibility.
Best of luck!
-Roy
More information about the wine-devel
mailing list