From f8d2a22dcfbc1a1c9fd4289377bbfb5a27116fec Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Mon, 3 Oct 2011 23:35:49 +0000 Subject: [PATCH] Monotone-Parent: b7149a366c94f57bf67d221e26b33ecf51930a27 Monotone-Revision: 82ab0f7d7b6c98e27ed4319b3bca575f56e5ff46 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-10-03T23:35:49 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 5 +++++ OpenChange/MAPIStoreFolder.m | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index af6fafd57..486a42fe5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-10-03 Wolfgang Sourdeau + + * OpenChange/MAPIStoreFolder.m (-deleteMessageWithMID:andFlags:): + invoke "prepareDelete" on the message object when available. + 2011-10-03 Francis Lachapelle * UI/WebServerResources/generic.js (snoozeAlarm): new function to diff --git a/OpenChange/MAPIStoreFolder.m b/OpenChange/MAPIStoreFolder.m index 34c57ae30..3bb494509 100644 --- a/OpenChange/MAPIStoreFolder.m +++ b/OpenChange/MAPIStoreFolder.m @@ -28,6 +28,7 @@ #import #import #import +#import #import #import "MAPIStoreActiveTables.h" @@ -466,6 +467,7 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe MAPIStoreMessage *message; NSArray *activeTables; NSUInteger count, max; + id msgObject; struct mapistore_connection_info *connInfo; struct mapistore_object_notification_parameters *notif_parameters; int rc; @@ -488,7 +490,10 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe for (count = 0; count < max; count++) [[activeTables objectAtIndex: count] restrictedChildKeys]; - if ([[message sogoObject] delete]) + msgObject = [message sogoObject]; + if (([msgObject respondsToSelector: @selector (prepareDelete)] + && [msgObject prepareDelete]) + || [msgObject delete]) { rc = MAPISTORE_ERROR; [self logWithFormat: @"ERROR deleting object at URL: %@", childURL];