]> granicus.if.org Git - mutt/commitdiff
Backout 02ff4277259e (see #3948)
authorKevin McCarthy <kevin@8t8.us>
Thu, 8 Jun 2017 20:26:35 +0000 (13:26 -0700)
committerKevin McCarthy <kevin@8t8.us>
Thu, 8 Jun 2017 20:26:35 +0000 (13:26 -0700)
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.

init.c
pgp.c

diff --git a/init.c b/init.c
index 43102378daa37e5cf39262ac59068a7d32be5259..f15a3719c5738520ba0f60555a263d3fe3497495 100644 (file)
--- 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 5c17e94a48c7dde06da93b77246db6a76a06f340..653905f04111f5fb5301abd62bfbddbee7de3c2e 100644 (file)
--- 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)