]> granicus.if.org Git - neomutt/commitdiff
refactor: Mailbox in mutt_display_message()
authorRichard Russon <rich@flatcap.org>
Fri, 19 Jul 2019 10:54:11 +0000 (11:54 +0100)
committerRichard Russon <rich@flatcap.org>
Sat, 20 Jul 2019 22:11:26 +0000 (23:11 +0100)
Pass the Mailbox into mutt_display_message() rather than relying on
Context->mailbox.

commands.c
commands.h
index.c

index 3f5f79e05b83ab19bdcd13b5baca67fd543b62ed..0fe02aa515ab3ca6ce9ff9b1af2f69373fe27d9e 100644 (file)
@@ -172,11 +172,12 @@ static void update_protected_headers(struct Email *e)
 
 /**
  * mutt_display_message - Display a message in the pager
+ * @param m Mailbox
  * @param e Email to display
  * @retval  0 Success
  * @retval -1 Error
  */
-int mutt_display_message(struct Email *e)
+int mutt_display_message(struct Mailbox *m, struct Email *e)
 {
   char tempfile[PATH_MAX], buf[1024];
   int rc = 0;
@@ -188,8 +189,8 @@ int mutt_display_message(struct Email *e)
 
   snprintf(buf, sizeof(buf), "%s/%s", TYPE(e->content), e->content->subtype);
 
-  mutt_parse_mime_message(Context->mailbox, e);
-  mutt_message_hook(Context->mailbox, e, MUTT_MESSAGE_HOOK);
+  mutt_parse_mime_message(m, e);
+  mutt_message_hook(m, e, MUTT_MESSAGE_HOOK);
 
   /* see if crypto is needed for this message.  if so, we should exit curses */
   if ((WithCrypto != 0) && e->security)
@@ -258,7 +259,7 @@ int mutt_display_message(struct Email *e)
   {
     struct HdrFormatInfo hfi;
     hfi.ctx = Context;
-    hfi.mailbox = Context->mailbox;
+    hfi.mailbox = m;
     hfi.pager_progress = ExtPagerProgress;
     hfi.email = e;
     mutt_make_string_info(buf, sizeof(buf), MuttIndexWindow->cols,
@@ -269,10 +270,10 @@ int mutt_display_message(struct Email *e)
 
   chflags = (C_Weed ? (CH_WEED | CH_REORDER) : CH_NO_FLAGS) | CH_DECODE | CH_FROM | CH_DISPLAY;
 #ifdef USE_NOTMUCH
-  if (Context->mailbox->magic == MUTT_NOTMUCH)
+  if (m->magic == MUTT_NOTMUCH)
     chflags |= CH_VIRTUAL;
 #endif
-  res = mutt_copy_message(fp_out, Context->mailbox, e, cmflags, chflags);
+  res = mutt_copy_message(fp_out, m, e, cmflags, chflags);
 
   if (((mutt_file_fclose(&fp_out) != 0) && (errno != EPIPE)) || (res < 0))
   {
@@ -311,7 +312,7 @@ int mutt_display_message(struct Email *e)
     {
       if (e->security & SEC_GOODSIGN)
       {
-        if (crypt_smime_verify_sender(Context->mailbox, e) == 0)
+        if (crypt_smime_verify_sender(m, e) == 0)
           mutt_message(_("S/MIME signature successfully verified"));
         else
           mutt_error(_("S/MIME certificate owner does not match sender"));
@@ -352,7 +353,7 @@ int mutt_display_message(struct Email *e)
     if (!OptNoCurses)
       keypad(stdscr, true);
     if (r != -1)
-      mutt_set_flag(Context->mailbox, e, MUTT_READ, true);
+      mutt_set_flag(m, e, MUTT_READ, true);
     if ((r != -1) && C_PromptAfter)
     {
       mutt_unget_event(mutt_any_key_to_continue(_("Command: ")), 0);
index e0d5c62a8ee002d174d3329c369c20a99a6d772d..eba104e097efd49d3c9753234ed64e4e262cd652 100644 (file)
@@ -47,7 +47,7 @@ void ci_bounce_message(struct Mailbox *m, struct EmailList *el);
 void mutt_check_stats(void);
 bool mutt_check_traditional_pgp(struct EmailList *el, MuttRedrawFlags *redraw);
 void mutt_display_address(struct Envelope *env);
-int  mutt_display_message(struct Email *e);
+int  mutt_display_message(struct Mailbox *m, struct Email *e);
 bool mutt_edit_content_type(struct Email *e, struct Body *b, FILE *fp);
 void mutt_enter_command(void);
 void mutt_pipe_message(struct Mailbox *m, struct EmailList *el);
diff --git a/index.c b/index.c
index 30157b5c1b48e220d57fe2c304974afc88b94671..702a0f42246ccde572c268f85a71e1ea3f1ab121 100644 (file)
--- a/index.c
+++ b/index.c
@@ -2354,7 +2354,7 @@ int mutt_index_menu(void)
          * set CurrentMenu incorrectly when we return back to the index menu. */
         menu->menu = MENU_MAIN;
 
-        op = mutt_display_message(CUR_EMAIL);
+        op = mutt_display_message(Context->mailbox, CUR_EMAIL);
         if (op < 0)
         {
           OptNeedResort = false;