summaryrefslogtreecommitdiff
path: root/nt
diff options
context:
space:
mode:
authorJason Rumney <jasonr@gnu.org>2006-03-12 18:10:29 +0000
committerJason Rumney <jasonr@gnu.org>2006-03-12 18:10:29 +0000
commitebe98f49a57811a9952e26358540947cb87338ab (patch)
tree45a3cc081224455a8cf7b2cf5c3ef37657f6ebae /nt
parent92cc46af58f3dd51f2b87898b46851189207f0d0 (diff)
downloademacs-ebe98f49a57811a9952e26358540947cb87338ab.tar.gz
(add_registry): Don't change the registry unless keys
already exist from a previous version.
Diffstat (limited to 'nt')
-rw-r--r--nt/ChangeLog3
-rw-r--r--nt/addpm.c18
2 files changed, 14 insertions, 7 deletions
diff --git a/nt/ChangeLog b/nt/ChangeLog
index 9cf0aef8532..e0a5a417528 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,5 +1,8 @@
2006-03-12 Jason Rumney <jasonr@gnu.org>
+ * addpm.c (add_registry): Don't change the registry unless keys
+ already exist from a previous version.
+
* makefile.w32-in (install): Use -q when invoking addpm.
* addpm.c (main): Accept -q as alternative for /q.
diff --git a/nt/addpm.c b/nt/addpm.c
index e882b23b5b1..08d84c70b81 100644
--- a/nt/addpm.c
+++ b/nt/addpm.c
@@ -71,19 +71,23 @@ add_registry (path)
char *path;
{
HKEY hrootkey = NULL;
- DWORD dwDisp;
int i;
BOOL ok = TRUE;
+ /* Previous versions relied on registry settings, but we do not need
+ them any more. If registry settings are installed from a previous
+ version, replace them to ensure they are the current settings.
+ Otherwise, do nothing. */
+
/* Check both the current user and the local machine to see if we
have any resources. */
- if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT,
- 0, "", REG_OPTION_NON_VOLATILE,
- KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS
- && RegCreateKeyEx (HKEY_CURRENT_USER, REG_ROOT,
- 0, "", REG_OPTION_NON_VOLATILE,
- KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS)
+ if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT,
+ REG_OPTION_NON_VOLATILE,
+ KEY_WRITE, &hrootkey) != ERROR_SUCCESS
+ && RegOpenKeyEx (HKEY_CURRENT_USER, REG_ROOT,
+ REG_OPTION_NON_VOLATILE,
+ KEY_WRITE, &hrootkey) != ERROR_SUCCESS)
{
return FALSE;
}