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>
|
2007-11-26 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* engine-gpgsm.c (struct engine_gpgsm): Add field INLINE_DATA and
|
* 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 *
|
static char *
|
||||||
find_program_at_standard_place (const char *name)
|
find_program_at_standard_place (const char *name)
|
||||||
{
|
{
|
||||||
@ -266,6 +296,7 @@ find_program_at_standard_place (const char *name)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
_gpgme_get_gpg_path (void)
|
_gpgme_get_gpg_path (void)
|
||||||
{
|
{
|
||||||
@ -275,11 +306,9 @@ _gpgme_get_gpg_path (void)
|
|||||||
if (!gpg_program)
|
if (!gpg_program)
|
||||||
gpg_program = find_program_in_registry ("gpgProgram");
|
gpg_program = find_program_in_registry ("gpgProgram");
|
||||||
if (!gpg_program)
|
if (!gpg_program)
|
||||||
gpg_program = find_program_at_standard_place ("GNU\\GnuPG\\gpg.exe");
|
gpg_program = find_program_in_inst_dir ("gpg.exe");
|
||||||
#ifdef GPG_PATH
|
|
||||||
if (!gpg_program)
|
if (!gpg_program)
|
||||||
gpg_program = GPG_PATH;
|
gpg_program = find_program_at_standard_place ("GNU\\GnuPG\\gpg.exe");
|
||||||
#endif
|
|
||||||
UNLOCK (get_path_lock);
|
UNLOCK (get_path_lock);
|
||||||
return gpg_program;
|
return gpg_program;
|
||||||
}
|
}
|
||||||
@ -293,11 +322,9 @@ _gpgme_get_gpgsm_path (void)
|
|||||||
if (!gpgsm_program)
|
if (!gpgsm_program)
|
||||||
gpgsm_program = find_program_in_registry ("gpgsmProgram");
|
gpgsm_program = find_program_in_registry ("gpgsmProgram");
|
||||||
if (!gpgsm_program)
|
if (!gpgsm_program)
|
||||||
gpgsm_program = find_program_at_standard_place ("GNU\\GnuPG\\gpgsm.exe");
|
gpgsm_program = find_program_in_inst_dir ("gpgsm.exe");
|
||||||
#ifdef GPGSM_PATH
|
|
||||||
if (!gpgsm_program)
|
if (!gpgsm_program)
|
||||||
gpgsm_program = GPGSM_PATH;
|
gpgsm_program = find_program_at_standard_place ("GNU\\GnuPG\\gpgsm.exe");
|
||||||
#endif
|
|
||||||
UNLOCK (get_path_lock);
|
UNLOCK (get_path_lock);
|
||||||
return gpgsm_program;
|
return gpgsm_program;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user