summarylogtreecommitdiffstats
path: root/228671-pipe-mime.patch
blob: 04debc45232d6e32027697caef1f0162f82d9826 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
From: Antonio Radici <antonio@debian.org>
Date: Thu, 27 Feb 2014 17:11:56 +0100
Subject: 228671-pipe-mime

Don't draw imap fetch progress if we aren't in visual mode.
Drawing progress leaves terminal in confusing state when
piping a message from pager to less(1).
See http://bugs.mutt.org/1771

Updated in Debian bug #569279

Gbp-Pq: Topic upstream
---
 imap/message.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/imap/message.c b/imap/message.c
index 3c9822f..3504be8 100644
--- a/imap/message.c
+++ b/imap/message.c
@@ -398,7 +398,7 @@ int imap_fetch_message (MESSAGE *msg, CONTEXT *ctx, int msgno)
   char path[_POSIX_PATH_MAX];
   char *pc;
   long bytes;
-  progress_t progressbar;
+  progress_t progressbar, *pbar;
   int uid;
   int cacheno;
   IMAP_CACHE *cache;
@@ -495,9 +495,15 @@ int imap_fetch_message (MESSAGE *msg, CONTEXT *ctx, int msgno)
 	    imap_error ("imap_fetch_message()", buf);
 	    goto bail;
 	  }
-	  mutt_progress_init (&progressbar, _("Fetching message..."),
-			      M_PROGRESS_SIZE, NetInc, bytes);
-	  if (imap_read_literal (msg->fp, idata, bytes, &progressbar) < 0)
+	  if (!isendwin())
+	  {
+	    mutt_progress_init (&progressbar, _("Fetching message..."),
+                               M_PROGRESS_SIZE, NetInc, bytes);
+	    pbar = &progressbar;
+	  }
+	  else
+	    pbar = NULL;
+	  if (imap_read_literal (msg->fp, idata, bytes, pbar) < 0)
 	    goto bail;
 	  /* pick up trailing line */
 	  if ((rc = imap_cmd_step (idata)) != IMAP_CMD_CONTINUE)