Commit 62027322 authored by Hugh McMaster's avatar Hugh McMaster Committed by Alexandre Julliard

regedit: Stop exporting REG_SZ data at the first NUL character.

parent 794d30dc
...@@ -1171,7 +1171,10 @@ static WCHAR *REGPROC_escape_string(WCHAR *str, size_t str_len, size_t *line_len ...@@ -1171,7 +1171,10 @@ static WCHAR *REGPROC_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++;
} }
...@@ -1181,6 +1184,8 @@ static WCHAR *REGPROC_escape_string(WCHAR *str, size_t str_len, size_t *line_len ...@@ -1181,6 +1184,8 @@ static WCHAR *REGPROC_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':
...@@ -1199,10 +1204,6 @@ static WCHAR *REGPROC_escape_string(WCHAR *str, size_t str_len, size_t *line_len ...@@ -1199,10 +1204,6 @@ static WCHAR *REGPROC_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;
} }
......
...@@ -3688,7 +3688,7 @@ static void test_export(void) ...@@ -3688,7 +3688,7 @@ static void test_export(void)
RegCloseKey(hkey); RegCloseKey(hkey);
run_regedit_exe("regedit.exe /e file.reg HKEY_CURRENT_USER\\" KEY_BASE); run_regedit_exe("regedit.exe /e file.reg HKEY_CURRENT_USER\\" KEY_BASE);
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);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment