]> granicus.if.org Git - neomutt/commitdiff
notmuch: remove Context in nm_read_entire_thread() 1387/head
authorAustin Ray <austin@austinray.io>
Wed, 9 Jan 2019 22:28:08 +0000 (17:28 -0500)
committerAustin Ray <austin@austinray.io>
Wed, 9 Jan 2019 22:28:08 +0000 (17:28 -0500)
Removed the coupling between `nm_read_entire_thread()` and `struct
Context` by replacing it with `struct Mailbox`.

`Context` had two uses: `Mailbox` reference source and `ctx_update()`.

The introduction of mailbox notification code allows mailbox events to
trigger `ctx_update()`, which removes the hard dependency on `Context`.

Passing a `Mailbox` reference removes the remaining soft dependency on
`Context`.

index.c
notmuch/mutt_notmuch.c
notmuch/mutt_notmuch.h

diff --git a/index.c b/index.c
index 05fa83462159ef84cfe28fe5a98e737b79bb3a37..728cf32244c0b4fe71c0184904867d02537b2d74 100644 (file)
--- a/index.c
+++ b/index.c
@@ -1947,7 +1947,7 @@ int mutt_index_menu(void)
         CHECK_MSGCOUNT;
         CHECK_VISIBLE;
         int oc = Context->mailbox->msg_count;
-        if (nm_read_entire_thread(Context, CUR_EMAIL) < 0)
+        if (nm_read_entire_thread(Context->mailbox, CUR_EMAIL) < 0)
         {
           mutt_message(_("Failed to read thread, aborting"));
           break;
index 6e204e5334226fe7e43a382cc1f13916746f0112..bcb31d3d00c9da52297325754f807d2e725fa690 100644 (file)
@@ -1584,18 +1584,16 @@ char *nm_email_get_folder(struct Email *e)
 
 /**
  * nm_read_entire_thread - Get the entire thread of an email
- * @param ctx Mailbox
+ * @param m Mailbox
  * @param e   Email
  * @retval  0 Success
  * @retval -1 Failure
  */
-int nm_read_entire_thread(struct Context *ctx, struct Email *e)
+int nm_read_entire_thread(struct Mailbox *m, struct Email *e)
 {
-  if (!ctx || !ctx->mailbox)
+  if (!m)
     return -1;
 
-  struct Mailbox *m = ctx->mailbox;
-
   struct NmMboxData *mdata = nm_mdata_get(m);
   if (!mdata)
     return -1;
@@ -1632,7 +1630,7 @@ int nm_read_entire_thread(struct Context *ctx, struct Email *e)
   rc = 0;
 
   if (m->msg_count > mdata->oldmsgcount)
-    ctx_update(ctx);
+    mutt_mailbox_changed(m, MBN_INVALID);
 done:
   if (q)
     notmuch_query_destroy(q);
index 01e3cafc7f8b3efe6b728c007b6843547e2ebf9f..9c38b8ae43c760974ae45f01af47d8bca7d92aa6 100644 (file)
@@ -38,7 +38,6 @@
 #include <stdbool.h>
 #include "mx.h"
 
-struct Context;
 struct Email;
 struct NmMboxData;
 
@@ -68,7 +67,7 @@ void  nm_parse_type_from_query   (struct NmMboxData *mdata, char *buf);
 int   nm_path_probe              (const char *path, const struct stat *st);
 void  nm_query_window_backward   (void);
 void  nm_query_window_forward    (void);
-int   nm_read_entire_thread      (struct Context *ctx, struct Email *e);
+int   nm_read_entire_thread      (struct Mailbox *m, struct Email *e);
 int   nm_record_message          (struct Mailbox *m, char *path, struct Email *e);
 int   nm_update_filename         (struct Mailbox *m, const char *old, const char *new, struct Email *e);
 char *nm_uri_from_query          (struct Mailbox *m, char *buf, size_t buflen);