summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Remove any cached messages that belonged to the deleted folder.EVOLUTION_0_15evolution-0-15-branchJeffrey Stedfast2001-10-012-6/+63
| | | | | | | | | | | 2001-10-01 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (delete_folder): Remove any cached messages that belonged to the deleted folder. (subscribe_folder): Don't ever let the info->name be NULL and don't use the stupid concat kludge to generate the URL, just use a CamelURL to do it. This way we don't risk breaking stuff by having a url like imap://fejj@imap//folder
* If the charset is x-unknown, return the locale_charset.Jeffrey Stedfast2001-10-012-1/+10
| | | | | | | 2001-10-01 Jeffrey Stedfast <fejj@ximian.com> * camel-charset-map.c (camel_charset_to_iconv): If the charset is x-unknown, return the locale_charset.
* Fix up the provider flags to specify things more completely so we don'tDan Winship2001-10-014-9/+32
| | | | | | | | | | | | * camel-provider.h: Fix up the provider flags to specify things more completely so we don't have to hardcode provider names in the mailer. * providers/local/camel-local-provider.c: MH, mbox, and Maildir are LOCAL. MH and mbox are no longer STORAGE by the new definition. * camel-session.c (vee_provider): The vfolder store is a STORAGE.
* Don't munge the URL; CamelSession's caching relies on it not changing.Dan Winship2001-10-017-42/+49
| | | | | | | | | | | | | | | | | | * providers/local/camel-local-store.c (construct): Don't munge the URL; CamelSession's caching relies on it not changing. Instead, add a toplevel_dir field to CamelLocalStore, and set that to the path, but always ending with /. (camel_local_store_finalize): Free toplevel_dir (camel_local_store_get_toplevel_dir): Return toplevel_dir rather than url->path. * providers/local/*: Lots of s/url->path/toplevel_dir/ * providers/local/camel-spool-store.c (construct): Likewise, don't try to strip a trailing / from url->path here, but I didn't make the corresponding toplevel_dir change, because there's no good reason someone should expect "/var/spool/mail/danw/" to work since that's not a directory.
* New, copied/renamed from mailer and gnome-libs.Dan Winship2001-10-012-0/+116
| | | | | * e-passwords.c (e_passwords_ask_password): New, copied/renamed from mailer and gnome-libs.
* if STAT returns 0, don't bother sending UIDL. Speeds things up slightlyDan Winship2001-10-012-0/+14
| | | | | | | * providers/pop3/camel-pop3-folder.c (pop3_refresh_info): if STAT returns 0, don't bother sending UIDL. Speeds things up slightly and also works around a bug in a particular random POP server. (ximian bug 11369).
* copy/rename the mail specific password stuff here.Chris Toshok2001-09-302-0/+391
| | | | | | | | | 2001-09-30 Chris Toshok <toshok@ximian.com> * e-passwords.c: copy/rename the mail specific password stuff here. * e-passwords.h: same.
* Add --no-secmem-warning and --no-greeting to the gpg command-line options.Jeffrey Stedfast2001-09-292-0/+20
| | | | | | | | | | | 2001-09-29 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_sign): Add --no-secmem-warning and --no-greeting to the gpg command-line options. (pgp_clearsign): Same. (pgp_verify): Here too. (pgp_encrypt): And here. (pgp_decrypt): And finally here.
* Same here.Jeffrey Stedfast2001-09-283-14/+34
| | | | | | | | | 2001-09-28 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-search.c (get_source): Same here. * camel-mime-message.c (camel_mime_message_set_source): Don't use the e_url_shroud hack, use CamelURL functions instead.
* Init the nntp url hash and url_equal functions.Jeffrey Stedfast2001-09-289-7/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-28 Jeffrey Stedfast <fejj@ximian.com> * providers/nntp/camel-nntp-provider.c (camel_provider_module_init): Init the nntp url hash and url_equal functions. * providers/sendmail/camel-sendmail-provider.c (camel_provider_module_init): Init the sendmail url hash and url_equal functions. * providers/smtp/camel-smtp-provider.c (camel_provider_module_init): Init the smtp url hash and url_equal functions. * providers/pop3/camel-pop3-provider.c (camel_provider_module_init): Init the pop3 url hash and url_equal functions. * providers/imap/camel-imap-provider.c (camel_provider_module_init): Init the imap url hash and url_equal functions. * providers/local/camel-local-provider.c (camel_provider_module_init): Init the local url hash and url_equal functions. * camel-session.c (camel_session_class_init): Init the vfolder url hash and url_equal functions. * camel-provider.h: Added url_hash and url_equal function pointers to the structure. * camel-vtrash-folder.c (vtrash_move_messages_to): Oops, a CamelFolder is not a CamelFolderClass.
* Oops, a CamelFolder is not a CamelFolderClass.Jeffrey Stedfast2001-09-282-3/+11
| | | | | | | 2001-09-28 Jeffrey Stedfast <fejj@ximian.com> * camel-vtrash-folder.c (vtrash_move_messages_to): Oops, a CamelFolder is not a CamelFolderClass.
* Make this take an SSL * instead of a CamelTcpStreamSSL *, since it can getDan Winship2001-09-282-5/+12
| | | | | | | * camel-tcp-stream-openssl.c (ssl_error_to_errno): Make this take an SSL * instead of a CamelTcpStreamSSL *, since it can get called from open_ssl_connection, when the CamelTcpStreamSSL isn't set up right yet. Fixes a crash on connection failure.
* Grab the store's command_lock before grabbing the folder's cache_lock toDan Winship2001-09-282-2/+29
| | | | | | | | | | | | | | * providers/imap/camel-imap-folder.c (camel_imap_folder_fetch_data): Grab the store's command_lock before grabbing the folder's cache_lock to prevent deadlock if another thread is processing an EXPUNGE response. * providers/imap/camel-imap-folder.c (imap_expunge_uids_resyncing): Fix a compiler warning that might point out a real bug... * providers/imap/camel-imap-folder.c (get_content): and one that doesn't
* Minor style change to operation_registered.Michael Zucci2001-09-271-6/+4
|
* Dont re-register the connect_op if we got it by calling72001-09-272-4/+12
| | | | | | | | | | 2001-09-27 <NotZed@Ximian.com> * camel-service.c (camel_service_connect): Dont re-register the connect_op if we got it by calling 'operation_registered', which returns an already-registered one. (camel_service_disconnect): Likewise here. This removes all the re-registered warnings.
* Fill the finalised data with nonsense, rather than 0's - more easily72001-09-273-28/+218
| | | | | | | | | | | | | | | 2001-09-27 <NotZed@Ximian.com> * camel-object.c (camel_object_unref): Fill the finalised data with nonsense, rather than 0's - more easily detect bad data. (camel_object_new): Clear instance data when we retrieve it off the list. * camel-object.h (_CamelObject): Added an event lock pointer for uh, locking event stuff. Also change the hooklist hashtable into a list. Changed all the code to handle it. Result: thread-safe events, event-hooks, and save memory too, and SHOULD FINALLY FIX THAT UNREAD COUNT PROBLEM.
* CRLF decode the stream before parsing it into a MIME part. This fixes bugJeffrey Stedfast2001-09-273-3/+35
| | | | | | | | | 2001-09-27 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-mime.c (camel_pgp_mime_part_decrypt): CRLF decode the stream before parsing it into a MIME part. This fixes bug #10521. * camel-store.c: Remove the old folder from the vTrash folder.
* Change "gboolean connected" to "CamelServiceConnectionStatus status",Dan Winship2001-09-278-29/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * camel-service.c: Change "gboolean connected" to "CamelServiceConnectionStatus status", which can be disconnected, connecting, connected, or disconnecting. (camel_service_init, camel_service_finalize): create/destroy the connect_op_lock. Refer to service->status rather than service->connected. (camel_service_connect): When connecting, note the current operation (and create a new one if there's none registered) and mark the connection "connecting" until we succeed or fail. (camel_service_disconnect): Likewise in reverse. (camel_service_cancel_connect): New function to cancel a connection attempt. (cancel_connect): Default implementation: Call camel_operation_cancel on the connect_op. * camel-disco-store.c (disco_connect): Only call CamelRemoteStore's connect func if we're online. (disco_cancel_connect): Fall back to offline if a connection gets cancelled. (disco_get_folder_info): Kludge: call connect explicitly before deciding whether to do the online or offline version, so if the connect fails, we fall back correctly. * camel-session.c (camel_session_get_service_connected): s/svc->connected/svc->status/ * camel-remote-store.c (camel_remote_store_finalise): Change service->connected check to service->status check. (remote_connect): Don't set service->connected here: camel_service_connect() itself does that. * camel-operation.c (camel_operation_registered): Deal with the possibility that there's no registered op.
* If we get a search error, just abort, dont try and fall back and copy to62001-09-262-22/+63
| | | | | | | | | | | | | | | | | | | | | | | 2001-09-26 <NotZed@Ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_message): If we get a search error, just abort, dont try and fall back and copy to inbox. (camel_filter_driver_filter_message): Make sure we ALWAYS use exceptions for important things - like moving messages to inbox! (camel_filter_driver_filter_message): If we have the source folder, use camel_folder_set_message_flags rather then poking the info directly, which skips changed events. This means filtering immediate doesn't lose changed events. (do_flag): Same here. (do_colour): Same thing but using set_tag. (do_score): Same again. (camel_filter_driver_filter_folder): Use ~0 as the 'set' arg to set_flags, just saves typing. (open_folder): We cache folders that we couldn't open as well as those ones we could. Use magic token FOLDER_INVALID = (void *)~0 as the marker. (close_folder): Handle FOLDER_INVALID case properly.
* New function to convenience Larry ;-) (check_content_id): Oops, returnJeffrey Stedfast2001-09-262-4/+7
| | | | | | | | | | | | | | 2001-09-26 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-message.c (camel_mime_message_get_part_by_content_id): New function to convenience Larry ;-) (check_content_id): Oops, return !found instead of found. This callback has to return whether or not to keep searching, not whether or not it found what it's looking for. Do'h! * camel-pgp-mime.c (camel_pgp_mime_is_rfc2015_signed): block out some code if ENABLE_PEDANTIC_PGPMIME is not defined.
* fixed merge conflictsJeffrey Stedfast2001-09-261-1/+0
|
* New function to convenience Larry ;-)Jeffrey Stedfast2001-09-264-4/+64
| | | | | | | | | | | 2001-09-26 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-message.c (camel_mime_message_get_part_by_content_id): New function to convenience Larry ;-) * camel-pgp-mime.c (camel_pgp_mime_is_rfc2015_signed): block out some code if ENABLE_PEDANTIC_PGPMIME is not defined.
* Emptied VeeStorePrivate, member wasn't used.62001-09-264-23/+38
| | | | | | | | | | | | | | | | | | | | 2001-09-26 <NotZed@Ximian.com> * camel-vee-store.c: Emptied VeeStorePrivate, member wasn't used. * camel-vee-folder.c (camel_vee_folder_set_expression): Lock changed list separately. (camel_vee_folder_remove_folder): " (camel_vee_folder_set_folders): Use changed_lock for changed list. (vee_refresh_info): Use changed_lock, also just grab the list, reset it in the lock, and do the work unlocked. (vee_sync): Use changed lock for changed list. (folder_changed): ". All this kills a deadlock with sync/expunge. * camel-private.h (CamelVeeFolderPrivate): Added a new lock for the folders-changed list. (CamelVeeStorePrivate): Removed, defined in camel-vee-store.c, thanks to a pedantic.
* Fix Ettore's fix.Jeffrey Stedfast2001-09-262-6/+10
| | | | | | 2001-09-26 Jeffrey Stedfast <fejj@ximian.com> * Makefile.am: Fix Ettore's fix.
* No longer takes a remember argument. (pgp_sign): Only uncache theJeffrey Stedfast2001-09-263-24/+30
| | | | | | | | | | | | | 2001-09-25 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (camel_pgp_context_new): No longer takes a remember argument. (pgp_sign): Only uncache the passphrase on failure. (pgp_clearsign): Same. (pgp_encrypt): Here too. (pgp_decrypt): And here. (pass_free): New function to zero the passphrase before freeing it.
* [Patch for Automake 1.5 compatibility pointed out by RichardEttore Perazzoli2001-09-253-13/+12
| | | | | | | | | | Boulton <richard@tartarus.org>, as per #9258.] * providers/nntp/Makefile.am: Remove some commented parts that make Automake 1.5 choke. * Makefile.am (camel-lock-helper): Add $(EXEEXT) for Automake 1.5 compatibility.
* Only unref info if we got it.52001-09-252-4/+8
| | | | | | | 2001-09-25 <NotZed@Ximian.com> * camel-folder.c (get_unread_message_count): Only unref info if we got it.
* Fix for !threads enabled not ccompiling. (camel_operation_ref): Assert52001-09-253-159/+166
| | | | | | | | | | | | | | | | | | | | | | | 2001-09-25 <NotZed@Ximian.com> * camel-operation.c (camel_operation_unref): Fix for !threads enabled not ccompiling. (camel_operation_ref): Assert refcount > 0. (struct _CamelOperation): Removed the lock. On further investigation, I dont think this will always work, the registration operations assume that a lookup in the operation_active table will return a ref, that will remain valid until we ref it, which needn't be the case. So now i'm using a single global lock, since we'd need to do that for unref anyway, and every operation is fast & memory-bound. Changed all the code to handle this. (camel_operation_progress_count): Since the code is identical, just call progress() for now. (camel_operation_register): No longer refcount, use unref to check/clear the active table. (camel_operation_unregister): Same here. (camel_operation_unref): Check if operation is in active table, if so, warn, remove.
* call SSL_read/write, looping on SSL_ERROR_WANT_READ/WRITE. I'm sureDan Winship2001-09-252-4/+41
| | | | | | | | | | * camel-tcp-stream-openssl.c (my_SSL_read, my_SSL_write): call SSL_read/write, looping on SSL_ERROR_WANT_READ/WRITE. I'm sure there's a perfectly good reason that the API works this way. No, really. (stream_read, stream_write): use my_SSL_read and my_SSL_write. Fixes at least ximian 8593, and probably 6024 and maybe 10366, at least for OpenSSL. There may be a parallel NSS bug?
* A "safe write" function that always writes out all data asked of it, till52001-09-252-31/+50
| | | | | | | | | | 2001-09-25 <NotZed@Ximian.com> * camel-stream-buffer.c (stream_write_all): A "safe write" function that always writes out all data asked of it, till finished. (stream_write): Rewritten. What was i on when i wrote that originally, how did it ever work with tcp streams ...
* Set the exception to FOLDER_INVALID rather than making out it worked. A42001-09-252-0/+12
| | | | | | | | 2001-09-24 <NotZed@Ximian.com> * camel-folder.c (append_message): Set the exception to FOLDER_INVALID rather than making out it worked. A fix for #7025. (search_by_expression): Here too.
* In the 'lose' case, free messages, not fetch_data twice!42001-09-242-1/+4
| | | | | | | 2001-09-24 <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): In the 'lose' case, free messages, not fetch_data twice!
* If the type is encoded, get the fallback charset from the message42001-09-2412-140/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-24 <NotZed@Ximian.com> * camel-filter-search.c (check_header): If the type is encoded, get the fallback charset from the message content-type. * camel-mime-part-utils.c (check_html_charset): Dont check for charset==null before calling charset_to_iconv. (simple_data_wrapper_construct_from_parser): " * camel-mime-message.c (process_header): Try use content-type charset param as the fallback charset. * camel-charset-map.c (camel_charset_to_iconv): Handle name == NULL, return NULL. * camel-folder-summary.c (camel_folder_summary_format_address): (camel_folder_summary_format_string): Made private again, removed #warning about it. Renamed to s/camel_folder//. (summary_format_string): Take default charset param. (camel_message_info_new_from_header, message_info_new): Decode content-type field to get the charset parameter to use as the default charset for decoding strings. * camel-search-private.c (camel_search_header_match): Pass NULL as the charset, the locale charset is always tried. (camel_search_header_match): Supply a default_charset parameter to be used with TYPE_ENCODED params. * camel-mime-utils.c (header_param): get rid of the g_strcasecmp crap. (header_set_param): Same here. (header_decode_param_list): And here. (header_decode_text): Totally rewritten. 30% of its size. If the word is not rfc2047 encoded, always try default_charset if supplied, if that fails, try locale charset if it exists, if that fails then assume latin1/7 bit ascii. (append_8bit): Changed to return FALSE if we can't convert for whatever reason, and dont append anything. * camel-mime-part.h (struct _CamelMimePart): Move content_type and headers out of the 'private' section. * camel-mime-part.c (get_headers): Dont do any conversion on the header. (process_header): Get the content-type charset as the fallback charset for decode_string. (construct_from_parser): IF we have a content-type header, process it before doing anything else, so we have access to a fallback charset for invalid headers.
* fixed compile warningJeffrey Stedfast2001-09-241-3/+2
|
* Don't even try to alert the user if the session isn't interactive.Jeffrey Stedfast2001-09-233-27/+43
| | | | | | | | | | | | | | | 2001-09-23 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-openssl.c (ssl_verify): Don't even try to alert the user if the session isn't interactive. (errlib_error_to_errno): Make the default errno EINTR so that we act just like CamelTcpStreamSSL. * camel-pgp-context.c (pgp_sign): When the password is not provided, set the exception to USER_CANCEL. (pgp_clearsign): Same. (pgp_encrypt): And here. (pgp_decrypt): Here too.
* Set the exception if create_folder isn't implemented.EVOLUTION_0_1412001-09-212-0/+8
| | | | | | | 2001-09-21 <NotZed@Ximian.com> * camel-store.c (create_folder): Set the exception if create_folder isn't implemented.
* Go back to not using camel_folder_info_build() here because this seems toJeffrey Stedfast2001-09-212-4/+18
| | | | | | | | | 2001-09-21 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (create_folder): Go back to not using camel_folder_info_build() here because this seems to break folder creation (returning nodes from the root path when it shouldn't be?).
* Force a refresh of vfolders before storing their count. This essentially12001-09-214-3/+101
| | | | | | | | | | | | | | | | | | | | | | 2001-09-21 <NotZed@Ximian.com> * camel-vee-store.c (vee_get_folder_info): Force a refresh of vfolders before storing their count. This essentially makes 'get_folderinfo' refresh all vfolders, so that get-mail works as expected. * camel-vee-folder.c (camel_vee_folder_finalise): Clear lists. (folder_changed): If we're not autoupdating the folder, then add this folder to the list of 'changed' folders for this vfolder. (camel_vee_folder_set_expression): Reset the folders_changed list. (camel_vee_folder_remove_folder): Remove the folder from the folders_changed list. (camel_vee_folder_set_folders): If we have a folder already, but its changed, use this opportunity to update it. (vee_sync): Remove any synced folders from the folders_changed list. (vee_refresh_info): Refresh folder, re-run queries on any changed folders.
* New function to just load the summary. Not much use yet, until unreadMichael Zucci2001-09-215-1/+96
| | | | | | | | | | | | | | | | | | | * camel-folder-summary.c (camel_folder_summary_header_load): New function to just load the summary. Not much use yet, until unread counts are stored in the summary (which now looks like too much work!). * camel-mime-utils.c (header_decode_mailbox): Crappy fix for stupid mailers. If we get 'name b. name <foo>' then treat it as '"name b. name" <foo>'. See 8147. (header_decode_mailbox): Another fix for really broken mailers that have things that look like addresses followed by <address> bits. (rfc2047_encode_word): Escape ??= to avoid some bizarre warning about trigraphs. (scan_dir): If we dont have the folder open, then scan the 'new' and 'cur' folders for new and unread messages to count instead.
* Setup unread count properly, and also setup the url properly.Michael Zucci2001-09-214-13/+36
| | | | | | | | | | * providers/local/camel-local-folder.c (camel_local_folder_construct): Setup unread count properly, and also setup the url properly. (scan_dir): Dont include empty host part in url for folder. (scan_dir): Lookup folder counts for any folders we currenty have open.
* Build the path on the folderinfo.02001-09-2011-27/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-20 <NotZed@Ximian.com> * providers/local/camel-maildir-store.c (camel_folder_info_new): Build the path on the folderinfo. * providers/local/camel-spool-store.c (get_folder_info): If we have this folder open, then set unread from the folder itself. (get_folder_info): Change the INBOX path to not include the leading /. * providers/local/camel-spool-folder.c (camel_spool_folder_construct): Fix path. (camel_spool_folder_construct): Properly setup the url field when we say we've got a new folder created. * providers/imap/camel-imap-store.c (unsubscribe_folder): Build path on folderinfo. * camel-store.c (camel_folder_info_build_path): Prepend / to path. * camel-vee-folder.c (camel_vee_folder_construct): Use macro for unmatched folder name. (camel_vee_folder_new): " * camel-vee-store.c (vee_get_folder_info): Use macro for unmatched folder name. (vee_delete_folder): " (vee_rename_folder): " (vee_get_folder): Prepend / onto path. (vee_delete_folder): Setup path in folderinfo. (vee_get_folder_info): Fix path in folderinfo. * camel-vee-folder.h (CAMEL_UNMATCHED_NAME): New define for unmatched (internal) name.
* And finally here.Jeffrey Stedfast2001-09-207-27/+108
| | | | | | | | | | | | | | | | | | | | | | | 2001-09-20 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-spool-folder.c (camel_spool_folder_construct): And finally here. * providers/local/camel-local-folder.c (camel_local_folder_construct): And here. * camel-vee-store.c (vee_get_folder): ANd here too. (vee_get_folder_info): And here. * providers/imap/camel-imap-store.c (create_folder): Use camel_folder_info_build() and do better error checking. (subscribe_folder): Set the path on the folder info. * camel-store.c (camel_folder_info_build): Set the folder-info path if it hasn't already been set by the caller. (camel_folder_info_free): Free the path. * camel-store.h: Added a path member to the FolderInfo type.
* Nuke debug warning.Dan Winship2001-09-202-2/+4
| | | | * camel-charset-map.c (camel_charset_to_iconv): Nuke debug warning.
* Updated exception strings to be more clear.Jeffrey Stedfast2001-09-203-17/+23
| | | | | | | | | 2001-09-19 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c: Updated exception strings to be more clear. * camel-pgp-mime.c (pgp_mime_part_sign_restore_part): Stupid mistake, fixes bug #9975.
* Oops, don't fail if `data' isn't a CamelService...cuz it's not supposed toJeffrey Stedfast2001-09-192-1/+7
| | | | | | | | 2001-09-19 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (ssl_bad_cert): Oops, don't fail if `data' isn't a CamelService...cuz it's not supposed to be! It's a CamelTcpStreamSSL object...doh!
* General cleanup of camel debug printfs.92001-09-1918-40/+76
| | | | | | | | | | | | | | | 2001-09-19 <NotZed@Ximian.com> * General cleanup of camel debug printfs. * camel-lock.c (camel_lock_fcntl): Changed to return 'success' if the error indicates file locking isn't supported on this filesystem. Still return a warning just incase (if its the first time). Might fix a lot of reported bugs. * providers/local/camel-spool-store.c (get_folder_info): Dont include the empty // host part in the uri. This 'breaks' the service lookup.
* s/List-Owner/List-PostJeffrey Stedfast2001-09-181-1/+1
|
* Match mailing-list header List-Owner.Jeffrey Stedfast2001-09-182-0/+5
| | | | | | 2001-09-18 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c: Match mailing-list header List-Owner.
* If filter inbox is set on the store, and we're opening inbox '', then82001-09-1824-146/+544
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-18 <NotZed@Ximian.com> * providers/local/camel-maildir-folder.c (camel_maildir_folder_new): If filter inbox is set on the store, and we're opening inbox '', then enable filtering on new messages. * providers/local/camel-local-folder.c (camel_local_folder_construct): After loading the summary, check it, and only abort if that fails. Also maintain the changes count. * providers/local/camel-local-summary.c (camel_local_summary_load): Remove summary_check code from here. (camel_local_summary_check): Sync index/summary here, if we were successful. * providers/local/camel-spool-folder.c (camel_spool_folder_new): If we have filter-new-messages-on-inbox set and we just opened inbox, turn on filtering on this folder. (camel_spool_folder_construct): Keep track of changes for the folder, so that filter-new-messages works right (?) * providers/local/camel-spool-store.c (get_folder): Pass 'INBOX' as the folder name, not the path. * camel-folder-search.c (search_not): Modified patch from <peterw@ximian.com> since the summary is messageinfo's, not strings. ** Ok so the problem with the stuff below is that maildir/spool 'summary_load' throws away all events, including recents, joy eh? * providers/local/camel-maildir-summary.c (maildir_summary_check): Add new messages to the recent changeinfo. * providers/local/camel-spool-summary.c: Mark 'new' message as recent, for later processing if required (i.e. 'filter new messages'). * camel-store.c (construct): new function, cascade up construct method and check for 'filter' param, and set accordingly for any one that might want it. * providers/imap/camel-imap-store.c (construct): map the param_filter_inbox flag to the store->flags as CAMEL_STORE_FILTER_INBOX. * camel-store.h (CAMEL_STORE_FILTER_INBOX): new flag to tell it to filter inbox. * providers/imap/camel-imap-folder.h: Removed do_filtering flag from CamelImapFolder. * providers/imap/camel-imap-folder.c (imap_update_summary): Remove the 'recents' parameter, use the 'changes' parameter instead to convey this info. (camel_imap_folder_changed): Changed for update_summary api change. Now always just emit the changed event if we have any changes to report, filtering code removed, handled upstream. (filter_proc): (filter_free): Removed old filtering code. (camel_imap_folder_new): Set the filter_recent flag on the folder if we're the inbox and filtering of inbox is enabled. * camel-folder.c (folder_changed): If we have 'recent' messages, and are set to filter recents, then freeze the folder and launch a thread to do the processing (or similar if threading not enabled). (thaw): Make sure we emit the changed signal outside of owning the lock and if things have changed. Also, no longer bother downgrading folder_changed events to message_changed events. * camel-folder.h (struct _CamelFolder): Added filter_recent flag -> signifies all recent messages in folder should be filtered. * camel-session.c: (camel_session_thread_msg_new, camel_session_thread_msg_free, camel_session_thread_queue, camel_session_thread_wait): code to handle async operations as part of camel processing. (camel_session_finalise): free thread_lock, destroy thread, active hash, etc. (camel_session_init): init thread, active hash, etc. (camel_session_class_init): Init virtual functions. (session_thread_msg_new, session_thread_msg_free, session_thread_destroy, session_thread_received, session_thread_queue, session_thread_wait): default implementation of session threads stuff. 2001-09-17 <NotZed@Ximian.com> * camel-folder.c (camel_folder_change_info_recent_uid): New function to add a 'recent' uid to the change info. (camel_folder_change_info_clear): Clear recent list. (camel_folder_change_info_free): Free recent list. (camel_folder_change_info_new): Setup recent list. * camel-folder.h: Added a uid_recent item to the folder_changed event data. * providers/local/camel-maildir-store.c (scan_dir): Free new in the right block. * providers/local/camel-local-provider.c: Add local config entries to filter on new messages in spool and maildir provider. * camel-vee-folder.c (vee_folder_construct): Remove the assertion which stops ? in names from being allowed.
* Virtualize this.Dan Winship2001-09-185-6/+56
| | | | | | | | | | | * camel-data-wrapper.c (camel_data_wrapper_is_offline): Virtualize this. * camel-medium.c (is_offline): A medium is offline if its content object is offline. * camel-multipart.c (is_offline): A multipart is offline if any of its subparts are offline.