2007-11-28 Marcus Brinkmann <marcus@g10code.de>
* w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Search for installation directory. Remove old fallback default. (find_program_in_inst_dir): New function.
This commit is contained in:
parent
38167ceddb
commit
6286b436bd
@ -1,3 +1,9 @@
|
||||
2007-11-28 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Search
|
||||
for installation directory. Remove old fallback default.
|
||||
(find_program_in_inst_dir): New function.
|
||||
|
||||
2007-11-26 Werner Koch <wk@g10code.com>
|
||||
|
||||
* engine-gpgsm.c (struct engine_gpgsm): Add field INLINE_DATA and
|
||||
|
@ -244,6 +244,36 @@ find_program_in_registry (const char *name)
|
||||
}
|
||||
|
||||
|
||||
static char *
|
||||
find_program_in_inst_dir (const char *name)
|
||||
{
|
||||
char *result = NULL;
|
||||
char *tmp;
|
||||
|
||||
tmp = read_w32_registry_string ("HKEY_LOCAL_MACHINE",
|
||||
"Software\\GNU\\GnuPG",
|
||||
"Install Directory");
|
||||
if (!tmp)
|
||||
return NULL;
|
||||
|
||||
result = malloc (strlen (tmp) + 1 + strlen (name) + 1);
|
||||
if (!result)
|
||||
{
|
||||
free (tmp);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
strcpy (stpcpy (stpcpy (result, tmp), "\\"), name);
|
||||
free (tmp);
|
||||
if (access (result, F_OK))
|
||||
{
|
||||
free (result);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static char *
|
||||
find_program_at_standard_place (const char *name)
|
||||
{
|
||||
@ -266,6 +296,7 @@ find_program_at_standard_place (const char *name)
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
const char *
|
||||
_gpgme_get_gpg_path (void)
|
||||
{
|
||||
@ -275,11 +306,9 @@ _gpgme_get_gpg_path (void)
|
||||
if (!gpg_program)
|
||||
gpg_program = find_program_in_registry ("gpgProgram");
|
||||
if (!gpg_program)
|
||||
gpg_program = find_program_at_standard_place ("GNU\\GnuPG\\gpg.exe");
|
||||
#ifdef GPG_PATH
|
||||
gpg_program = find_program_in_inst_dir ("gpg.exe");
|
||||
if (!gpg_program)
|
||||
gpg_program = GPG_PATH;
|
||||
#endif
|
||||
gpg_program = find_program_at_standard_place ("GNU\\GnuPG\\gpg.exe");
|
||||
UNLOCK (get_path_lock);
|
||||
return gpg_program;
|
||||
}
|
||||
@ -293,11 +322,9 @@ _gpgme_get_gpgsm_path (void)
|
||||
if (!gpgsm_program)
|
||||
gpgsm_program = find_program_in_registry ("gpgsmProgram");
|
||||
if (!gpgsm_program)
|
||||
gpgsm_program = find_program_at_standard_place ("GNU\\GnuPG\\gpgsm.exe");
|
||||
#ifdef GPGSM_PATH
|
||||
gpgsm_program = find_program_in_inst_dir ("gpgsm.exe");
|
||||
if (!gpgsm_program)
|
||||
gpgsm_program = GPGSM_PATH;
|
||||
#endif
|
||||
gpgsm_program = find_program_at_standard_place ("GNU\\GnuPG\\gpgsm.exe");
|
||||
UNLOCK (get_path_lock);
|
||||
return gpgsm_program;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user