]> granicus.if.org Git - neomutt/commitdiff
imap: imap_expunge_mailbox should take Mailbox as argument
authorMehdi Abaakouk <sileht@sileht.net>
Sat, 8 Dec 2018 13:35:32 +0000 (14:35 +0100)
committerRichard Russon <rich@flatcap.org>
Sat, 8 Dec 2018 14:33:50 +0000 (14:33 +0000)
imap/command.c
imap/imap.c
imap/imap_private.h
imap/message.c

index b9923ff4da097380d561e8b043cd6914b4f537bc..6bbb6a262397d34ee517b552a941577a15fb1115 100644 (file)
@@ -1313,7 +1313,7 @@ void imap_cmd_finish(struct ImapAccountData *adata)
     if (mdata->reopen & IMAP_EXPUNGE_PENDING)
     {
       mutt_debug(2, "Expunging mailbox\n");
-      imap_expunge_mailbox(adata);
+      imap_expunge_mailbox(adata->mailbox);
     }
 
     // Then add new emails to it
index 14c9bbe4f153edb1fdeb86ac4d407e338579e2f4..54a3cc85f8af89fc541e2a9791d97132d3f4778c 100644 (file)
@@ -771,15 +771,17 @@ int imap_read_literal(FILE *fp, struct ImapAccountData *adata,
  * while something has a handle on any headers (eg inside pager or editor).
  * That is, check IMAP_REOPEN_ALLOW.
  */
-void imap_expunge_mailbox(struct ImapAccountData *adata)
+void imap_expunge_mailbox(struct Mailbox *m)
 {
-  if (!adata || !adata->mailbox)
+  struct ImapAccountData *adata = imap_adata_get(m);
+  struct ImapMboxData *mdata = imap_mdata_get(m);
+  if (!adata || !mdata)
     return;
 
   struct Email *e = NULL;
   int cacheno;
   short old_sort;
-  struct ImapMboxData *mdata = adata->mailbox->mdata;
+
 
 #ifdef USE_HCACHE
   mdata->hcache = imap_hcache_open(adata, mdata);
index 9c73a03fa5cfbfa8103dfb25971f93d74ed70226..9efc471d99968fa90a89249c6c8def3f8a8b701c 100644 (file)
@@ -280,7 +280,7 @@ int imap_exec_msgset(struct ImapAccountData *adata, const char *pre, const char
 int imap_open_connection(struct ImapAccountData *adata);
 void imap_close_connection(struct ImapAccountData *adata);
 int imap_read_literal(FILE *fp, struct ImapAccountData *adata, unsigned long bytes, struct Progress *pbar);
-void imap_expunge_mailbox(struct ImapAccountData *adata);
+void imap_expunge_mailbox(struct Mailbox *m);
 int imap_login(struct ImapAccountData *adata);
 int imap_sync_message_for_copy(struct ImapAccountData *adata, struct Email *e, struct Buffer *cmd, int *err_continue);
 bool imap_has_flag(struct ListHead *flag_list, const char *flag);
index a6ddd69124a0543ac9dc1047cd537aa0938787dd..209d23437766ae584c30923c04b943e55a7e0c46 100644 (file)
@@ -966,7 +966,7 @@ static int read_headers_condstore_qresync_updates(struct ImapAccountData *adata,
   if (mdata->reopen & IMAP_EXPUNGE_PENDING)
   {
     imap_hcache_close(mdata);
-    imap_expunge_mailbox(adata);
+    imap_expunge_mailbox(m);
     mdata->hcache = imap_hcache_open(adata, mdata);
     mdata->reopen &= ~IMAP_EXPUNGE_PENDING;
   }