aboutsummaryrefslogtreecommitdiffstats
path: root/util/w32reg.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2005-02-04 10:18:46 +0000
committerWerner Koch <[email protected]>2005-02-04 10:18:46 +0000
commite011ee08e285adfc2b0d319482a76086b96fa5d5 (patch)
tree87c04978bc50696f0c91a0aa046fb91ff623d294 /util/w32reg.c
parent* libcurl.m4: More comments. (diff)
downloadgnupg-e011ee08e285adfc2b0d319482a76086b96fa5d5.tar.gz
gnupg-e011ee08e285adfc2b0d319482a76086b96fa5d5.zip
(GNUPG_CHECK_GNUMAKE): Removed. Not needed for
decent automakes.
Diffstat (limited to '')
-rw-r--r--util/w32reg.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/util/w32reg.c b/util/w32reg.c
index edc77ced9..f8e81b478 100644
--- a/util/w32reg.c
+++ b/util/w32reg.c
@@ -1,5 +1,5 @@
/* w32reg.c - MS-Windows Registry access
- * Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -77,14 +77,22 @@ read_w32_registry_string( const char *root, const char *dir, const char *name )
{
if (root)
return NULL; /* no need for a RegClose, so return direct */
- /* It seems to be common practise to fall back to HLM. */
+ /* It seems to be common practise to fall back to HKLM. */
if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, dir, 0, KEY_READ, &key_handle) )
return NULL; /* still no need for a RegClose, so return direct */
}
nbytes = 1;
- if( RegQueryValueEx( key_handle, name, 0, NULL, NULL, &nbytes ) )
- goto leave;
+ if( RegQueryValueEx( key_handle, name, 0, NULL, NULL, &nbytes ) ) {
+ if (root)
+ goto leave;
+ /* Try to fallback to HKLM also vor a missing value. */
+ RegCloseKey (key_handle);
+ if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, dir, 0, KEY_READ, &key_handle) )
+ return NULL; /* Nope. */
+ if (RegQueryValueEx( key_handle, name, 0, NULL, NULL, &nbytes))
+ goto leave;
+ }
result = malloc( (n1=nbytes+1) );
if( !result )
goto leave;