mirror of
https://github.com/reactos/reactos.git
synced 2025-06-25 17:59:43 +00:00
[RTL] Fix RtlIsValidOemCharacter implementation for Multibyte code pages
CORE-17571
This commit is contained in:
parent
1b08836338
commit
49fcbe7cd8
1 changed files with 16 additions and 5 deletions
|
@ -519,16 +519,24 @@ RtlIsValidOemCharacter(IN PWCHAR Char)
|
||||||
/* If multi-byte code page present */
|
/* If multi-byte code page present */
|
||||||
if (NlsMbOemCodePageTag)
|
if (NlsMbOemCodePageTag)
|
||||||
{
|
{
|
||||||
USHORT Offset = 0;
|
USHORT Offset;
|
||||||
|
|
||||||
OemChar = NlsUnicodeToMbOemTable[*Char];
|
OemChar = NlsUnicodeToMbOemTable[*Char];
|
||||||
|
|
||||||
/* If character has Lead Byte */
|
/* If character has Lead Byte */
|
||||||
if (NlsOemLeadByteInfo[HIBYTE(OemChar)])
|
Offset = NlsOemLeadByteInfo[HIBYTE(OemChar)];
|
||||||
Offset = NlsOemLeadByteInfo[HIBYTE(OemChar)];
|
if (Offset)
|
||||||
|
{
|
||||||
|
/* Use DBCS table */
|
||||||
|
UnicodeChar = NlsOemLeadByteInfo[Offset + LOBYTE(OemChar)];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UnicodeChar = NlsOemToUnicodeTable[OemChar];
|
||||||
|
}
|
||||||
|
|
||||||
/* Receive Unicode character from the table */
|
/* Upcase */
|
||||||
UnicodeChar = RtlpUpcaseUnicodeChar(NlsOemToUnicodeTable[LOBYTE(OemChar) + Offset]);
|
UnicodeChar = RtlpUpcaseUnicodeChar(UnicodeChar);
|
||||||
|
|
||||||
/* Receive OEM character from the table */
|
/* Receive OEM character from the table */
|
||||||
OemChar = NlsUnicodeToMbOemTable[UnicodeChar];
|
OemChar = NlsUnicodeToMbOemTable[UnicodeChar];
|
||||||
|
@ -544,7 +552,10 @@ RtlIsValidOemCharacter(IN PWCHAR Char)
|
||||||
|
|
||||||
/* Not valid character, failed */
|
/* Not valid character, failed */
|
||||||
if (OemChar == NlsOemDefaultChar)
|
if (OemChar == NlsOemDefaultChar)
|
||||||
|
{
|
||||||
|
DPRINT1("\\u%04x is not valid for OEM\n", *Char);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
*Char = UnicodeChar;
|
*Char = UnicodeChar;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue