From: Richard Russon Date: Thu, 4 Jul 2019 15:01:02 +0000 (+0100) Subject: drop AllMailboxes X-Git-Tag: 2019-10-25~139^2~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=84ff9be1c41521d53bfb6672b016cbec157c8fa0;p=neomutt drop AllMailboxes --- diff --git a/init.c b/init.c index 3a3bd7bc1..a60b4682b 100644 --- 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; } diff --git a/mailbox.c b/mailbox.c index 166b6e782..1254e2eff 100644 --- 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 diff --git a/mailbox.h b/mailbox.h index ff544fbfe..f45665fc6 100644 --- 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);