From 32af60c24facfa359e2344ca181a7b833d6da71e Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 10 Aug 2012 14:08:40 +0000 Subject: [PATCH] Monotone-Parent: 9f415bbce0de3939851adeff8e3f25986b8630f7 Monotone-Revision: 1bf1a3f87feb2c04469fcff28770c25704ee5aab Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-08-10T14:08:40 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 6 +++++ OpenChange/MAPIStoreFolder.h | 12 ++++------ OpenChange/MAPIStoreFolder.m | 12 ++++------ OpenChange/MAPIStoreMailFolder.m | 40 +++++++++++++------------------- OpenChange/MAPIStoreSOGo.m | 37 ++++++++++++++--------------- 5 files changed, 49 insertions(+), 58 deletions(-) diff --git a/ChangeLog b/ChangeLog index d7dde49dd..ef359d4e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-08-10 Wolfgang Sourdeau + + * OpenChange/MAPIStoreSOGo.m (sogo_folder_move_folder) + (sogo_folder_copy_folder): the object on which the backend method + is invoked is now the folder being moved rather than its parent. + 2012-08-09 Wolfgang Sourdeau * OpenChange/MAPIStoreMailFolder.m diff --git a/OpenChange/MAPIStoreFolder.h b/OpenChange/MAPIStoreFolder.h index 3e65423ee..bb2aefec1 100644 --- a/OpenChange/MAPIStoreFolder.h +++ b/OpenChange/MAPIStoreFolder.h @@ -123,13 +123,11 @@ andChangeKeys: (struct Binary_r **) targetChangeKeys wantCopy: (uint8_t) want_copy; -- (enum mapistore_error) moveFolderWithFID: (uint64_t) fid - fromFolder: (MAPIStoreFolder *) sourceFolder - withNewName: (NSString *) newFolderName; -- (enum mapistore_error) copyFolderWithFID: (uint64_t) fid - fromFolder: (MAPIStoreFolder *) sourceFolder - recursive: (BOOL) resursive - withNewName: (NSString *) newFolderName; +- (enum mapistore_error) moveToFolder: (MAPIStoreFolder *) targetFolder + withNewName: (NSString *) newFolderName; +- (enum mapistore_error) copyToFolder: (MAPIStoreFolder *) targetFolder + recursive: (BOOL) resursive + withNewName: (NSString *) newFolderName; - (int) getDeletedFMIDs: (struct I8Array_r **) fmidsPtr andCN: (uint64_t *) cnPtr diff --git a/OpenChange/MAPIStoreFolder.m b/OpenChange/MAPIStoreFolder.m index 4beafc5b3..50b635c06 100644 --- a/OpenChange/MAPIStoreFolder.m +++ b/OpenChange/MAPIStoreFolder.m @@ -795,17 +795,15 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe return rc; } -- (enum mapistore_error) moveFolderWithFID: (uint64_t) fid - fromFolder: (MAPIStoreFolder *) sourceFolder - withNewName: (NSString *) newFolderName +- (enum mapistore_error) moveToFolder: (MAPIStoreFolder *) targetFolder + withNewName: (NSString *) newFolderName { return MAPISTORE_ERR_DENIED; } -- (enum mapistore_error) copyFolderWithFID: (uint64_t) fid - fromFolder: (MAPIStoreFolder *) sourceFolder - recursive: (BOOL) resursive - withNewName: (NSString *) newFolderName +- (enum mapistore_error) copyToFolder: (MAPIStoreFolder *) targetFolder + recursive: (BOOL) resursive + withNewName: (NSString *) newFolderName { return MAPISTORE_ERR_DENIED; } diff --git a/OpenChange/MAPIStoreMailFolder.m b/OpenChange/MAPIStoreMailFolder.m index ffac80999..01907accb 100644 --- a/OpenChange/MAPIStoreMailFolder.m +++ b/OpenChange/MAPIStoreMailFolder.m @@ -1003,37 +1003,29 @@ _parseCOPYUID (NSString *line, NSArray **destUIDsP) return MAPISTORE_SUCCESS; } -- (enum mapistore_error) moveFolderWithFID: (uint64_t) fid - fromFolder: (MAPIStoreFolder *) sourceFolder - withNewName: (NSString *) newFolderName +- (enum mapistore_error) moveToFolder: (MAPIStoreFolder *) targetFolder + withNewName: (NSString *) newFolderName { enum mapistore_error rc; - MAPIStoreMailFolder *moveFolder; NSURL *folderURL, *newFolderURL; - SOGoMailFolder *sogoMoveFolder; + SOGoMailFolder *targetSOGoFolder; NSException *error; - if ([sourceFolder isKindOfClass: MAPIStoreMailFolderK]) + if ([targetFolder isKindOfClass: MAPIStoreMailFolderK]) { - rc = [sourceFolder openFolder: &moveFolder withFID: fid]; - if (rc == MAPISTORE_SUCCESS) - { - sogoMoveFolder = [moveFolder sogoObject]; - folderURL = [sogoMoveFolder imap4URL]; - if (!newFolderName) - newFolderName = [sogoMoveFolder nameInContainer]; - newFolderURL = [NSURL URLWithString: newFolderName - relativeToURL: [sogoObject imap4URL]]; - error = [[sogoMoveFolder imap4Connection] - moveMailboxAtURL: folderURL - toURL: newFolderURL]; - if (error) - rc = MAPISTORE_ERR_DENIED; - else - rc = MAPISTORE_SUCCESS; - } + folderURL = [sogoObject imap4URL]; + if (!newFolderName) + newFolderName = [sogoObject nameInContainer]; + targetSOGoFolder = [targetFolder sogoObject]; + newFolderURL = [NSURL URLWithString: newFolderName + relativeToURL: [targetSOGoFolder imap4URL]]; + error = [[sogoObject imap4Connection] + moveMailboxAtURL: folderURL + toURL: newFolderURL]; + if (error) + rc = MAPISTORE_ERR_DENIED; else - rc = MAPISTORE_ERR_NOT_FOUND; + rc = MAPISTORE_SUCCESS; } else rc = MAPISTORE_ERR_DENIED; diff --git a/OpenChange/MAPIStoreSOGo.m b/OpenChange/MAPIStoreSOGo.m index aaac2bcf7..276bd6268 100644 --- a/OpenChange/MAPIStoreSOGo.m +++ b/OpenChange/MAPIStoreSOGo.m @@ -609,11 +609,11 @@ sogo_folder_move_copy_messages(void *folder_object, } static enum mapistore_error -sogo_folder_move_folder(void *folder_object, void *source_folder_object, - uint64_t fid, const char *new_folder_name) +sogo_folder_move_folder(void *folder_object, void *target_folder_object, + const char *new_folder_name) { - MAPIStoreFolder *sourceFolder, *targetFolder; NSAutoreleasePool *pool; + MAPIStoreFolder *moveFolder, *targetFolder; NSString *newFolderName; struct MAPIStoreTallocWrapper *wrapper; int rc; @@ -623,10 +623,10 @@ sogo_folder_move_folder(void *folder_object, void *source_folder_object, if (folder_object) { wrapper = folder_object; - targetFolder = wrapper->instance; + moveFolder = wrapper->instance; - wrapper = source_folder_object; - sourceFolder = wrapper->instance; + wrapper = target_folder_object; + targetFolder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; @@ -636,9 +636,8 @@ sogo_folder_move_folder(void *folder_object, void *source_folder_object, else newFolderName = nil; - rc = [targetFolder moveFolderWithFID: fid - fromFolder: sourceFolder - withNewName: newFolderName]; + rc = [moveFolder moveToFolder: targetFolder + withNewName: newFolderName]; [pool release]; GSUnregisterCurrentThread (); } @@ -651,12 +650,11 @@ sogo_folder_move_folder(void *folder_object, void *source_folder_object, } static enum mapistore_error -sogo_folder_copy_folder(void *folder_object, void *source_folder_object, - uint64_t fid, bool recursive, - const char *new_folder_name) +sogo_folder_copy_folder(void *folder_object, void *target_folder_object, + bool recursive, const char *new_folder_name) { - MAPIStoreFolder *sourceFolder, *targetFolder; NSAutoreleasePool *pool; + MAPIStoreFolder *copyFolder, *targetFolder; NSString *newFolderName; struct MAPIStoreTallocWrapper *wrapper; int rc; @@ -666,20 +664,19 @@ sogo_folder_copy_folder(void *folder_object, void *source_folder_object, if (folder_object) { wrapper = folder_object; - targetFolder = wrapper->instance; + copyFolder = wrapper->instance; - wrapper = source_folder_object; - sourceFolder = wrapper->instance; + wrapper = target_folder_object; + targetFolder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; newFolderName = [NSString stringWithUTF8String: new_folder_name]; - rc = [targetFolder copyFolderWithFID: fid - fromFolder: sourceFolder - recursive: recursive - withNewName: newFolderName]; + rc = [copyFolder copyToFolder: targetFolder + recursive: recursive + withNewName: newFolderName]; [pool release]; GSUnregisterCurrentThread (); }