char *p, buffer[STRING];
int need_pause = 0;
struct Buffer err;
- char *tty;
mutt_buffer_init(&err);
err.dsize = STRING;
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"
#include <regex.h>
#include <stdbool.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <time.h>
return 0;
}
-/* 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().
- */
bool pgp_use_gpg_agent(void)
{
- return option (OPTUSEGPGAGENT);
+ char *tty = NULL;
+
+ /* GnuPG 2.1 no longer exports GPG_AGENT_INFO */
+ if (!option(OPTUSEGPGAGENT))
+ return false;
+
+ if ((tty = ttyname(0)))
+ {
+ setenv("GPG_TTY", tty, 0);
+ mutt_envlist_set("GPG_TTY", tty, false);
+ }
+
+ return true;
}
static struct PgpKeyInfo *_pgp_parent(struct PgpKeyInfo *k)