From e011ee08e285adfc2b0d319482a76086b96fa5d5 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 4 Feb 2005 10:18:46 +0000 Subject: (GNUPG_CHECK_GNUMAKE): Removed. Not needed for decent automakes. --- util/w32reg.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'util/w32reg.c') 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; -- cgit v1.2.3