mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-04 21:08:51 +00:00
Monotone-Parent: 3ded00a80ce87781ff6767f6fe38a12735a48340
Monotone-Revision: af0fb5901615e40ad3549c59f74f88bb33f9b392 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-08-09T19:43:17 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -608,6 +608,86 @@ sogo_folder_move_copy_messages(void *folder_object,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static enum mapistore_error
|
||||
sogo_folder_move_folder(void *folder_object, void *source_folder_object,
|
||||
uint64_t fid, const char *new_folder_name)
|
||||
{
|
||||
MAPIStoreFolder *sourceFolder, *targetFolder;
|
||||
NSAutoreleasePool *pool;
|
||||
NSString *newFolderName;
|
||||
struct MAPIStoreTallocWrapper *wrapper;
|
||||
int rc;
|
||||
|
||||
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
if (folder_object)
|
||||
{
|
||||
wrapper = folder_object;
|
||||
targetFolder = wrapper->instance;
|
||||
|
||||
wrapper = source_folder_object;
|
||||
sourceFolder = wrapper->instance;
|
||||
|
||||
GSRegisterCurrentThread ();
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
newFolderName = [NSString stringWithUTF8String: new_folder_name];
|
||||
|
||||
rc = [targetFolder moveFolderWithFID: fid
|
||||
fromFolder: sourceFolder
|
||||
withNewName: newFolderName];
|
||||
[pool release];
|
||||
GSUnregisterCurrentThread ();
|
||||
}
|
||||
else
|
||||
{
|
||||
rc = sogo_backend_unexpected_error();
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
MAPIStoreFolder *sourceFolder, *targetFolder;
|
||||
NSAutoreleasePool *pool;
|
||||
NSString *newFolderName;
|
||||
struct MAPIStoreTallocWrapper *wrapper;
|
||||
int rc;
|
||||
|
||||
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
if (folder_object)
|
||||
{
|
||||
wrapper = folder_object;
|
||||
targetFolder = wrapper->instance;
|
||||
|
||||
wrapper = source_folder_object;
|
||||
sourceFolder = wrapper->instance;
|
||||
|
||||
GSRegisterCurrentThread ();
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
newFolderName = [NSString stringWithUTF8String: new_folder_name];
|
||||
|
||||
rc = [targetFolder copyFolderWithFID: fid
|
||||
fromFolder: sourceFolder
|
||||
recursive: recursive
|
||||
withNewName: newFolderName];
|
||||
[pool release];
|
||||
GSUnregisterCurrentThread ();
|
||||
}
|
||||
else
|
||||
{
|
||||
rc = sogo_backend_unexpected_error();
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static enum mapistore_error
|
||||
sogo_folder_get_deleted_fmids(void *folder_object, TALLOC_CTX *mem_ctx,
|
||||
enum mapistore_table_type table_type, uint64_t change_num,
|
||||
@@ -1414,6 +1494,8 @@ int mapistore_init_backend(void)
|
||||
backend.folder.create_message = sogo_folder_create_message;
|
||||
backend.folder.delete_message = sogo_folder_delete_message;
|
||||
backend.folder.move_copy_messages = sogo_folder_move_copy_messages;
|
||||
backend.folder.move_folder = sogo_folder_move_folder;
|
||||
backend.folder.copy_folder = sogo_folder_copy_folder;
|
||||
backend.folder.get_deleted_fmids = sogo_folder_get_deleted_fmids;
|
||||
backend.folder.get_child_count = sogo_folder_get_child_count;
|
||||
backend.folder.open_table = sogo_folder_open_table;
|
||||
|
||||
Reference in New Issue
Block a user