aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap4/camel-imap4-folder.c
Commit message (Collapse)AuthorAgeFilesLines
* Aded a new %formatter 'V' which takes a string vector (needed for SEARCH).Jeffrey Stedfast2004-06-301-165/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | 2004-06-29 Jeffrey Stedfast <fejj@novell.com> * providers/imap4/camel-imap4-command.c (camel_imap4_command_newv): Aded a new %formatter 'V' which takes a string vector (needed for SEARCH). * providers/imap4/camel-imap4-search.[c,h]: New source files implementing search functionality. * providers/imap4/camel-imap4-folder.c (imap4_sync_flag): Use the new public version of imap4_get_uid_set(). (imap4_transfer_messages_to): Same. (camel_imap4_folder_new): Create a search context. (camel_imap4_folder_finalize): Unref the search context. (camel_imap4_folder_class_init): Override the search methods. (imap4_search_by_expression): New. (imap4_search_by_uids): New. (imap4_search_free): New. * providers/imap4/camel-imap4-utils.c (camel_imap4_get_uid_set): Moved here from camel-imap4-folder.c svn path=/trunk/; revision=26551
* make 'colon' a const char *Jeffrey Stedfast2004-06-181-2/+2
| | | | svn path=/trunk/; revision=26406
* init tail->last to (guint32) -1, so that index = tail->last + 1 will startJeffrey Stedfast2004-06-181-2/+3
| | | | | | | | | | 2004-06-17 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-folder.c (uidset_init): init tail->last to (guint32) -1, so that index = tail->last + 1 will start at 0 :-) svn path=/trunk/; revision=26405
* Fixed to work properly. It was getting ranges wrong before sometimes whichJeffrey Stedfast2004-06-181-62/+144
| | | | | | | | | | 2004-06-17 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-folder.c (imap4_get_uid_set): Fixed to work properly. It was getting ranges wrong before sometimes which was making me lose mail! Ugh. svn path=/trunk/; revision=26393
* Only force a re-update of all FLAGS if this folder wasn't in the SELECTEDJeffrey Stedfast2004-06-171-3/+17
| | | | | | | | | | 2004-06-16 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-folder.c (imap4_refresh_info): Only force a re-update of all FLAGS if this folder wasn't in the SELECTED state. Otherwise, simply send a NOOP. svn path=/trunk/; revision=26372
* Force updating of the emsage flags (normally this only happens ifJeffrey Stedfast2004-06-121-0/+1
| | | | | | | | | | 2004-06-11 Jeffrey Stedfast <fejj@novell.com> * providers/imap4/camel-imap4-folder.c (imap4_refresh_info): Force updating of the emsage flags (normally this only happens if something has changed that warrants rescanning them). svn path=/trunk/; revision=26317
* Handle getting FLAGS even though we didn't request it (server can send usJeffrey Stedfast2004-06-111-8/+26
| | | | | | | | | | | | | | | | | | | 2004-06-11 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-folder.c (untagged_fetch): Handle getting FLAGS even though we didn't request it (server can send us FLAGS info if another client changed them recently, for example). Also fixed to handle the fact that not every bit of info has to be in a single untagged FETCH response - it may come in several untagged responses. * providers/imap4/camel-imap4-summary.c (envelope_decode_address): Decode the email address name token. (envelope_decode_nstring): rfc2047 decode strings if requested. (decode_envelope): Request that the subject string be rfc2047 decoded. svn path=/trunk/; revision=26310
* Don't bother scanning summary info if EXISTS was 0.Jeffrey Stedfast2004-06-111-1/+27
| | | | | | | | | | | | | | | | | | | 2004-06-11 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-summary.c (camel_imap4_summary_flush_updates): Don't bother scanning summary info if EXISTS was 0. (camel_imap4_summary_set_uidvalidity): Emit the folder_changed event after clearing the summary. (camel_imap4_summary_expunge): Emit the folder_changed event after removing the message from the summary. * providers/imap4/camel-imap4-folder.c (imap4_sync): Flush updates after an EXPUNGE and don't unset expunge if we didn't delete anything (the logic was wrong anyway). (imap4_refresh_info): Implemented. svn path=/trunk/; revision=26300
* Load the entire summary, not just the summary header. This way when theJeffrey Stedfast2004-06-081-1/+1
| | | | | | | | | | | | | | 2004-06-07 Jeffrey Stedfast <fejj@novell.com> * providers/imap4/camel-imap4-folder.c (camel_imap4_folder_new): Load the entire summary, not just the summary header. This way when the user opens the folder, we don't do a complete re-sync with the server unnecessarily. * providers/imap4/camel-imap4-summary.c (untagged_fetch_all): New info's always have a uid of "", so don't checkagainst NULL. svn path=/trunk/; revision=26239
* Implemented, mostly. Still need to update state on the renamed folderJeffrey Stedfast2004-06-071-0/+74
| | | | | | | | | | | | | | | | | | | | 2004-06-06 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-store.c (imap4_rename_folder): Implemented, mostly. Still need to update state on the renamed folder object if instantiated and rename the on-disk cache directory. * providers/imap4/camel-imap4-folder.c (camel_imap4_folder_finalize): Free the cachedir. (camel_imap4_folder_new): Init the cachedir and load the saved summary before updating it against the server summary. * providers/imap4/camel-imap4-store.c (camel_imap4_store_finalize): Free the storage_path. (imap4_construct): Init the storage_path. svn path=/trunk/; revision=26233
* Initialise the folder->summary and force an update of the message infoJeffrey Stedfast2004-06-051-3/+16
| | | | | | | | | | | | | | | | | | | 2004-06-04 Jeffrey Stedfast <fejj@novell.com> * providers/imap4/camel-imap4-folder.c (camel_imap4_folder_new): Initialise the folder->summary and force an update of the message info cache by selecting the folder and flushing the updates to the imap4 summary object. * providers/imap4/camel-imap4-store.c (imap4_get_folder_info): Lock the connect_lock before we check if the engine is NULL and after we connect (assuming we need to), initialise the engine pointer again. (imap4_get_folder_info): Doh. Need to escape the "'s in the LIST command string. (imap4_get_folder): Same. svn path=/trunk/; revision=26221
* Don't bother doing any work if perm_flags is 0.Jeffrey Stedfast2004-04-221-0/+3
| | | | | | | | | 2004-04-21 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-folder.c (imap4_sync_changes): Don't bother doing any work if perm_flags is 0. svn path=/trunk/; revision=25572
* Fixed to not expect ]'s as part of the BODY atom token.Jeffrey Stedfast2004-04-201-1/+7
| | | | | | | | | 2004-04-19 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-folder.c (untagged_fetch): Fixed to not expect ]'s as part of the BODY atom token. svn path=/trunk/; revision=25520
* Added mutex locking where appropriate.Jeffrey Stedfast2004-04-071-2/+24
| | | | | | | | | 2004-04-06 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-folder.c: Added mutex locking where appropriate. svn path=/trunk/; revision=25348
* Defined.Jeffrey Stedfast2004-04-071-1/+7
| | | | | | | | | | | | | | | | 2004-04-06 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.h (CAMEL_FOLDER_SUMMARY_TYPE): Defined. * camel-object.h (CAMEL_OBJECT_TYPE): Fixed. * providers/imap4/camel-imap4-folder.c (camel_imap4_folder_utf7_name): Implemented. * providers/imap4/camel-imap4-store.c (imap4_build_folder_info): Use camel_folder_info_build() to build the folder-info tree. svn path=/trunk/; revision=25345
* Implemented.Jeffrey Stedfast2004-03-301-0/+860
2004-03-29 Jeffrey Stedfast <fejj@ximian.com> * providers/imap4/camel-imap4-folder.c (camel_imap4_folder_new): Implemented. * providers/imap4/camel-imap4-engine.c (engine_parse_namespace): If the namespace begins with "INBOX", canonicalise the INBOX portion (ie, make it all caps). * providers/imap4/camel-imap4-store.c (imap4_noop): Implemented. svn path=/trunk/; revision=25237