From 2110fba1a3cc416d86eab66279c256d9248fdb32 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 1 Nov 2011 01:00:33 +0000 Subject: [PATCH] Monotone-Parent: 9488bb1220eb58936dc8d649bae5b7ecf2fe01fc Monotone-Revision: 119b17733c942a5a103bfac69d069f4162241916 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-11-01T01:00:33 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 3 +++ OpenChange/MAPIStoreMailMessage.m | 5 +++++ OpenChange/MAPIStoreMessage.h | 1 + OpenChange/MAPIStoreMessage.m | 7 +++++++ OpenChange/MAPIStoreSOGo.m | 28 ++++++++++++++++++++++++++++ 5 files changed, 44 insertions(+) diff --git a/ChangeLog b/ChangeLog index a8cc5eba0..2162d6c24 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2011-10-31 Wolfgang Sourdeau + * OpenChange/MAPIStoreSOGo.m (sogo_message_set_read_flag): new + backend op. + * OpenChange/MAPIStoreMailMessage.m (-_fetchBodyData): fetch body keys with BODY.PEEK rather than just BODY, to disabled the automatic setting of the "\Seen" flag. diff --git a/OpenChange/MAPIStoreMailMessage.m b/OpenChange/MAPIStoreMailMessage.m index 39debc361..63106fdf6 100644 --- a/OpenChange/MAPIStoreMailMessage.m +++ b/OpenChange/MAPIStoreMailMessage.m @@ -1533,6 +1533,11 @@ _compareBodyKeysByPriority (id entry1, id entry2, void *data) return attachment; } +- (int) setReadFlag: (uint8_t) flag +{ + return MAPISTORE_SUCCESS; +} + - (void) save { NSNumber *value; diff --git a/OpenChange/MAPIStoreMessage.h b/OpenChange/MAPIStoreMessage.h index bbbb565a9..85c3d2d9b 100644 --- a/OpenChange/MAPIStoreMessage.h +++ b/OpenChange/MAPIStoreMessage.h @@ -65,6 +65,7 @@ extern NSData *MAPIStoreExternalEntryId (NSString *cn, NSString *email); withAID: (uint32_t) aid; - (int) getAttachmentTable: (MAPIStoreAttachmentTable **) tablePtr andRowCount: (uint32_t *) countPtr; +- (int) setReadFlag: (uint8_t) flag; - (int) saveMessage; /* helper getters */ diff --git a/OpenChange/MAPIStoreMessage.m b/OpenChange/MAPIStoreMessage.m index ed08b6512..d3a2f3bd4 100644 --- a/OpenChange/MAPIStoreMessage.m +++ b/OpenChange/MAPIStoreMessage.m @@ -742,6 +742,13 @@ MAPIStoreExternalEntryId (NSString *cn, NSString *email) return [self getNo: data inMemCtx: memCtx];; } +- (int) setReadFlag: (uint8_t) flag +{ + [self subclassResponsibility: _cmd]; + + return MAPISTORE_ERROR; +} + - (void) save { [self subclassResponsibility: _cmd]; diff --git a/OpenChange/MAPIStoreSOGo.m b/OpenChange/MAPIStoreSOGo.m index f66b8cb37..e060855c8 100644 --- a/OpenChange/MAPIStoreSOGo.m +++ b/OpenChange/MAPIStoreSOGo.m @@ -708,6 +708,33 @@ sogo_message_modify_recipients (void *message_object, return rc; } +static int +sogo_message_set_read_flag (void *message_object, uint8_t flag) +{ + struct MAPIStoreTallocWrapper *wrapper; + NSAutoreleasePool *pool; + MAPIStoreMessage *message; + int rc; + + DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__)); + + if (message_object) + { + wrapper = message_object; + message = wrapper->MAPIStoreSOGoObject; + pool = [NSAutoreleasePool new]; + rc = [message setReadFlag: flag]; + // [context tearDownRequest]; + [pool release]; + } + else + { + rc = sogo_backend_unexpected_error(); + } + + return rc; +} + static int sogo_message_save (void *message_object) { @@ -1168,6 +1195,7 @@ int mapistore_init_backend(void) backend.message.open_embedded_message = sogo_message_attachment_open_embedded_message; backend.message.get_message_data = sogo_message_get_message_data; backend.message.modify_recipients = sogo_message_modify_recipients; + backend.message.set_read_flag = sogo_message_set_read_flag; backend.message.save = sogo_message_save; backend.message.submit = sogo_message_submit; backend.table.get_available_properties = sogo_table_get_available_properties;