From: Kevin McCarthy Date: Thu, 8 Jun 2017 20:26:35 +0000 (-0700) Subject: Backout 02ff4277259e (see #3948) X-Git-Tag: mutt-1-9-rel~56 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c823f8b53a0f7874abf5413e20e9856a53a0c151;p=mutt Backout 02ff4277259e (see #3948) Vincent expressed some legitimate concerns about exporting this to all programs lauched by mutt. The user can always set GPG_TTY in their .bashrc if needed for $sendmail. cf90bf5989f3 should resolve the refresh issue. --- diff --git a/init.c b/init.c index 43102378..f15a3719 100644 --- a/init.c +++ b/init.c @@ -3317,7 +3317,6 @@ void mutt_init (int skip_sys_rc, LIST *commands) char *domain = NULL; int i, need_pause = 0; BUFFER err; - char *tty; mutt_buffer_init (&err); err.dsize = STRING; @@ -3511,20 +3510,6 @@ void mutt_init (int skip_sys_rc, LIST *commands) unset_option (OPTSUSPEND); #endif - /* GPG_TTY is used by the ncurses pinentry program for GPG. GPG is - * sometimes also used to decrypt passwords in programs launched by - * mutt, such as using msmtp as $sendmail, so we set it here as - * opposed to inside pgp.c - * - * We also call setenv() because send_msg() is not converted to use - * the mutt envlist. - */ - if ((tty = ttyname(0))) - { - setenv("GPG_TTY", tty, 0); - mutt_envlist_set ("GPG_TTY", tty, 0); - } - mutt_init_history (); /* RFC2368, "4. Unsafe headers" diff --git a/pgp.c b/pgp.c index 5c17e94a..653905f0 100644 --- a/pgp.c +++ b/pgp.c @@ -105,13 +105,21 @@ void pgp_forget_passphrase (void) mutt_message _("PGP passphrase forgotten."); } -/* This function used to do more: check GPG_AGENT_INFO, - * set GPG_TTY. GPG_AGENT_INFO is no longer exported, and GPG_TTY - * is now set in mutt_init(). - */ int pgp_use_gpg_agent (void) { - return option (OPTUSEGPGAGENT); + char *tty; + + /* GnuPG 2.1 no longer exports GPG_AGENT_INFO */ + if (!option (OPTUSEGPGAGENT)) + return 0; + + if ((tty = ttyname(0))) + { + setenv("GPG_TTY", tty, 0); + mutt_envlist_set ("GPG_TTY", tty, 0); + } + + return 1; } static pgp_key_t _pgp_parent(pgp_key_t k)