]> granicus.if.org Git - neomutt/commitdiff
Force hard redraw after $sendmail instead of calling mutt_endwin. (closes #3952)...
authorKevin McCarthy <kevin@8t8.us>
Tue, 13 Jun 2017 01:29:48 +0000 (18:29 -0700)
committerRichard Russon <rich@flatcap.org>
Sat, 24 Jun 2017 16:44:07 +0000 (17:44 +0100)
Adding a mutt_endwin() seemed like a clean solution to allowing
ncurses pinentry for $sendmail, but it leaves other users watching a
blank screen.  This change is extremely likely to generate a large
number of complaints and bug reports.  So instead, force a hard
refresh afterwards.

sendlib.c

index 19e350c870536fe6b685794718383ca70c27f2f4..2a2d168aca90e36a842599fe0eb18f1e7b4e54aa 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -2517,7 +2517,13 @@ int mutt_invoke_sendmail(struct Address *from, /* the sender */
 
   args[argslen++] = NULL;
 
-  mutt_endwin(NULL);
+  /* Some user's $sendmail command uses gpg for password decryption,
+   * and is set up to prompt using ncurses pinentry.  If we
+   * mutt_endwin() it leaves other users staring at a blank screen.
+   * So instead, just force a hard redraw on the next refresh. */
+  if (!option(OPTNOCURSES))
+    mutt_need_hard_redraw();
+
   if ((i = send_msg(path, args, msg, option(OPTNOCURSES) ? NULL : &childout)) != (EX_OK & 0xff))
   {
     if (i != S_BKG)