RtlUpperChar (was: some ntdll functions) [Virus checked]
thomas.mertes at t-mobile.at
thomas.mertes at t-mobile.at
Wed Feb 5 08:00:37 CST 2003
"Dmitry Timoshkov" <dmitry at baikal.ru> wrote:
> > IMHO RtlUpperChar has nothing to do for unicode chars.
> > Is there a way to use Wine internal code page to do the conversion
without
> > converting to unicode and back?
>
> Wine has only unicode case conversion tables and currently there is no
way
> to avoid forth and back conversions.
My solution for this is:
/**************************************************************************
* RtlUpperChar (NTDLL.@)
*/
CHAR WINAPI RtlUpperChar( CHAR ch )
{
WCHAR wch;
wch = toupperW(((WCHAR) ch) & 0xff);
if (wch >> 8) {
return ch;
} else {
return (CHAR) wch;
}
}
This would mean: Some ISO Latin 1 characters would be converted
additionally
to 'a' .. 'z'.
I did a test on w2k trying to convert all chars between 0 and 255.
The result was:
Just 'a' .. 'z' are converted to 'A' .. 'Z', all other characters remain
unchanged.
I switched the machine between 'EN' (English) and 'DE' (German) and no
difference.
May be this was the wrong place to switch the locale / code pages ...
My guess is:
RtlUpperChar does not take the locale into account. It always convertes
just
'a' .. 'z' and nothing else.
Is this the right direction or did I miss something?
Greetings
Thomas
More information about the wine-devel
mailing list