forked from Mirrors/wine-wine
reg: Stop exporting REG_SZ data at the first NUL character.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>oldstable
parent
62027322b0
commit
0aead094a5
|
@ -39,7 +39,10 @@ static WCHAR *escape_string(WCHAR *str, size_t str_len, size_t *line_len)
|
||||||
for (i = 0, escape_count = 0; i < str_len; i++)
|
for (i = 0, escape_count = 0; i < str_len; i++)
|
||||||
{
|
{
|
||||||
WCHAR c = str[i];
|
WCHAR c = str[i];
|
||||||
if (c == '\r' || c == '\n' || c == '\\' || c == '"' || c == '\0')
|
|
||||||
|
if (!c) break;
|
||||||
|
|
||||||
|
if (c == '\r' || c == '\n' || c == '\\' || c == '"')
|
||||||
escape_count++;
|
escape_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,6 +52,8 @@ static WCHAR *escape_string(WCHAR *str, size_t str_len, size_t *line_len)
|
||||||
{
|
{
|
||||||
WCHAR c = str[i];
|
WCHAR c = str[i];
|
||||||
|
|
||||||
|
if (!c) break;
|
||||||
|
|
||||||
switch (c)
|
switch (c)
|
||||||
{
|
{
|
||||||
case '\r':
|
case '\r':
|
||||||
|
@ -67,10 +72,6 @@ static WCHAR *escape_string(WCHAR *str, size_t str_len, size_t *line_len)
|
||||||
buf[pos++] = '\\';
|
buf[pos++] = '\\';
|
||||||
buf[pos] = '"';
|
buf[pos] = '"';
|
||||||
break;
|
break;
|
||||||
case '\0':
|
|
||||||
buf[pos++] = '\\';
|
|
||||||
buf[pos] = '0';
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
buf[pos] = c;
|
buf[pos] = c;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4679,7 +4679,7 @@ static void test_export(void)
|
||||||
|
|
||||||
run_reg_exe("reg export HKEY_CURRENT_USER\\" KEY_BASE " file.reg", &r);
|
run_reg_exe("reg export HKEY_CURRENT_USER\\" KEY_BASE " file.reg", &r);
|
||||||
ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
|
ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
|
||||||
ok(compare_export("file.reg", embedded_null_test, TODO_REG_COMPARE), "compare_export() failed\n");
|
ok(compare_export("file.reg", embedded_null_test, 0), "compare_export() failed\n");
|
||||||
|
|
||||||
delete_key(HKEY_CURRENT_USER, KEY_BASE);
|
delete_key(HKEY_CURRENT_USER, KEY_BASE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue