diff options
| author | Werner Koch <[email protected]> | 2016-11-04 07:10:34 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2016-11-04 07:12:44 +0000 | 
| commit | df08a0ca3f029b06b7e3a6bd63330df5cb96585a (patch) | |
| tree | cafc33cc7bebfa122265e745b876e13915e6eeb0 /src | |
| parent | core: Add gpgme_op_query_swdb and helper. (diff) | |
| download | gpgme-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')
| -rw-r--r-- | src/w32-util.c | 13 | 
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)) | 
