platform/upstream/evolution-data-server.git
23 years agoUpdated.
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.

23 years agoRevert jeff's earlier change, the change below is the more-correct fix.
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.

23 years agoWhen we drop a fake node, dont skip checking the next in the list.
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.

23 years agoMake do_write loop until the entire buffer is written.
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.

23 years agoAdd missing header for cancel check stuff.
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.

23 years agoIf we are folding, drop the space at the end of the line.
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.

23 years agoRemvoe the stream locking here. I think this was leading to a deadlock
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.

23 years agoInclude the terminating NUL in the calculated string length. This hit
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.

23 years ago Oops.
Michael Zucci [Thu, 25 Jan 2001 05:10:59 +0000 (05:10 +0000)]
Oops.

23 years agoChanged the subject search to handle case sensitive when it is mixed case.
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.

23 years agoAdded tests to see that invalid match and action rules are properly
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.

23 years agoFix for api changes.
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.

23 years ago (camel_filter_driver_filter_message): Remove an accidentally
Michael Zucci [Tue, 23 Jan 2001 23:38:03 +0000 (23:38 +0000)]
(camel_filter_driver_filter_message): Remove an accidentally
checked in debug.

23 years agoRemove the 'finished message' bit.
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.

23 years agoAdd a lock around the delayed loading, so two threads won't try to do it
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.

23 years agoSet the CamelFolder::name to just the base part of the vfolder name (the
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)

23 years agoPerform error checking on parsing/execution.
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.

23 years agoRemoved some debug 'warnings', as they should now be displayed at the
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.

23 years agoavoid /0 by updating after we've done the sync. (close_folders): Setup the
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.

23 years agoChange the callbacks in this file to match the callback function types.
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.

23 years agoAdded profiling temp files.
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.

23 years agoWhen removing phantom nodes, check for the end node too.
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.

23 years agoMake the output a little prettier. Okay, so I'm anal...
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...

23 years agoAdded an exception to CamelFilterGetFolderFunc.
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.

23 years ago (subscribe_folder): add a missing UNLOCK
Dan Winship [Fri, 19 Jan 2001 21:34:42 +0000 (21:34 +0000)]
(subscribe_folder): add a missing UNLOCK

23 years agoSet the deleted bit *before* copying to the default folder, this way if
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.

23 years agoIf LISTing a subscribed folder doesn't return a LIST response, just ignore
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.

23 years agoMark strings for translation.
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.

23 years agoAdd a percentage complete indicator to the status thing.
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.

23 years agoMore tweaking... skip separator characters after the namespace character.
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.

23 years agoOops. Somewhere in one of the reorgs, the code to add new messages to the
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.

23 years agoAdd some g_warnings() to help debug later if I ever get the segfaults I
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.

23 years agoMake sure that the message-info is non-null before we go accessing inner
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.

23 years agoNew smtp error-code to string mapping function. (smtp_connect): Use the
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.

23 years agoAdd an int i so this code will compile. Should I be worried about how well
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? ;-)

23 years agoIndex: ChangeLog
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]

23 years ago Delayed loading of IMAP message parts.
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.

23 years agofcntl(fd, F_GETFL) returns the flags as the return value, not via a passed
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.

23 years agoset to nntp if ENABLE_NNTP (SUBDIRS): use $(NNTP_DIR)
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)

23 years agoDon't check errno as it's not being set. Fixes bug #1150.
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.

23 years agoUgh, this design is ugly like my butt.
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.

23 years agoChganged len back to be unsigned. And do a simple range check on the
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.

23 years agoIf the close() is successful, set the fd to -1.
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.

23 years agoUpdated to be able to get the CAMEL_SOCKOPT_NONBLOCKING socket opt.
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.

23 years agoLock around the imap_rescan, which needs it.
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.

23 years agoA cancellable connection routine. (remote_send_string): Return cancelled
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.

23 years agoUses an SSL socket now although there's still a few things missing (like
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.

23 years agoImplemented. (stream_setsockopt): Implemented.
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.

23 years agoNew CamelTcpStream class that implements nspr sockets and eventually will
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.

23 years agoNew abstract class for TCP streams. The next step is to write child
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.

23 years agoNew stream for handling SSL/TLS connections.
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.

23 years ago (camel_folder_thread_messages_new): Added casts to rmeove some
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.

23 years agoPerform a final pass, removing any pseudo nodes we added earlier. Quick
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.

23 years ago (imap_copy_message_to): Fix this up: sync flags to the server
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).

23 years agoFix a bug in previous commit: don't check for deleted messages if there
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 ...").

23 years agoNew function to check for added/deleted messages when re-selecting a
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.

23 years agoFix a locking problem. (One branch of an if statement was returning with
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.

23 years agoChanged the descriptions for mh, mbox, and maildir to be more
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".

23 years agoNew header to prevent recursive #include problems
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

23 years agoNew 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

23 years agoNew class function, parallel to camel_folder_sync. (The default
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.

23 years ago Mostly IMAP changes. Use the NAMESPACE extension (where
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.

23 years ago Kill off a long-hated Camel kludge: "empty" URLs and
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.

23 years agoDont try and unref a messageinfo that wasn't there, and use the right free
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.

23 years agoRemove conflict thingie from a while back
JP Rosevear [Thu, 4 Jan 2001 21:48:22 +0000 (21:48 +0000)]
Remove conflict thingie from a while back

23 years agooops, forgot the changelog entry
JP Rosevear [Thu, 4 Jan 2001 21:47:21 +0000 (21:47 +0000)]
oops, forgot the changelog entry

23 years agofix includes for compilation
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

23 years agooops. commit-o
Dan Winship [Thu, 4 Jan 2001 18:53:41 +0000 (18:53 +0000)]
oops. commit-o

23 years agoFix two problems in figuring out server-expunged messages.
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.

23 years agoFix 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.

23 years agoIf we have a lot of messages changed, promote it to a folder changed
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.

23 years agoImplemented. (search_header_exists): Implemented.
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.

23 years agoInitialize the exists variable so that we don't do random things if the
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.

23 years agoREmove warning, this isn't really deprecated, sigh.
Not Zed [Wed, 3 Jan 2001 00:15:54 +0000 (00:15 +0000)]
REmove warning, this isn't really deprecated, sigh.

2000-12-29  Not Zed  <NotZed@HelixCode.com>

        * camel-folder.c (camel_folder_move_message_to): REmove warning,
        this isn't really deprecated, sigh.

        * camel-mime-utils.c (header_fold): Comment out some debug.

23 years agoFinishing the removal of these directories.
Chris Lahey [Tue, 2 Jan 2001 23:49:44 +0000 (23:49 +0000)]
Finishing the removal of these directories.

23 years agoRemoved these directories since they're unused.
Christopher James Lahey [Tue, 2 Jan 2001 23:48:27 +0000 (23:48 +0000)]
Removed these directories since they're unused.

2001-01-02  Christopher James Lahey  <clahey@helixcode.com>

* providers/maildir/, providers/mbox/, providers/mh/: Removed
these directories since they're unused.

23 years agofix off-by-one
Dan Winship [Tue, 2 Jan 2001 22:13:32 +0000 (22:13 +0000)]
fix off-by-one

23 years ago IMAP randomness.
Dan Winship [Tue, 2 Jan 2001 22:07:44 +0000 (22:07 +0000)]
IMAP randomness.

* providers/imap/camel-imap-stream.[ch]: Remove. To be replaced.

* providers/imap/Makefile.am (libcamelimapinclude_HEADERS): Remove
camel-imap-stream.h

* providers/imap/camel-imap-utils.c (imap_parse_flag_list): Take a
char ** instead of char *, to return the position at the end of
parsing like the string parsing functions.
(imap_parse_string_generic): New function to parse a string,
nstring, or astring.
(imap_parse_nstring, imap_parse_astring): Now macros
(imap_parse_string): Added

* providers/imap/camel-imap-folder.h: Remove the "exists" field
from CamelImapFolder.

* providers/imap/camel-imap-folder.c: Remove unused include of
camel-imap-stream.h.
(camel_imap_folder_init): Remove no-longer-relevant summary
initialization.
(camel_imap_folder_new): Update for imap_parse_flag_list change,
exists removal, and imap_rescan.
(imap_rescan): New function that does most of the work of the old
imap_refresh_info, but taking "exists" as an argument instead of
getting it from the folder. Also calls camel_imap_folder_changed
to do the summary updating and signalling, rather than duplicating
that code.
(imap_refresh_info): Just call imap_rescan (using the size of the
folder summary as "exists").
(imap_update_summary): Update for imap_parse_flag_list change
(camel_imap_folder_changed): Update for "exists" change.

23 years agoNew function to return just foo/bar with no parameters.
Dan Winship [Tue, 2 Jan 2001 19:33:34 +0000 (19:33 +0000)]
New function to return just foo/bar with no parameters.

* camel-mime-utils.c (header_content_type_simple): New function to
return just foo/bar with no parameters.

* camel-data-wrapper.c (get_mime_type): Use
header_content_type_simple rather than header_content_type_format.

23 years agoRemove this. It was only a thin wrapper around struct _header_content_type
Dan Winship [Thu, 28 Dec 2000 19:28:39 +0000 (19:28 +0000)]
Remove this. It was only a thin wrapper around struct _header_content_type

* gmime-content-field.[ch]: Remove this. It was only a thin
wrapper around struct _header_content_type anyway, and didn't
match the naming scheme of anything else.

* Makefile.am: Remove gmime-content-field.[ch]

* camel.h: Remove gmime-content-field.h

* camel-types.h: Add CamelContentType as a typedef for struct
_header_content_type (especially for use outside of camel).

* camel-multipart.c:
* camel-mime-part.c:
* camel-mime-message.c:
* camel-folder-summary.c:
* camel-folder-search.c:
* camel-data-wrapper.[ch]: Use CamelContentType and
header_content_type_* functions rather than the GMime stuff.

* camel-mime-part-utils.c:
* camel-medium.c: Remove unused gmime-content-field.h include.

23 years agoFix the APOP check to not crash on servers that don't return any
Dan Winship [Wed, 27 Dec 2000 19:10:06 +0000 (19:10 +0000)]
Fix the APOP check to not crash on servers that don't return any

* providers/pop3/camel-pop3-store.c (connect_to_server): Fix the
APOP check to not crash on servers that don't return any
information on the +OK greeting line.

23 years ago (camel_imap_folder_changed): Make sure we unref the summary lookup.
Michael Zucci [Sun, 24 Dec 2000 01:42:27 +0000 (01:42 +0000)]
(camel_imap_folder_changed): Make sure we unref the summary lookup.

23 years ago clean up a stubborn and hard to remove imap_folder->summary.
Michael Zucci [Sun, 24 Dec 2000 01:41:17 +0000 (01:41 +0000)]
clean up a stubborn and hard to remove imap_folder->summary.

23 years ago Minor compilation fixes.
Michael Zucci [Sun, 24 Dec 2000 00:51:54 +0000 (00:51 +0000)]
Minor compilation fixes.

23 years agoLock the command channel while searching. (imap_body_contains): If
Not Zed [Sun, 24 Dec 2000 00:46:20 +0000 (00:46 +0000)]
Lock the command channel while searching. (imap_body_contains): If

2000-12-24  Not Zed  <NotZed@HelixCode.com>

        * providers/imap/camel-imap-search.c (imap_body_contains): Lock
        the command channel while searching.
        (imap_body_contains): If performing a whole uid search, then add
        references to our own summary items, dont look it up in the
        folder.  This way they can't vanish unexpectedly.

        * providers/imap/camel-imap-folder.h (CamelImapFolder): Added a
        private field.

        * providers/imap/camel-imap-private.h: Added lock for imap
        searches.

        * Merge from camel-mt-branch.

        * providers/imap/camel-imap-folder.c (imap_update_summary): Merge
        fix, use the folder->summary.
        (imap_get_message_flags, imap_set_message_flags,
        imap_get_message_user_flag, imap_set_message_user_flag): Removed
        again.
        (camel_imap_folder_init): Setup private data/lock.
        (imap_finalize): Free private data/search lock.
        (imap_search_free): Lock the search_lock.
        (imap_search_by_expression): Lock the search lock when using the
        search object.  Also copy/ref hte summary, rather than getting it
        directly.
        (imap_refresh_info): Free any info lookups.  Use folder->summary
        not imap_folder->summary.  And lock around commands.

23 years agoWhen getting the top-level folder list, include INBOX even if it's not
Dan Winship [Fri, 22 Dec 2000 20:33:00 +0000 (20:33 +0000)]
When getting the top-level folder list, include INBOX even if it's not

* providers/imap/camel-imap-store.c (get_folder_info): When
getting the top-level folder list, include INBOX even if it's not
subscribed. Don't show subscribed folders outside of the given
namespace. Do a better job of pruning the namespace from the
returned folder tree.

23 years agoNew CamelFolderSearch subclass that just reimplements body_contains (using
Dan Winship [Thu, 21 Dec 2000 19:50:09 +0000 (19:50 +0000)]
New CamelFolderSearch subclass that just reimplements body_contains (using

* providers/imap/camel-imap-search.c: New CamelFolderSearch
subclass that just reimplements body_contains (using the IMAP
SEARCH command). All other kinds of searching are done against the
local summary.

* providers/imap/camel-imap-folder.c (imap_search_by_expression):
Use a CamelImapSearch to do searching.

* providers/imap/camel-imap-utils.c (imap_translate_sexp, etc): No
longer needed.

* camel-folder-search.h: Add missing CAMEL_FOLDER_SEARCH_TYPE
#define

23 years agoUpdate the doc comment: since it always NUL-terminates the buffer, it
Dan Winship [Thu, 21 Dec 2000 17:14:07 +0000 (17:14 +0000)]
Update the doc comment: since it always NUL-terminates the buffer, it

* camel-stream-buffer.c (camel_stream_buffer_gets): Update the
doc comment: since it always NUL-terminates the buffer, it reads
at most @max-1 bytes, not @max.

* camel-remote-store.c (remote_recv_line): Fix the "did
camel_stream_buffer_gets fill the whole buffer" check. Fixes a bug
when reading lines longer than 1024 characters (eg, IMAP SEARCH
responses in very large folders).

23 years agoOops. Don't do "FETCH 1:0" when the folder is empty.
Dan Winship [Tue, 19 Dec 2000 20:40:12 +0000 (20:40 +0000)]
Oops. Don't do "FETCH 1:0" when the folder is empty.

* providers/imap/camel-imap-folder.c (imap_refresh_info): Oops.
Don't do "FETCH 1:0" when the folder is empty.
(imap_protocol_get_summary_specifier): Request RFC822.SIZE too.
(imap_update_summary): Parse RFC822.SIZE and add it to the
summary.

23 years agoAdd "guint32 server_flags" to CamelImapMessageInfo to keep track of the
Dan Winship [Tue, 19 Dec 2000 19:42:15 +0000 (19:42 +0000)]
Add "guint32 server_flags" to CamelImapMessageInfo to keep track of the

        * providers/imap/camel-imap-summary.c: Add "guint32 server_flags"
        to CamelImapMessageInfo to keep track of the last known message
        flag state on the server.
        (message_info_save, message_info_load): Save/load the
        server_flags.

        * providers/imap/camel-imap-folder.c: Make this use
        CamelFolderChangeInfo and emit folder_changed notifications as it
        gets them rather than only on refresh_info.
        (imap_refresh_info): Notice flags that get cleared on the server
        as well as flags that get set.
        (imap_update_summary): Remove a comment that never actually
        applied to the committed code.

23 years agoChange the semantics of fmt: Now %S (capital S) means an IMAP "string",
Dan Winship [Mon, 18 Dec 2000 19:17:17 +0000 (19:17 +0000)]
Change the semantics of fmt: Now %S (capital S) means an IMAP "string",

* providers/imap/camel-imap-command.c (camel_imap_command): Change
the semantics of fmt: Now %S (capital S) means an IMAP "string",
(which can be sent as either a quoted string or a literal). If
the server supports LITERAL+, these will be sent as extended
literals (which don't require any special escaping). Otherwise
they'll be sent as quoted strings (and it now properly deals with
" or \ in the string).
(imap_command_strdup_vprintf): Utility routine that does the real
work for the functionality mentioned above.

* providers/imap/camel-imap-utils.c (imap_quote_string): Turns a
string into a proper IMAP "quoted string".

* providers/imap/camel-imap-store.c:
* providers/imap/camel-imap-folder.c: Use %S instead of "%s" where
appropriate.

23 years agoWhen checking to see if we need to fold the header, when we come accross a
Jeffrey Stedfast [Fri, 15 Dec 2000 21:33:21 +0000 (21:33 +0000)]
When checking to see if we need to fold the header, when we come accross a

2000-12-15  Jeffrey Stedfast  <fejj@helixcode.com>

* camel-mime-utils.c (header_fold): When checking to see if we
need to fold the header, when we come accross a \n, make sure to
start at p + 1 the next time through the loop or else we get into
an infinite loop.

23 years agochange a bunch of IS_CAMEL_* macros to CAMEL_IS_*
Dan Winship [Wed, 13 Dec 2000 19:56:34 +0000 (19:56 +0000)]
change a bunch of IS_CAMEL_* macros to CAMEL_IS_*

* Namespace cleanup: change a bunch of IS_CAMEL_* macros to
CAMEL_IS_*

23 years agoadd #include <sys/types.h> for freebsd.
Chris Toshok [Wed, 13 Dec 2000 19:40:53 +0000 (19:40 +0000)]
add #include <sys/types.h> for freebsd.

2000-12-13  Chris Toshok  <toshok@helixcode.com>

* providers/imap/camel-imap-auth.c: add #include <sys/types.h> for
freebsd.

23 years agoAdded #ifndef NO_WARNINGS around a #warning. Added (void) to the prototype
Christopher James Lahey [Tue, 12 Dec 2000 23:31:40 +0000 (23:31 +0000)]
Added #ifndef NO_WARNINGS around a #warning. Added (void) to the prototype

2000-12-12  Christopher James Lahey  <clahey@helixcode.com>

* camel-folder-summary.c, camel-folder-summary.h: Added #ifndef
NO_WARNINGS around a #warning.  Added (void) to the prototype and
declaration of camel_message_info_new.

* camel-mime-message.h: Added an include for
camel-mime-filter-bestenc.h.  Added a prototype for
camel_mime_message_set_best_encoding.  Reformatted prototypes to
line up.

* camel-mime-parser.c: Added #if d(!)0 around the states string
lookup table since it's only used in debugging output.

* camel-seekable-substream.c (stream_flush): Added a cast.

* providers/imap/camel-imap-auth.c: Added #include <netinet/in.h>.

* providers/imap/camel-imap-folder.c (imap_refresh_info): Made uid
and flags const to fix warnings here.

* providers/imap/camel-imap-store.c (get_folder_info): Made p
const to fix warnings here.

23 years agoAdd missing .h file. (From campd.)
Dan Winship [Tue, 12 Dec 2000 23:10:39 +0000 (23:10 +0000)]
Add missing .h file. (From campd.)

* tests/lib/Makefile.am: Add missing .h file. (From campd.)

23 years agoRemove use of linewrap filter. Headers are now wrapped. encode_8bit
Michael Zucci [Mon, 11 Dec 2000 11:40:15 +0000 (11:40 +0000)]
Remove use of linewrap filter. Headers are now wrapped. encode_8bit

* providers/smtp/camel-smtp-transport.c (smtp_data): Remove use of
linewrap filter.  Headers are now wrapped.  encode_8bit already
enforces a 998 octet line limit.
(smtp_data): Also fixed a memleak, we always have to unref our own
copy of the filters.  We also dont need to remove them manually,
so dont bother.  The type's an int too ...

* camel-internet-address.c (internet_unformat): When scanning past
quotes, remove them also.
(camel_internet_address_format_address): If the name contains "'s,
or ','s then strip and quotes and wrap the whole lot in one set of
quotes.

* Makefile.am (noinst_HEADERS): We dont want to install
camel-charset-map-private.h, ever.  There are probably other
similar files ..?

* camel-mime-part.c (write_to_stream): Fold header lines
appropriately as we're writing them out.

* camel-mime-utils.c (header_fold): Add a new argument, headerlen,
tells it how long the associated header token is.
(header_fold): Also,k check to see if we need to fold first, using
a better algorithm, and also accept already-folded lines, and
re-process accordingly.
(rfc2047_decode_word): Add a little buffer space to iconv output
for shifting overheads?
(rfc2047_decode_word): finish the iconv with a null call, to flush
shift state, etc.
(rfc2047_encode_word): Attempt to break up long words into
appropriately sized, independent, chunks.  See rfc2047, section 2.
(header_decode_mailbox): Dont add in extra spaces into the output
if we are decoding adjacent encoded words.  We can only guess this
case, as some broken mailers put encoded words inside quoted
words.
(header_encode_phrase): Dont merge words if they are going to end
up too long.  Also change back ot only merge consecutive words of
the same type.  e.g. 'foo. blah fum.' -> "foo." blah "fum."  or
'iam an. idiot' -> iam "an." idiot

23 years agoHrm, we actually want to call set_header, not add_header here, probably
Not Zed [Mon, 11 Dec 2000 04:09:03 +0000 (04:09 +0000)]
Hrm, we actually want to call set_header, not add_header here, probably

2000-12-11  Not Zed  <NotZed@HelixCode.com>

        * camel-medium.c (camel_medium_set_header): Hrm, we actually want
        to call set_header, not add_header here, probably explains some
        duplicate X-Evolution headers i was trying to track down.  Also
        changed the api to handle a NULL value == remove the header.

        * providers/local/camel-maildir-summary.c
        (maildir_summary_decode_x_evolution): Always return error, we dont
        use x-evolution for maildir.
        (maildir_summary_encode_x_evolution): Always return a NULL string,
        likewise.
        (maildir_summary_add): Hook in here, since the _new function
        doesn't have access to any flags from the caller.  If we have
        flags, then update the filename again.  Not ideal, but should
        work.

23 years ago oops
Michael Zucci [Fri, 8 Dec 2000 18:06:19 +0000 (18:06 +0000)]
oops

23 years agoShush
JP Rosevear [Fri, 8 Dec 2000 17:55:41 +0000 (17:55 +0000)]
Shush