mirror of
git://git.gnupg.org/gnupg.git
synced 2024-11-10 21:38:50 +01:00
scd:w32: Export GNUPGHOME for scd-event.
* scd/app.c (report_change): Set up GNUPGHOME. -- Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
aac5a8f008
commit
c9677e9501
23
scd/app.c
23
scd/app.c
@ -2460,16 +2460,6 @@ app_check_pin (card_t card, ctrl_t ctrl, const char *keyidstr,
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef HAVE_W32_SYSTEM
|
|
||||||
static void
|
|
||||||
setup_env (void *arg)
|
|
||||||
{
|
|
||||||
char *v = arg;
|
|
||||||
|
|
||||||
putenv (v);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
report_change (int slot, int old_status, int cur_status)
|
report_change (int slot, int old_status, int cur_status)
|
||||||
{
|
{
|
||||||
@ -2492,7 +2482,13 @@ report_change (int slot, int old_status, int cur_status)
|
|||||||
xfree (fname);
|
xfree (fname);
|
||||||
|
|
||||||
homestr = make_filename (gnupg_homedir (), NULL);
|
homestr = make_filename (gnupg_homedir (), NULL);
|
||||||
|
#ifdef HAVE_W32_SYSTEM
|
||||||
|
/* An environment block is terminated by two/four zero bytes. It's
|
||||||
|
* four zero bytes for Unicode. Let us always use four zero bytes. */
|
||||||
|
if (gpgrt_asprintf (&envstr, "GNUPGHOME=%s%c%c%c", homestr, 0, 0, 0) < 0)
|
||||||
|
#else
|
||||||
if (gpgrt_asprintf (&envstr, "GNUPGHOME=%s", homestr) < 0)
|
if (gpgrt_asprintf (&envstr, "GNUPGHOME=%s", homestr) < 0)
|
||||||
|
#endif
|
||||||
log_error ("out of core while building environment\n");
|
log_error ("out of core while building environment\n");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2520,8 +2516,11 @@ report_change (int slot, int old_status, int cur_status)
|
|||||||
err = gpgrt_spawn_actions_new (&act);
|
err = gpgrt_spawn_actions_new (&act);
|
||||||
if (!err)
|
if (!err)
|
||||||
{
|
{
|
||||||
#ifndef HAVE_W32_SYSTEM
|
#ifdef HAVE_W32_SYSTEM
|
||||||
gpgrt_spawn_actions_set_atfork (act, setup_env, envstr);
|
gpgrt_spawn_actions_set_envvars (act, envstr);
|
||||||
|
#else
|
||||||
|
char *env[2] = { envstr, NULL };
|
||||||
|
gpgrt_spawn_actions_set_environ (act, env);
|
||||||
#endif
|
#endif
|
||||||
err = gpgrt_process_spawn (fname, args, GPGRT_PROCESS_DETACHED,
|
err = gpgrt_process_spawn (fname, args, GPGRT_PROCESS_DETACHED,
|
||||||
act, NULL);
|
act, NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user