changeset 9651:5024551304d9 HEAD

imap delete: Use mailbox_backends_equal() for finding if we're deleting selected mailbox.
author Timo Sirainen <tss@iki.fi>
date Fri, 24 Jul 2009 15:58:08 -0400
parents 6b6d6e094674
children 1644c25bfbef
files src/imap/cmd-delete.c
diffstat 1 files changed, 5 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/cmd-delete.c	Fri Jul 24 15:56:21 2009 -0400
+++ b/src/imap/cmd-delete.c	Fri Jul 24 15:58:08 2009 -0400
@@ -7,7 +7,6 @@
 {
 	struct client *client = cmd->client;
 	struct mail_namespace *ns;
-	struct mail_storage *storage;
 	struct mailbox *mailbox;
 	const char *name;
 
@@ -25,16 +24,14 @@
 	if (ns == NULL)
 		return TRUE;
 
-	mailbox = client->mailbox;
-	if (mailbox != NULL && mailbox_get_namespace(mailbox) == ns &&
-	    strcmp(mailbox_get_name(mailbox), name) == 0) {
+	mailbox = mailbox_alloc(ns->list, name, NULL, 0);
+	if (client->mailbox != NULL &&
+	    mailbox_backends_equal(mailbox, client->mailbox)) {
 		/* deleting selected mailbox. close it first */
 		client_search_updates_free(client);
-		storage = mailbox_get_storage(mailbox);
-		client->mailbox = NULL;
-
-		mailbox_close(&mailbox);
+		mailbox_close(&client->mailbox);
 	}
+	mailbox_close(&mailbox);
 
 	if ((client->workarounds & WORKAROUND_TB_EXTRA_MAILBOX_SEP) != 0 &&
 	    *name != '\0' &&