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