Monotone-Parent: 9f415bbce0de3939851adeff8e3f25986b8630f7

Monotone-Revision: 1bf1a3f87feb2c04469fcff28770c25704ee5aab

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2012-08-10T14:08:40
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2012-08-10 14:08:40 +00:00
parent b13fe70beb
commit 32af60c24f
5 changed files with 49 additions and 58 deletions

View File

@@ -1,3 +1,9 @@
2012-08-10 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreMailFolder.m

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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 ();
}