[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