aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2016-03-01 12:11:13 +0000
committerAndre Heinecke <[email protected]>2016-07-05 19:51:24 +0000
commit72b83ffc4d7581f4efef3bd7c261d7d7424bcf0e (patch)
treee1a0a9cad2f1dd4e0ed5f75d22cb23e546bd430a
parentDoc: Document pinentry mode (diff)
downloadgpgme-72b83ffc4d7581f4efef3bd7c261d7d7424bcf0e.tar.gz
gpgme-72b83ffc4d7581f4efef3bd7c261d7d7424bcf0e.zip
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.
-rw-r--r--src/w32-util.c17
1 files 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);