|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-11-28 Not Zed <NotZed@HelixCode.com>
* providers/local/camel-maildir-summary.c
(camel_maildir_summary_init): Set the info size's properly, oops!
* tests/lib/folders.[ch]: Folder testing helpers.
* tests/folder/test2.c: Test basic message ops on folders.
* tests/folder/test1.c (main): Test basic folder ops on (local)
stores.
* providers/local/camel-local-provider.c
(camel_provider_module_init): Removed some debug.
* providers/local/camel-maildir-folder.c
(camel_maildir_folder_class_init): fix parent class.
* providers/local/camel-mh-folder.c (camel_mh_folder_class_init):
Fix parent class (damn cut & paste).
* providers/local/camel-maildir-store.c (get_folder): Call parent
impl.
(camel_maildir_store_class_init): Fix parent class setup.
(delete_folder): Check the folder exists before trying to delete
it.
(delete_folder): Try and make the delete operation atomic/rollback
failures. e.g. if one directory isn't empty, then create the
other empty ones back. Also clear the tmp directory fully first.
* providers/local/camel-mbox-store.c (get_folder): Call parent
impl.
(camel_mbox_store_class_init): parent class is camel_local_store,
not camel_folder, oops.
(delete_folder): Return an error if it doesn't exist, rather than
covering it up.
* providers/local/camel-mh-store.c (get_folder): Call parent impl.
(camel_mh_store_class_init): fix parent class setup.
(delete_folder): Error if it doesn't exist now.
* camel-folder.c (camel_folder_move_message_to):
(camel_folder_copy_message_to): Added warnings as these functions
are going to be removed later.
* camel-store.c (camel_store_get_root_folder): Fix for an early
api change. We want CAMEL_STORE_FOLDER_CREATE, not TRUE, since
its a flag.
(camel_store_get_default_folder): And here too.
* providers/local/camel-local-store.c (xrename): Handle renaming
folders differently to renaming files.
(get_default_folder_name): local stores dont have a default
folder, so make it so. Or at least, it doesn't seem to make sense
to have one.
(get_root_folder_name): Same for root.
(get_folder): Added parent implementation, that makes sure the
service path exists, if we are creating a new folder (but doesn't
create the folder).
2000-11-27 Not Zed <NotZed@HelixCode.com>
* providers/local/camel-local-store.c (xrename): Fixed races. Use
link/unlink, rather than rename, to properly detect overwriting
another file. And allow some files to be missing.
* providers/Makefile.am: Removed mh, mbox, added local, to the default.
svn path=/trunk/; revision=6693
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-11-16 Not Zed <NotZed@HelixCode.com>
* providers/local/camel-local-summary.c
(local_summary_encode_x_evolution): Check the uid string is all
digits before trying to write a 'standard' x-ev header.
* providers/local/camel-maildir-summary.c
(camel_maildir_summary_info_to_name): Convert an info into a
maildir name:info filename.
(camel_maildir_summary_name_to_info): Convert a name:info filename
into an info, and tell us if it didn't match it.
(message_info_new): When creating a new filename, gets its info
from the flags field. Likewise if creating from an existing file,
extract the flags.
(maildir_summary_sync): Remove a small memleak. Also, if our
flags and that requires a filename change, perform that here.
(message_info_new): Get the received date from the filename.
Also, dont overwirte the uid if we have one.
(maildir_summary_check): Sort the summary in received order before
completion.
(maildir_summary_next_uid_string): Test the name for collusions
before we give it out. Retry, and if that fails, well, I guess we
collide :(
* providers/local/camel-mbox-folder.c (mbox_lock): Implement mbox
locking.
(mbox_unlock): And unlocking.
(mbox_append_message): Lock the folder for write before doing
anything.
(mbox_get_message): Lock the folder for read before doing
anything.
* providers/local/camel-local-folder.c (camel_local_folder_lock):
Implement something here. We handle the recursive ability but
pass the locking to the folder itself.
(camel_local_folder_unlock): Likewise for unlocking.
(local_lock): Default - do nothing, return success.
(local_unlock): Same.
(local_sync): Changed slightly for locking api changes, and also,
only lock around the sync process itself.
* camel-lock.c: New file - utility functions for locking using
different strategies and/or for locking folders safely.
* Makefile.am (libcamel_la_SOURCES): Adde camel-lock.[ch]
svn path=/trunk/; revision=6592
|