Commit cbbea701 authored by Juanma Barranquero's avatar Juanma Barranquero

addpm.c: Replace existing entries, but do not create new ones

* nt/addpm.c (add_registry): If the Emacs registry key exists, replace
existing values from previous versions, but do not add new ones; the
key could exist for other reasons unrelated to old Emacsen, like X-style
resources, or to set some environment variables like HOME or LANG, and
in that case we don't want to populate it with obsolete values.
parent 8c5747ea
......@@ -186,17 +186,20 @@ add_registry (const char *path)
have any resources. */
if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, 0,
KEY_WRITE, &hrootkey) != ERROR_SUCCESS
KEY_WRITE | KEY_QUERY_VALUE, &hrootkey) != ERROR_SUCCESS
&& RegOpenKeyEx (HKEY_CURRENT_USER, REG_ROOT, 0,
KEY_WRITE, &hrootkey) != ERROR_SUCCESS)
KEY_WRITE | KEY_QUERY_VALUE, &hrootkey) != ERROR_SUCCESS)
return;
for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++)
{
const char * value = env_vars[i].value ? env_vars[i].value : path;
RegSetValueEx (hrootkey, env_vars[i].name, 0, REG_EXPAND_SZ,
value, lstrlen (value) + 1);
/* Replace only those settings that already exist. */
if (RegQueryValueEx (hrootkey, env_vars[i].name, NULL,
NULL, NULL, NULL) == ERROR_SUCCESS)
RegSetValueEx (hrootkey, env_vars[i].name, 0, REG_EXPAND_SZ,
value, lstrlen (value) + 1);
}
RegCloseKey (hrootkey);
......
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