aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32-util.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-11-04 07:10:34 +0000
committerWerner Koch <[email protected]>2016-11-04 07:12:44 +0000
commitdf08a0ca3f029b06b7e3a6bd63330df5cb96585a (patch)
treecafc33cc7bebfa122265e745b876e13915e6eeb0 /src/w32-util.c
parentcore: Add gpgme_op_query_swdb and helper. (diff)
downloadgpgme-df08a0ca3f029b06b7e3a6bd63330df5cb96585a.tar.gz
gpgme-df08a0ca3f029b06b7e3a6bd63330df5cb96585a.zip
w32: Fix locating gpgconf on 64 bit systems.
* src/w32-util.c (find_program_at_standard_place): Use access to check whether the binary is at CSIDL_PROGRAM_FILES before testing CSIDL_PROGRAM_FILESX86. -- Suggested-by: ticho Fixes-commit: a82e9b182f62966207cad0972be6fa284329a5a1 GnuPG-bug-id: 2814 Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'src/w32-util.c')
-rw-r--r--src/w32-util.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/w32-util.c b/src/w32-util.c
index 21de6dcf..0dc12881 100644
--- a/src/w32-util.c
+++ b/src/w32-util.c
@@ -415,8 +415,17 @@ find_program_at_standard_place (const char *name)
We First try the generic place and then fallback to the x86
(i.e. 32 bit) place. This will prefer a 64 bit of the program
over a 32 bit version on 64 bit Windows if installed. */
- if (SHGetSpecialFolderPathA (NULL, path, CSIDL_PROGRAM_FILES, 0)
- || SHGetSpecialFolderPathA (NULL, path, CSIDL_PROGRAM_FILESX86, 0))
+ if (SHGetSpecialFolderPathA (NULL, path, CSIDL_PROGRAM_FILES, 0))
+ {
+ result = _gpgme_strconcat (path, "\\", name, NULL);
+ if (result && access (result, F_OK))
+ {
+ free (result);
+ result = NULL;
+ }
+ }
+ if (!result
+ && SHGetSpecialFolderPathA (NULL, path, CSIDL_PROGRAM_FILESX86, 0))
{
result = _gpgme_strconcat (path, "\\", name, NULL);
if (result && access (result, F_OK))