Not Zed [Wed, 21 Feb 2001 20:30:29 +0000 (20:30 +0000)]
Removed all files.
2001-02-22 Not Zed <NotZed@Ximian.com>
* providers/vee/*: Removed all files.
* camel-private.h: Move camel-vee-private.h stuff into here.
* camel-session.c: Move the vee_provider here, and initialise it
always as part of a session. The vfolder provider is always
available.
* providers/Makefile.am: Remove "vee" from the build list, now
built as part of the main library.
* Makefile.am (libcamelinclude_HEADERS):
(libcamel_la_SOURCES): Added camel-vee-store.[ch],
camel-vee-folder.[ch].
Not Zed [Wed, 21 Feb 2001 20:13:42 +0000 (20:13 +0000)]
Removed, not used. (camel_vee_folder_new): Removed call to build_folder.
2001-02-22 Not Zed <NotZed@Ximian.com>
* providers/vee/camel-vee-folder.c (vee_folder_build): Removed,
not used.
(camel_vee_folder_new): Removed call to build_folder.
(vee_get_message): Dont try and free the mi if we didn't get it.
* camel-folder.c (camel_folder_change_info_new): Added a hash
table of what we have in the lists, plus moved private things into
private pointer.
(camel_folder_change_info_add_source): Fixed up private accesses.
(camel_folder_change_info_add_uid): Changed to use a hashtable to
see if we already have the uid, etc.
(camel_folder_change_info_remove_uid): Similar.
(change_info_remove): Likewise.
(camel_folder_change_info_clear): Fixes for privatisations.
(camel_folder_change_info_free): "
Dan Winship [Wed, 21 Feb 2001 17:20:00 +0000 (17:20 +0000)]
Fixes for IMAP4-pre-rev1 from Torsten Schulz.
* providers/imap/camel-imap-folder.c (fetch_medium): Fixes for
IMAP4-pre-rev1 from Torsten Schulz.
Not Zed [Tue, 20 Feb 2001 00:19:16 +0000 (00:19 +0000)]
Take the ^Header: part out of the expression, since we look that up
2001-02-20 Not Zed <NotZed@Ximian.com>
* camel-mime-utils.c (mail_list_magic): Take the ^Header: part out
of the expression, since we look that up ourselves.
(header_raw_check_mailing_list): When getting the match, get match
1, not match 0, we dont want the full string match.
* camel-folder-summary.c (CAMEL_FOLDER_SUMMARY_VERSION): Bumped
for summary change.
(message_info_new): Extract the mlist info from the headers.
(message_info_load): Load mlist from summary.
(message_info_save): Save mlist to summary.
(message_info_free): Save the mlist entry.
(camel_message_info_new_from_header): Extract mailing list header.
(camel_message_info_dup_to): Copy the mlist entry.
(camel_message_info_free): Free mlist.
(message_info_dump): Dump the mlist.
* camel-folder-summary.h: Add an mlist (mailing list) string to
the summary.
Not Zed [Mon, 19 Feb 2001 20:59:54 +0000 (20:59 +0000)]
Added flags argument. (message_changed): Add support for the auto-update
2001-02-19 Not Zed <NotZed@Ximian.com>
* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Added
flags argument.
(message_changed): Add support for the auto-update flag, in which
case we auto-match the content as it changes.
(camel_vee_folder_init): Remoive "DYNAMIC" optionality
(camel_vee_folder_finalise): "
(vee_expunge): As we expunge folders, re-sync their content by
rerunning the query.
* providers/vee/camel-vee-store.c (vee_get_folder): Pass flags to
folder new.
2001-02-18 Not Zed <NotZed@Ximian.com>
* providers/vee/Makefile.am (noinst_HEADERS): Added
camel-vee-private.h.
* providers/vee/camel-vee-private.h: New file to add locking stuff
for vee folders.
* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Add
locking around unmatched setup.
(camel_vee_folder_init): Setup lock.
(camel_vee_folder_finalise): Free locks.
(folder_changed): Add locking.
(unmatched_finalise): "
(message_changed): "
(vee_folder_build): "
2001-02-17 Not Zed <NotZed@Ximian.com>
* providers/vee/camel-vee-folder.c (vee_folder_add): Check uid
doesn't exist before adding it.
2001-02-16 Not Zed <NotZed@Ximian.com>
* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Create
a new virtual virtual folder UNMATCHED, to store all messages that
dont match other vfolders.
(unmatched_folder_changed): When a vfolder issues a changed event,
use its info to update the unmatched folder info.
(unmatched_finalise): When a vfolder is finalised, remove any uids
it has as if we had a removed event for it.
Jeffrey Stedfast [Sat, 17 Feb 2001 01:28:43 +0000 (01:28 +0000)]
Thaw the defaultfolder. (camel_filter_driver_set_default_folder): Thaw the
2001-02-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_finalise): Thaw the
defaultfolder.
(camel_filter_driver_set_default_folder): Thaw the defaultfolder
we're about to replace, and freeze the new defaultfolder.
Jeffrey Stedfast [Thu, 15 Feb 2001 19:20:38 +0000 (19:20 +0000)]
Emit the folder_created signal here.
2001-02-15 Jeffrey Stedfast <fejj@ximian.com>
* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Emit
the folder_created signal here.
* providers/local/camel-local-folder.c
(camel_local_folder_construct): Emit the folder_created signal.
* providers/local/camel-local-store.c (delete_folder): On error,
free the 'name' string so we don't leak. Also emit the
folder_deleted signal.
* providers/imap/camel-imap-store.c (subscribe_folder): Emit the
folder_created signal.
(unsubscribe_folder): Emit the folder_deleted signal.
* camel-store.c (camel_store_class_init): Added folder_created and
folder_deleted signal defs.
Dan Winship [Thu, 15 Feb 2001 19:16:19 +0000 (19:16 +0000)]
Deal with out-of-order References headers so they don't cause messages to
* camel-folder-thread.c (container_parent_child): Deal with
out-of-order References headers so they don't cause messages to
disappear in threaded view.
Dan Winship [Thu, 15 Feb 2001 18:10:24 +0000 (18:10 +0000)]
IMAP4 (pre-rev1) doesn't allow BODY.PEEK[], so use RFC822.PEEK instead in
* providers/imap/camel-imap-folder.c (fetch_medium): IMAP4
(pre-rev1) doesn't allow BODY.PEEK[], so use RFC822.PEEK instead
in that case.
Christopher James Lahey [Wed, 14 Feb 2001 23:43:38 +0000 (23:43 +0000)]
Changed this code to match the glibc iconv signature.
2001-02-14 Christopher James Lahey <clahey@ximian.com>
* camel-mime-filter-charset.c (complete, filter),
camel-mime-utils.c (rfc2047_decode_word, rfc2047_encode_word):
Changed this code to match the glibc iconv signature.
Dan Winship [Wed, 14 Feb 2001 22:26:51 +0000 (22:26 +0000)]
(create_folder): Oops, and fix bug involving namespaces
Dan Winship [Wed, 14 Feb 2001 21:51:33 +0000 (21:51 +0000)]
New method to create a folder when you don't know its full name.
* camel-store.c (camel_store_create_folder): New method to create
a folder when you don't know its full name.
* providers/imap/camel-imap-store.c (create_folder): Implement.
Not Zed [Tue, 13 Feb 2001 00:30:45 +0000 (00:30 +0000)]
Add address headers to list that we dont fold when writing. The are
2001-02-12 Not Zed <NotZed@Ximian.com>
* camel-mime-part.c (init_header_name_table): Add address headers
to list that we dont fold when writing. The are properly
formatted as we build them.
(write_to_stream): DOH, lookup the header name in the formatted
hash table, not the value, that would never have worked.
* camel-internet-address.c
(camel_internet_address_encode_address): Changed to take a
parameter saying how much we've printed so far. We now fold the
header as we format it. We dont fold addresses, even if they are
too long, we simply put them on another line by themselves: this
should make the result more parsable by mailers that can't handle
split up addresses (which are legal).
(internet_encode): Fix for changes to above.
Jeffrey Stedfast [Tue, 13 Feb 2001 00:02:47 +0000 (00:02 +0000)]
mbox, mh, and maildir camel-url's need absolute paths.
2001-02-12 Jeffrey Stedfast <fejj@ximian.com>
* providers/local/camel-local-provider.c: mbox, mh, and maildir
camel-url's need absolute paths.
* camel-provider.h (CAMEL_URL_PATH_IS_ABSOLUTE): New flaggy flag.
Dan Winship [Fri, 9 Feb 2001 16:44:22 +0000 (16:44 +0000)]
save, THEN commit
Dan Winship [Fri, 9 Feb 2001 16:43:22 +0000 (16:43 +0000)]
Rewrite a bunch. Replace the existing folder cache stuff with much simpler
* camel-store.c: Rewrite a bunch. Replace the existing folder
cache stuff with much simpler code that still handles all the
existing cases. Now the folder hash table is always created by the
base class, using hash and compare functions provided by the class
implementation. (If they are set to NULL, CamelStore won't cache
folders.) lookup_folder, cache_folder, and uncache_folder are no
longer class methods, and get_name is gone completely.
(camel_store_get_inbox): Renamed from
camel_store_get_default_folder, since that wasn't being used, and
this is what we actually need.
(camel_store_get_root_folder): Removed, since it's not needed for
anything given get_folder_info.
* camel-remote-store.c:
* providers/local/camel-local-store.c:
* providers/local/camel-mbox-store.c:
* providers/local/camel-mh-store.c:
* providers/local/camel-maildir-store.c:
* providers/nntp/camel-nntp-store.c:
* providers/pop3/camel-pop3-store.c:
* providers/vee/camel-vee-store.c: Minor updates for CamelStore
changes
* providers/imap/camel-imap-store.c (camel_imap_store_class_init):
Update for CamelStore changes.
(hash_folder_name, compare_folder_name): treat INBOX
case-insensitively, otherwise use g_str_hash and g_str_equal.
* camel-service.c (camel_service_construct): Remove
camel_service_new and create camel_service_construct (as a class
method) in its place.
* camel-session.c (camel_session_get_service): Use
camel_object_new and camel_service_construct to replace
camel_service_new.
* providers/local/camel-local-store.c (construct): Append a '/' to
the URL path if it doesn't end with one
Jeffrey Stedfast [Thu, 8 Feb 2001 04:50:59 +0000 (04:50 +0000)]
Oops, include the camel-tcp-stream-ssl header instead of the raw one.
2001-01-31 Jeffrey Stedfast <fejj@helixcode.com>
* camel-tcp-stream-ssl.c: Oops, include the camel-tcp-stream-ssl
header instead of the raw one.
Jeffrey Stedfast [Thu, 8 Feb 2001 03:53:15 +0000 (03:53 +0000)]
Added more test rules.
Not Zed [Thu, 8 Feb 2001 01:42:53 +0000 (01:42 +0000)]
Changed to push the operation into a status stack.
2001-02-07 Not Zed <NotZed@Ximian.com>
* camel-operation.c (camel_operation_start): Changed to push the
operation into a status stack.
(camel_operation_progress): Changed to only accept % complete.
(camel_operation_reset): Free status stack as well.
* providers/pop3/camel-pop3-folder.c (pop3_get_message): Get the
octect count from the return line, and pass it to
get_additional_data().
(pop3_refresh_info): Added status stuff.
* providers/pop3/camel-pop3-store.c
(camel_pop3_command_get_additional_data): Added a total bytes
expected argument for progress reporting & fixed callers.
(camel_pop3_command_get_additional_data): Added progress
reporting.
* providers/local/camel-mbox-summary.c (mbox_summary_sync_full):
(mbox_summary_sync_quick):
(summary_rebuild): Added progress reporting stuff.
Jeffrey Stedfast [Wed, 7 Feb 2001 21:27:11 +0000 (21:27 +0000)]
Macro for making comparisons easy. (camel_ustrcasecmp): Use
2001-02-07 Jeffrey Stedfast <fejj@ximian.com>
* camel-search-private.c (CAMEL_SEARCH_COMPARE): Macro for making
comparisons easy.
(camel_ustrcasecmp): Use CAMEL_SEARCH_COMPARE and check for
end-of-string before the utf-8 error check.
(camel_ustrncasecmp): Same.
(camel_search_header_match): Strip leading spaces before doing
anything else. Also use vlen and mlen so as to not need to do 500
strlen()'s.
(camel_ustrcasecmp): Don't get_utf8() for the 2 strings in the
comparison part of the loop because of short-circuit expression
evaluation. (blame JPR if this is the wrong term!)
(camel_ustrncasecmp): Same.
Jeffrey Stedfast [Wed, 7 Feb 2001 19:36:46 +0000 (19:36 +0000)]
Macro for making comparisons easy. (camel_ustrcasecmp): Use
2001-02-07 Jeffrey Stedfast <fejj@ximian.com>
* camel-search-private.c (CAMEL_SEARCH_COMPARE): Macro for making
comparisons easy.
(camel_ustrcasecmp): Use CAMEL_SEARCH_COMPARE and check for
end-of-string before the utf-8 error check.
(camel_ustrncasecmp): Same.
(camel_search_header_match): Strip leading spaces before doing
anything else. Also use vlen and mlen so as to not need to do 500
strlen()'s.
Jeffrey Stedfast [Tue, 6 Feb 2001 21:50:37 +0000 (21:50 +0000)]
Rewrote using unicode_get_utf8(). (camel_ustrcasecmp): Use unicode_char_t
2001-02-06 Jeffrey Stedfast <fejj@ximian.com>
* camel-search-private.c (utf8_get): Rewrote using unicode_get_utf8().
(camel_ustrcasecmp): Use unicode_char_t
(camel_ustrncasecmp): Same.
Christopher James Lahey [Tue, 6 Feb 2001 20:57:17 +0000 (20:57 +0000)]
Made these pass char ** as the second parameter to iconv.
2001-02-06 Christopher James Lahey <clahey@ximian.com>
* camel-mime-filter-charset.c (complete, filter),
camel-mime-utils.c (rfc2047_decode_word, rfc2047_encode_word):
Made these pass char ** as the second parameter to iconv.
Jeffrey Stedfast [Tue, 6 Feb 2001 04:33:47 +0000 (04:33 +0000)]
Added xml-* files.
2001-02-05 Jeffrey Stedfast <fejj@ximian.com>
* .cvsignore: Added xml-* files.
Not Zed [Tue, 6 Feb 2001 02:38:19 +0000 (02:38 +0000)]
Removed unwanted header. It was never put in for a reason. Stop fixing
2001-02-06 Not Zed <NotZed@Ximian.com>
* camel-search-private.c: Removed unwanted header. It was never
put in for a reason. Stop fixing irrelevant warnings.
(camel_ustrstrcase): Our own strstrcase impl for utf8 strings.
(camel_ustrcasecmp): Ditto for strcasecmp.
(camel_ustrncasecmp): And strncasecmp.
(utf8_get): Simpler interface to utf8 string processing.
(camel_search_header_match): Use the new things.
2001-02-05 Not Zed <NotZed@Ximian.com>
* camel-folder.c (get_summary): Removed some old variables/a small
memleak.
(free_summary): Removed old variables.
* camel-mime-utils.c (header_raw_check_mailing_list): New utility
function to get the mailing list (if any) that a set of headers
came from.
Christopher James Lahey [Mon, 5 Feb 2001 22:37:24 +0000 (22:37 +0000)]
Added a missing #include.
2001-02-05 Christopher James Lahey <clahey@helixcode.com>
* camel-stream-fs.c: Added a missing #include.
* camel-search-private.c: Added a missing #include.
Jeffrey Stedfast [Mon, 5 Feb 2001 21:52:28 +0000 (21:52 +0000)]
Oops. Change this too.
2001-02-05 Jeffrey Stedfast <fejj@ximian.com>
* camel-remote-store.c (remote_query_auth_types): Oops. Change
this too.
Jeffrey Stedfast [Mon, 5 Feb 2001 19:55:54 +0000 (19:55 +0000)]
Updated.
2001-02-05 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (query_auth_types): Updated.
* providers/nntp/camel-nntp-store.c (nntp_store_query_auth_types):
Updated.
* providers/pop3/camel-pop3-store.c (query_auth_types): Updated.
* providers/imap/camel-imap-store.c (query_auth_types): Updated.
* camel-service.c (camel_service_query_auth_types): Now takes a
boolean value to specify whether or not to connect when
constructing a supported authtype list.
Not Zed [Mon, 5 Feb 2001 07:15:50 +0000 (07:15 +0000)]
Revert jeff's earlier change, the change below is the more-correct fix.
2001-02-05 Not Zed <NotZed@Ximian.com>
* camel-stream-filter.c (do_write): Revert jeff's earlier change,
the change below is the more-correct fix. All his was doing was
ignoring the return code & looping actually :)
* camel-stream-fs.c (stream_write): Since we are non-blocking on
the outgoing fd, keep looping if writing out large blocks, so we
can keep checking for cancel, etc.
Not Zed [Mon, 5 Feb 2001 05:04:53 +0000 (05:04 +0000)]
When we drop a fake node, dont skip checking the next in the list.
2001-02-02 Not Zed <NotZed@Ximian.com>
* camel-folder-thread.c (camel_folder_thread_messages_new): When
we drop a fake node, dont skip checking the next in the list.
(camel_folder_thread_messages_new): Add an assertion check just to
make sure we dont get any pseudo nodes, and spit a warning if we
do.
Jeffrey Stedfast [Mon, 5 Feb 2001 00:12:07 +0000 (00:12 +0000)]
Make do_write loop until the entire buffer is written.
2001-02-04 Jeffrey Stedfast <fejj@ximian.com>
* camel-stream-filter.c (do_write): Make do_write loop until the
entire buffer is written.
Not Zed [Fri, 2 Feb 2001 02:13:13 +0000 (02:13 +0000)]
Add missing header for cancel check stuff.
2001-02-02 Not Zed <NotZed@Ximian.com>
* camel-stream-fs.c: Add missing header for cancel check stuff.
* camel-session.c (camel_cancel_cancel): Fix a wrong cast.
* camel-mime-part.c (init_header_name_table): Setup a new table
header_formatted_table, that lists headers that we dont want to
fold (they've already been folded).
(write_to_stream): Check for already formatted headers, and dont
try and fold them. This is a fix for bug #1097.
Not Zed [Thu, 1 Feb 2001 00:29:35 +0000 (00:29 +0000)]
If we are folding, drop the space at the end of the line.
2001-02-01 Not Zed <NotZed@Ximian.com>
* camel-mime-utils.c (header_fold): If we are folding, drop the
space at the end of the line.
Not Zed [Mon, 29 Jan 2001 23:59:12 +0000 (23:59 +0000)]
Remvoe the stream locking here. I think this was leading to a deadlock
2001-01-30 Not Zed <NotZed@Ximian.com>
* camel-remote-store.c (timeout_cb): Remvoe the stream locking
here. I think this was leading to a deadlock when a keepalive is
being sent, in imap.
Not Zed [Mon, 29 Jan 2001 09:13:17 +0000 (09:13 +0000)]
Include the terminating NUL in the calculated string length. This hit
2001-01-29 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-command.c
(imap_command_strdup_vprintf): Include the terminating NUL in the
calculated string length. This hit memcheck.
Michael Zucci [Thu, 25 Jan 2001 05:10:59 +0000 (05:10 +0000)]
Oops.
Not Zed [Thu, 25 Jan 2001 02:04:28 +0000 (02:04 +0000)]
Changed the subject search to handle case sensitive when it is mixed case.
2001-01-25 Not Zed <NotZed@Ximian.com>
* tests/folder/test3.c: Changed the subject search to handle case
sensitive when it is mixed case.
* Makefile.am (libcamel_la_SOURCES): Added camel-ssearch-private.c
(noinst_HEADERS): Added camel-search-private.h
* camel-folder-search.c (check_header): New function to do the
work of the various header checks.
(search_header_matches):
(search_header_starts_with):
(search_header_ends_with):
(search_header_contains): Use check_header to do the work.
(build_match_regex): Removed.
* camel-search-private.c (header_soundex): New
function to match words to phrases using soundex algorithm.
* camel-filter-search.c (soundexcmp): Removed.
(check_match): Moved to search-private.h
2001-01-24 Not Zed <NotZed@Ximian.com>
* camel-search-private.c (camel_search_build_match_regex): Added
extra flags, so the same function can be used for
start/end/whole/partial matches.
(camel_search_header_match): Convenience function to check a
single header against all sorts of different matches.
* providers/imap/camel-imap-search.c (imap_body_contains): Fix for
e_sexp api changes.
* camel-folder-search.c: Fix for e_sexp api changes.
(search_header_contains): Free args/quit on unknown header.
(search_header_matches): "
(search_header_starts_with): "
(search_header_ends_with): "
(match_message): Add an exception argument.
(search_body_contains): Free args/quit on fatal error.
(message_body_contains): Removed (moved to
camel-search-private.c), fixed callers.
* camel-filter-search.c: Fix for e_sexp api changes.
(build_match_regex, message_body_contains): Moved into
camel-filter-private.c Fixed callers.
(check_header): moved guts to camel-search-private, and
changed to use regex's for everything. Just calls that with the
right args.
(check_header): GEts the header, decodes it, and checks for
failure, and whatnot.
(check_match): Removed.
(header_soundex): Changed significantly. Now it soundexes each
word in the header separately, and compares it to the first
argument.
* tests/folder/test9.c (main): Fix for api changes.
(main): Added tests to see that invalid match and action
rules are properly detected.
* camel-filter-driver.c (camel_filter_driver_filter_mbox): Remove
the 'finished message' bit.
(camel_filter_driver_filter_message): Remove an accidentally
checked in debug.
(camel_filter_driver_filter_message): Fix for e-sexp api changes.
Not Zed [Wed, 24 Jan 2001 00:36:46 +0000 (00:36 +0000)]
Added tests to see that invalid match and action rules are properly
2001-01-24 Not Zed <NotZed@Ximian.com>
* tests/folder/test9.c
(main): Added tests to see that invalid match and action
rules are properly detected.
Not Zed [Tue, 23 Jan 2001 23:52:30 +0000 (23:52 +0000)]
Fix for api changes.
2001-01-24 Not Zed <NotZed@Ximian.com>
* tests/folder/test9.c (main): Fix for api changes.
Michael Zucci [Tue, 23 Jan 2001 23:38:03 +0000 (23:38 +0000)]
(camel_filter_driver_filter_message): Remove an accidentally
checked in debug.
Not Zed [Tue, 23 Jan 2001 23:35:11 +0000 (23:35 +0000)]
Remove the 'finished message' bit.
2001-01-24 Not Zed <NotZed@Ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_mbox): Remove
the 'finished message' bit.
Dan Winship [Tue, 23 Jan 2001 20:34:50 +0000 (20:34 +0000)]
Add a lock around the delayed loading, so two threads won't try to do it
* providers/imap/camel-imap-wrapper.c: Add a lock around the
delayed loading, so two threads won't try to do it at the same
time.
Dan Winship [Tue, 23 Jan 2001 13:49:28 +0000 (13:49 +0000)]
Set the CamelFolder::name to just the base part of the vfolder name (the
* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Set the
CamelFolder::name to just the base part of the vfolder name (the
non-query part)
Not Zed [Tue, 23 Jan 2001 04:37:59 +0000 (04:37 +0000)]
Perform error checking on parsing/execution.
2001-01-23 Not Zed <NotZed@Ximian.com>
* camel-filter-search.c (camel_filter_search_match): Perform error
checking on parsing/execution.
* camel-folder-search.c (camel_folder_search_execute_expression):
Perform error handling on search expression.
(CamelFolderSearchPrivate): Add a camelexception for error
returns.
(camel_folder_search_execute_expression): Setup exception pointer.
(search_match_all): Quit on error.
* providers/imap/camel-imap-summary.c (message_info_load): Removed
some debug 'warnings', as they should now be displayed at the
toplevel loader, and just made the code match similar code
elsewhere.
* providers/local/camel-mbox-summary.c (message_info_load): Error
handling.
(message_info_save): more error handling.
* camel-folder-summary.c (message_info_load): Add error handling
and sanity checking.
(camel_folder_summary_load): Add error checks.
(perform_content_info_load): Error + sanity checks.
(content_info_load): error + sanity checks.
Not Zed [Tue, 23 Jan 2001 03:25:03 +0000 (03:25 +0000)]
Removed some debug 'warnings', as they should now be displayed at the
2001-01-23 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-summary.c (message_info_load): Removed
some debug 'warnings', as they should now be displayed at the
toplevel loader, and just made the code match similar code
elsewhere.
* providers/local/camel-mbox-summary.c (message_info_load): Error
handling.
(message_info_save): more error handling.
* camel-folder-summary.c (message_info_load): Add error handling
and sanity checking.
(camel_folder_summary_load): Add error checks.
(perform_content_info_load): Error + sanity checks.
(content_info_load): error + sanity checks.
Not Zed [Tue, 23 Jan 2001 02:22:38 +0000 (02:22 +0000)]
avoid /0 by updating after we've done the sync. (close_folders): Setup the
2001-01-23 Not Zed <NotZed@Ximian.com>
* camel-filter-driver.c (close_folder): avoid /0 by updating after
we've done the sync.
(close_folders): Setup the first progress report to start it off.
Christopher James Lahey [Mon, 22 Jan 2001 22:36:36 +0000 (22:36 +0000)]
Change the callbacks in this file to match the callback function types.
2001-01-22 Christopher James Lahey <clahey@helixcode.com>
* component/e-summary-url.c: Change the callbacks in this file to
match the callback function types. Fixes warnings.
Not Zed [Mon, 22 Jan 2001 11:57:29 +0000 (11:57 +0000)]
Added profiling temp files.
2001-01-22 Not Zed <NotZed@Ximian.com>
* .cvsignore */*/.cvsignore: Added profiling temp
files.
Not Zed [Mon, 22 Jan 2001 06:24:30 +0000 (06:24 +0000)]
When removing phantom nodes, check for the end node too.
2001-01-22 Not Zed <NotZed@Ximian.com>
* camel-folder-thread.c (camel_folder_thread_messages_new): When
removing phantom nodes, check for the end node too.
* camel-filter-driver.[ch]: Changed status vars to be
CAMEL_FILTER_STATUS_ etc.
Jeffrey Stedfast [Mon, 22 Jan 2001 03:46:57 +0000 (03:46 +0000)]
Make the output a little prettier. Okay, so I'm anal...
2001-01-21 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_param_list_format_append): Make the
output a little prettier. Okay, so I'm anal...
Not Zed [Sun, 21 Jan 2001 04:15:21 +0000 (04:15 +0000)]
Added an exception to CamelFilterGetFolderFunc.
2001-01-21 Not Zed <NotZed@Ximian.com>
* camel-filter-driver.h: Added an exception to
CamelFilterGetFolderFunc.
* camel-filter-driver.c (camel_filter_driver_filter_message):
Remove source parameter, as it is determined elsewhere now.
(camel_filter_driver_filter_folder): Same here.
(camel_filter_driver_filter_mbox): And here.
(do_move): If we cannot open a folder, quit, rather than ignoring
it.
(do_copy): Here too.
(open_folder): Pass an exception into get_folder callback.
(camel_filter_driver_filter_folder): Report that we're syncing,
when we are.
(camel_filter_driver_filter_mbox): And here too.
(close_folder): And here.
Dan Winship [Fri, 19 Jan 2001 21:34:42 +0000 (21:34 +0000)]
(subscribe_folder): add a missing UNLOCK
Jeffrey Stedfast [Fri, 19 Jan 2001 20:32:14 +0000 (20:32 +0000)]
Set the deleted bit *before* copying to the default folder, this way if
2001-01-19 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message): Set
the deleted bit *before* copying to the default folder, this way
if they are importing mail and have a rule to delete it, it
doesn't get copied to the default folder un-deleted.
Dan Winship [Fri, 19 Jan 2001 20:16:29 +0000 (20:16 +0000)]
If LISTing a subscribed folder doesn't return a LIST response, just ignore
* providers/imap/camel-imap-store.c
(get_subscribed_folders_by_hand): If LISTing a subscribed folder
doesn't return a LIST response, just ignore that folder. Yay
RFC2060.
Kjartan Maraas [Fri, 19 Jan 2001 09:16:54 +0000 (09:16 +0000)]
Mark strings for translation.
2001-01-19 Kjartan Maraas <kmaraas@gnome.org>
* providers/smtp/camel-smtp-provider.c: Mark strings for translation.
Not Zed [Fri, 19 Jan 2001 05:19:13 +0000 (05:19 +0000)]
Add a percentage complete indicator to the status thing.
2001-01-19 Not Zed <NotZed@Ximian.com>
* camel-filter-driver.c (report_status): Add a percentage complete
indicator to the status thing.
(camel_filter_driver_filter_mbox): Add percentage complete to
reporting.
(camel_filter_driver_filter_folder): Same.
Dan Winship [Fri, 19 Jan 2001 00:14:42 +0000 (00:14 +0000)]
More tweaking... skip separator characters after the namespace character.
* camel-store.c (camel_folder_info_build): More tweaking... skip
separator characters after the namespace character. (Gets rid of
the shell folder registration warning some people have had with
IMAP)
* providers/imap/camel-imap-store.c (imap_connect): I'm sure there
was some clever reason I was storing the flags of the folder in
the hash table rather than just "1", but I don't remember what it
was now. Anyway, since we only ever test NULL/non-NULL, store 1,
since flags is sometimes 0.
Dan Winship [Thu, 18 Jan 2001 23:29:04 +0000 (23:29 +0000)]
Oops. Somewhere in one of the reorgs, the code to add new messages to the
* providers/imap/camel-imap-folder.c (imap_update_summary): Oops.
Somewhere in one of the reorgs, the code to add new messages to
the CamelFolderChangeInfo structure got removed. Fix that.
Jeffrey Stedfast [Thu, 18 Jan 2001 02:49:29 +0000 (02:49 +0000)]
Add some g_warnings() to help debug later if I ever get the segfaults I
2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-summary.c (message_info_load): Add
some g_warnings() to help debug later if I ever get the segfaults
I was getting earlier. Can't seem to reproduce them after my
previous "fix".
* camel-folder-summary.c (camel_folder_summary_load): Undid my
change here, NotZed said it was wrong and that if it gets a NULL
mi then it should abort and not continue.
Jeffrey Stedfast [Thu, 18 Jan 2001 02:03:04 +0000 (02:03 +0000)]
Make sure that the message-info is non-null before we go accessing inner
2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder-summary.c (camel_folder_summary_load): Make sure
that the message-info is non-null before we go accessing inner
parts of it and/or adding it to the summary array. I may not have
handled the error correctly, but it does seem to work
correctly. If NotZed could double-check this it'd be great.
Jeffrey Stedfast [Thu, 18 Jan 2001 01:12:22 +0000 (01:12 +0000)]
New smtp error-code to string mapping function. (smtp_connect): Use the
2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (get_smtp_error_string):
New smtp error-code to string mapping function.
(smtp_connect): Use the new error->string function for reporting
useful errors.
(smtp_helo): Same. Also use a case-insensitive strstr for 8BITMIEM
as it seems Exchange sends back lowercase for that one single SMTP
extension. Everything else is uppercase. I'm seeing a lack of love
for that extension by Microsoft dudes...
(smtp_mail): Use get_smtp_error_string.
(smtp_rcpt): Same.
(smtp_data): Same.
(smtp_quit): Same.
(smtp_rset): Same.
Jeffrey Stedfast [Wed, 17 Jan 2001 02:14:17 +0000 (02:14 +0000)]
Add an int i so this code will compile. Should I be worried about how well
2001-01-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder-summary.c (camel_folder_summary_array): Add an int
i so this code will compile. Should I be worried about how well
this code will work? ;-)
Michael Zucci [Wed, 17 Jan 2001 01:07:02 +0000 (01:07 +0000)]
Index: ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/camel/ChangeLog,v
retrieving revision 1.684
diff -r1.684 ChangeLog
0a1,34
> 2001-01-17 Not Zed <NotZed@Ximian.com>
>
> * camel-folder.c (free_summary): Call
> camel_folder_summary_array_free() to do the work.
> (get_summary): Use camel_folder_summary_array() to get the array
> atomically. These fixes allow folder/test8 to work again, and fix
> a sort of race where the summary size can change while we were
> making a copy of it.
>
> * camel-folder-summary.c (camel_folder_summary_array): Get the
> summary array atomically, so it can't contain empty records.
> (camel_folder_summary_array_free): And free it.
>
> * tests/lib/camel-test.c (die): If we are verbose & in threads,
> then goto sleep so we can debug.
>
> * tests/folder/test8.c (worker): Add a missing pull() for
> comnparing content.
>
> * camel-filter-search.c: Fix the symbol table, so match-all is an
> immediate function, as it should be.
>
> * tests/folder/test9.c (main): New test, tests some filtering
> things.
>
> * tests/message/test3.c (main): Dont use a boundary string with
> spaces in it. Folding can corrupt it. Maybe the folding isn't
> working entirely right, but anyway.
>
> * camel-session.c: Debug out the debug.
>
> * camel-filter-driver.c (camel_filter_driver_filter_folder): Plug
> a messageinfo leak.
>
1a36,94
>
> * camel-filter-search.c (header_exists): Changed to support
> multiple args (or'd together).
> (header_contains): Cleaned up to match the search code. Why did
> fejj change it? I'll never know.
> (header_matches):
> (header_starts_with):
> (header_ends_with): Big cleanup of fejj's "i'm the cut & paste
> king" code. Also properly handle or'ing of additional args to
> match what the folder-search code should do.
> (check_match): New function which does the annoying matching
> stuff (for header matches).
> (check_header): Similarly, handles or'ing of the matches together.
> (header_contains):
> (header_matches):
> (header_starts_with):
> (header_ends_with): Call check_header to do the actual work.
> (header_soundex): And here too.
> (match_all): Yeah like match-all isn't passed expression results,
> its passed expression terms. Fix this so match-all works like it
> should, by executing the contained expression.
> (message_body_contains): Copied directly from
> camel-folder-search.c, a more robust/faster/simpler body search
> code.
> (mime_part_matches): Removed entirely.
> (handle_multipart): Removed entirely.
> (build_match_regex): Copied from camel-folder-search. Builds a
> set of simple strings into a regex pattern that matches any of
> them (for faster & simpler matching). Expanded to accept regex
> patterns itself, so it can merge them together.
> (body_contains): Use build match/match message to match using a
> built regex.
> (body_regex): Likewise, this time we tell it we're building a
> regex though.
> (header_full_regex): Use build_match_regex to take the drudgery
> out of it, and expand it to handle multiple regex's at once.
> (get_full_header): slightly cleaner (well i dunno, the sprintf
> stuff just got to me).
> (header_regex): Cleaned up to use build_match_Regex too, and to
> properly check types.
> (filter_message_search): Just allocate 'fms' on the stack.
>
> * camel-filter-driver.c (camel_filter_driver_finalise):
> (camel_filter_driver_init):
> (camel_filter_driver_class_init):
> (camel_filter_driver_get_type): Changed from gtk object to camel
> object.
> (camel_filter_driver_add_rule): New function to add a rule to be
> processed in sexp form.
> (camel_filter_driver_init): Init the rules list.
> (camel_filter_driver_finalise): Clear the rules/rules list.
> (camel_filter_driver_filter_message): Scan rules list directly
> rather than creating on the fly.
>
> * Makefile.am (libcamelinclude_HEADERS): Added camel-filter-driver.h
> (libcamel_la_SOURCES): Added camel-filter-driver.c, code taken
> from filter-driver, which can drive, uh, filters based on sexp's.
> (libcamelinclude_HEADERS):
> (libcamel_la_SOURCES): Added camel-filter-search.[ch]
Dan Winship [Wed, 17 Jan 2001 00:27:19 +0000 (00:27 +0000)]
Delayed loading of IMAP message parts.
* camel-types.h: typedef CamelMessageInfo and
CamelMessageContentInfo here
* camel-folder-summary.h: Add a "size" field to
CamelMessageContentInfo.
* camel-folder-summary.c (camel_folder_summary_content_info_new,
camel_folder_summary_content_info_free): Renamed and made
non-static for providers that construct their own content info.
(content_info_load, content_info_save): load/save size
* camel-data-wrapper.c (camel_data_wrapper_is_offline): New
function to return if a data wrapper's contents are "offline". (So
that, for example, we don't make thumbnails of images that haven't
been loaded off the IMAP server yet.) Defaults to FALSE.
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
Fix a bug in re-selecting a folder when messages have been
expunged from it by another client in the meantime.
(imap_get_message): Rewrite. If the message is larger than a
certain size, just create a skeleton message containing
CamelImapWrappers that will read parts as needed. This way, large
attachments only need to be downloaded if the user looks at them,
and multipart/alternative alternatives that aren't used will never
be downloaded at all.
(imap_update_summary): Rewrite this a bunch too to make the
parsing more robust.
* providers/imap/camel-imap-summary.c
(CAMEL_IMAP_SUMMARY_VERSION): bump.
(camel_imap_summary_new): Set build_content to TRUE.
(content_info_load, content_info_save): Only save/load the content
for messages that have it. (The content info gets created as a
side effect of imap_get_message.)
* providers/imap/camel-imap-utils.c (imap_parse_body): New routine
(and helpers) to parse an IMAP 'body' FETCH response and fill in a
CamelMessageContentInfo from it.
* providers/imap/Makefile.am (libcamelimap_la_SOURCES,
libcamelimap_la_HEADERS): add camel-imap-wrapper.
Dan Winship [Tue, 16 Jan 2001 23:27:51 +0000 (23:27 +0000)]
fcntl(fd, F_GETFL) returns the flags as the return value, not via a passed
* camel-tcp-stream-raw.c (stream_getsockopt, stream_setsockopt):
* camel-stream-fs.c (stream_read, stream_write):
* camel-remote-store.c (socket_connect): fcntl(fd, F_GETFL)
returns the flags as the return value, not via a passed in
pointer. And F_SETFL looks for an int, not a long, and you have to
pass it what it's expecting because it's a va_arg parameter. (Yes,
the man page lies on Linux. But check the UNIX98 spec or the glibc
source.) Also, fix another bug in socket_connect: if we manage to
connect right away, unset O_NONBLOCK so it doesn't mess us up
later.
Fixes a bunch of problems with non-blocking I/O being done in the
allegedly-blocking case and then returning EWOULDBLOCK.
Chris Toshok [Tue, 16 Jan 2001 23:19:40 +0000 (23:19 +0000)]
set to nntp if ENABLE_NNTP (SUBDIRS): use $(NNTP_DIR)
2001-01-16 Chris Toshok <toshok@ximian.com>
* providers/Makefile.am (NNTP_DIR): set to nntp if ENABLE_NNTP
(SUBDIRS): use $(NNTP_DIR)
Jeffrey Stedfast [Tue, 16 Jan 2001 22:28:16 +0000 (22:28 +0000)]
Don't check errno as it's not being set. Fixes bug #1150.
2001-01-16 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (smtp_rcpt): Don't check
errno as it's not being set. Fixes bug #1150.
Jeffrey Stedfast [Tue, 16 Jan 2001 07:19:49 +0000 (07:19 +0000)]
Ugh, this design is ugly like my butt.
2001-01-16 Jeffrey Stedfast <fejj@ximian.com>
Ugh, this design is ugly like my butt.
* camel-session.c (camel_session_query_cert_authenticator): New
function which will be useful when we integrate SSL.
* camel-tcp-stream-ssl.c (ssl_auth_cert): Callback to authenticate
a certificate.
(ssl_bad_cert): Callback that gets the reason the certificate is
bad and then calls camel's cert-authenticator callback to notify
the user and to allow the user to override the check.
(stream_connect): Set the URL we expect to connect with and setup
the auth_cert and bad_cert callbacks.
(camel_tcp_stream_ssl_new): Now takes a CamelSession and a
expected_host argument that it will use for certificate
authentication.
(camel_tcp_stream_ssl_finalize): Unref the session and free the
expected_host.
Not Zed [Tue, 16 Jan 2001 03:54:45 +0000 (03:54 +0000)]
Chganged len back to be unsigned. And do a simple range check on the
2001-01-16 Not Zed <NotZed@Ximian.com>
* camel-folder-summary.c (camel_folder_summary_decode_string):
Chganged len back to be unsigned. And do a simple range check on
the string value to try and detect corrupted summary files.
* providers/imap/camel-imap-command.c (imap_read_untagged): Handle
cancelled stream reads with an appropriate exception.
* providers/imap/camel-imap-private.h: Fix the include-once
macro. Doh, confliced with camel-private.h.
* providers/imap/camel-imap-store.c (imap_store_refresh_folders):
A copy of camel_remote_store_refresh_folders. We avoid locking
each folder when we call it though. This should be removed when i
can work out how to remove the folder lock from this function
easily.
* camel-stream-fs.c (stream_write): Fix n' argument of select.
(stream_read): Likewise.
* camel-remote-store.c (socket_connect): Bump the connect timeout
upto 4 minutes.
(socket_connect): Oops, fix the 'n' argument of select.
* camel-session.c (camel_cancel_cancel): If we are given no
cancellation node, then do it for all active ones.
Jeffrey Stedfast [Tue, 16 Jan 2001 00:54:18 +0000 (00:54 +0000)]
If the close() is successful, set the fd to -1.
2001-01-15 Jeffrey Stedfast <fejj@ximian.com>
* camel-stream-fs.c (stream_close): If the close() is successful,
set the fd to -1.
* camel-tcp-stream-raw.c: Removed the disconnect() method.
(stream_close): If the close() is successful, set the sockfd to
-1.
* camel-tcp-stream-ssl.c: Removed the disconnect() method.
(stream_close): If the close() is successful, set the sockfd to
NULL.
* camel-tcp-stream.c (camel_tcp_stream_disconnect): Removed,
easier to just use the close() method as it did the same thing
anyway.
Jeffrey Stedfast [Mon, 15 Jan 2001 23:31:40 +0000 (23:31 +0000)]
Updated to be able to get the CAMEL_SOCKOPT_NONBLOCKING socket opt.
2001-01-15 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-raw.c (stream_getsockopt): Updated to be able
to get the CAMEL_SOCKOPT_NONBLOCKING socket opt.
(stream_setsockopt): Updated to be able to set the
CAMEL_SOCKOPT_NONBLOCKING socket opt.
Peter Williams [Mon, 15 Jan 2001 21:35:40 +0000 (21:35 +0000)]
Lock around the imap_rescan, which needs it.
2001-01-15 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Lock around the
imap_rescan, which needs it.
Not Zed [Mon, 15 Jan 2001 07:55:30 +0000 (07:55 +0000)]
A cancellable connection routine. (remote_send_string): Return cancelled
2001-01-15 Not Zed <NotZed@Ximian.com>
* camel-remote-store.c (socket_connect): A cancellable connection
routine.
(remote_send_string): Return cancelled exception if we were.
(remote_send_stream): "
(remote_recv_line): "
* camel-stream-fs.c (stream_read): First cut at cancellation
stuff. Its looking a bit ugly.
Jeffrey Stedfast [Mon, 15 Jan 2001 06:25:23 +0000 (06:25 +0000)]
Uses an SSL socket now although there's still a few things missing (like
2001-01-15 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (stream_connect): Uses an SSL socket now
although there's still a few things missing (like certificate
handling and such).
* camel.c (camel_ssl_init): A replacement function for
camel_init() that also initializes SSL.
Jeffrey Stedfast [Sun, 14 Jan 2001 22:48:09 +0000 (22:48 +0000)]
Implemented. (stream_setsockopt): Implemented.
2001-01-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (stream_getsockopt): Implemented.
(stream_setsockopt): Implemented.
* camel-tcp-stream-raw.c (stream_getsockopt): Implemented.
(stream_setsockopt): Implemented.
* camel-tcp-stream.c (camel_tcp_stream_getsockopt): New method.
(camel_tcp_stream_setsockopt): Another new method. I think you get
the idea of what these are for so I won't explain them.
Jeffrey Stedfast [Sun, 14 Jan 2001 08:21:00 +0000 (08:21 +0000)]
New CamelTcpStream class that implements nspr sockets and eventually will
2001-01-14 Jeffrey Stedfast <fejj@helixcode.com>
* camel-tcp-stream-ssl.[c,h]: New CamelTcpStream class that
implements nspr sockets and eventually will use nss for
SSL/TLS. Currently doesn't do any SSL/TLS but it should still
work. It's functionally equivalent to CamelTcpStreamRaw at the
moment only it uses nspr i/o.
* camel-tcp-stream-raw.[c,h]: New CamelTcpStream class that
implements native sockets. Should be usable but may have some bugs
yet.
Jeffrey Stedfast [Sun, 14 Jan 2001 04:40:46 +0000 (04:40 +0000)]
New abstract class for TCP streams. The next step is to write child
2001-01-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream.[c,h]: New abstract class for TCP streams. The
next step is to write child classes (CamelTcpStreamBSD and
CamelTcpStreamSSL). The BSD stream will use normal BSD sockets
while SSL will use Mozilla's NSPR and NSS libraries to do Secure
Socket Layers which wille ventually replace CamelStreamSSL which I
just commit'd. Oh well.
Jeffrey Stedfast [Sun, 14 Jan 2001 02:44:59 +0000 (02:44 +0000)]
New stream for handling SSL/TLS connections.
2001-01-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-stream-ssl.[c,h]: New stream for handling SSL/TLS
connections.
Michael Zucci [Fri, 12 Jan 2001 03:43:53 +0000 (03:43 +0000)]
(camel_folder_thread_messages_new): Added casts to rmeove some
warnings for the analites out there.
Not Zed [Fri, 12 Jan 2001 02:48:45 +0000 (02:48 +0000)]
Perform a final pass, removing any pseudo nodes we added earlier. Quick
2001-01-12 Not Zed <NotZed@Ximian.com>
* camel-folder-thread.c (camel_folder_thread_messages_new):
Perform a final pass, removing any pseudo nodes we added earlier.
Quick patch to test the idea.
Dan Winship [Thu, 11 Jan 2001 23:56:50 +0000 (23:56 +0000)]
(imap_copy_message_to): Fix this up: sync flags to the server
before copying so that they end up correct in the remote folder.
And poke the destination folder after doing the copy so it notices
the new message right away.
(imap_move_message_to): Call imap_copy_message_to for most of the
work rather than duplicating the code (since it's much more
complicated now).
Dan Winship [Thu, 11 Jan 2001 22:50:10 +0000 (22:50 +0000)]
Fix a bug in previous commit: don't check for deleted messages if there
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
Fix a bug in previous commit: don't check for deleted messages if
there are no known messages in the folder (because it would end up
sending "FETCH 0 ...").
Dan Winship [Thu, 11 Jan 2001 22:04:29 +0000 (22:04 +0000)]
New function to check for added/deleted messages when re-selecting a
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
New function to check for added/deleted messages when re-selecting
a folder.
(imap_refresh_info, imap_rescan, imap_update_summary): Various
locking tweaks that turn out to be irrelevant since command_lock
is recursive, but whatever.
* providers/imap/camel-imap-command.c (camel_imap_command): When
selecting a new folder, call camel_imap_folder_selected on it.
Dan Winship [Thu, 11 Jan 2001 21:53:34 +0000 (21:53 +0000)]
Fix a locking problem. (One branch of an if statement was returning with
* camel-folder.c (camel_folder_copy_message_to): Fix a locking
problem. (One branch of an if statement was returning with the
lock still locked.) Also remove the deprecation comments, to match
move_message_to.
Jeffrey Stedfast [Wed, 10 Jan 2001 21:28:28 +0000 (21:28 +0000)]
Changed the descriptions for mh, mbox, and maildir to be more
2001-01-10 Jeffrey Stedfast <fejj@helixcode.com>
* providers/local/camel-local-provider.c: Changed the descriptions
for mh, mbox, and maildir to be more "user-friendly".
Dan Winship [Wed, 10 Jan 2001 20:20:02 +0000 (20:20 +0000)]
New header to prevent recursive #include problems
* providers/imap/camel-imap-types.h: New header to prevent
recursive #include problems
Dan Winship [Wed, 10 Jan 2001 20:19:45 +0000 (20:19 +0000)]
New header to prevent recursive #include problems
* providers/imap/camel-imap-types.h: New header to prevent
recursive #include problems
* providers/imap/*.h: Replace some #includes with #include
"camel-imap-types.h", remove typedefs that were moved to
camel-imap-types.h
* providers/imap/*.c: Add #includes to make up for #includes
removed from .h files
* providers/imap/Makefile.am (libcamelimapinclude_HEADERS): Add
camel-imap-types.h
Dan Winship [Wed, 10 Jan 2001 17:10:44 +0000 (17:10 +0000)]
New class function, parallel to camel_folder_sync. (The default
* camel-store.c (camel_store_sync): New class function, parallel
to camel_folder_sync. (The default implementation just calls
camel_folder_sync on each cached folder.)
* providers/imap/camel-imap-store.c (get_folder_info): Call
camel_store_sync before doing anything else so that the IMAP
server and Camel are working from the same data. Don't ask the
server for the unread message count of the current folder, since
UW will return often-incorrect cached data, and we can calculate
it without talking to the server anyway.
Dan Winship [Tue, 9 Jan 2001 22:25:50 +0000 (22:25 +0000)]
Mostly IMAP changes. Use the NAMESPACE extension (where
available). Deal with servers that don't return LIST flags in
response to LSUB (like UW) to get rid of the "not a selectable
folder" error messages in the UI. Take advantage of the \Marked
and \Unmarked flags to try to speed up the folder scan by not
doing STATUS on unmarked folders. Some further tweaks on the shape
of the resulting folder tree in various situations...
* camel-store.h: Remove the (read) message_count, since nothing
uses it, and we can speed up IMAP a bit this way.
* camel-store.c (camel_folder_info_build): Redo this a bit to make
it more useful for IMAP since that's the only thing that uses it.
* camel-remote-store.c (camel_remote_store_connected): Public
function to check if the store is connected, and try to connect it
if it's not.
(remote_send_string, remote_send_stream, remote_recv_line): Use
that.
* providers/imap/camel-imap-store.c (camel_imap_store_finalize):
fix up for changes.
(camel_imap_store_init): Initialize subscribed_folders to NULL
rather than an empty hash table.
(imap_connect): Get the list of subscribed folders here. If the
server doesn't claim that any of them are either Marked or
Unmarked, then assume that it doesn't do that for LSUB and
remember that for later. If the server supports the NAMESPACE
extension and the user didn't specify a namespace, use the
server-provided one.
(imap_disconnect): Free the list of subscribed folders, and the
namespace.
(get_folder): check camel_remote_store_connected
(get_folder_info): check camel_remote_store_connected. Add a bunch
of new cleverness. If we learned that the server doesn't do LSUB
usefully, do a bunch of LISTs by hand. Then, if we're getting
unread counts, only do it for folders that weren't listed as
Unmarked. Also, deal with namespaces that end with the separator
character, and update for changes to camel_folder_info_build.
(folder_subscribed): Add a g_return_val_if_fail.
(subscribe_folder, unsubscribe_folder): check
camel_remote_store_connected.
* providers/nntp/camel-nntp-store.c (build_folder_info,
build_folder_info_from_grouplist, nntp_store_get_folder_info):
Don't fill in message_count since it doesn't exist any more.
Dan Winship [Tue, 9 Jan 2001 19:27:27 +0000 (19:27 +0000)]
Kill off a long-hated Camel kludge: "empty" URLs and
query_auth_types_generic.
* camel-url.c: Remove "empty" from CamelURL.
(camel_url_new): No longer set it.
(camel_url_to_string): Treat "" as equivalent to NULL for
authmech. (Unrelated change, but it simplifies some stuff with the
new config dialog.)
* camel-service.c (camel_service_new): Remove url->empty check: if
the URL isn't valid, we don't create the service.
(camel_service_query_auth_types): No longer need to switch between
generic and connected variants.
* providers/smtp/camel-smtp-transport.c (query_auth_types):
* providers/pop3/camel-pop3-store.c (query_auth_types):
* providers/nntp/camel-nntp-store.c (nntp_store_query_auth_types):
* providers/imap/camel-imap-store.c (query_auth_types):
* camel-remote-store.c (remote_query_auth_types): Remove generic
version, rename connected version.
Not Zed [Sat, 6 Jan 2001 02:25:04 +0000 (02:25 +0000)]
Dont try and unref a messageinfo that wasn't there, and use the right free
2001-01-06 Not Zed <NotZed@HelixCode.com>
* providers/vee/camel-vee-folder.c (vee_folder_build_folder): Dont
try and unref a messageinfo that wasn't there, and use the right
free function too. Modified patch from Iain.
(vee_move_message_to): New method, call the real folders'
move_message_to method.
JP Rosevear [Thu, 4 Jan 2001 21:48:22 +0000 (21:48 +0000)]
Remove conflict thingie from a while back
JP Rosevear [Thu, 4 Jan 2001 21:47:21 +0000 (21:47 +0000)]
oops, forgot the changelog entry
JP Rosevear [Thu, 4 Jan 2001 19:40:10 +0000 (19:40 +0000)]
fix includes for compilation
2001-01-04 JP Rosevear <jpr@helixcode.com>
* tests/lib/Makefile.am: fix includes for compilation
* tests/message/Makefile.am: Build test3 again
* tests/message/test2.c: Kill warnings with header includes
* tests/message/test3.c: ditto
* tests/lib/streams.c: ditto
* tests/lib/camel-test.c: ditto
* tests/lib/messages.c: ditto
* tests/lib/folders.c: ditto
Dan Winship [Thu, 4 Jan 2001 18:53:41 +0000 (18:53 +0000)]
oops. commit-o
Dan Winship [Thu, 4 Jan 2001 18:40:57 +0000 (18:40 +0000)]
Fix two problems in figuring out server-expunged messages.
* providers/imap/camel-imap-folder.c (imap_rescan): Fix two
problems in figuring out server-expunged messages.
Dan Winship [Thu, 4 Jan 2001 16:57:39 +0000 (16:57 +0000)]
Fix two problems in figuring out server-expunged messages.
* providers/imap/camel-imap-folder.c (imap_rescan): Fix two
problems in figuring out server-expunged messages.
Not Zed [Thu, 4 Jan 2001 07:28:40 +0000 (07:28 +0000)]
If we have a lot of messages changed, promote it to a folder changed
2001-01-04 Not Zed <NotZed@HelixCode.com>
* camel-folder.c (thaw): If we have a lot of messages changed,
promote it to a folder changed event.
Jeffrey Stedfast [Thu, 4 Jan 2001 06:40:33 +0000 (06:40 +0000)]
Implemented. (search_header_exists): Implemented.
2000-01-03 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder-search.c (search_header_matches): Implemented.
(search_header_exists): Implemented.
(search_header_starts_with): Implemented.
(search_header_ends_with): Implemented.
Christopher James Lahey [Wed, 3 Jan 2001 17:33:11 +0000 (17:33 +0000)]
Initialize the exists variable so that we don't do random things if the
2001-01-03 Christopher James Lahey <clahey@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_new):
Initialize the exists variable so that we don't do random things
if the imap server misbehaves.