aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-folder.c
Commit message (Collapse)AuthorAgeFilesLines
* CamelRemoteStore: a new generic store for stores that connect to servers. ↵Peter Williams2000-08-301-0/+25
| | | | | | Prepare for the ability to cancel operations (much better exception handling). Clean up IMAP like nobody's business svn path=/trunk/; revision=5103
* Fix the camel-folder's thaw handler. Implement event forwarding into the ↵Peter Williams2000-08-121-1/+1
| | | | | | main thread. svn path=/trunk/; revision=4744
* Implement. (mh_get_message_user_tag): Implement.Not Zed2000-08-111-3/+55
| | | | | | | | | | | | | | | | | 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
* Yay so lets fix an already fixed fix, again. (copy_message_to): and hereNot Zed2000-08-111-18/+13
| | | | | | | | | | 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
* Merge with camel-async.Peter Williams2000-08-111-251/+385
| | | | svn path=/trunk/; revision=4687
* A better way to compress leading whitespace. The code is probably invalidNot Zed2000-08-111-463/+301
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix this to not require NULL-termination of the array.Dan Winship2000-08-071-2/+5
| | | | | | | * camel-folder.c (camel_folder_free_deep): Fix this to not require NULL-termination of the array. svn path=/trunk/; revision=4560
* Remove exceptions from a number of methods that work on what ought to beDan Winship2000-07-251-106/+49
| | | | | | | | | | | | | | | * 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
* Remove camel_folder_get_message_uid, which was not used, and notDan Winship2000-07-241-37/+0
| | | | | | | | | | * 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
* Useful default implementations for free_{uids,subfolder_names,summary}.Dan Winship2000-07-131-9/+62
| | | | | | | | | | | | | * 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
* Use mbox_set_message_flags () instead of setting the flags by hand. ThisJeffrey Stedfast2000-07-131-17/+2
| | | | | | | | | | | | | | | | | | | 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
* Fix bug #378: last displayed message is still shown in an empty folderPeter Williams2000-07-131-1/+6
| | | | svn path=/trunk/; revision=4110
* Fix bug #394: Refiling messages does not update the viewPeter Williams2000-07-121-0/+10
| | | | svn path=/trunk/; revision=4109
* Now takes a flags argument to specify the flags to be set on the messageJeffrey Stedfast2000-07-121-5/+10
| | | | | | | | | | | | | | | | | 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
* Implemented.Jeffrey Stedfast2000-07-101-0/+25
| | | | | | | | | | | | | | | | 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
* Make this return a GPtrArray rather than a GList.Dan Winship2000-07-081-4/+5
| | | | | | | | | | | | | * 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
* New functions to freeze and thaw a folder (to prevent message/folderDan Winship2000-07-031-2/+141
| | | | | | | | | | | | | | | | * 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
* Renamed _by_uid methods. Since we no longer have get-by-number methods, noJeffrey Stedfast2000-07-011-29/+29
| | | | | | | | | | | | | | | | | | | 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
* New function, to copy a message from one folder to another. The defaultJeffrey Stedfast2000-07-011-0/+50
| | | | | | | | | | | | | | | | | | | | | | 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
* New function, to move a message from one folder to another. The defaultDan Winship2000-07-011-0/+52
| | | | | | | | | | * 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
* Move flag handling from CamelMimeMessage to CamelFolder. ThisDan Winship2000-06-171-0/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* document camel_folder_search_by_expressionDan Winship2000-06-161-3/+14
| | | | svn path=/trunk/; revision=3587
* Kill. Folders are now always open, and handle "closing" sorts ofDan Winship2000-06-161-111/+11
| | | | | | | | | | | | | | | | | | * 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
* Updated: a separator is now a char* rather than a single char because IMAPJeffrey Stedfast2000-06-141-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove exists, create, delete. A CamelFolder now always references anDan Winship2000-06-071-225/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Implemented a few more imap functions in providers/imap/camel-imap-folder.cJeffrey Stedfast2000-05-311-2/+2
| | | | svn path=/trunk/; revision=3286
* > searchpart = strchr(namepart, '?');NotZed2000-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* remove message_number_capability and require uid capatibility.Dan Winship2000-05-191-227/+151
| | | | | | | | | | | | | | | | | | | | | | | * 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
* Remove unused async open/close and copy_message_to functions. RenameDan Winship2000-05-181-681/+466
| | | | | | | | | * 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
* Make camel not leak like a sieve.Dan Winship2000-05-081-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* No, we're not going to have g_strcasecmp for no good reason,NotZed2000-05-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* > * gmime-utils.[ch]: What the hell, remove it. This will break theMichael Zucci2000-05-031-24/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | > 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
* Deleted messages properly get removed from the index.Michael Zucci2000-05-021-0/+17
| | | | | | | | | | | | 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
* > (camel_folder_expunge): Changed to only allow expunge on an openMichael Zucci2000-05-021-1/+1
| | | | | | > folder. It doesn't make sense for mbox, otherwise (?) svn path=/trunk/; revision=2743
* Removed search_id.Michael Zucci2000-05-021-23/+30
| | | | | | | | | | | | | | | | | | | | | | | | * 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
* More message cleanup. Flags now work, are saved, and the deleteNotZed2000-05-021-13/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* MERGE NEW_PARSER branch into HEAD, fixed conflicts.NotZed2000-04-211-67/+83
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* kill camel-logDan Winship2000-04-191-76/+29
| | | | svn path=/trunk/; revision=2487
* Reorganize the folder-fetching methods and implement a folder cache soDan Winship2000-04-071-30/+11
| | | | | | | | | | | | | | | | | | | | | | | 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
* fix warningsDan Winship2000-03-291-1/+1
| | | | svn path=/trunk/; revision=2217
* add delete_message_by_{number,uid}.Dan Winship2000-03-281-0/+65
| | | | | | | | | | | | | | | | * 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
* Added async search api.NotZed2000-03-241-5/+23
| | | | | | | | | | | | | | 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
* fix the name of "Helix Code, Inc." in all the copyrightsDan Winship2000-03-101-1/+1
| | | | svn path=/trunk/; revision=2091
* No, its not a fatal error to search on a non-searchable folder, you justNotZed2000-02-291-1/+8
| | | | | | | | | | | | | | | | 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
* remove some camel_store_get_separators that I missed beforeDan Winship2000-02-251-6/+5
| | | | svn path=/trunk/; revision=1925
* Move "separator" from camel-store to camel-folder, since it can vary fromDan Winship2000-02-251-16/+23
| | | | | | | 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
* use CamelExceptions for run-time errors, not incorrect code. Don't botherDan Winship2000-02-251-731/+138
| | | | | | | | | * 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
* fix to show a sample correct implementation.bertrand2000-02-221-5/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* New header with the typedefs for all camel classes. Now the class headersDan Winship2000-02-191-0/+2
| | | | | | | | | | | | | | | * 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
* use camel_stream_reset instead of seek. The formatter should be able tobertrand2000-02-181-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* New file, implements the search api for mbox folders.NotZed2000-02-141-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* implemented. A lot of fixes too. Works now.bertrand2000-01-231-1/+0
| | | | | | | | | 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
* test the mbox provider.bertrand2000-01-221-6/+37
| | | | | | | | | | | | | | | | | | | | | | 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
* add exception handling everywhere in the store related functionsbertrand2000-01-221-10/+10
| | | | | | | | | | | | | | | | 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
* Updated my e-mail address to reflect my new employmentBertrand Guiheneuf2000-01-041-1/+1
| | | | svn path=/trunk/; revision=1533
* part of the mbox provider.bertrand1999-12-221-22/+31
| | | | | | | | | | | | 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
* documented.bertrand1999-12-181-0/+11
| | | | | | | | | | | | | | 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
* updated to take the change on append into account.bertrand1999-12-181-8/+19
| | | | | | | | | | | | | | | | | 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
* use exception mechanism. (camel_folder_delete): idem. (_delete_messages):bertrand1999-12-181-33/+318
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* use exception mechanism. (camel_folder_set_name): idem.bertrand1999-12-181-15/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* changed the return value. Now returns the list of expunged messagesbertrand1999-12-171-100/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* implemented. The routines in this file will be called by providers tobertrand1999-12-161-26/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* update (_get_message_by_number): Update to reflect changes in CamelFolderbertrand1999-12-151-13/+15
| | | | | | | | | | | | | | | 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
* clean-ups.bertrand1999-12-151-61/+164
| | | | | | | | | 1999-12-15 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-folder.[ch]: clean-ups. svn path=/trunk/; revision=1490
* Fix copyright informations once againBertrand Guiheneuf1999-12-151-1/+1
| | | | svn path=/trunk/; revision=1489
* Here is my initial Evolution work: message composition widget and someEttore Perazzoli1999-11-061-2/+2
| | | | | | installation fixes for Camel. svn path=/trunk/; revision=1369
* Copyright changeBertrand Guiheneuf1999-10-231-1/+4
| | | | svn path=/trunk/; revision=1348
* lap syncBertrand Guiheneuf1999-10-191-4/+17
| | | | svn path=/trunk/; revision=1332
* A lot of changes. The thread proxy mechanismbertrand1999-10-141-22/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.Bertrand Guiheneuf1999-09-281-6/+19
| | | | | | | * 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 isBertrand Guiheneuf1999-09-241-120/+120
| | | | | | | | | * 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
* more work.Bertrand Guiheneuf1999-09-221-0/+1
| | | | | | | * camel/camel-folder-pt-proxy.c: more work. svn path=/trunk/; revision=1248
* camel_folder_get_full_name did not work. Fixed.Jukka Zitting/evolution1999-09-211-0/+1
| | | | svn path=/trunk/; revision=1246
* Summary files are here and work !!!bertrand1999-09-091-1/+2
| | | | | | | | | | | | | | | | | 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
* impemented.bertrand1999-09-081-12/+12
| | | | | | | | | | | | | | | | 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
* Documented UIDs.bertrand1999-09-081-0/+57
| | | | | | | | | | | | | 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
* Basic UID framework.bertrand1999-09-061-0/+80
| | | | | | | | | | | | | 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
* New revision. Some fixes.bertrand1999-09-061-1/+5
| | | | | | | | | | | | | | 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
* use folder summary instead of opening all messages.bertrand1999-09-061-1/+12
| | | | | | | | | | | | | | | | | | | 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
* started summary implementation. (_open): correct use of open.bertrand1999-09-051-0/+6
| | | | | | | | | | | | | 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
* sync again. Changelog comes tomorowBertrand Guiheneuf1999-09-031-0/+13
| | | | svn path=/trunk/; revision=1170
* When using g_free (obj) don't test if obj != NULL g_free () already dobertrand1999-09-011-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Address updateBertrand Guiheneuf1999-08-301-1/+1
| | | | svn path=/trunk/; revision=1147
* new method.bertrand1999-08-161-0/+18
| | | | | | | | 1999-08-15 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-folder.c (_copy_message_to): new method. svn path=/trunk/; revision=1118
* moved the active list readjustment code here. Much saner, providers won'tbertrand1999-08-161-34/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Implemented deletion/expunge mechanism.bertrand1999-08-151-8/+19
| | | | | | | | | | | | | | | | | | | | | | | | 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
* default implementation to be called first by providers methods. It looksbertrand1999-08-141-4/+23
| | | | | | | | | | | | | | | | 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
* New field (message_list) which will hold a reference on each messagebertrand1999-08-141-5/+27
| | | | | | | | | | | | | | | | | | | | 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
* new method, returns the list of permanent flags supported by the folder.bertrand1999-08-131-1/+19
| | | | | | | | | | | | | | | 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
* Message creation still consumes a lot ofbertrand1999-08-111-1/+19
| | | | | | | | | | | | | | | | | 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
* some test filesBertrand Guiheneuf1999-08-101-0/+15
| | | | svn path=/trunk/; revision=1101
* updated some autogen doc stuff. Still don't understand warnings :(bertrand1999-08-071-8/+34
| | | | | | | | | | | | | | | | | | | | | 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
* add debug information (_list_subfolders): test if first char in folderbertrand1999-08-061-36/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* test mh provider.bertrand1999-08-061-3/+10
| | | | | | | | | | | | 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
* new method. (camel_folder_get_message): corresponding public callbertrand1999-08-061-0/+28
| | | | | | | | | | | 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
* Started implementing mh store/folder as a test provider. Next will be pop3.bertrand1999-08-041-27/+31
| | | | | | | | | | | | | | | | | | | | | | 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
* new public functions (_set_name): set full_path.Bertrand Guiheneuf1999-08-031-22/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* merge a lot of work. Rough ChangeLog will followBertrand Guiheneuf1999-08-011-65/+74
| | | | svn path=/trunk/; revision=1052
* Implemented base64 encoder based on CamelStreams. Should theMiguel de Icaza1999-07-151-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* remove leading and trailing spaces in recipient addresses.Bertrand Guiheneuf1999-05-301-1/+1
| | | | | | | | | | | | | | | | | * 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
* syncBertrand Guiheneuf1999-05-281-1/+1
| | | | svn path=/trunk/; revision=949
* static functions naming follows gnome coding style guide.bertrand1999-05-121-76/+76
| | | | | | | | | | | | | | 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
* new method.bertrand1999-05-051-18/+52
| | | | | | | | | | | | | | | | | 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
* typo fixbertrand1999-05-031-4/+41
| | | | | | | | | | | | | | | | | | 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
* new methodsbertrand1999-05-011-48/+151
| | | | | | | | | | | | | | | | | | 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
* new methods.bertrand1999-05-011-52/+172
| | | | | | | | | | 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
* syncBertrand Guiheneuf1999-05-011-20/+53
| | | | svn path=/trunk/; revision=883
* more test implementation.bertrand1999-04-221-10/+33
| | | | | | | | | | | | | 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
* A first attempt at setting up the documentation system.Bertrand Guiheneuf1999-04-211-0/+1
| | | | svn path=/trunk/; revision=862
* started implementation typo uncommented the store related code.bertrand1999-04-191-6/+7
| | | | | | | | | | | | | | | 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
* implemented (partially) have to write CamelStore before finishing it.bertrand1999-04-191-0/+86
| | | | | | | | | | | | | | | 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
* some work log system for camel some utilities for GString objectsbertrand1999-04-181-2/+82
| | | | | | | | | | | | | | | 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
* Initial revisionBertrand Guiheneuf1999-04-181-0/+140
svn path=/trunk/; revision=846