]> granicus.if.org Git - neomutt/commitdiff
factor out Context from mutt_append_message()
authorRichard Russon <rich@flatcap.org>
Thu, 22 Nov 2018 13:01:49 +0000 (13:01 +0000)
committerRichard Russon <rich@flatcap.org>
Thu, 22 Nov 2018 13:45:24 +0000 (13:45 +0000)
commands.c
copy.c
copy.h
editmsg.c
mx.c

index ec4cacc546e0463f1ac275b41b35a1ba56883df6..6c0d762571e9b2a72097920b4a2b1b80fcb5fad9 100644 (file)
@@ -846,7 +846,7 @@ int mutt_save_message_ctx(struct Email *e, bool delete, bool decode,
   if (decode || decrypt)
     mutt_parse_mime_message(Context->mailbox, e);
 
-  rc = mutt_append_message(ctx, Context, e, cmflags, chflags);
+  rc = mutt_append_message(ctx->mailbox, Context->mailbox, e, cmflags, chflags);
   if (rc != 0)
     return rc;
 
diff --git a/copy.c b/copy.c
index d7aac7da575dcd24a01d58edcf5cb5d352a57f7e..0b0fcedb95c31110423798ae11b15cf2ba0a33f6 100644 (file)
--- a/copy.c
+++ b/copy.c
@@ -860,14 +860,14 @@ static int append_message(struct Mailbox *dest, FILE *fpin, struct Mailbox *src,
  * @retval  0 Success
  * @retval -1 Failure
  */
-int mutt_append_message(struct Context *dest, struct Context *src,
+int mutt_append_message(struct Mailbox *dest, struct Mailbox *src,
                         struct Email *e, int cmflags, int chflags)
 {
-  struct Message *msg = mx_msg_open(src->mailbox, e->msgno);
+  struct Message *msg = mx_msg_open(src, e->msgno);
   if (!msg)
     return -1;
-  int r = append_message(dest->mailbox, msg->fp, src->mailbox, e, cmflags, chflags);
-  mx_msg_close(src->mailbox, &msg);
+  int r = append_message(dest, msg->fp, src, e, cmflags, chflags);
+  mx_msg_close(src, &msg);
   return r;
 }
 
diff --git a/copy.h b/copy.h
index a05df1eddf3330ed75edbe716557918914099d61..f78791b31a9ea2846e9413fc9d4c63c70303c052 100644 (file)
--- a/copy.h
+++ b/copy.h
@@ -25,8 +25,9 @@
 
 #include <stdio.h>
 
-struct Email;
 struct Context;
+struct Email;
+struct Mailbox;
 
 /**< flags to mutt_copy_message */
 #define MUTT_CM_NOHEADER     (1 << 0) /**< don't copy the message header */
@@ -74,6 +75,6 @@ int mutt_copy_header(FILE *in, struct Email *e, FILE *out, int flags, const char
 int mutt_copy_message_fp (FILE *fpout, FILE *fpin,          struct Email *e, int flags, int chflags);
 int mutt_copy_message_ctx(FILE *fpout, struct Context *src, struct Email *e, int flags, int chflags);
 
-int mutt_append_message(struct Context *dest, struct Context *src, struct Email *e, int cmflags, int chflags);
+int mutt_append_message(struct Mailbox *dest, struct Mailbox *src, struct Email *e, int cmflags, int chflags);
 
 #endif /* MUTT_COPY_H */
index bf6b0cf63121500e2a39c0748e10dd413f391929..fc090f665ab110f51271127aab9e0badcc711ab1 100644 (file)
--- a/editmsg.c
+++ b/editmsg.c
@@ -96,7 +96,7 @@ static int edit_or_view_one_message(bool edit, struct Context *ctx, struct Email
   const int chflags =
       CH_NOLEN |
       ((ctx->mailbox->magic == MUTT_MBOX || ctx->mailbox->magic == MUTT_MMDF) ? 0 : CH_NOSTATUS);
-  rc = mutt_append_message(tmpctx, ctx, cur, 0, chflags);
+  rc = mutt_append_message(tmpctx->mailbox, ctx->mailbox, cur, 0, chflags);
   oerrno = errno;
 
   mx_mbox_close(&tmpctx, NULL);
diff --git a/mx.c b/mx.c
index 9a05e165778649bbacd314c6911415f75e8f8994..5428d42746c3f3091466614448dbbbcf0ab1dc13 100644 (file)
--- a/mx.c
+++ b/mx.c
@@ -527,7 +527,7 @@ static int trash_append(struct Context *ctx)
     {
       if (m->hdrs[i]->deleted && (!m->hdrs[i]->purge))
       {
-        if (mutt_append_message(ctx_trash, ctx, m->hdrs[i], 0, 0) == -1)
+        if (mutt_append_message(ctx_trash->mailbox, m, m->hdrs[i], 0, 0) == -1)
         {
           mx_mbox_close(&ctx_trash, NULL);
           return -1;
@@ -702,7 +702,7 @@ int mx_mbox_close(struct Context **pctx, int *index_hint)
       {
         if (m->hdrs[i]->read && !m->hdrs[i]->deleted && !(m->hdrs[i]->flagged && KeepFlagged))
         {
-          if (mutt_append_message(f, ctx, m->hdrs[i], 0, CH_UPDATE_LEN) == 0)
+          if (mutt_append_message(f->mailbox, ctx->mailbox, m->hdrs[i], 0, CH_UPDATE_LEN) == 0)
           {
             mutt_set_flag(m, m->hdrs[i], MUTT_DELETE, 1);
             mutt_set_flag(m, m->hdrs[i], MUTT_PURGE, 1);