reg: Only prompt the user to overwrite registry data if the given key already exists and [/f] is not supplied.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Hugh McMaster 2021-05-03 23:20:37 +10:00 committed by Alexandre Julliard
parent d433d1f122
commit cf1e6d3f3f
1 changed files with 3 additions and 3 deletions

View File

@ -154,18 +154,18 @@ static int run_add(HKEY root, WCHAR *path, WCHAR *value_name, BOOL value_empty,
WCHAR *type, WCHAR separator, WCHAR *data, BOOL force) WCHAR *type, WCHAR separator, WCHAR *data, BOOL force)
{ {
HKEY hkey; HKEY hkey;
DWORD data_type, data_size; DWORD dispos, data_type, data_size;
BYTE *reg_data = NULL; BYTE *reg_data = NULL;
LONG rc; LONG rc;
if (RegCreateKeyExW(root, path, 0, NULL, REG_OPTION_NON_VOLATILE, if (RegCreateKeyExW(root, path, 0, NULL, REG_OPTION_NON_VOLATILE,
KEY_READ|KEY_WRITE, NULL, &hkey, NULL)) KEY_READ|KEY_WRITE, NULL, &hkey, &dispos))
{ {
output_message(STRING_ACCESS_DENIED); output_message(STRING_ACCESS_DENIED);
return 1; return 1;
} }
if (!force) if (!force && dispos == REG_OPENED_EXISTING_KEY)
{ {
if (RegQueryValueExW(hkey, value_name, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) if (RegQueryValueExW(hkey, value_name, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
{ {