]> granicus.if.org Git - neomutt/commitdiff
drop AllMailboxes
authorRichard Russon <rich@flatcap.org>
Thu, 4 Jul 2019 15:01:02 +0000 (16:01 +0100)
committerRichard Russon <rich@flatcap.org>
Sat, 13 Jul 2019 23:25:45 +0000 (00:25 +0100)
init.c
mailbox.c
mailbox.h

diff --git a/init.c b/init.c
index 3a3bd7bc1c325b5c27ad2303f9e9988cff8e9f07..a60b4682b3e70837b096ab546565a5407835d81f 100644 (file)
--- a/init.c
+++ b/init.c
@@ -1363,9 +1363,6 @@ static enum CommandResult parse_mailboxes(struct Buffer *buf, struct Buffer *s,
         {
           m_old->flags = MB_NORMAL;
           mutt_sb_notify_mailbox(m_old, true);
-          struct MailboxNode *mn = mutt_mem_calloc(1, sizeof(*mn));
-          mn->mailbox = m_old;
-          STAILQ_INSERT_TAIL(&AllMailboxes, mn, entries);
         }
         mailbox_free(&m);
         continue;
@@ -1387,10 +1384,6 @@ static enum CommandResult parse_mailboxes(struct Buffer *buf, struct Buffer *s,
       neomutt_account_add(NeoMutt, a);
     }
 
-    struct MailboxNode *mn = mutt_mem_calloc(1, sizeof(*mn));
-    mn->mailbox = m;
-    STAILQ_INSERT_TAIL(&AllMailboxes, mn, entries);
-
 #ifdef USE_SIDEBAR
     mutt_sb_notify_mailbox(m, true);
 #endif
@@ -2397,9 +2390,10 @@ static enum CommandResult parse_unmailboxes(struct Buffer *buf, struct Buffer *s
       tmp_valid = true;
     }
 
+    struct MailboxList ml = neomutt_mailboxlist_get_all(NeoMutt, MUTT_MAILBOX_ANY);
     struct MailboxNode *np = NULL;
     struct MailboxNode *nptmp = NULL;
-    STAILQ_FOREACH_SAFE(np, &AllMailboxes, entries, nptmp)
+    STAILQ_FOREACH_SAFE(np, &ml, entries, nptmp)
     {
       /* Decide whether to delete all normal mailboxes or all virtual */
       bool virt = ((np->mailbox->magic == MUTT_NOTMUCH) && (data & MUTT_VIRTUAL));
@@ -2428,14 +2422,11 @@ static enum CommandResult parse_unmailboxes(struct Buffer *buf, struct Buffer *s
         }
         else
         {
-          mx_ac_remove(np->mailbox);
-          mailbox_free(&np->mailbox);
+          account_mailbox_remove(np->mailbox->account, np->mailbox);
         }
-        STAILQ_REMOVE(&AllMailboxes, np, MailboxNode, entries);
-        FREE(&np);
-        continue;
       }
     }
+    neomutt_mailboxlist_clear(&ml);
   }
   return MUTT_CMD_SUCCESS;
 }
index 166b6e78259274833e43520891a8b480b552b89d..1254e2effd01c60b5d940ba86f4cda0b6690620c 100644 (file)
--- a/mailbox.c
+++ b/mailbox.c
@@ -37,8 +37,6 @@
 #include "maildir/lib.h"
 #include "neomutt.h"
 
-struct MailboxList AllMailboxes = STAILQ_HEAD_INITIALIZER(AllMailboxes);
-
 /**
  * mailbox_new - Create a new Mailbox
  * @retval ptr New Mailbox
index ff544fbfeb27807df98d26b735cb388a7122bbe6..f45665fc6f05162e55570c5990a7ed9ef84d09b0 100644 (file)
--- a/mailbox.h
+++ b/mailbox.h
@@ -160,8 +160,6 @@ struct MailboxNode
 };
 STAILQ_HEAD(MailboxList, MailboxNode);
 
-extern struct MailboxList AllMailboxes; ///< List of all Mailboxes
-
 void            mailbox_free             (struct Mailbox **ptr);
 struct Mailbox *mailbox_new              (void);
 void            mutt_mailbox_changed     (struct Mailbox *m, enum MailboxNotification action);