From: Antonio Radici 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)