reg: Clean-up and inform the user if RegDeleteValueW fails when deleting all values in a registry key
Hugh McMaster
hugh.mcmaster at outlook.com
Thu Mar 31 04:26:56 CDT 2016
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
programs/reg/reg.c | 11 ++++++-----
programs/reg/reg.h | 1 +
programs/reg/reg.rc | 1 +
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/programs/reg/reg.c b/programs/reg/reg.c
index b2066e0..e56ddfe 100644
--- a/programs/reg/reg.c
+++ b/programs/reg/reg.c
@@ -512,14 +512,15 @@ static int reg_delete(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
{
rc = RegDeleteValueW(subkey, szValue);
if (rc != ERROR_SUCCESS)
- break;
+ {
+ HeapFree(GetProcessHeap(), 0, szValue);
+ RegCloseKey(subkey);
+ output_message(STRING_VALUEALL_FAILED, key_name);
+ return 1;
+ }
}
else break;
}
- if (rc != ERROR_SUCCESS)
- {
- /* FIXME delete failed */
- }
}
else if (value_name || value_empty)
{
diff --git a/programs/reg/reg.h b/programs/reg/reg.h
index 679c72e..d84dbd9 100644
--- a/programs/reg/reg.h
+++ b/programs/reg/reg.h
@@ -44,3 +44,4 @@
#define STRING_DELETE_VALUEALL 121
#define STRING_DELETE_SUBKEY 122
#define STRING_INVALID_STRING 123
+#define STRING_VALUEALL_FAILED 124
diff --git a/programs/reg/reg.rc b/programs/reg/reg.rc
index d153758..297ed48 100644
--- a/programs/reg/reg.rc
+++ b/programs/reg/reg.rc
@@ -49,4 +49,5 @@ STRINGTABLE
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_INVALID_STRING, "reg: The option [/d] must be followed by a valid string\n"
+ STRING_VALUEALL_FAILED, "reg: Unable to delete all registry values in '%1'. An unexpected error occurred.\n"
}
--
1.9.1
More information about the wine-patches
mailing list