From 72b83ffc4d7581f4efef3bd7c261d7d7424bcf0e Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Tue, 1 Mar 2016 13:11:13 +0100 Subject: [PATCH] w32: Fallback to 2.1 reg key for gpgconf search * src/w32-util.c (_gpgme_get_gpgconf_path): Fallback to 2.1 installer registry key. -- Finding gpgconf is utterly important so we should be as compatible as possible. --- src/w32-util.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/w32-util.c b/src/w32-util.c index a27955b5..0086fe39 100644 --- a/src/w32-util.c +++ b/src/w32-util.c @@ -563,15 +563,26 @@ _gpgme_get_gpgconf_path (void) gpgconf = find_program_at_standard_place (name2); } - /* 3. Try to find gpgconf.exe using that ancient registry key. This - should eventually be removed. */ + /* 3. Try to find gpgconf.exe using the Windows registry. */ if (!gpgconf) { char *dir; - dir = read_w32_registry_string ("HKEY_LOCAL_MACHINE", + dir = read_w32_registry_string (NULL, "Software\\GNU\\GnuPG", "Install Directory"); + if (!dir) + { + char *tmp = read_w32_registry_string (NULL, + "Software\\GnuPG", + "Install Directory"); + if (tmp) + { + if (gpgrt_asprintf (&dir, "%s\\bin", tmp) == -1) + return NULL; + free (tmp); + } + } if (dir) { gpgconf = find_program_in_dir (dir, name);