From 3bf138283b88e8ae61a25ec8b4a58a8db8fb3982 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 3 Feb 2012 15:01:23 +0000 Subject: [PATCH] Monotone-Parent: aff6a2cc9b4208ab638ccf2f17af6bb0874f5f5b Monotone-Revision: 425bfc2f774ffc6abc9a76908ac1b2fcf7d6ad14 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-02-03T15:01:23 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 2 ++ OpenChange/MAPIStoreMailFolder.m | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/ChangeLog b/ChangeLog index e40b7f3cb..3a3077043 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2012-02-03 Wolfgang Sourdeau + * OpenChange/MAPIStoreMailFolder.m (-deleteFolder): overriden method. + * SoObjects/Mailer/SOGoMailFolder.m (-exists): new method that returns whether an IMAP folder exists or not yet. diff --git a/OpenChange/MAPIStoreMailFolder.m b/OpenChange/MAPIStoreMailFolder.m index 0541c6beb..a5e3483bd 100644 --- a/OpenChange/MAPIStoreMailFolder.m +++ b/OpenChange/MAPIStoreMailFolder.m @@ -158,6 +158,32 @@ static Class SOGoMailFolderK; return nameInContainer; } +- (int) deleteFolder +{ + int rc; + NSException *error; + NSString *name; + + name = [self nameInContainer]; + if ([name isEqualToString: @"folderINBOX"]) + rc = MAPISTORE_ERR_DENIED; + else + { + error = [(SOGoMailFolder *) sogoObject delete]; + if (error) + rc = MAPISTORE_ERROR; + else + { + if (![versionsMessage delete]) + rc = MAPISTORE_SUCCESS; + else + rc = MAPISTORE_ERROR; + } + } + + return (rc == MAPISTORE_SUCCESS) ? [super deleteFolder] : rc; +} + - (int) getPrContentUnread: (void **) data inMemCtx: (TALLOC_CTX *) memCtx {