| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
2001-04-23 Jeffrey Stedfast <fejj@ximian.com>
* camel-digest-folder.[c,h]: New class that can be used to browse
a multipart/digest message as if it were a CamelFolder.
svn path=/trunk/; revision=9530
|
|
|
|
| |
svn path=/trunk/; revision=9024
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-store.c (init_trash): Use camel_vtrash_folder_new() to
create the vtrash folder now.
* camel-vtrash-folder.[c,h]: New subclass of CamelVeeFolder for
our vTrash folders.
* camel-folder.c (camel_folder_copy_messages_to): Don't watch for
vtrash folders anymore.
(camel_folder_move_messages_to): Same.
* camel-vee-folder.c (camel_vee_folder_class_init): Update.
(vee_move_messages_to): Rewrite to use the new move API.
* camel-filter-driver.c (do_copy): Updated to reflect
copy_message_to changes. Create a temporary uid array and use
that.
(do_move): Same.
(camel_filter_driver_filter_message): And again, here...
* providers/imap/camel-imap-folder.c (imap_copy_messages_to):
Update to the new API.
(imap_move_messages_to): Same.
(get_uid_set): New function to create a `set' string based on an
array of UIDs for use with imap_copy_messages_to.
* camel-folder.c (camel_folder_copy_messages_to): Replaces
camel_folder_copy_message_to
(camel_folder_move_message_to): Replaces
camel_folder_move_message_to.
svn path=/trunk/; revision=8960
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-17 Not Zed <NotZed@Ximian.com>
* camel-folder.c (camel_folder_ref_message_info): Implemented.
(ref_message_info): And default implementation.
* camel-folder.h: Added ref_message_info virtual method.
2001-03-16 Not Zed <NotZed@Ximian.com>
* camel-folder-thread.c
(camel_folder_thread_messages_new_summary): New function to create
a thread tree from a supplied summary array.
(camel_folder_thread_messages_destroy): Handle thread trees
generated by the above function properly.
svn path=/trunk/; revision=8774
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder.c (camel_folder_copy_message_to): Don't allow the
user to copy a message to or from the vtrash folder. Set an
exception if they try.
(camel_folder_move_message_to): This one is a bit more
complicated: 1) If the user tried to move a message from the
vtrash into the original folder, just undelete the message. 2) If
the user tries to move the message to the vtrash folder, then just
mark the message as deleted. 3) If the user tries to move the
message from the vTrash to a folder other than the original, use
the original folder as the source. As another optimization, I've
made it so that if the user tries to move a message to the same
folder, just no-op.
(move_message_to): Unset the deleted flag before moving (assuming
it's there).
(copy_message_to): Same.
* camel-vee-folder.c (camel_vee_folder_get_message_folder): New
convenience function to get the folder from which the message uid
is derived from.
svn path=/trunk/; revision=8677
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder-summary.c (camel_message_info_new_from_header):
Doh, cut and paste problem, use mlist not cc.
* camel-folder.c (move_message_to):
(copy_message_to): If the source folder doesn't support a
summary, dont try and get the message info from it.
svn path=/trunk/; revision=8361
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-02-22 Not Zed <NotZed@Ximian.com>
* providers/vee/camel-vee-folder.c (vee_folder_build): Removed,
not used.
(camel_vee_folder_new): Removed call to build_folder.
(vee_get_message): Dont try and free the mi if we didn't get it.
* camel-folder.c (camel_folder_change_info_new): Added a hash
table of what we have in the lists, plus moved private things into
private pointer.
(camel_folder_change_info_add_source): Fixed up private accesses.
(camel_folder_change_info_add_uid): Changed to use a hashtable to
see if we already have the uid, etc.
(camel_folder_change_info_remove_uid): Similar.
(change_info_remove): Likewise.
(camel_folder_change_info_clear): Fixes for privatisations.
(camel_folder_change_info_free): "
svn path=/trunk/; revision=8339
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-02-19 Not Zed <NotZed@Ximian.com>
* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Added
flags argument.
(message_changed): Add support for the auto-update flag, in which
case we auto-match the content as it changes.
(camel_vee_folder_init): Remoive "DYNAMIC" optionality
(camel_vee_folder_finalise): "
(vee_expunge): As we expunge folders, re-sync their content by
rerunning the query.
* providers/vee/camel-vee-store.c (vee_get_folder): Pass flags to
folder new.
2001-02-18 Not Zed <NotZed@Ximian.com>
* providers/vee/Makefile.am (noinst_HEADERS): Added
camel-vee-private.h.
* providers/vee/camel-vee-private.h: New file to add locking stuff
for vee folders.
* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Add
locking around unmatched setup.
(camel_vee_folder_init): Setup lock.
(camel_vee_folder_finalise): Free locks.
(folder_changed): Add locking.
(unmatched_finalise): "
(message_changed): "
(vee_folder_build): "
2001-02-17 Not Zed <NotZed@Ximian.com>
* providers/vee/camel-vee-folder.c (vee_folder_add): Check uid
doesn't exist before adding it.
2001-02-16 Not Zed <NotZed@Ximian.com>
* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Create
a new virtual virtual folder UNMATCHED, to store all messages that
dont match other vfolders.
(unmatched_folder_changed): When a vfolder issues a changed event,
use its info to update the unmatched folder info.
(unmatched_finalise): When a vfolder is finalised, remove any uids
it has as if we had a removed event for it.
svn path=/trunk/; revision=8276
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-02-06 Not Zed <NotZed@Ximian.com>
* camel-search-private.c: Removed unwanted header. It was never
put in for a reason. Stop fixing irrelevant warnings.
(camel_ustrstrcase): Our own strstrcase impl for utf8 strings.
(camel_ustrcasecmp): Ditto for strcasecmp.
(camel_ustrncasecmp): And strncasecmp.
(utf8_get): Simpler interface to utf8 string processing.
(camel_search_header_match): Use the new things.
2001-02-05 Not Zed <NotZed@Ximian.com>
* camel-folder.c (get_summary): Removed some old variables/a small
memleak.
(free_summary): Removed old variables.
* camel-mime-utils.c (header_raw_check_mailing_list): New utility
function to get the mailing list (if any) that a set of headers
came from.
svn path=/trunk/; revision=8008
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/camel/ChangeLog,v
retrieving revision 1.684
diff -r1.684 ChangeLog
0a1,34
> 2001-01-17 Not Zed <NotZed@Ximian.com>
>
> * camel-folder.c (free_summary): Call
> camel_folder_summary_array_free() to do the work.
> (get_summary): Use camel_folder_summary_array() to get the array
> atomically. These fixes allow folder/test8 to work again, and fix
> a sort of race where the summary size can change while we were
> making a copy of it.
>
> * camel-folder-summary.c (camel_folder_summary_array): Get the
> summary array atomically, so it can't contain empty records.
> (camel_folder_summary_array_free): And free it.
>
> * tests/lib/camel-test.c (die): If we are verbose & in threads,
> then goto sleep so we can debug.
>
> * tests/folder/test8.c (worker): Add a missing pull() for
> comnparing content.
>
> * camel-filter-search.c: Fix the symbol table, so match-all is an
> immediate function, as it should be.
>
> * tests/folder/test9.c (main): New test, tests some filtering
> things.
>
> * tests/message/test3.c (main): Dont use a boundary string with
> spaces in it. Folding can corrupt it. Maybe the folding isn't
> working entirely right, but anyway.
>
> * camel-session.c: Debug out the debug.
>
> * camel-filter-driver.c (camel_filter_driver_filter_folder): Plug
> a messageinfo leak.
>
1a36,94
>
> * camel-filter-search.c (header_exists): Changed to support
> multiple args (or'd together).
> (header_contains): Cleaned up to match the search code. Why did
> fejj change it? I'll never know.
> (header_matches):
> (header_starts_with):
> (header_ends_with): Big cleanup of fejj's "i'm the cut & paste
> king" code. Also properly handle or'ing of additional args to
> match what the folder-search code should do.
> (check_match): New function which does the annoying matching
> stuff (for header matches).
> (check_header): Similarly, handles or'ing of the matches together.
> (header_contains):
> (header_matches):
> (header_starts_with):
> (header_ends_with): Call check_header to do the actual work.
> (header_soundex): And here too.
> (match_all): Yeah like match-all isn't passed expression results,
> its passed expression terms. Fix this so match-all works like it
> should, by executing the contained expression.
> (message_body_contains): Copied directly from
> camel-folder-search.c, a more robust/faster/simpler body search
> code.
> (mime_part_matches): Removed entirely.
> (handle_multipart): Removed entirely.
> (build_match_regex): Copied from camel-folder-search. Builds a
> set of simple strings into a regex pattern that matches any of
> them (for faster & simpler matching). Expanded to accept regex
> patterns itself, so it can merge them together.
> (body_contains): Use build match/match message to match using a
> built regex.
> (body_regex): Likewise, this time we tell it we're building a
> regex though.
> (header_full_regex): Use build_match_regex to take the drudgery
> out of it, and expand it to handle multiple regex's at once.
> (get_full_header): slightly cleaner (well i dunno, the sprintf
> stuff just got to me).
> (header_regex): Cleaned up to use build_match_Regex too, and to
> properly check types.
> (filter_message_search): Just allocate 'fms' on the stack.
>
> * camel-filter-driver.c (camel_filter_driver_finalise):
> (camel_filter_driver_init):
> (camel_filter_driver_class_init):
> (camel_filter_driver_get_type): Changed from gtk object to camel
> object.
> (camel_filter_driver_add_rule): New function to add a rule to be
> processed in sexp form.
> (camel_filter_driver_init): Init the rules list.
> (camel_filter_driver_finalise): Clear the rules/rules list.
> (camel_filter_driver_filter_message): Scan rules list directly
> rather than creating on the fly.
>
> * Makefile.am (libcamelinclude_HEADERS): Added camel-filter-driver.h
> (libcamel_la_SOURCES): Added camel-filter-driver.c, code taken
> from filter-driver, which can drive, uh, filters based on sexp's.
> (libcamelinclude_HEADERS):
> (libcamel_la_SOURCES): Added camel-filter-search.[ch]
svn path=/trunk/; revision=7560
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_copy_message_to): Fix a locking
problem. (One branch of an if statement was returning with the
lock still locked.) Also remove the deprecation comments, to match
move_message_to.
svn path=/trunk/; revision=7409
|
|
|
|
|
|
|
|
|
| |
2001-01-04 Not Zed <NotZed@HelixCode.com>
* camel-folder.c (thaw): If we have a lot of messages changed,
promote it to a folder changed event.
svn path=/trunk/; revision=7245
|
|
|
|
|
|
|
|
|
|
|
| |
2000-12-29 Not Zed <NotZed@HelixCode.com>
* camel-folder.c (camel_folder_move_message_to): REmove warning,
this isn't really deprecated, sigh.
* camel-mime-utils.c (header_fold): Comment out some debug.
svn path=/trunk/; revision=7222
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-12-24 Not Zed <NotZed@HelixCode.com>
* providers/imap/camel-imap-search.c (imap_body_contains): Lock
the command channel while searching.
(imap_body_contains): If performing a whole uid search, then add
references to our own summary items, dont look it up in the
folder. This way they can't vanish unexpectedly.
* providers/imap/camel-imap-folder.h (CamelImapFolder): Added a
private field.
* providers/imap/camel-imap-private.h: Added lock for imap
searches.
* Merge from camel-mt-branch.
* providers/imap/camel-imap-folder.c (imap_update_summary): Merge
fix, use the folder->summary.
(imap_get_message_flags, imap_set_message_flags,
imap_get_message_user_flag, imap_set_message_user_flag): Removed
again.
(camel_imap_folder_init): Setup private data/lock.
(imap_finalize): Free private data/search lock.
(imap_search_free): Lock the search_lock.
(imap_search_by_expression): Lock the search lock when using the
search object. Also copy/ref hte summary, rather than getting it
directly.
(imap_refresh_info): Free any info lookups. Use folder->summary
not imap_folder->summary. And lock around commands.
svn path=/trunk/; revision=7150
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-11-30 Not Zed <NotZed@HelixCode.com>
* providers/local/camel-mbox-folder.c (mbox_get_message): Remove
assertion that content is there, when it no longer can be.
* camel-folder-summary.h: Removed pos/bodypos/endpos from
camelmeessagecontentinfo.
(CamelMessageFlags): Added an attachments flag.
* providers/local/camel-local-summary.h: Added load virtual
function.
* tests/lib/folders.c (test_message_info): Accessors.
(test_folder_message): "
* camel-folder-thread.c (get_root_subject): Fix accessors.
(dump_tree_rec): "
* camel-folder-search.c (camel_folder_search_execute_expression):
Accessors for messageinfo.
(search_match_all): "
(search_header_contains): "
(search_header_contains): "
(search_body_contains): "
(camel_folder_search_execute_expression): Use mepool_strdup.
* providers/local/camel-mbox-summary.c (summary_update): Accessors
for messageinfo.
(mbox_summary_sync_full): "
* providers/local/camel-mh-summary.c (remove_summary): Accessors
for messageinfo.
(mh_summary_check): "
(mh_summary_sync_message): "
(mh_summary_sync): "
* providers/local/camel-mh-folder.c (mh_append_message): Use
accessor for uid.
* providers/local/camel-local-summary.c
(local_summary_decode_x_evolution): Use accessor to uid.
(local_summary_encode_x_evolution): Likewise.
(message_info_new): And here.
(camel_local_summary_load): Call virtual load function.
(local_summary_load): Default load function, load summary.
(camel_local_summary_load): Check file exists before trying to
load.
(camel_local_summary_construct): Turn off building content info!
(CAMEL_LOCAL_SUMMARY_VERSION): Bump, since we dont build content
info anymore.
(camel_local_summary_load): After a successful load/check, do a
save too so we dont have to go through it again randomly.
* providers/nntp/camel-nntp-utils.c (get_XOVER_headers): Use
accessors for messageinfo.
* providers/nntp/camel-nntp-folder.c (nntp_folder_get_uids): Use
accessors for uid.
* providers/imap/camel-imap-folder.c (imap_refresh_info): Use
accessor for uid.
(imap_sync): Likewise.
(imap_get_uids): Likewise.
(imap_update_summary): And here.
* providers/vee/camel-vee-folder.c (vfolder_remove_match): Use
accessor for uid.
(vfolder_add_match): Handle estrv stuff.
(vfolder_change_match): Accessor for uid.
(get_real_message): "
(vee_get_uids): "
(vee_folder_build): " + estrv.
(vee_folder_build_folder): "
* providers/local/camel-maildir-folder.c (maildir_append_message):
Use acccessors for uid's.
(maildir_get_message): Here too.
* providers/local/camel-maildir-summary.c
(camel_maildir_summary_init): Setup the string count for us.
(message_info_new): Access the string array directly.
(message_info_free): No need to free string if using array.
(camel_maildir_summary_info_to_name): Use accessor to get to uid.
(remove_summary): And here.
(maildir_summary_check): Likewise.
(maildir_summary_sync): And here.
(maildir_summary_load): Load up a cache of uid->filename mappings
before loading the actual summary file. This saves us having to
waste the diskspace storing the filenames in the summary itself,
and also helps us sync the summary better on load.
(message_info_load): If we have the load_map setup, and the uid
exists, then set the filename cache from it, and update the flags
from the name, incase our summary mismatches it.
* camel-folder-summary.c (camel_folder_summary_init): Setup string
count for compressed info record. An optional compile mode which
stores all strings for a given messageinfo into a packed array,
which should save 36-50 bytes/record.
(camel_folder_summary_info_new): Init the string array.
(message_info_new): Set the string array items, as required.
(message_info_load): And here too.
(message_info_save): Use accessors to get to strings.
(message_info_free): Free strings as one.
(camel_message_info_dup_to): Handle packed array case.
(camel_folder_summary_add): Use accessors. And pack the strv
before storing it.
(summary_assign_uid): New function to assign a unique uid to a
message, if it doesn't have one.
(camel_folder_summary_add): Call assign_uid instead of doing it
ourselves.
(camel_folder_summary_info_new_from_parser): "
(camel_folder_summary_info_new_from_message): "
(camel_folder_summary_encode_string): constify.
(camel_folder_summary_encode_token): "
(summary_build_content_info_message): Fix accessors to messageinfo.
(CAMEL_FOLDER_SUMMARY_VERSION): Bumped, for removal of
contentinfo->pos data.
(camel_folder_summary_info_new_from_parser): Calculate the size
based on the parser position, not the removed contentinfo stuff.
(camel_folder_summary_info_new_from_message): Remove size stuff.
(camel_folder_summary_offset_content): Removed, no longer means anything.
(content_info_new):
(content_info_load):
(content_info_save):
(summary_build_content_info): Remove stuff for contentinfo->pos*.
(summary_build_content_info): Take a msginfo argument, set
attachments flag if we find any attachments.
(summary_build_content_info_message): set attachments flag if we
find any attachments.
(camel_folder_summary_info_new_from_parser): Always scan the
content info, even if we dont save it.
(camel_folder_summary_info_new_from_message): And here too.
(summary_build_content_info): Only create the contentinfo stuff if
we have it turned on, otherwise just parse and discard.
(summary_build_content_info_message): Likewise.
svn path=/trunk/; revision=6731
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-21 Not Zed <NotZed@HelixCode.com>
* providers/local/camel-mh-summary.c (mh_summary_sync_message):
Shite, -1 on error, >=0 on success. So i've just been truncating
all the messages I touched, good one zed.
(mh_summary_sync_message): Sigh, and write to the right damn fd as
well.
(mh_summary_sync_message): Argh, and we need to compare the length
of the old xev -1 to the new xev, to check if we can optimise it.
* camel-folder.c (camel_folder_change_info_new): Init the pool.
(camel_folder_change_info_add_source): Allocate string in the
pool.
(camel_folder_change_info_add_source_list):
(camel_folder_change_info_add_update): No longer free the key, as
it cannot be yet.
(change_info_add_uid): Add a new arg, copy, telling it whether to
copy the uid argument or not, and copy using mempool_strdup.
(change_info_cat): Tell add_uid to copy the string.
(camel_folder_change_info_add_update): Call add_uid directly.
(change_info_remove): Call add_uid directly, with no copy, and
dont free the key.
(change_info_free_update): No longer required since we dont malloc
the keys.
(camel_folder_change_info_add_uid): Fix for add_uid change.
(camel_folder_change_info_remove_uid):
(camel_folder_change_info_change_uid):
(change_info_clear): No longer needed, just set the size to 0 on
the array directly.
(camel_folder_change_info_clear): Empty the arrays directly, and
flush the mempool too, and also clear uid_source, incase anyone
was silly enough to call us in the wrong order.
(camel_folder_change_info_free): Dont bother clearing the array's
contents, just free the pool and throw away all the indexes.
* camel-folder.h: Added a mempool to CamelFolderChangeInfo to
store the uid's we get.
* camel-folder-search.c (search_match_all): If we are only
matching a single info, just use that/do the search.
(camel_folder_search_match_expression): New function. Matches a
single message info against an expression.
(camel_folder_search_init): Init a hash table used to map the
returned gptrarrays' to mempools.
(camel_folder_search_execute_expression): Store all of the string
data in a mempool, slightly faster, less wasted space (usually),.
(camel_folder_search_free_result): Check for the mempool that
stores the data for the list, and free that if we have it,
otherwise assume we need to use g_free() (which should only happen
if the list is empty at the moment).
: commented out the debugging prints. Got sick of 'executing
header search' crap.
* providers/vee/camel-vee-folder.c (camel_vee_folder_init): Init
changes.
(camel_vee_folder_finalise): Free changes.
(vfolder_add_match): Simple helper to add a new matching info
record.
(camel_vee_folder_add_folder): Only trigger a changed event if we
have changes.
(vfolder_change_match): New function, changes our local vfolder
info to match the source.
(vfolder_add_match): Add a new info to the vfolder list.
(vfolder_remove_match): Remove a no-longer matching info from the
vfolder summary.
(message_changed): check if the message still matches, and
remove/etc as required.
(camel_vee_folder_finalise, init): init/free search object.
(vee_folder_build_folder): Build the changes to the folder into
the changes data, as we go.
(folder_changed): If the folder gave us an explicit list of
changes, then process each one separately (unless there's a lot
added/changed).
* providers/vee/camel-vee-folder.h: Added a changes field to the
folder.
svn path=/trunk/; revision=6628
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-11-15 Not Zed <NotZed@HelixCode.com>
* providers/Makefile.am: Removed local again, not quite ready.
2000-11-14 Not Zed <NotZed@HelixCode.com>
* camel-folder-summary.c (message_info_new_from_message): Use
message_info_new to create the summary from headers, instead of
getting directly from the message.
(format_recipients): No longer required.
* providers/Makefile.am (SUBDIRS): Added local.
2000-11-11 Not Zed <NotZed@HelixCode.com>
* camel-mime-parser.c (folder_push_part): Make sure 'atleast' is
at least 1, always. This is possibly a temporary fix for a
bad failure mode on bad multipart messages.
(folder_scan_content): Go until inend, not inend+1. Changed the
continuation and retry logic to be simpler and more robust. If we
can't find a marker within
the atleast we need, just set it to 1, and try again, rather than
just going to the next smaller limit (boundary check checks the
length anyway).
(header_append): streamline the empty line case. And strip
trailing \r's if there are any (\n's already stripped).
(folder_scan_header): Reordered and cleaned up a lot. Check for
continuation only once, and compress lwsp then. Assume the header
buffer already has end of line's stripped, and simplify some things:
Only check for end of headers once and easier.
Dont check to remove end of line character
Dont bother testing inptr-start if we get a boundary match - it is
always zero.
(folder_scan_header): Removed the unused part variable, and a few
pointless assignments.
(folder_scan_header): Change the end limit to be 1 higher, to make
sure we get all content.
(folder_scan_content): And here too.
(folder_scan_header): Killed a warning.
(folder_push_part): Removed a bad comment. Actually
boundarylenfinal can be zero for a new message not in a
multipart. So we fix that here.
2000-11-09 Not Zed <NotZed@HelixCode.com>
* camel-mime-utils.c (header_decode_param_list): Renamed from
header_param_list_decode.
(header_param_list_decode): New external function to decode a
parameter list.
(header_param_list_format_append): Made public.
(header_param_list_format): Another new public helper function for
formatting just a param list.
* camel-folder-summary.c (next_uid_string): Default implementation
is the same as before.
(camel_folder_summary_class_init): And set it up.
* camel-folder-summary.h: Make next_uid_string a virtual function.
* camel-folder.c (camel_folder_change_info_changed): New function
to return true if the changeset contains any changes.
svn path=/trunk/; revision=6577
|
|
|
|
|
|
|
|
| |
2000-11-02 Not Zed <NotZed@HelixCode.com>
* Merged in camel-incremental-branch.
svn path=/trunk/; revision=6336
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_refresh_info): Update comment here
so refresh_info isn't just for reconnects any more. Make the
default implementation a no-op rather than an error.
* providers/nntp/camel-nntp-folder.c: Move refresh_info impl into
camel_nntp_folder_new, since it would have leaked memory and not
done anything useful if it was called later.
* providers/mbox/camel-mbox-folder.c: Remove no-longer-necessary
refresh_info impl.
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Update imap_folder->exists, but don't actually load the new
messages. This is a temporary workaround to deal with the IMAP
provider stealing the message list focus at annoying times.
(imap_copy_message_to, imap_move_message_to): Emit a
folder_changed by hand, for now.
svn path=/trunk/; revision=6046
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.[ch]: Remove
camel_folder_{get,free}_subfolder_info, as we want to be able to
scan the whole subfolder tree without having to open any folders,
so this needs to be in CamelStore. Remove can_hold_folders and
can_hold_messages flags; things that don't hold messages are no
longer considered CamelFolders.
* camel-folder-summary.[ch]: Remove CamelFolderInfo stuff.
* camel-store.[ch]: Add camel_store_{get,free}_folder_info, as
well as camel_store_free_folder_info_full and ..._nop for default
implementations, and camel_folder_info_free and
camel_folder_info_build as convenience functions. Turn
CamelFolderInfo into a tree structure and also add an "url"
member.
* providers/*/camel-*-folder.c: Remove subfolder_info and can_hold
stuff.
* providers/*/camel-*-store.c: Add folder_info stuff.
* providers/imap/camel-imap-folder.c (imap_summary_free): Free the
summary elements with camel_message_info_free, not
camel_folder_info_free. Oops.
* providers/imap/camel-imap-utils.c: const poison
svn path=/trunk/; revision=5663
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c: (init): Removed
(camel_folder_init, camel_folder_construct): New object init
function and public object constructor to replace the old init
method in a more Gtk-like fashion.
(get_parent_folder, camel_folder_get_parent_folder): Removed. No
CamelFolder subclass was ever setting the parent_folder member, no
code has ever needed to look at it, and fixing it would actually
be pretty hard.
(get_subfolder_info, camel_folder_get_subfolder_info): Renamed
from ..._names. Deals in CamelFolderInfo now.
(free_subfolder_info, camel_folder_free_subfolder_info): Likewise.
(get_subfolder, camel_folder_get_subfolder): Removed.
CamelFolderInfo contains the subfolder's full name, so this is
unnecessary now, and removing it lets us get rid of the
CamelFolder separator member, which is needed for the default
implementation of this function, but not otherwise needed for most
providers.
Also, lots of code style fixes.
* providers/*: Update CamelFolder subclasses for changes, although
none of them fill in the message counts in the CamelFolderInfo
yet.
svn path=/trunk/; revision=5503
|
|
|
|
|
|
| |
Prepare for the ability to cancel operations (much better exception handling). Clean up IMAP like nobody's business
svn path=/trunk/; revision=5103
|
|
|
|
|
|
| |
main thread.
svn path=/trunk/; revision=4744
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-11 Not Zed <NotZed@HelixCode.com>
* providers/mh/camel-mh-folder.c (mh_set_message_user_tag):
Implement.
(mh_get_message_user_tag): Implement.
* providers/mbox/camel-mbox-folder.c (mbox_get_message_user_tag):
(mbox_set_message_user_tag): Implement.
* camel-folder.c
(camel_folder_set_message_user_tag): Routine to set message tags.
(camel_folder_get_message_user_tag): And accessor.
svn path=/trunk/; revision=4729
|
|
|
|
|
|
|
|
|
|
| |
2000-08-11 Not Zed <NotZed@HelixCode.com>
* camel-folder.c (move_message_to): Yay so lets fix an already fixed fix, again.
(copy_message_to): and here too ... update for api change to append().
And removed another warning.
svn path=/trunk/; revision=4728
|
|
|
|
| |
svn path=/trunk/; revision=4687
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-11 Not Zed <NotZed@HelixCode.com>
* camel-mime-parser.c (folder_scan_header): A better way to
compress leading whitespace. The code is probably invalid anyway,
I dont think it will work across buffer boundaries.
* providers/mbox/camel-mbox-folder.c (mbox_append_message): And
write out proper format From lines here too.
* providers/mbox/camel-mbox-summary.c
(camel_mbox_summary_build_from): New function to build a more
compatible mbox "From " line.
(camel_mbox_summary_sync): Write From lines in the proper format.
2000-08-10 Not Zed <NotZed@HelixCode.com>
* providers/mh/camel-mh-store.c (get_folder): Remove warnin g.
* providers/mbox/camel-mbox-store.c (xrename): Kill some warnings
with constification.
* providers/imap/camel-imap-folder.c (imap_append_message): Fixed
for append api change. Eek this routine seriously wastes memory.
* providers/mh/camel-mh-folder.c (mh_search_free): Impelemnt.
(mh_append_message): Fix for api change, and include user flags
and tags in new message.
* providers/vee/camel-vee-folder.c (vee_search_by_expression): Fix
for search api change.
* camel-folder.c (camel_folder_search_free): New function for
freeing search results.
(search_free): Changed my mind, implement a default that actually
does something. Free as to the old interface.
(camel_folder_append_message): Changed to accept a
camelmessageinfo rather than flags, which just doesn't have enough
info in it.
(copy_message_to): Change for append_message api change.
(move_message_to): Likewise.
* providers/mbox/camel-mbox-folder.c (mbox_search_free):
Implement.
(mbox_append_message): Fix for api change, and also copy user
flags/tags across to new summary.
* camel-folder-search.c (search_user_tag): A search expression
that returns the current use flag by name.
(camel_folder_search_free_result): New function to free the result
of a search.
* camel-folder-summary.c: Bump summary version.
(message_info_new):
(message_info_load):
(message_info_save):
(camel_message_info_dup_to):
(camel_message_info_free): Added support for arbitrary tag/value
pairs (CamelTag's).
(camel_tag_get):
(camel_tag_set):
(camel_tag_list_size):
(camel_tag_list_free): Operations for working with CamelTags.
svn path=/trunk/; revision=4683
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_free_deep): Fix this to not require
NULL-termination of the array.
svn path=/trunk/; revision=4560
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c: Remove exceptions from a number of methods that
work on what ought to be static data: get_parent_folder,
get_parent_store, get_message_count, get_unread_message_count,
get_permanent_flags, get_message_flags, set_message_flags,
get_message_user_flag, set_message_user_flag, get_uids,
get_summary, get_subfolder_names. Turn camel_folder_delete_message
into a macro. (Mostly a pull-up from the camel-async branch.)
* providers/{imap,mbox,nntp,pop3,vee}: Update for CamelFolder
changes
svn path=/trunk/; revision=4303
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.[ch]: Remove camel_folder_get_message_uid, which
was not used, and not implemented by any provider.
* providers/nntp/camel-nntp-folder.c: Remove get_message_uid
non-implementation.
svn path=/trunk/; revision=4292
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_free_deep,
camel_folder_free_shallow, camel_folder_free_nop): Useful default
implementations for free_{uids,subfolder_names,summary}.
(free_subfolder_names, free_uids): Make these g_warning-ing
default implementations.
* providers/*/camel-*-folder.c: Use the new functions where
appropriate, remove duplicated code.
svn path=/trunk/; revision=4120
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-12 Jeffrey Stedfast <fejj@helixcode.com>
* providers/mbox/camel-mbox-folder.c (mbox_delete_message): Use
mbox_set_message_flags () instead of setting the flags by hand. This
fixes the problem of the "message_changed" signal not being emitted
at the correct time.
* providers/imap/camel-imap-folder.c: "folder_changed" signals should
pass a third argument (which is ignored).
* camel-folder.c: Undo gtk signal emits done in set_flags and
expunge.
(move_message_to):
(copy_message_to): Create info as a const CamelMessageInfo
svn path=/trunk/; revision=4118
|
|
|
|
| |
svn path=/trunk/; revision=4110
|
|
|
|
| |
svn path=/trunk/; revision=4109
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-11 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (camel_folder_append_message): Now takes a
flags argument to specify the flags to be set on the message
since we might not necessarily want the flags to be wiped clean.
(move_message_to):
(copy_message_to): Updated to send a flags argument to
append_message (); currently sends the original message's flags.
* providers/mbox/camel-mbox-folder.c (mbox_append_message):
* providers/imap/camel-imap-folder.c (imap_append_message):
Updated.
svn path=/trunk/; revision=4099
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-10 Jeffrey Stedfast <fejj@helixcode.com>
* providers/mbox/camel-mbox-folder.c (mbox_get_unread_message_count):
* providers/vee/camel-vee-folder.c (vee_get_unread_message_count):
* providers/imap/camel-imap-folder.c (imap_get_unread_message_count):
Implemented.
* camel-folder.c (camel_folder_get_unread_message_count): New
convenience function to allow the mailer to query the number
of unread messages in a folder (for displaying message stats
in a folder tree?).
svn path=/trunk/; revision=4028
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_search_by_expression): Make this
return a GPtrArray rather than a GList.
* camel-folder-search.c (camel_folder_search_execute_expression):
* providers/imap/camel-imap-folder.c (imap_search_by_expression):
* providers/mbox/camel-mbox-folder.c (mbox_search_by_expression):
* providers/nntp/camel-nntp-folder.c (nntp_search_by_expression):
Update to return a GPtrArray rather than a GList.
svn path=/trunk/; revision=3958
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_freeze, camel_folder_thaw): New
functions to freeze and thaw a folder (to prevent message/folder
changed signals in the middle of a long series of operations).
(camel_folder_class_init): Change signals to GTK_RUN_FIRST.
(message_changed, folder_changed): Add default implementations
that stop the emission and record info for later if the folder is
frozen.
* providers/mbox/camel-mbox-folder.c (mbox_sync): leftover fixes
from the close->sync change: don't destroy the ibex, summary, and
search when syncing.
svn path=/trunk/; revision=3863
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-01 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c: Renamed _by_uid methods. Since we no longer
have get-by-number methods, no need to have the _by_uid
extensions.
(get_message_by_uid): Renamed to get_message
(delete_message_by_uid): Renamed to delete_message
(summary_get_by_uid): Renamed to get_message_info
* providers/mbox/camel-mbox-folder.c:
* providers/pop3/camel-pop3-folder.c:
* providers/imap/camel-imap-folder.c:
* providers/vee/camel-vee-folder.c: Updated to reflect
camel-folder changes.
svn path=/trunk/; revision=3843
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-06-30 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (camel_folder_copy_message_to): New function, to
copy a message from one folder to another. The default
implementation just uses append_message, but providers can
implement more efficient versions for use when both folders are on
the same store.
* broken-date-parser.[c,h]: Utilities for parsing broken
date strings.
* providers/imap/camel-imap-folder.c (imap_move_message_to):
(imap_copy_message_to): Implemented.
* camel-mime-utils.c (header_decode_date): Wrote some code to try
and un-mangle broken date formats and then parse that new string
instead.
svn path=/trunk/; revision=3841
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_move_message_to): New function, to
move a message from one folder to another. The default
implementation just uses append_message and delete_message, but
providers can implement more efficient versions for use when both
folders are on the same store.
svn path=/trunk/; revision=3832
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
simplifies several flag-handling pieces of code in the mailer, and
lets you change a message's flags without having to fetch the
message body. It also means that fully-constructed
CamelMimeMessages are now essentially constant, which will help
simplify locking issues later since it means two threads
interested in the same message can just work with separate copies
of it.
* camel-mime-message.h (struct _CamelMimeMessage): Removed flags
and user_flags (moved to summary). Removed expunged and
message_number which were unused. Removed message_uid and folder
which are no longer needed in the new scheme.
(struct CamelMimeMessageClass): Removed message_changed signal and
get/set_message_number methods.
* camel-mime-message.c: Updates for CamelMimeMessage changes.
(camel_mime_message_get/set_flags,
camel_mime_message_get/set_user_flag): Replaced with methods in
CamelFolder.
(camel_flag_get, camel_flag_set, camel_flag_list_size,
camel_flag_list_free): Moved verbatim to camel-folder-summary.c
* camel-folder.c (camel_folder_get/set_message_flags,
camel_folder_get/set_message_user_flag): New methods (and
corresponding useless default implementations)
(camel_folder_class_init): add a message_changed signal
* camel-folder-summary.c (camel_flag_get, camel_flag_set,
camel_flag_list_size, camel_flag_list_free): Moved here from
camel-mime-message.c
* providers/mbox/camel-mbox-folder.c (message_changed): Removed.
(mbox_get_message_flags, mbox_set_message_flags,
mbox_get_message_user_flag, mbox_set_message_user_flag): Tweak
summary bits as appropriate. (Functionality moved here from
message_changed.)
(mbox_get_message_by_uid): Update for CamelMimeMessage changes
(less stuff to initialize).
* providers/imap/camel-imap-folder.c (message_changed): Remove
this. It was just copied from the mbox provider and doesn't deal
with the real IMAP flag stuff anyway. (So there's currently no
flag support in the IMAP provider.)
(imap_get_message_by_uid): Update for CamelMimeMessage changes.
* providers/vee/camel-vee-folder.c: (message_changed): Remove old
one. Add a new one to listen for message_changed on each folder
and re-emit message_changed signals that correspond to messages in
the vfolder.
(vee_get/set_message_flags, vee_get/set_message_user_flag): Proxy
flag setting to the underlying real messages.
(vee_append_message): Removed for now; there's no way to translate
this into the new CamelMimeMessage/CamelFolder scheme, but (a)
there's also no code which would ever call it and (b) we're
probably going want a better interface than append_message for
message drag and drop to work anyway. To be revisited.
svn path=/trunk/; revision=3598
|
|
|
|
| |
svn path=/trunk/; revision=3587
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c: (camel_folder_open, camel_folder_is_open,
camel_folder_get_mode): Kill. Folders are now always open, and
handle "closing" sorts of operations at sync or finalize time.
(camel_folder_sync): renamed from camel_folder_close. Syncs state
to the store but doesn't necessarily close/disconnect.
* providers/*/camel-*-folder.c: Merge "open" methods into "init"
methods. Rename close to sync and update appropriately.
* providers/imap/camel-imap-store.c: Remove camel_imap_store_open
and camel_imap_store_close, which should not have been copied from
the POP provider (where the exist to work around limitations of
the POP protocol).
svn path=/trunk/; revision=3581
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-06-14 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (init): Updated: a separator is now a char* rather than
a single char because IMAP can have a string for a directory separator.
Also, since IMAP does not begin with a directory separator, there is a new
argument (path_begins_with_sep) which decides if a directory should begin
with a directory separator.
* providers/imap/camel-imap-store.c (imap_create): Since, on connect,
Camel tries to create INBOX (which already exists on every IMAP provider)
we can return TRUE when the folder name is "INBOX".
* providers/vee/camel-vee-folder.c (vee_init): Updated.
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Updated.
* providers/mbox/camel-mbox-store.c (get_folder): Updated.
* providers/mbox/camel-mbox-folder.c (mbox_init): Updated.
* providers/pop3/camel-pop3-folder.c (camel_pop3_folder_new): Updated.
svn path=/trunk/; revision=3559
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c: Remove exists, create, delete. A CamelFolder
now always references an existing folder. Remove delete_messages
too since it wasn't being used. Add a "create" flag to
get_subfolder saying whether or not to create the subfolder if it
doesn't yet exist.
* camel-store.c (camel_store_get_folder): Add a "create" flag to
say whether or not to create the folder if it doesn't yet exist.
(camel_store_delete_folder): New method, moved from CamelFolder.
(cache_folder, uncache_folder): Fix up a bit.
(get_folder_name): Explain what this is for.
* providers/mbox/camel-mbox-folder.c:
* providers/mbox/camel-mbox-store.c: Update. Remove support for
hierarchical folders to simplify this for now, since we're not
using it, and it's not completely clear how they should work in an
ELocalStorage world. Needs to be revisited.
* providers/pop3/camel-pop3-folder.c (delete_messages): Remove.
* providers/pop3/camel-pop3-store.c (get_folder): Update.
* providers/vee/camel-vee-folder.c (exists): Remove.
* providers/vee/camel-vee-store.c (vee_get_folder): Update.
svn path=/trunk/; revision=3453
|
|
|
|
| |
svn path=/trunk/; revision=3286
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-05-19 NotZed <NotZed@HelixCode.com>
* camel-simple-data-wrapper.c (construct_from_stream): If we
already have been constructed, unref our content.
(write_to_stream): Check we've been constructued, and change for
stream api changes.
* camel-mime-parser.c: Removed exception stuff.
* md5-utils.c (md5_get_digest_from_stream): repaired.
* camel-mime-message.c: Remove exception from write_to_stream, and
fix, and fix formatting.
* providers/sendmail/camel-sendmail-transport.c (_send_internal):
Fix for stream changes.
* providers/pop3/camel-pop3-store.c (camel_pop3_command): Fixes
for stream changes.
* providers/mbox/camel-mbox-folder.c, and elsewhere, fix all
stream api changes.
(mbox_append_message): Use stream_close() now its back.
(mbox_append_message): unref the from filter.
* camel-stream-mem.c: And here.
* camel-stream-fs.[ch]: Here too.
* camel-stream-filter.c: Likewise. This is getting tedious.
* camel-stream-buffer.c (stream_write): Fix a few little problems.
(stream_close): Reimplmeent.
(camel_stream_buffer_read_line): Slightly more efficient version,
that also only allocates the right amount of memory for strings.
* camel-seekable-substream.c: Likewise.
* camel-seekable-stream.[ch]: Remove exceptions, fix formatting,
changes for stream (re)fixes. set_bounds returns an error.
* camel-stream.[ch]: Remove exceptions. Make flush and reset return
an error code, repair all the screwed up formatting, and put back
close.
* camel-mime-part-utils.c
(camel_mime_part_construct_content_from_parser): And here.
* camel-mime-part.c (camel_mime_part_set_content): And this too.
(write_to_stream): Fixed for stream changes.
* camel.h: Fixed.
* providers/vee/camel-vee-folder.c (vee_search_by_expression):
Implement. Performs an intersection of the two searches.
(camel_vee_folder_finalise): Unref search folders.
(vee_append_message): Implement append.
svn path=/trunk/; revision=3142
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c: remove message_number_capability and require uid
capatibility.
(camel_folder_list_subfolders, camel_folder_get_uid_list,
camel_folder_get_subfolder_info, camel_folder_get_message_info):
removed
(camel_folder_get_subfolder_names,
camel_folder_free_subfolder_names): new subfolder interfaces.
(camel_folder_get_uids, camel_folder_free_uids): new uid
interfaces
(camel_folder_get_summary, camel_folder_free_summary): new summary
interfaces
* providers/mbox/camel-mbox-folder.c,
* providers/nntp/camel-nntp-folder.c:
* providers/vee/camel-vee-folder.c: Update for changes
* providers/pop3/camel-pop3-folder.c: Implement get_uids, update
for other changes.
svn path=/trunk/; revision=3126
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c: Remove unused async open/close and
copy_message_to functions.
Rename functions without initial _. Fix glib preconditions and
gtk-doc comments.
svn path=/trunk/; revision=3116
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-object.c: New subclass of GtkObject which is now the base
of the Camel object hierarchy. Currently the only difference
between CamelObject and GtkObject is that CamelObjects don't start
out floating.
* *.h: Move a bunch of typedefs to camel-types.h. Standardize on
using <camel/foo.h> in header files rather than <foo.h>, "foo.h",
or "camel/foo.h". Remove some unneeded includes.
* camel-address.c, camel-data-wrapper.c, camel-folder-search.c,
camel-folder-summary.c, camel-folder.c, camel-mime-filter.c,
camel-mime-parser.c, camel-service.c, camel-session.c,
camel-stream.c: These are now subclasses of CamelObject.
* camel-data-wrapper.c (set_output_stream):
* camel-medium.c (set_content_object):
* camel-seekable-substream.c
(init_with_seekable_stream_and_bounds):
* providers/mbox/camel-mbox-folder.c (mbox_get_message_by_uid):
remove gtk_object_sink calls.
* camel-stream-buffer.c (init_vbuf):
* camel-stream-filter.c (camel_stream_filter_new_with_stream):
ref the original stream.
* camel-folder-summary.c (camel_folder_summary_finalise): unref
the filters when finalizing.
* camel-mime-part-utils.c
(simple_data_wrapper_construct_from_parser,
camel_mime_part_construct_content_from_parser):
* camel-mime-part.c (camel_mime_part_set_content): Unref objects
that are created only to be handed off to other objects. If
they're going to be needed later, they will have been additionally
ref'ed by the object that needs them.
* providers/pop3/camel-pop3-folder.c (get_message_by_number):
unref the message stream after creating the data from it.
* camel-stream.c, camel-stream-buffer.c, camel-stream-filter.c,
camel-stream-fs.c, camel-stream-mem.c: Remove camel_stream_close,
since its semantics are dubious (what happens when you close a
stream other people still have references on?).
* providers/nntp/camel-nntp-store.c:
* providers/smtp/camel-smtp-transport.c:
* providers/pop3/camel-pop3-store.c:
replace camel_stream_close calls with gtk_object_unref.
* providers/mbox/camel-mbox-folder.c:
* providers/nntp/camel-nntp-folder.c:
* providers/sendmail/camel-sendmail-transport.c:
replace camel_stream_close with camel_stream_flush +
gtk_object_unref
svn path=/trunk/; revision=2882
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not even if its slipped in with no changelog.
2000-05-04 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-summary.c: Yes, and anotherone.
* camel-mime-utils.c: And another one.
* camel-mime-part.c: And another one.
* camel-mime-part-utils.c: And another one.
* camel-folder-search.c: And another one.
* camel-mime-parser.c: Reverted a change wihtout a ChangeLog entry.
2000-05-04 NotZed <NotZed@HelixCode.com>
* camel-folder-summary.[hc]: Yes, CamelFolderSummary is back ...
... re-usable class to summarise and index any stream or message
and to manage/load/save the created summaries.
* camel-folder.c: Include string.h to kill a warning.
2000-05-03 NotZed <NotZed@HelixCode.com>
* camel-folder.h: Added pos/bodypos/endpos to the basic message
content info object. Size to be removed? Moved the
messageconentinfo and messageinfo back to camel-folder-summary.h.
* camel-mime-filter-index.c (camel_mime_filter_index_set_ibex):
New function to (re)set the index to use on a filter.
* camel-mime-parser.c (camel_mime_parser_scan_from): Whole bunch
of inline docs.
(camel_mime_parser_drop_step): New function to drop a state from
the parser. Needs more testing.
svn path=/trunk/; revision=2789
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> nntp provider (but its broken anyway). The mime parser can be
> used instead though.
> Removed from all code including it (but none were using it).
>
> * gmime-utils.c (_store_header_pair_from_string): Removed bizarre
> string_dichotomy version of this. This code is somewhat redundant
> now, and is headed for death anyway.
>
> * gstring-util.c (g_string_dichotomy): Same with this one.
> (g_string_clone): Removed a memory leak, g_string_new() allocates
> its own memory.
> (g_string_append_g_string): Allow to append an empty gstring onto
> another gstring, dont abort()!
>
> * string-utils.c (string_dichotomy): Removed this incredibly weird
> function.
>
> * camel-folder.c (_create): Replaced the rather obtuse use of
> "string_dichotomy" function with a simple strrchr(). Still not
> sure it'll work.
>
> * camel-folder-summary.c: cvs removed a long-removed file.
svn path=/trunk/; revision=2753
|
|
|
|
|
|
|
|
|
|
|
|
| |
A new folder signal for gui/etc's to track changes.
(camel_mbox_summary_expunge): Oops, my wrong, use the string uid
to unindex on.
(mbox_expunge): Emit a folder_changed signal on expunge (uh, even
if it didn't ...)
(camel_folder_class_init): Added a folder_changed signal.
svn path=/trunk/; revision=2745
|
|
|
|
|
|
| |
> folder. It doesn't make sense for mbox, otherwise (?)
svn path=/trunk/; revision=2743
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/mbox/camel-mbox-folder.h (CamelMboxFolder): Removed
search_id.
* providers/mbox/camel-mbox-search.c
(camel_mbox_folder_search_cancel): Remove.d
(camel_mbox_folder_search_complete): Removed.
(camel_mbox_folder_search_by_expression): Changed back to sync
api.
(struct _searchcontext): Removed cancelled flag.
(find_context): Removed.
* providers/mbox/camel-mbox-search.h
(camel_mbox_folder_search_by_expression): Moved back to sync api.
(camel_folder_search_complete): Removed.
(camel_folder_search_cancel): Removed.
(CamelFolderClass): New function summary_get_by_uid() to get a single
summary.
(*search*): Moved back to synchronous search api ... *sigh*
svn path=/trunk/; revision=2723
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
flag causes an expunge to expunge the deleted messages.
2000-05-01 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-summary.c
(camel_mbox_summary_set_flags_by_uid): New function to update the
flags in the summary.
(camel_mbox_summary_expunge): Expunge messages from a folder.
(offset_content): Re-align offsets of summary when messages
added/removed to an existing summary.
(camel_mbox_summary_remove_uid): Remove a message summary entry by
uid.
(index_folder): Restore flags from X-Evolution header, if they are set.
* providers/mbox/camel-mbox-folder.c (_get_message_by_uid):
Connect to the message_changed signal.
(_init): Set permanent flags to something reasonable. No user
flags yet ...
(message_changed): If the flags of the message change, update the
flags in the summary.
(mbox_expunge): Implement the expunge.
(camel_mbox_folder_class_init): Renamed all leading _'s to mbox_'s
* camel-folder.c (_finalize): Uh, dont free permanent_flags
anymore (this wouldn't failed anyway, it was a GList !!!)
* camel-folder.h (struct _CamelFolder): Change permanent_flags to
a bitfield.
(list_permanent_flags): Renamed to get_permanent_flags, and
returns a bitfield.
(camel_folder_expunge): Changed expunge to a void type. The
messages would no longer be useful after they have been removed
...
* camel-mime-message.c (set_flag): Removed.
(camel_mime_message_set_flag): Removed.
(get_flag): Removed.
(camel_mime_message_get_flag): Removed.
(add_flag_to_list): Removed.
(get_flag_list): Removed.
(camel_mime_message_get_flag_list): Removed.
(camel_mime_message_get_flags): New interface to get system flags.
(camel_mime_message_set_flags): " to set ".
(camel_mime_message_get_user_flag): To get a user flag.
(camel_mime_message_set_user_flag): To set a user flag.
(finalize): Hmm, the old one free'd the key and data, not good
when the data is a boolean ...
svn path=/trunk/; revision=2716
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-04-20 NotZed <NotZed@HelixCode.com>
* MERGE NEW_PARSER branch into HEAD, fixed conflicts.
* gmime-content-field.c (_print_parameter): Duh, removed again
(@@#$@ cvs merge).
* camel-mime-utils.c (header_content_type_is): Constify.
(header_content_type_unref): Killed a couple warnings.
* camel-folder.c (_init): Removed more log crap.
* providers/Makefile.am (SUBDIRS): Removed nntp, pending fixes for
summary changes.
* providers/mbox/camel-mbox-folder.c (_get_message_by_number):
Fixed for new summary interface. Added a warning for using this
broken api.
(_get_message_by_uid): Fixed for message new with session
vanishing.
svn path=/trunk/; revision=2531
|
|
|
|
| |
svn path=/trunk/; revision=2487
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-04-06 Dan Winship <danw@helixcode.com>
* camel-store.[ch]: Reorganize the folder-fetching methods and
implement a folder cache so that multiple requests for the same
folder will yield the same CamelFolder object (as long as it
remains active). Includes some code to remove no-longer-active
folders from the cache, but it doesn't get used since nothing is
ever unref'ed in Camel right now...
* providers/mbox/camel-mbox-store.c:
* providers/pop3/camel-pop3-store.c: update for CamelStore
changes.
* camel-folder.[ch]: Remove the (unused) CamelException argument
from camel_folder_get_name and camel_folder_get_full_name.
(camel_folder_set_name): make this go away since changing a
folder's name after it has been created could result in it
conflicting with a separately-issued folder.
svn path=/trunk/; revision=2314
|
|
|
|
| |
svn path=/trunk/; revision=2217
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.[ch]: add delete_message_by_{number,uid}.
* providers/pop3/camel-pop3-folder.[ch]: implement
delete_message_by_uid. Add a close method to do expunging
of deleted messages if requested.
* providers/pop3/camel-pop3-store.[ch]: support for
CamelPop3Folder::close. (You have to close the connection
in order to expunge the folder, thus the store may be
connected in the CamelService::is_connected sense when it
is not actually connected to the server.) Also some bugfixes.
svn path=/trunk/; revision=2203
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-03-22 NotZed <NotZed@HelixCode.com>
* camel-folder.[ch]: Added async search api.
* providers/mbox/camel-mbox-search.c
(camel_mbox_folder_search_by_expression): Changed to use an
asynchronous interface.
(camel_mbox_folder_search_cancel): Cancel function for async
interface.
svn path=/trunk/; revision=2155
|
|
|
|
| |
svn path=/trunk/; revision=2091
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-02-28 NotZed <NotZed@HelixCode.com>
* camel-folder.c (camel_folder_search_by_expression): No, its not
a fatal error to search on a non-searchable folder, you just dont
get any matches.
(_open): Dont open an opened folder (i dont see why this is really
a bug, but what the hell ...)
* providers/mbox/camel-mbox-folder.c (_init): Set search cap on.
(_open): Call parent class to perform open. Remove folder-open
check to parent instead.
svn path=/trunk/; revision=1984
|
|
|
|
| |
svn path=/trunk/; revision=1925
|
|
|
|
|
|
|
| |
location to location in an IMAP store. Rename CamelFolder::init_with_store
to init and add parent_folder, name, and separator arguments.
svn path=/trunk/; revision=1919
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c: use CamelExceptions for run-time errors, not
incorrect code. Don't bother validating that an object exists from
inside one of its methods, since you couldn't have gotten there if
it didn't. Fix some code style bugs.
svn path=/trunk/; revision=1918
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-02-22 bertrand <Bertrand.Guiheneuf@aful.org>
* message-list.c (message_list_set_folder):
fix to show a sample correct implementation.
* camel-folder.c (camel_folder_get_subfolder):
(camel_folder_create):
(camel_folder_delete):
(camel_folder_delete_messages):
(camel_folder_list_subfolders):
(camel_folder_expunge):
(camel_folder_get_message_by_number):
(camel_folder_get_message_count):
(camel_folder_append_message):
(camel_folder_copy_message_to):
(camel_folder_get_summary):
(camel_folder_get_message_uid):
(camel_folder_get_message_by_uid):
(camel_folder_get_uid_list):
Check folder state (open/close) and raise an
exception if it is not ok.
* providers/mbox/camel-mbox-folder.c (_create):
create the file and the path with two different
names.
* camel-folder.c (_create): handle the case
when the folder name starts with '/'
* camel-exception.c (camel_exception_new): use
(void) instead of () in decl.
* camel-exception.h: cosmetic fixes.
* camel-exception.c (camel_exception_init): new routine.
Fix a bug in mail/message-list.c
* camel-folder.h: cosmetic changes.
* camel-stream-b64.c (reset__static): added a
reset method. Thanks message-browser to find
so much bugs :)
* providers/mbox/Makefile.am (libcamelmbox_la_LIBADD): readd
Unicode libs.
Fixes and exception handling in camel-folder.
Fixes in mail/evolution-mail to make it not
segfault and to demonstrate a correct implementation.
svn path=/trunk/; revision=1902
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel/camel-types.h: New header with the typedefs for all camel
classes. Now the class headers can just include this and the
header for the parent type. This makes it possible for
CamelService to include a CamelSession without creating an
#include loop.
* camel/*:
* composer/e-msg-composer-attachment-bar.h:
* mail/folder-browser.c:
* mail/message-list.c: frob #includes to match the new reality
svn path=/trunk/; revision=1850
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-02-17 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-formatter.c (handle_text_plain):
(handle_text_html): use camel_stream_reset instead
of seek. The formatter should be able to work
with all streams, not only seekable streams.
In the case where some provider implementation
would not be able to provide a reset method
to their stream, implementors would have
to find a workaround.
* camel/camel-session.c (camel_session_new): use
(void) instean of () in function decl.
* camel/camel-folder.c: ifdef async operation
related code.
* camel/camel-seekable-stream.c (_seek): added a warning.
(_reset): default implementation of reset for seekable
stream.
* camel/camel-mime-message.h: set_received_date declaration fix.
cosmetic changes.
* camel/providers/mbox/camel-mbox-provider.c (camel_provider_module_init):
use (void) instead of ().
* camel/camel-stream.c (camel_stream_reset):
new method for CamelStream.
svn path=/trunk/; revision=1835
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-02-13 NotZed <notzed@zedzone.helixcode.com>
* providers/mbox/camel-mbox-search.c: New file, implements the
search api for mbox folders.
* providers/mbox/Makefile.am: Link with ibex.
* camel-folder.c (camel_folder_has_search_capability): Api
additions.
(camel_folder_search_by_expression): Ditto.
2000-02-12 NotZed <notzed@zedzone.helixcode.com>
* providers/mbox/camel-mbox-folder.c (_set_name): Setup index
filename as well.
(_init_with_store): Init index filename. Hmm, none of these
names ever seem to get free'd (FIXME?)
* providers/mbox/camel-mbox-folder.h: Add index file name.
2000-02-12 NotZed <notzed@helixcode.com>
* camel-folder.h: Add folder search functions.
** Created ChangeLog just for camel **
- refer to ../ChangeLog for changes prior to this date.
svn path=/trunk/; revision=1772
|
|
|
|
|
|
|
|
|
| |
2000-01-22 bertrand <bertrand@helixcode.com>
* camel/providers/mbox/camel-mbox-folder.c (_append_message):
implemented. A lot of fixes too. Works now.
svn path=/trunk/; revision=1608
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-01-21 bertrand <bertrand@helixcode.com>
* tests/test10.c:
test the mbox provider.
* camel/camel-folder.c (_set_name):
if camel_folder_get_mode returns an
exception, return it instead of
overriding it with a new one.
(camel_folder_is_open): make the is_open
method public.
(_set_name): use the is_open instead of
get_mode.
(_set_name): set the fullname even in the case
where the folder has no parent.
(_set_name): use %c, not %d to add the
separator char into the full path.
svn path=/trunk/; revision=1606
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-01-21 bertrand <bertrand@helixcode.com>
* camel/camel-store.c: add exception handling everywhere in
the store related functions arguments.
* camel/providers/mbox/camel-mbox-folder.c: idem
* camel/providers/mbox/camel-mbox-folder.h: idem
* camel/providers/mbox/camel-mbox-store.h: idem
* camel/providers/mbox/Makefile.am (libcamelmbox_la_SOURCES):
added camel-mbox-provider.c to the mbox provider
sources.
svn path=/trunk/; revision=1605
|
|
|
|
| |
svn path=/trunk/; revision=1533
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-12-22 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/providers/mbox/camel-mbox-store.h:
* camel/providers/mbox/camel-mbox-store.c:
* camel/providers/mbox/camel-mbox-folder.h:
* camel/providers/mbox/camel-mbox-folder.c:
part of the mbox provider.
svn path=/trunk/; revision=1510
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-12-18 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (camel_folder_get_summary):
documented.
added the providers/mbox directory. Now that camel-folder
has been cleaned up a bit, the main evolution provider
work can start. The MH provider was only a proof of
concept, and should not be used for the moment.
svn path=/trunk/; revision=1503
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-12-18 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder-pt-proxy.c (_append_message):
updated to take the change on append into account.
* camel/camel-folder.h:
updated class def concerning append.
* camel/camel-folder.c
(camel_folder_append_message): documented.
(camel_folder_append_message): don't return the
message number. Use specific methods instead.
(_append_message): idem.
svn path=/trunk/; revision=1502
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-12-18 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (_delete): use
exception mechanism.
(camel_folder_delete): idem.
(_delete_messages): idem.
(camel_folder_delete_messages): idem.
(_get_parent_folder): idem.
(camel_folder_get_parent_folder): idem.
(_get_parent_store): idem.
(_get_mode): idem.
(camel_folder_get_parent_store): idem.
(camel_folder_get_mode): idem.
(_list_subfolders): idem.
(camel_folder_list_subfolders): idem.
(_expunge): idem.
(camel_folder_expunge): idem.
(_has_message_number_capability): idem.
(camel_folder_has_message_number_capability): idem.
(_get_message_by_number): idem.
(camel_folder_get_message_by_number): idem.
(camel_folder_get_message_count): idem.
(_list_permanent_flags): idem.
(camel_folder_list_permanent_flags): idem.
(_copy_message_to): idem.
(camel_folder_copy_message_to): idem.
(camel_folder_has_summary_capability): idem.
(camel_folder_get_summary): idem.
(camel_folder_has_uid_capability): idem.
(camel_folder_get_message_uid): idem.
(_get_message_uid_by_number): idem.
(camel_folder_get_message_uid_by_number): idem.
(camel_folder_get_message_by_uid): idem.
(camel_folder_get_uid_list): idem.
svn path=/trunk/; revision=1501
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-12-17 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (_set_name):
use exception mechanism.
(camel_folder_set_name): idem.
(camel_folder_set_full_name): idem.
(_get_name): idem.
(camel_folder_get_name): idem.
(_get_full_name): idem.
(camel_folder_get_full_name): idem.
(_can_hold_folders): idem.
(_can_hold_messages): idem.
(_exists): idem.
(camel_folder_exists): idem.
(_is_open): idem.
(_get_subfolder): idem.
(camel_folder_get_subfolder): idem.
* camel/camel-exception.c (camel_exception_clear):
New function. Clear an exception.
(camel_exception_get_id):
New function.
(camel_exception_get_description):
New function.
* camel/camel-folder.c (_set_name):
Use the exception system. When the folder
has no parent, don't set its full name
field.
svn path=/trunk/; revision=1499
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-12-16 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (camel_folder_expunge):
(_expunge):
* camel/camel-folder-pt-proxy.c (_expunge):
changed the return value. Now returns the list
of expunged messages
* camel/camel-folder.c (_init_with_store):
cleaned up. Use the exception system now.
(_open): ditto.
(camel_folder_open): ditto.
(camel_folder_open_async): ditto.
(_close): ditto.
(camel_folder_close): ditto.
(camel_folder_close_async): ditto.
* camel/camel-exception.c (camel_exception_set):
When no exception is given, do nothing, just
return.
(camel_exception_set): documented.
(camel_exception_new): idem.
(camel_exception_free): idem.
(camel_exception_xfer): idem.
* camel/camel-folder.c:
* camel/camel-folder.h: more clean-ups.
Removed message list related code.
This was braindead design.
svn path=/trunk/; revision=1494
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-12-16 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder-utils.c (camel_aml_expunge_messages):
implemented. The routines in this file will be
called by providers to handle the list of
message already standing in memory.
1999-12-15 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder-utils.c:
* camel/camel-folder-utils.h:
New files, misc utilities for the
folder providers. Includes active message
list utilities.
* camel/camel-folder.c (_has_message_number_capability):
(camel_folder_has_message_number_capability):
Added this to know if a folder provides
number-based message access.
* camel/camel-folder.c (_get_message_count):
added warning when called directly.
(_append_message): ditto
(_open_async): ditto
(_close_async): ditto
(_delete_messages): ditto
(_expunge): ditto
(_get_message_by_number): ditto
(_get_message_uid): ditto
(_get_message_uid_by_number): ditto
(_get_message_by_uid): ditto
(_get_uid_list): ditto
svn path=/trunk/; revision=1492
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-12-15 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder-pt-proxy.c (_open_async):
(_open):
(_close_async):
(_close):
(camel_folder_pt_proxy_class_init):
update
(_get_message_by_number):
Update to reflect changes in CamelFolder
svn path=/trunk/; revision=1491
|
|
|
|
|
|
|
|
|
| |
1999-12-15 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.[ch]:
clean-ups.
svn path=/trunk/; revision=1490
|
|
|
|
| |
svn path=/trunk/; revision=1489
|
|
|
|
|
|
| |
installation fixes for Camel.
svn path=/trunk/; revision=1369
|
|
|
|
| |
svn path=/trunk/; revision=1348
|
|
|
|
| |
svn path=/trunk/; revision=1332
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is now functional. The signal proxy needs to be tested
though. The thread proxy folder is being implemented.
A rough summary :
1999-10-13 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (camel_folder_close): the
folder->close method is now asynchronous.
* camel/camel-folder-pt-proxy.c (_folder_open_cb):
(_open):
(_folder_open_cb):
(_open):
open/close method implemented in the thread proxy
folder. More to come.
* camel/camel-exception.c (camel_exception_xfer):
new utility func.
* camel/camel-marshal-utils.c: some new marshallers
* camel/camel-folder-pt-proxy.c: Some explanations
on the thread proxy system.
1999-10-11 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-marshal-utils.c:
camel/camel-marshal-utils.h:
Handles operation marshalling.
* camel/camel-thread-proxy.c:
camel/camel-thread-proxy.h:
new files. Generic proxy system.
* camel/camel-folder-pt-proxy.c
moved all proxy related code in dedicated files.
(camel_folder_pt_proxy_init):
removed proxy initialisation code
(_finalize):
removed proxy finalization code
* camel/camel-exception.c
(camel_exception_new):
(camel_exception_set):
(camel_exception_free):
New funcs.
svn path=/trunk/; revision=1328
|
|
|
|
|
|
|
| |
* redesign of the proxy/marshaling code. Uses GtkArg now.
* sync commit. Evolution does not build at all now.
svn path=/trunk/; revision=1260
|
|
|
|
|
|
|
|
|
| |
* Added corba-like exception system to CamelFolder.
The exception system is not finished but I wanted
the async and event implementation to get this right
from the beginning.
svn path=/trunk/; revision=1256
|
|
|
|
|
|
|
| |
* camel/camel-folder-pt-proxy.c:
more work.
svn path=/trunk/; revision=1248
|
|
|
|
| |
svn path=/trunk/; revision=1246
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-09-08 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/providers/MH/mh-summary.c
(mh_load_summary):
(mh_save_summary):
(mh_create_summary):
implemented summary (files) for MH folders.
* camel/providers/MH/camel-mh-folder.c
(_get_message_by_uid): implemented.
(camel_mh_folder_class_init):
(_get_message_uid): implemented
svn path=/trunk/; revision=1219
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-09-08 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/providers/MH/camel-mh-folder.c
(_get_message_by_uid): impemented.
* camel/camel-folder.c:
(camel_folder_get_message_uid_by_number):
const'ified uid.
(camel_folder_get_message_by_uid): idem
removed stupid camel_folder_get_message_uid_by_number
method.
svn path=/trunk/; revision=1215
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-09-08 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (camel_folder_has_uid_capability):
(camel_folder_get_message_uid):
(camel_folder_get_message_uid_by_number):
(camel_folder_get_message_by_uid):
(camel_folder_get_uid_list):
Documented UID methods.
svn path=/trunk/; revision=1193
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-09-05 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (camel_folder_has_uid_capability):
(camel_folder_get_message_uid):
(camel_folder_get_message_uid_by_number):
(camel_folder_get_message_by_uid):
(camel_folder_get_uid_list):
Basic UID framework.
svn path=/trunk/; revision=1181
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-09-05 bertrand <Bertrand.Guiheneuf@aful.org>
* devel-docs/misc/ref_and_id_proposition.txt:
New revision. Some fixes.
* camel/camel-folder.h (struct _CamelFolder): added
uid_capability field.
* started to work on UIDs
svn path=/trunk/; revision=1180
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-09-05 bertrand <Bertrand.Guiheneuf@aful.org>
* tests/ui-tests/store_listing.c (show_folder_messages):
use folder summary instead of opening all messages.
* camel/providers/MH/camel-mh-folder.c (_create_summary):
basic and highly non-efficient summary implementation.
Should be seen as a proof of concept only.
subfolder summary still has to be implemented.
* camel/providers/maildir/camel-maildir-folder.c (_init_with_store):
hasn't summary for the moment.
* camel/providers/maildir/camel-maildir-folder.c
cosmetic changes.
svn path=/trunk/; revision=1178
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-09-04 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/providers/MH/camel-mh-folder.c (_create_summary):
started summary implementation.
(_open): correct use of open.
* camel/camel-folder.c (camel_folder_get_summary):
get folder associated summary object.
svn path=/trunk/; revision=1177
|
|
|
|
| |
svn path=/trunk/; revision=1170
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-09-01 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (_finalize):
(_set_name):
* camel/camel-mime-message.c (_finalize):
* camel/camel-mime-part.c (_finalize):
(_set_description):
(_set_disposition):
* camel/camel-service.c (_finalize):
* camel/camel-stream-fs.c (_finalize):
* camel/gmime-content-field.c:
(gmime_content_field_construct_from_string):
* camel/url-util.c (g_url_free):
When using g_free (obj) don't test if obj != NULL
g_free () already do that. Thanks to elerium for
the feedback.
19
svn path=/trunk/; revision=1151
|
|
|
|
| |
svn path=/trunk/; revision=1147
|
|
|
|
|
|
|
|
| |
1999-08-15 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (_copy_message_to): new method.
svn path=/trunk/; revision=1118
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-15 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (camel_folder_expunge):
moved the active list readjustment code here.
Much saner, providers won't have to worry about
that.
* camel/providers/MH/camel-mh-folder.c (_expunge):
no more active list readjustment stuff.
* camel/camel-folder.h: the expunge virtual no more
returns a list of expunged messages. Now providers
only have to set the expunge flag on the expunged
messages.
* camel/camel-folder.c (camel_folder_get_message):
moved the caching code here. Finally, I don't want
providers to crash the libs with a bad message cache
implementation.
(_close): do not call the CamelFolder virtual expunge
method directly, use camel_folder_expunge() instead.
(camel_folder_expunge): added the want_list param.
The client can decide if it wants the expunged message
list or not. If yes, it'll have to unref the messages
itself.
svn path=/trunk/; revision=1117
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-14 bertrand <Bertrand.Guiheneuf@aful.org>
* tests/ui-tests/store_listing.c (delete_selected_messages):
(expunge_selected_folders):
Implemented deletion/expunge mechanism.
* camel/camel-folder.c (_get_message):
Added some debug info.
* camel/providers/MH/camel-mh-folder.c (_expunge):
implemented and tested.
* camel/camel-mime-message.c (_set_flag):
changed the old braindead implementation.
boolean are inserted in the flag hash
table casted as gpointers.
* camel/camel-mime-message.c: indentation fix
svn path=/trunk/; revision=1114
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-13 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (_get_message): default implementation
to be called first by providers methods. It looks in the
folder message list (in memory) to see if the message has
not already been retrieved, and in this case, returns
the same CamelMimeMessage object
Caching messages in folder kworks. Providers will have to
do their job correctly.
Enough for today.
svn path=/trunk/; revision=1113
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-13 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.h (struct _CamelFolder):
New field (message_list) which will hold a
reference on each message obtained by the folder,
which is necessary in order for the caching procedure
to work (Getting the same message from a folder twice
will return the same CamelMimeMessage object).
* camel/camel-folder.c (camel_folder_get_message):
When the store retreives a message put it in its
message list.
(_finalize): free message list.
* ChangeLog: fix typo (parmanent)
svn path=/trunk/; revision=1112
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-13 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (_get_parmanent_flag_list):
(camel_folder_get_parmanent_flag_list):
new method, returns the list of permanent
flags supported by the folder.
* camel/camel-mime-message.c (_get_flag_list):
(camel_mime_message_get_flag_list): new method,
return the list of flag name used by this message.
svn path=/trunk/; revision=1111
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
memory (maybe 2000k) and I really don't
understand why. As soon as I get gtk working
on SunOS, purify should hopefully give me the answer.
1999-08-11 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-service.c (_finalize):
* camel/camel-stream-fs.c (_finalize):
(_destroy): close file descriptor.
* camel/camel-stream-mem.c (_finalize):
* camel/camel-store.c (_finalize):
* camel/camel-folder.c (_finalize):
svn path=/trunk/; revision=1104
|
|
|
|
| |
svn path=/trunk/; revision=1101
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-06 bertrand <Bertrand.Guiheneuf@aful.org>
* devel-docs/camel/:
updated some autogen doc stuff.
Still don't understand warnings :(
* camel/camel-data-wrapper.c:
* camel/providers/MH/camel-mh-store.c:
* camel/url-util.c:
* camel/gmime-content-field.c:
* camel/camel-store.c:
various inline doc corrections.
* camel/camel-folder.c (get_message_count):
new method. Returns the number of message
in the folder.
svn path=/trunk/; revision=1092
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-06 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/providers/MH/camel-mh-folder.c (_exists): add debug information
(_list_subfolders): test if first char in folder name is not '.'
before adding it to the folder list.
* camel/camel-store.c (_init):
disable session check temporarily
(_get_separator):
(_get_folder): new static func.
Fixed several oddities in class definition.
* camel/providers/MH/camel-mh-store.c (camel_mh_store_get_type):
parent type is CAMEL_STORE_TYPE not CAMEL_FOLDER_TYPE
* camel/camel-store.c:
prent class is CamelServiceClass not GtkObjectClass
* camel/url-util.c :
cosmetic changes + use of const when possible.
(find_host):
fix a bug: when there is no host and no port don't skip the '/'
all static find_* func are now named _func_*
(g_url_free): destructor func.
cache field has been disabled. Constructing the url string
won't be too slow and will occur rarely enough that we
do not need to add complexity to this code.
* camel/providers/MH/camel-mh-store.c:
parent class is CamelStorClass not GtkObjectClass
svn path=/trunk/; revision=1087
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-05 bertrand <Bertrand.Guiheneuf@aful.org>
* tests/test4.c:
test mh provider.
* camel/providers/MH/camel-mh-folder.c (_get_message):
implemented
svn path=/trunk/; revision=1083
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-05 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (_get_message):
new method.
(camel_folder_get_message):
corresponding public call
svn path=/trunk/; revision=1082
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-03 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/providers/MH/camel-mh-folder.c (_create):
implemented.
(_delete): started implementation.
* camel/camel-folder.c (_get_folder): default implementation
calls camel_store_get_folder ().
* camel/providers/MH/camel-mh-folder.c (_init_with_store):
implemented.
* camel/camel-folder.h (struct _CamelFolder):
remove useless exist_on_store field.
* camel/camel-folder.c (_exists):
do not use exist_on_store field.
svn path=/trunk/; revision=1073
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel/camel-folder.c (camel_folder_set_name):
(camel_folder_get_name):
new public functions
(_set_name): set full_path.
(_set_full_name):
(camel_folder_set_full_name):
commented out this functions def.
It would make things very difficult to handle, and would not
be very useful.
* camel/providers/MH/camel-mh-store.h:
* camel/providers/MH/camel-mh-store.c (camel_mh_store_set_toplevel_dir):
(camel_mh_store_get_toplevel_dir):
* camel/providers/MH/camel-mh-folder.c (_set_name):
* camel/providers/MH/camel-mh-folder.h:
use (gchar *) instead of (GString *) everywhere.
use const when necessary.
* camel/camel-folder.h (struct _CamelFolder):
removed unused message_list field.
svn path=/trunk/; revision=1072
|
|
|
|
| |
svn path=/trunk/; revision=1052
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-07-13 Miguel de Icaza <miguel@gnu.org>
* camel/gmime-base64.c (gmime_encode_base64): Implemented base64
encoder based on CamelStreams. Should the encoder/decoder be a
Stream itself?
* camel/gmime-utils.c: include config.h here.
* camel/url-util.c: ditto.
* camel/gstring-util.c: ditto.
* camel/gmime-content-field.c: ditto.
* camel/camel-stream.c: ditto.
* camel/camel-stream-fs.c: ditto.
* camel/camel-store.c: ditto.
* camel/camel-simple-data-wrapper.c: ditto.
* camel/camel-session.c: ditto.
* camel/camel-service.c: ditto.
* camel/camel-mime-part.c: ditto.
* camel/camel-mime-message.c: ditto.
* camel/camel-log.c: ditto.
* camel/camel-data-wrapper.c: ditto
* camel/camel-folder.c: ditto.
* camel/camel-stream.c (camel_stream_write): Moved api
documentation to the places that they document.
(camel_stream_class_init): Virtual classes do not need to have a
default implementation. So null them all.
(camel_stream_write): Return value from write.
(camel_stream_available): implement.
(camel_stream_write_strings): documented.
* devel-docs/query/virtual-folder-in-depth.sgml: Small
reformatting
1999-06-28 bertrand <Bertrand.Guiheneuf@inria.fr>
* tests/test2.c (main): now use
CamelDataWrapper::contruct_form_stream to test
svn path=/trunk/; revision=1024
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel/camel-mime-message.c (_set_recipient_list_from_string):
remove leading and trailing spaces in recipient addresses.
* camel/gmime-utils.c (_store_header_pair_from_gstring):
remove leading and trailing spaces from header values.
* camel/gstring-util.c (g_string_trim): new
func: remove leading or trailng chars from
a specified char set.
(g_string_split): allow trimming of substrings.
* tests/test1.c (main): remove gtk_main call
svn path=/trunk/; revision=958
|
|
|
|
| |
svn path=/trunk/; revision=949
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-05-11 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-store.c:
* camel/camel-service.c:
* camel/camel-folder.c:
* camel/camel-data-wrapper.c:
* camel/camel-mime-part.c:
static functions naming follows gnome
coding style guide.
svn path=/trunk/; revision=902
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-05-04 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-service.c (camel_service_get_url):
new method.
* devel-docs/camel/camel-sections.txt: added
function doc references
* camel/camel-folder.c (__camel_folder_close):
fixed indentation.
(camel_folder_expunge): new method.
(__camel_folder_close): used expunge flag
svn path=/trunk/; revision=890
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-05-03 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-folder.c (camel_folder_get_mode):
typo fix
* camel/camel-folder.c (__camel_folder_list_subfolders):
new func.
* some doc stuffs
Finishing storage layer, will start message classes soon.
Bertrand
svn path=/trunk/; revision=889
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-05-01 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-folder.c
(__camel_folder_get_mode):
(camel_folder_get_mode):
(camel_folder_get_parent_store):
(__camel_folder_get_parent_store):
(camel_folder_get_parent_folder):
(__camel_folder_get_parent_folder):
new methods
* camel/camel-service.c: put __ prefix before
private virtual funcs.
svn path=/trunk/; revision=886
|
|
|
|
|
|
|
|
|
|
| |
1999-05-01 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-folder.c (camel_folder_delete):
(camel_folder_delete_messages):
new methods.
svn path=/trunk/; revision=885
|
|
|
|
| |
svn path=/trunk/; revision=883
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-04-22 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/providers/MH/camel-mh-store.c:
more test implementation.
* camel/camel-store.c (camel_store_get_type): typo fix
A lot of small adds and corrections.
svn path=/trunk/; revision=867
|
|
|
|
| |
svn path=/trunk/; revision=862
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-04-18 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-store.[ch]: started implementation
* camel/camel-folder.c (camel_folder_get_type): typo
uncommented the store related code.
(camel_folder_create): enable som store relted code.
Not finished. Have to define public methods first.
* camel/camel-log.h: some explanation about the
log system
svn path=/trunk/; revision=854
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-04-18 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-folder.c:
(camel_folder_create): implemented (partially)
have to write CamelStore before finishing it.
* camel/camel-folder.h (CamelFolder): added full_name field
(CamelFolderClass): added set/get_full_name methods
Some more work
svn path=/trunk/; revision=853
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-04-18 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-folder.c: some work
* camel/camel-log.c: log system for camel
* camel/gstring-util.c: some utilities for GString objects
Work on obmail translation.
Bertrand
svn path=/trunk/; revision=851
|
|
svn path=/trunk/; revision=846
|