w32: Add another fallback to look for gpgconf.exe

* src/w32-util.c (_gpgme_get_gpgconf_path): Add fallback for
GnuPG VS-Desktop install scheme.

--
GnuPG VS-Desktop has the install layout:

%PROGRAMFILES%\GnuPG VS-Desktop\bin\libgpgme.dll
%PROGRAMFILES%\GnuPG VS-Desktop\GnuPG\bin\gpgconf.exe

This fallback is of course only required if the registry
string pointing to the correct install directory is
broken.

GnuPG-Bug-Id: T6131
This commit is contained in:
Andre Heinecke 2022-08-12 15:16:36 +02:00
parent 586846209b
commit 5f51a9b458
No known key found for this signature in database
GPG Key ID: EF20562ABF3290E6

View File

@ -645,7 +645,7 @@ _gpgme_get_gpgconf_path (void)
gpgconf = find_program_at_standard_place ("GNU\\GnuPG\\gpgconf.exe");
}
/* 5. Try to find gpgconf.exe relative to us. */
/* 5. Try to find gpgconf.exe relative to us as Gpg4win installs it. */
if (!gpgconf && inst_dir)
{
char *dir = _gpgme_strconcat (inst_dir, "\\..\\..\\GnuPG\\bin", NULL);
@ -653,7 +653,15 @@ _gpgme_get_gpgconf_path (void)
free (dir);
}
/* 5. Print a debug message if not found. */
/* 6. Try to find gpgconf.exe relative to us as GnuPG VSD installs it. */
if (!gpgconf && inst_dir)
{
char *dir = _gpgme_strconcat (inst_dir, "\\..\\GnuPG\\bin", NULL);
gpgconf = find_program_in_dir (dir, name);
free (dir);
}
/* Print a debug message if not found. */
if (!gpgconf)
_gpgme_debug (NULL, DEBUG_ENGINE, -1, NULL, NULL, NULL,
"_gpgme_get_gpgconf_path: '%s' not found",name);