[PATCH 1/2] reg: Delete the default registry value instead of overwriting it
Hugh McMaster
hugh.mcmaster at outlook.com
Wed Mar 2 04:31:18 CST 2016
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
programs/reg/reg.c | 8 ++------
programs/reg/tests/reg.c | 2 +-
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/programs/reg/reg.c b/programs/reg/reg.c
index bad9274..6ae4aa1 100644
--- a/programs/reg/reg.c
+++ b/programs/reg/reg.c
@@ -525,19 +525,15 @@ static int reg_delete(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
/* FIXME delete failed */
}
}
- else if (value_name)
+ else if (value_name || value_empty)
{
- if (RegDeleteValueW(subkey,value_name) != ERROR_SUCCESS)
+ if (RegDeleteValueW(subkey, value_empty ? NULL : value_name) != ERROR_SUCCESS)
{
RegCloseKey(subkey);
output_message(STRING_CANNOT_FIND);
return 1;
}
}
- else if (value_empty)
- {
- RegSetValueExW(subkey,NULL,0,REG_SZ,NULL,0);
- }
RegCloseKey(subkey);
output_message(STRING_SUCCESS);
diff --git a/programs/reg/tests/reg.c b/programs/reg/tests/reg.c
index d03fb2c..93de7ec 100644
--- a/programs/reg/tests/reg.c
+++ b/programs/reg/tests/reg.c
@@ -441,7 +441,7 @@ static void test_delete(void)
run_reg_exe("reg delete HKCU\\" KEY_BASE " /ve /f", &r);
ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
err = RegQueryValueExA(hkey, "", NULL, NULL, NULL, NULL);
- todo_wine ok(err == ERROR_FILE_NOT_FOUND, "got %d\n", err);
+ ok(err == ERROR_FILE_NOT_FOUND, "got %d, expected 2\n", err);
run_reg_exe("reg delete HKCU\\" KEY_BASE " /va /f", &r);
ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
--
1.9.1
More information about the wine-patches
mailing list