X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=imap%2Fmessage.c;h=949ca2cece0891d86bb109214cb54ea47b6ac253;hp=e4e73616d1706d4feee03847146239caef189997;hb=a0aa3d4bba449529dfed997214b34e309ce451dd;hpb=841a368ddea400022328f35dd8c7a3eb6f543892 diff --git a/imap/message.c b/imap/message.c index e4e7361..949ca2c 100644 --- a/imap/message.c +++ b/imap/message.c @@ -18,6 +18,8 @@ #include #include "mutt.h" +#include "ascii.h" +#include "buffer.h" #include "mutt_curses.h" #include "imap_private.h" #include "message.h" @@ -323,6 +325,7 @@ int imap_fetch_message (MESSAGE * msg, CONTEXT * ctx, int msgno) IMAP_CACHE *cache; int read; int rc; + progress_t bar; /* Sam's weird courier server returns an OK response even when FETCH * fails. Thanks Sam. */ @@ -393,7 +396,12 @@ int imap_fetch_message (MESSAGE * msg, CONTEXT * ctx, int msgno) imap_error ("imap_fetch_message()", buf); goto bail; } - if (imap_read_literal (msg->fp, idata, bytes) < 0) + bar.size = bytes; + bar.msg = _("Fetching message..."); +#ifdef USE_SOCKET + mutt_progress_bar (&bar, 0); +#endif + if (imap_read_literal (msg->fp, idata, bytes, &bar) < 0) goto bail; /* pick up trailing line */ if ((rc = imap_cmd_step (idata)) != IMAP_CMD_CONTINUE) @@ -490,6 +498,8 @@ int imap_append_message (CONTEXT * ctx, MESSAGE * msg) int c, last; IMAP_MBOX mx; int rc; + progress_t bar; + size_t sent; idata = (IMAP_DATA *) ctx->data; @@ -517,6 +527,12 @@ int imap_append_message (CONTEXT * ctx, MESSAGE * msg) } rewind (fp); + bar.msg = _("Uploading message..."); + bar.size = len; +#ifdef USE_SOCKET + mutt_progress_bar (&bar, 0); +#endif + imap_munge_mbox_name (mbox, sizeof (mbox), mailbox); snprintf (buf, sizeof (buf), "APPEND %s (%s%s%s%s%s) {%lu}", mbox, msg->flags.read ? "\\Seen" : "", @@ -546,16 +562,19 @@ int imap_append_message (CONTEXT * ctx, MESSAGE * msg) goto fail; } - mutt_message _("Uploading message ..."); - - for (last = EOF, len = 0; (c = fgetc (fp)) != EOF; last = c) { + for (last = EOF, sent = len = 0; (c = fgetc (fp)) != EOF; last = c) { if (c == '\n' && last != '\r') buf[len++] = '\r'; buf[len++] = c; - if (len > sizeof (buf) - 3) + if (len > sizeof (buf) - 3) { + sent += len; flush_buffer (buf, &len, idata->conn); +#ifdef USE_SOCKET + mutt_progress_bar (&bar, sent); +#endif + } } if (len) @@ -854,7 +873,7 @@ static int msg_fetch_header (CONTEXT * ctx, IMAP_HEADER * h, char *buf, return rc; if (imap_get_literal_count (buf, &bytes) == 0) { - imap_read_literal (fp, idata, bytes); + imap_read_literal (fp, idata, bytes, NULL); /* we may have other fields of the FETCH _after_ the literal * (eg Domino puts FLAGS here). Nothing wrong with that, either.