X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=pgp.c;h=74f73a925961259a34f799dbf5f32faf30cf06c3;hb=5bba49f1904801c2221426a7d8e2cc5cce055f02;hp=93c773338651e9790fad1dbe433fbf918a4cabcb;hpb=355d6c883e8aafb8f424c22aa576cf8262ed9e58;p=apps%2Fmadmutt.git diff --git a/pgp.c b/pgp.c index 93c7733..74f73a9 100644 --- a/pgp.c +++ b/pgp.c @@ -103,10 +103,19 @@ void pgp_forget_passphrase (void) mutt_message _("PGP passphrase forgotten."); } -int pgp_use_gpg_agent (void) -{ - return option (OPTUSEGPGAGENT) && getenv ("GPG_TTY") - && getenv ("GPG_AGENT_INFO"); +int pgp_use_gpg_agent (void) { + char *tty, *ttybuf; + + if (!option (OPTUSEGPGAGENT) || !getenv ("GPG_AGENT_INFO")) + return 0; + + if ((tty = ttyname(0)) && + ((ttybuf = mem_malloc (sizeof("GPG_TTY") + strlen(tty) + 1)))) { + snprintf (ttybuf, sizeof (ttybuf), "GPG_TTY=%s", tty); + putenv (ttybuf); + } + + return 1; } char *pgp_keyid (pgp_key_t k)