mirror of
https://github.com/reactos/reactos.git
synced 2025-04-05 05:01:03 +00:00
Merge 8639274622
into 467dec4d16
This commit is contained in:
commit
0e1242dc46
1 changed files with 44 additions and 0 deletions
|
@ -772,11 +772,42 @@ invalid:
|
||||||
static WCHAR *hex_data_state(struct parser *parser, WCHAR *pos)
|
static WCHAR *hex_data_state(struct parser *parser, WCHAR *pos)
|
||||||
{
|
{
|
||||||
WCHAR *line = pos;
|
WCHAR *line = pos;
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
WCHAR Buffer[10] = { 0 };
|
||||||
|
WCHAR* ret;
|
||||||
|
BOOL unicode_in_ansi = FALSE;
|
||||||
|
BOOL result;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!*line)
|
if (!*line)
|
||||||
goto set_value;
|
goto set_value;
|
||||||
|
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
if ((!parser->is_unicode) &&
|
||||||
|
(parser->data_type == REG_EXPAND_SZ) &&
|
||||||
|
(parser->parse_type == REG_BINARY))
|
||||||
|
{
|
||||||
|
memcpy(Buffer, pos, 18);
|
||||||
|
Buffer[9] = UNICODE_NULL;
|
||||||
|
ret = wcsstr(Buffer, L"00,"); // Any UNICODE characters?
|
||||||
|
unicode_in_ansi = (ret != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (unicode_in_ansi)
|
||||||
|
{
|
||||||
|
parser->is_unicode = TRUE;
|
||||||
|
result = convert_hex_csv_to_hex(parser, &line);
|
||||||
|
parser->is_unicode = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = convert_hex_csv_to_hex(parser, &line);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!result)
|
||||||
|
#else
|
||||||
if (!convert_hex_csv_to_hex(parser, &line))
|
if (!convert_hex_csv_to_hex(parser, &line))
|
||||||
|
#endif
|
||||||
goto invalid;
|
goto invalid;
|
||||||
|
|
||||||
if (parser->backslash)
|
if (parser->backslash)
|
||||||
|
@ -785,7 +816,20 @@ static WCHAR *hex_data_state(struct parser *parser, WCHAR *pos)
|
||||||
return line;
|
return line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
if (unicode_in_ansi)
|
||||||
|
{
|
||||||
|
parser->is_unicode = TRUE;
|
||||||
|
prepare_hex_string_data(parser);
|
||||||
|
parser->is_unicode = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
prepare_hex_string_data(parser);
|
||||||
|
}
|
||||||
|
#else
|
||||||
prepare_hex_string_data(parser);
|
prepare_hex_string_data(parser);
|
||||||
|
#endif
|
||||||
|
|
||||||
set_value:
|
set_value:
|
||||||
set_state(parser, SET_VALUE);
|
set_state(parser, SET_VALUE);
|
||||||
|
|
Loading…
Reference in a new issue