Dan Winship [Thu, 13 Jul 2000 17:17:56 +0000 (17:17 +0000)]
define a set of CAMEL_SERVICE_URL_ALLOW_* flags parallel to the _NEED_*
* camel-service.h: define a set of CAMEL_SERVICE_URL_ALLOW_* flags
parallel to the _NEED_* flags, and make the _NEED_* flags imply
the _ALLOW_* ones.
* providers/imap/camel-imap-store.c (camel_imap_store_init): imap
urls ALLOW_PATH
Jeffrey Stedfast [Thu, 13 Jul 2000 08:56:52 +0000 (08:56 +0000)]
New and improved approach to fetching an entire folder summary that should
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): New
and improved approach to fetching an entire folder summary
that should be much much faster than the old way as it gets
the entire folder summary in 1 shot rather than requesting
message by message. As with the last update, this version
also only fetches the minimum number of header fields.
(imap_get_summary): Oops, forgot to free the temp
GPtrArray *headers
Jeffrey Stedfast [Thu, 13 Jul 2000 08:28:24 +0000 (08:28 +0000)]
New and improved approach to fetching an entire folder summary that should
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): New
and improved approach to fetching an entire folder summary
that should be much much faster than the old way as it gets
the entire folder summary in 1 shot rather than requesting
message by message. As with the last update, this version
also only fetches the minimum number of header fields.
Jeffrey Stedfast [Thu, 13 Jul 2000 05:50:20 +0000 (05:50 +0000)]
Don't fetch the entire RFC822 header, just fetch the fields we want.
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): Don't
fetch the entire RFC822 header, just fetch the fields we want.
(imap_get_message_info): Same.
Michael Zucci [Thu, 13 Jul 2000 04:03:38 +0000 (04:03 +0000)]
Remove some text cruft i was using for testing.
Not Zed [Thu, 13 Jul 2000 04:02:13 +0000 (04:02 +0000)]
Reset filter on setup. (reset): When resetting qp encoding, set the state
2000-07-13 Not Zed <NotZed@HelixCode.com>
* camel-mime-filter-basic.c (camel_mime_filter_basic_new_type):
Reset filter on setup.
(reset): When resetting qp encoding, set the state to -1, instead
of 0.
* camel-mime-utils.c (quoted_encode_step): Actually count the
characters output sofar (it never counted any). Bunch of other
fixes.
(quoted_encode_close): Also flush out final character, if ther's
one.
Jeffrey Stedfast [Thu, 13 Jul 2000 02:14:50 +0000 (02:14 +0000)]
Oops, missed a source file.
Added #include <e-util/e-util.h> and renamed strstrcase to e_strstrcase in providers/imap/camel-imap-folder.c
Jeffrey Stedfast [Thu, 13 Jul 2000 02:11:57 +0000 (02:11 +0000)]
Chris forgot to add #include <e-util/e-util.h> to the source files
2000-07-12 Jeffrey Stedfast <fejj@helixcode.com>
Chris forgot to add #include <e-util/e-util.h> to the source files
* providers/imap/camel-imap-store.c (imap_connect): Fixed Peter's
fix, we don't want to send a string to a %d.
Jeffrey Stedfast [Thu, 13 Jul 2000 01:35:25 +0000 (01:35 +0000)]
Undid clahey's e_strstrcase because e_strstrcase DOES NOT EXIST in
2000-07-12 Jeffrey Stedfast <fejj@helixcode.com>
Undid clahey's e_strstrcase because e_strstrcase DOES NOT EXIST
in e-utils/e-utils.c nor anywhere else in Evolution - besides,
Camel should remain independant of Evolution.
* providers/imap/camel-imap-store.c (imap_connect): Fixed Peter's
fix, we don't want to send a string to a %d.
Christopher James Lahey [Wed, 12 Jul 2000 22:59:24 +0000 (22:59 +0000)]
From addressbook/ChangeLog:
2000-07-12 Christopher James Lahey <clahey@helixcode.com>
* backend/pas/pas-backend-file.c: Do case insensitive compares.
* addressbook/gui/component/addressbook.c: Make quick search
search both name and company name.
From camel/ChangeLog:
2000-07-12 Christopher James Lahey <clahey@helixcode.com>
* camel-folder-search.c, providers/imap/camel-imap-store.c:
Changed from strstrcase to e_strstrcase.
* string-utils.c, string-utils.h: Removed strstrcase (in favor of
e_strstrcase in e-util/e-util.c.)
From e-util/ChangeLog:
2000-07-12 Christopher James Lahey <clahey@helixcode.com>
* e-util.c, e-util.h: Added e_strstrcase function.
Chris Toshok [Wed, 12 Jul 2000 21:24:26 +0000 (21:24 +0000)]
get the article num out of our uid and mark it read in the newsrc.
2000-07-12 Chris Toshok <toshok@helixcode.com>
* providers/nntp/camel-nntp-folder.c
(nntp_folder_set_message_flags): get the article num out of our
uid and mark it read in the newsrc.
(nntp_folder_get_message): get the message id out of the uid to
fetch the article.
* providers/nntp/camel-nntp-utils.c (get_XOVER_headers): the uid
is now <article-num>,<messageid>
(get_HEAD_headers): same.
* camel-mime-parser.c (folder_scan_step): go to HSCAN_MESSAGE
state when ct->subtype is "news" as well as "rfc822". this makes
attachments of type "message/news" display properly.
Dan Winship [Wed, 12 Jul 2000 20:37:00 +0000 (20:37 +0000)]
Useful default implementations for free_{uids,subfolder_names,summary}.
* camel-folder.c (camel_folder_free_deep,
camel_folder_free_shallow, camel_folder_free_nop): Useful default
implementations for free_{uids,subfolder_names,summary}.
(free_subfolder_names, free_uids): Make these g_warning-ing
default implementations.
* providers/*/camel-*-folder.c: Use the new functions where
appropriate, remove duplicated code.
Matthew Loper [Wed, 12 Jul 2000 19:46:08 +0000 (19:46 +0000)]
Solaris fixes: make sure not to pass NULL to printf's %s
Jeffrey Stedfast [Wed, 12 Jul 2000 19:28:50 +0000 (19:28 +0000)]
Use mbox_set_message_flags () instead of setting the flags by hand. This
2000-07-12 Jeffrey Stedfast <fejj@helixcode.com>
* providers/mbox/camel-mbox-folder.c (mbox_delete_message): Use
mbox_set_message_flags () instead of setting the flags by hand. This
fixes the problem of the "message_changed" signal not being emitted
at the correct time.
* providers/imap/camel-imap-folder.c: "folder_changed" signals should
pass a third argument (which is ignored).
* camel-folder.c: Undo gtk signal emits done in set_flags and
expunge.
(move_message_to):
(copy_message_to): Create info as a const CamelMessageInfo
Chris Toshok [Wed, 12 Jul 2000 18:14:31 +0000 (18:14 +0000)]
don't add test-newsrc to the build since it needs libcamel (which isn't
2000-07-12 Chris Toshok <toshok@helixcode.com>
* providers/nntp/Makefile.am: don't add test-newsrc to the build
since it needs libcamel (which isn't built at the time test-newsrc
needs linking.)
* providers/nntp/camel-nntp-utils.c (get_HEAD_headers): fill in
MessageInfo->message_id.
(get_XOVER_headers): same.
* providers/nntp/camel-nntp-folder.c (nntp_folder_init): move
summary loading here.
(nntp_folder_sync): summary/newsrc changes should be stored here.
put a comment to that effect.
(nntp_folder_set_message_flags): don't save the newsrc here.
(nntp_folder_get_uids): use g_ptr_array_index instead of the
cast/addition.
(nntp_folder_get_summary): no need to check if we should generate
the summary here. already done.
(nntp_folder_get_message_info): implement.
* providers/nntp/camel-nntp-store.c
(camel_nntp_store_get_toplevel_dir): use evolution_dir instead of
computing it ourselves.
(nntp_store_disconnect): call camel_nntp_newsrc_write.
(ensure_news_dir_exists): new function to create the news/<news
server> subdir.
(camel_nntp_store_class_init): hook up connect/disconnect and
finalize.
(nntp_store_connect): if ensure_news_dir_exists fails throw an
exception.
Peter Williams [Wed, 12 Jul 2000 16:02:02 +0000 (16:02 +0000)]
Fix bug #378: last displayed message is still shown in an empty folder
Peter Williams [Wed, 12 Jul 2000 15:45:59 +0000 (15:45 +0000)]
Fix bug #394: Refiling messages does not update the view
Jeffrey Stedfast [Wed, 12 Jul 2000 04:30:18 +0000 (04:30 +0000)]
Use size_t and ssize_t for read/write methods
2000-07-12 Jeffrey Stedfast <fejj@helixcode.com>
* camel-stream.c: Use size_t and ssize_t for read/write methods
Jeffrey Stedfast [Wed, 12 Jul 2000 04:13:21 +0000 (04:13 +0000)]
Updated to emit the message_changed signal. (imap_delete_message): Updated
2000-07-12 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_set_message_flags):
Updated to emit the message_changed signal.
(imap_delete_message): Updated to use imap_set_message_flags ().
(imap_move_message_to): Updated to use imap_set_message_flags ()
and to emit the folder_changed signal on the destination folder.
(imap_copy_message_to): Updated to emit the folder_changed signal
on the destination folder.
(imap_append_message): Updated to emit the folder_changed signal
on the destination folder.
Jeffrey Stedfast [Wed, 12 Jul 2000 00:36:07 +0000 (00:36 +0000)]
fix %08x to %04x
Jeffrey Stedfast [Wed, 12 Jul 2000 00:00:11 +0000 (00:00 +0000)]
Now takes a flags argument to specify the flags to be set on the message
2000-07-11 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (camel_folder_append_message): Now takes a
flags argument to specify the flags to be set on the message
since we might not necessarily want the flags to be wiped clean.
(move_message_to):
(copy_message_to): Updated to send a flags argument to
append_message (); currently sends the original message's flags.
* providers/mbox/camel-mbox-folder.c (mbox_append_message):
* providers/imap/camel-imap-folder.c (imap_append_message):
Updated.
Jeffrey Stedfast [Tue, 11 Jul 2000 20:19:28 +0000 (20:19 +0000)]
This shouldn't return NULL, it should return g_ptr_array_new () so the
2000-07-11 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_search_by_expression):
This shouldn't return NULL, it should return g_ptr_array_new ()
so the mailer gets what it expects.
Peter Williams [Tue, 11 Jul 2000 20:19:25 +0000 (20:19 +0000)]
file camel-async-handle.c was initially added on branch camel-async.
Peter Williams [Tue, 11 Jul 2000 20:19:25 +0000 (20:19 +0000)]
file camel-async-handle.h was initially added on branch camel-async.
Jeffrey Stedfast [Tue, 11 Jul 2000 00:02:17 +0000 (00:02 +0000)]
Oops, an unsigned integer can never be < 0
2000-07-10 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder-summary.c (camel_folder_summary_decode_string):
Oops, an unsigned integer can never be < 0
Dan Winship [Mon, 10 Jul 2000 21:49:47 +0000 (21:49 +0000)]
Initialize a variable to make this not crash again. And fix a bug so it
* providers/vee/camel-vee-folder.c (vee_search_by_expression):
Initialize a variable to make this not crash again. And fix a bug
so it actually does something.
Jeffrey Stedfast [Mon, 10 Jul 2000 21:44:49 +0000 (21:44 +0000)]
Cleaned up a bunch of compile warnings
2000-07-10 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder-summary.c: Cleaned up a bunch of compile warnings
Dan Winship [Mon, 10 Jul 2000 20:50:22 +0000 (20:50 +0000)]
kill more debugging messages
* providers/vee: kill more debugging messages
Jeffrey Stedfast [Mon, 10 Jul 2000 07:30:59 +0000 (07:30 +0000)]
Implemented.
2000-07-10 Jeffrey Stedfast <fejj@helixcode.com>
* providers/mbox/camel-mbox-folder.c (mbox_get_unread_message_count):
* providers/vee/camel-vee-folder.c (vee_get_unread_message_count):
* providers/imap/camel-imap-folder.c (imap_get_unread_message_count):
Implemented.
* camel-folder.c (camel_folder_get_unread_message_count): New
convenience function to allow the mailer to query the number
of unread messages in a folder (for displaying message stats
in a folder tree?).
Dan Winship [Sun, 9 Jul 2000 22:40:49 +0000 (22:40 +0000)]
New function to copy a header_references structure.
* camel-mime-utils.c (header_references_dup): New function to copy
a header_references structure.
* camel-folder-summary.c (camel_message_info_dup_to): New function
to (deep) copy the data from one CamelMessageInfo into another.
(camel_message_info_free): And free the data.
* providers/vee/camel-vee-folder.c (vee_sync): Implement. (empty).
(vee_search_by_expression): belatedly update for
camel_folder_search change.
(vee_folder_build): belatedly update for camel_folder_search
change. Use camel_message_info_dup_to and camel_message_info_free
(in particular, so that we get message_id and references info so
vfolders can be threaded).
(vee_folder_build_folder): Ditto.
Jeffrey Stedfast [Sun, 9 Jul 2000 00:22:54 +0000 (00:22 +0000)]
Update to reflect past changes in the Camel API. Use gtk macro casts
2000-07-08 Jeffrey Stedfast <fejj@helixcode.com>
* providers/nntp/camel-nntp-folder.c:
* providers/nntp/camel-nntp-utils.c:
* providers/nntp/camel-nntp-store.c: Update to reflect past changes
in the Camel API. Use gtk macro casts wherever possible and use glib's
memory functions instead of standard c's (since they are not
compatable)
* providers/smtp/camel-smtp-transport.c:
* providers/imap/camel-imap-store.c: Wrap debug print statements
in a macro
* providers/imap/camel-imap-stream.c (stream_read): Make sure
that we get up to and including the last \n of the mime part.
* providers/imap/camel-imap-folder.c (imap_get_message): Make sure
that we get up to and including the last \n of the mime part.
Wrap debug print statements in a macro.
Jeffrey Stedfast [Sat, 8 Jul 2000 05:26:16 +0000 (05:26 +0000)]
updated ChangeLog
Jeffrey Stedfast [Fri, 7 Jul 2000 22:09:57 +0000 (22:09 +0000)]
Don't cache the exact server response, only cache the important data (aka
2000-07-07 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-stream.c (stream_read): Don't cache
the exact server response, only cache the important data (aka
the mime part).
Dan Winship [Fri, 7 Jul 2000 21:46:03 +0000 (21:46 +0000)]
Work around In-Reply-To's with unquoted punctuation. So many broken
* camel-mime-utils.c (header_references_decode): Work around
In-Reply-To's with unquoted punctuation. So many broken mailers.
Dan Winship [Fri, 7 Jul 2000 21:13:41 +0000 (21:13 +0000)]
Make this return a GPtrArray rather than a GList.
* camel-folder.c (camel_folder_search_by_expression): Make this
return a GPtrArray rather than a GList.
* camel-folder-search.c (camel_folder_search_execute_expression):
* providers/imap/camel-imap-folder.c (imap_search_by_expression):
* providers/mbox/camel-mbox-folder.c (mbox_search_by_expression):
* providers/nntp/camel-nntp-folder.c (nntp_search_by_expression):
Update to return a GPtrArray rather than a GList.
Jeffrey Stedfast [Fri, 7 Jul 2000 17:53:31 +0000 (17:53 +0000)]
Fixed the parser to actually work
2000-07-07 Jeffrey Stedfast <fejj@helixcode.com>
* providers/smtp/camel-smtp-transport.c (esmtp_get_authtypes):
Fixed the parser to actually work
Dan Winship [Thu, 6 Jul 2000 21:28:23 +0000 (21:28 +0000)]
Make this deal with the full RFC822 References/In-Reply-To format rather
* camel-mime-utils.c (header_references_decode): Make this deal
with the full RFC822 References/In-Reply-To format rather than
just the more-nicely-behaved RFC1036 version. (Needed to parse
In-Reply-To headers with extra junk in them.)
Jeffrey Stedfast [Thu, 6 Jul 2000 20:52:41 +0000 (20:52 +0000)]
Parse for more header information to allow message threading in IMAP.
2000-07-06 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): Parse for
more header information to allow message threading in IMAP.
(imap_get_message_info): Same.
* camel-folder-summary.c: Renamed summary_format_* to
camel_summary_format_* and moved them into public scope.
Jeffrey Stedfast [Thu, 6 Jul 2000 05:11:11 +0000 (05:11 +0000)]
Oops. Don't pass port # as a string in the error code (if it fails to
2000-07-06 Jeffrey Stedfast <fejj@helixcode.com>
* providers/smtp/camel-smtp-transport.c (smtp_connect): Oops. Don't
pass port # as a string in the error code (if it fails to connect).
Jeffrey Stedfast [Thu, 6 Jul 2000 04:56:49 +0000 (04:56 +0000)]
Changed over to camel_imap_command_extended as that was the source of the
2000-07-06 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_append_message): Changed
over to camel_imap_command_extended as that was the source of the
problems - apparently appending replies with more than just 1 line.
Dan Winship [Thu, 6 Jul 2000 02:15:30 +0000 (02:15 +0000)]
make header matching case-insensitive
* camel-folder-search.c (search_header_contains): make header
matching case-insensitive
Dan Winship [Thu, 6 Jul 2000 01:52:51 +0000 (01:52 +0000)]
remove some non-error case debugging messages.
* remove some non-error case debugging messages.
Ettore Perazzoli [Wed, 5 Jul 2000 22:35:33 +0000 (22:35 +0000)]
Suppress debugging messages from the mbox provider.
Jeffrey Stedfast [Wed, 5 Jul 2000 21:45:44 +0000 (21:45 +0000)]
added #include <glib.h> to camel-mime-utils.h
Jeffrey Stedfast [Wed, 5 Jul 2000 21:24:53 +0000 (21:24 +0000)]
Added prototype for uudecode_step
2000-07-05 Jeffrey Stedfast <fejj@helixcode.com>
* camel-mime-utils.h: Added prototype for uudecode_step
* camel-mime-utils.c (uudecode_step): Cleaned up some junk that
should have been cleaned up when debugging printf's were taken out.
Ettore Perazzoli [Wed, 5 Jul 2000 19:42:32 +0000 (19:42 +0000)]
Fix the "clashing UIDs are not updated on disk" problem by syncing
back to disk even if the saved UID does not match the in-memory UID
and added some debugging messages.
Also, make sure the UID we use for Ibex stuff is the new one when
changing UIDs to solve a clashing problem.
Dan Winship [Wed, 5 Jul 2000 17:59:48 +0000 (17:59 +0000)]
Add "Cc" to summary and bump summary version number.
* camel-folder-summary.c: Add "Cc" to summary and bump summary
version number.
* camel-folder-search.c (search_header_contains): make "Cc" a
searchable header.
Ettore Perazzoli [Tue, 4 Jul 2000 03:40:58 +0000 (03:40 +0000)]
Centralize creation of new UIDs for the summary.
Ettore Perazzoli [Tue, 4 Jul 2000 02:37:00 +0000 (02:37 +0000)]
Get rid of unused function `camel_folder_summary_set_uid()'.
Dan Winship [Mon, 3 Jul 2000 15:13:07 +0000 (15:13 +0000)]
Parse In-Reply-To with header_references_decode, not header_msgid_decode.
* camel-folder-summary.c (message_info_new): Parse In-Reply-To
with header_references_decode, not header_msgid_decode.
* camel-mime-message.c (camel_mime_message_class_init): message
headers are case-insensitive.
Dan Winship [Mon, 3 Jul 2000 14:36:40 +0000 (14:36 +0000)]
Fix a bug in error-setting code. (pop3_connect): Don't re-prompt for
* providers/pop3/camel-pop3-store.c (camel_pop3_command): Fix a
bug in error-setting code.
(pop3_connect): Don't re-prompt for password in the KPOP case.
(pop3_get_response): New function, split out from
camel_pop3_command.
(connect_to_server): Use pop3_get_response to parse the greeting
message, and error out appropriately if it's -ERR.
Dan Winship [Mon, 3 Jul 2000 01:21:38 +0000 (01:21 +0000)]
add this, which was missing from ChangeLog in the previous commit:
(append_message): emit "folder_changed" on a successful append.
Dan Winship [Mon, 3 Jul 2000 01:17:49 +0000 (01:17 +0000)]
New functions to freeze and thaw a folder (to prevent message/folder
* camel-folder.c (camel_folder_freeze, camel_folder_thaw): New
functions to freeze and thaw a folder (to prevent message/folder
changed signals in the middle of a long series of operations).
(camel_folder_class_init): Change signals to GTK_RUN_FIRST.
(message_changed, folder_changed): Add default implementations
that stop the emission and record info for later if the folder is
frozen.
* providers/mbox/camel-mbox-folder.c (mbox_sync): leftover fixes
from the close->sync change: don't destroy the ibex, summary, and
search when syncing.
Jeffrey Stedfast [Sun, 2 Jul 2000 05:17:40 +0000 (05:17 +0000)]
A rather complex uudecoder written in the spirit of Zucchi-ness, is it up
2000-07-02 Jeffrey Stedfast <fejj@helixcode.com>
* camel-mime-utils.c (uudecode_step): A rather complex uudecoder
written in the spirit of Zucchi-ness, is it up to par? Only the
Z-man can tell us :-)
Dan Winship [Sat, 1 Jul 2000 23:07:18 +0000 (23:07 +0000)]
New method, to return an end-user-friendly name corresponding to a
* camel-service.c (camel_service_get_name): New method, to return
an end-user-friendly name corresponding to a service. (eg, "POP
service for danw on trna.helixcode.com").
* providers/imap/camel-imap-store.c,
providers/mbox/camel-mbox-store.c,
providers/nntp/camel-nntp-store.c,
providers/pop3/camel-pop3-store.c,
providers/sendmail/camel-sendmail-transport.c,
providers/smtp/camel-smtp-transport.c: Implement.
Dan Winship [Sat, 1 Jul 2000 22:50:12 +0000 (22:50 +0000)]
remove unneeded libcamelimap_la_LDADD.
* providers/imap/Makefile.am: remove unneeded
libcamelimap_la_LDADD.
Dan Winship [Sat, 1 Jul 2000 22:10:22 +0000 (22:10 +0000)]
fix the CAPA-parsing code to not get into an infinite loop.
* providers/pop3/camel-pop3-store.c (connect_to_server): fix the
CAPA-parsing code to not get into an infinite loop.
Jeffrey Stedfast [Sat, 1 Jul 2000 20:07:13 +0000 (20:07 +0000)]
Fixed the bug that would sometimes leave part of the server response
2000-07-01 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Fixed
the bug that would sometimes leave part of the server response
tacked on to the end of the message.
Jeffrey Stedfast [Sat, 1 Jul 2000 04:48:28 +0000 (04:48 +0000)]
Renamed _by_uid methods. Since we no longer have get-by-number methods, no
2000-07-01 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c: Renamed _by_uid methods. Since we no longer
have get-by-number methods, no need to have the _by_uid
extensions.
(get_message_by_uid): Renamed to get_message
(delete_message_by_uid): Renamed to delete_message
(summary_get_by_uid): Renamed to get_message_info
* providers/mbox/camel-mbox-folder.c:
* providers/pop3/camel-pop3-folder.c:
* providers/imap/camel-imap-folder.c:
* providers/vee/camel-vee-folder.c: Updated to reflect
camel-folder changes.
Jeffrey Stedfast [Sat, 1 Jul 2000 01:35:19 +0000 (01:35 +0000)]
New function, to copy a message from one folder to another. The default
2000-06-30 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (camel_folder_copy_message_to): New function, to
copy a message from one folder to another. The default
implementation just uses append_message, but providers can
implement more efficient versions for use when both folders are on
the same store.
* broken-date-parser.[c,h]: Utilities for parsing broken
date strings.
* providers/imap/camel-imap-folder.c (imap_move_message_to):
(imap_copy_message_to): Implemented.
* camel-mime-utils.c (header_decode_date): Wrote some code to try
and un-mangle broken date formats and then parse that new string
instead.
Jeffrey Stedfast [Sat, 1 Jul 2000 00:11:01 +0000 (00:11 +0000)]
Utilities for parsing broken date strings.
2000-06-30 Jeffrey Stedfast <fejj@helixcode.com>
* broken-date-parser.[c,h]: Utilities for parsing broken
date strings.
* providers/imap/camel-imap-folder.c: fixed some mem leaks
Jeffrey Stedfast [Fri, 30 Jun 2000 23:44:14 +0000 (23:44 +0000)]
providers/imap/camel-imap-folder.c: added move_message_to()
Jeffrey Stedfast [Fri, 30 Jun 2000 22:48:21 +0000 (22:48 +0000)]
oops, forgot I had blocked that code from running :)
Jeffrey Stedfast [Fri, 30 Jun 2000 22:43:42 +0000 (22:43 +0000)]
Wrote some code to try and un-mangle broken date formats and then parse
2000-06-30 Jeffrey Stedfast <fejj@helixcode.com>
* camel-mime-utils.c (header_decode_date): Wrote some code to try
and un-mangle broken date formats and then parse that new string
instead.
Dan Winship [Fri, 30 Jun 2000 20:04:46 +0000 (20:04 +0000)]
New function, to move a message from one folder to another. The default
* camel-folder.c (camel_folder_move_message_to): New function, to
move a message from one folder to another. The default
implementation just uses append_message and delete_message, but
providers can implement more efficient versions for use when both
folders are on the same store.
Jeffrey Stedfast [Thu, 29 Jun 2000 18:51:03 +0000 (18:51 +0000)]
imap_expunge should now give more meaningful errors
Jeffrey Stedfast [Thu, 29 Jun 2000 03:07:39 +0000 (03:07 +0000)]
Changed to keep prompting user for a valid password until it either
2000-06-28 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (imap_connect): Changed to
keep prompting user for a valid password until it either
authenticates or until Canceled by the user.
(camel_imap_command_extended): Improved speed (replaced the
g_strjoinv call with a faster implementation)
* providers/pop3/camel-pop3-store.c
(camel_pop3_command_get_additional_data): Fixed.
(pop3_connect): Changed to keep prompting the user for a
password until it either works or until Canceled by the user.
Jeffrey Stedfast [Wed, 28 Jun 2000 16:55:55 +0000 (16:55 +0000)]
General cleanup (camel_mbox_summary_sync): Fixed a memory leak and added
2000-06-28 Jeffrey Stedfast <fejj@helixcode.com>
* providers/mbox/camel-mbox-summary.c: General cleanup
(camel_mbox_summary_sync): Fixed a memory leak and added
CamelException handling.
* providers/mbox/camel-mbox-store.c (delete_folder): Fixed a
memory leak
* providers/mbox/camel-mbox-folder.c (mbox_append_message):
Default 'off_t seek' to -1 so as to make sure it's initialized
before it's used in the case of a bad stat() call.
(mbox_sync): Updated
(mbox_expunge): Updated
Jeffrey Stedfast [Tue, 27 Jun 2000 22:44:19 +0000 (22:44 +0000)]
Move the CAPABILITY command here so we don't have to keep checking each
2000-06-27 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (imap_connect): Move the
CAPABILITY command here so we don't have to keep checking
each time we open a folder.
(camel_imap_command_extended): If we are doing an EXAMINE,
don't bother doing a SELECT first.
* providers/imap/camel-imap-folder.c (imap_init): Update so
folder->has_search_capability depends on the parent IMAP store
(since this is really dependant on the IMAP implementation and
not the folder)
Christopher James Lahey [Tue, 27 Jun 2000 18:47:46 +0000 (18:47 +0000)]
Don't close the filter stream when done with it (this causes the source
2000-06-27 Christopher James Lahey <clahey@helixcode.com>
* providers/smtp/camel-smtp-transport.c: Don't close the filter
stream when done with it (this causes the source stream to close);
Instead, just flush it when done.
Michael Zucchi [Tue, 27 Jun 2000 04:09:36 +0000 (04:09 +0000)]
Make header search 'to' match 'to', and not 'from', small typo, fixes
2000-06-27 Michael Zucchi <zucchi@zedzone.mmc.com.au>
* camel-folder-search.c (search_header_contains): Make header
search 'to' match 'to', and not 'from', small typo, fixes #317.
Christopher James Lahey [Tue, 27 Jun 2000 00:50:59 +0000 (00:50 +0000)]
Calculate height including if clip_height is set to -1.
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Calculate height including if
clip_height is set to -1.
From addressbook/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* contact-editor/e-contact-editor-categories.c,
addressbook/gui/component/e-cardlist-model.c: Added
value_to_string handlers.
* demo/addressbook-widget.c, demo/demo.c: Removed usage of "x" and
"y" arguments.
* addressbook/gui/component/addressbook.c: Activated Click To Add
and set the click to add message.
* addressbook/gui/component/e-addressbook-model.c: Added
value_to_string and append_row handlers.
* addressbook/gui/component/e-select-names.c: Added a column.
From calendar/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* gui/calendar-model.c: Added an #ifdefed value_to_string handler
assignment.
From camel/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* providers/mbox/camel-mbox-summary.c: Added debugging
information.
From composer/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-msg-composer-select-file.h for make
distcheck.
From e-util/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-canvas-vbox.c and e-canvas-vbox.h.
* e-canvas-vbox.c, e-canvas-vbox.h: New canvas object to act like
a vbox using the reflow system.
From mail/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* message-list.c: Added a value_to_string handler.
From shell/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* glade/Makefile.am: Added EXTRA_DIST for make distcheck.
From widgets/e-table/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-table-click-to-add.c,
e-table-click-to-add.h, e-table-one.c, and e-table-one.h.
* e-table-click-to-add.c, e-table-click-to-add.h: A new canvas
item that represents a single row that sometimes exists. It's for
adding new rows to your table.
* e-table-example-1.c, e-table-example-2.c, e-table-size-test.c,
test-check.c, test-cols.c, test-table.c: Added value_to_string handlers.
* e-table-group-container.c: Use value_to_string to make grouping
not crash for non string columns. Made some changes to work
properly in an ECanvasVbox.
* e-table-group-leaf.c, e-table-item.c: Made some changes to work
properly in an ECanvasVbox.
* e-table-model.c, e-table-model.h: Added append_row and
value_to_string methods.
* e-table-one.c, e-table-one.h: Given a source ETableModel, this
provides a single row model that uses the initialize_value,
duplicate_value, free_value, and value_is_empty methods of the
original source to implement set_value and value_at (and proxies
most of the other methods.) This is used for ETableClickToAdd.
* e-table-simple.c, e-table-simple.h: Added append_row and
value_to_string handlers. append_row uses a GtkArg instead of a
parameter to e_table_simple_new.
* e-table-subset.c: Added append_row and value_to_string handlers.
* e-table.c, e-table.h: Use a vbox containing an ETableClickToAdd
and an ETableItem instead of an ETableItem directly. Only show
the ETableClickToAdd if the top level of the xml SPEC has the
attribute click-to-add set to some non-zero integer.
(click-to-add="1"). Add a "click_to_add_message" argument.
* e-tree-model.c: Add a commented out value_to_string handler.
From widgets/meeting-time-sel/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added the include path to top_srcdir.
Jeffrey Stedfast [Fri, 23 Jun 2000 19:51:48 +0000 (19:51 +0000)]
providers/imap/camel-imap-[store,folder].c: Improved folder parsing
Chris Toshok [Fri, 23 Jun 2000 18:36:53 +0000 (18:36 +0000)]
forgot this changelog entry last night.
Jeffrey Stedfast [Fri, 23 Jun 2000 02:31:47 +0000 (02:31 +0000)]
Oops. Now appends the namespace to the folder before querying for the
2000-06-22 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message_count):
Oops. Now appends the namespace to the folder before querying
for the number of messages.
* providers/imap/camel-imap-store.c (imap_folder_exists): New
convenience function for use by imap_create().
(get_folder): If folder is specified as "/", we really want
"INBOX".
* providers/sendmail/camel-sendmail-provider.c:
* providers/vee/camel-vee-provider.c:
* providers/smtp/camel-smtp-provider.c:
* providers/mbox/camel-mbox-provider.c:
* providers/pop3/camel-pop3-provider.c:
* providers/imap/camel-imap-provider.c: Updated
* camel-session.c: Moved service_cache hash table into the
providers.
(service_cache_remove): Updated.
(camel_session_get_service): Updated.
* camel-url.c (camel_url_hash): Took out the hashing of
url->passwd. We don't want this anymore.
* providers/imap/camel-imap-folder.c (imap_init): Took out
references to 'namespace'
(camel_imap_folder_init): Same
* providers/imap/camel-imap-folder.h: No more namespace. We are
instead going to use url->path as the namespace.
Chris Toshok [Fri, 23 Jun 2000 02:03:35 +0000 (02:03 +0000)]
ignore test-newsrc
2000-06-22 Chris Toshok <toshok@helixcode.com>
* providers/nntp/.cvsignore: ignore test-newsrc
* providers/nntp/camel-nntp-store.c,
providers/nntp/camel-nntp-store.h,
providers/nntp/camel-nntp-folder.c,
providers/nntp/camel-nntp-folder.h,
providers/nntp/camel-nntp-utils.c: Bring the nntp provider up to a
state where it builds and is usable with the current camel. there
are still warts (semi-broken .newsrc file handling, and a lack of
a subscribe ui -- in fact no way to add a new server, really), but
it'll display news messages.
* providers/nntp/Makefile.am (libcamelnntp_la_SOURCES): add
camel-nntp-newsrc.c
(libcamelnntpinclude_HEADERS): add camel-nntp-newsrc.h
also, add test-newsrc stuff.
* providers/nntp/test-newsrc.c: new file that tests the newsrc
stuff by parsing and regurgitating a .newsrc file for a particular
server.
* providers/nntp/camel-nntp-newsrc.c,
providers/nntp/camel-nntp-newsrc.h: new files, initial support for .newsrc files.
Jeffrey Stedfast [Thu, 22 Jun 2000 21:51:40 +0000 (21:51 +0000)]
Updated
2000-06-22 Jeffrey Stedfast <fejj@helixcode.com>
* providers/sendmail/camel-sendmail-provider.c:
* providers/vee/camel-vee-provider.c:
* providers/smtp/camel-smtp-provider.c:
* providers/mbox/camel-mbox-provider.c:
* providers/pop3/camel-pop3-provider.c:
* providers/imap/camel-imap-provider.c: Updated
* camel-session.c: Moved service_cache hash table into the
providers.
(service_cache_remove): Updated.
(camel_session_get_service): Updated.
* camel-url.c (camel_url_hash): Took out the hashing of
url->passwd. We don't want this anymore.
* providers/imap/camel-imap-folder.c (imap_init): Took out
references to 'namespace'
(camel_imap_folder_init): Same
* providers/imap/camel-imap-folder.h: No more namespace. We are
instead going to use url->path as the namespace.
Jeffrey Stedfast [Wed, 21 Jun 2000 23:51:36 +0000 (23:51 +0000)]
Modified to use the "namespace" (url->path) if it exists.
2000-06-21 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (imap_create): Modified to
use the "namespace" (url->path) if it exists.
* providers/imap/camel-imap-folder.c (imap_delete_message_by_uid):
Now just sets the deleted flag on the summary rather than speaking
directly to the IMAP server. This is both faster and cleaner.
Dan Winship [Wed, 21 Jun 2000 22:28:30 +0000 (22:28 +0000)]
Fix dumb bug.
* providers/pop3/camel-pop3-store.c (query_auth_types): Fix dumb
bug.
Jeffrey Stedfast [Wed, 21 Jun 2000 20:38:22 +0000 (20:38 +0000)]
IMAP is working! (sorta)
you can now read your INBOX
Peter Williams [Wed, 21 Jun 2000 18:22:21 +0000 (18:22 +0000)]
When determining a mailboxe's folder_file_path et aluse its basename to prevent the triple-slash filenames (~/ev/inbox///movemail.ibex)
Dan Winship [Wed, 21 Jun 2000 18:15:27 +0000 (18:15 +0000)]
Set date_received based on the first (most recent) "Received" header.
* camel-folder-summary.c (message_info_new): Set date_received
based on the first (most recent) "Received" header.
Dan Winship [Wed, 21 Jun 2000 02:09:48 +0000 (02:09 +0000)]
flush the filter stream before unreffing it, so it will
* camel-mime-part.c (write_to_stream): flush the filter stream
before unreffing it, so it will camel_mime_filter_complete.
* camel-stream-filter.c (camel_stream_filter_class_init): Fix a
braino so camel_stream_flush works here.
* camel-stream-mem.c (stream_seek): Fix a bug that resulted in
large attachments being silently dropped.
* providers/pop3/camel-pop3-store.c
(camel_pop3_command_get_additional_data): Don't use g_strjoinv
here, since it is O(n^2) on the length of the output string, and
we can do O(n).
* camel-mime-part-utils.c
(simple_data_wrapper_construct_from_parser): add a CRLF decoder
after the QP/B64 decoder if it's text.
Jeffrey Stedfast [Tue, 20 Jun 2000 22:33:40 +0000 (22:33 +0000)]
now parses flags gotten from the IMAP server correctly
Jeffrey Stedfast [Tue, 20 Jun 2000 22:07:48 +0000 (22:07 +0000)]
Implemented. (imap_sync): Added code to set flags on messages that have
2000-06-20 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_set_message_flags):
Implemented.
(imap_sync): Added code to set flags on messages that have had
their flags changed (however I #if'd it out until we are more
confidant in the IMAP code :)
Jeffrey Stedfast [Tue, 20 Jun 2000 21:11:07 +0000 (21:11 +0000)]
Only fetch the summary if the folder summary doesn't already exist. When
2000-06-20 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): Only
fetch the summary if the folder summary doesn't already exist.
When the summary *does* exist, start fetching from 1, not 0.
(imap_free_summary): Don't do anything here.
(imap_finalize): Free the summary here instead of in
imap_free_summary().
* camel-url.c (check_equal): No need to check s1 if s2 is NULL
(camel_url_equal): Don't check the passwd component of the url.
and in mail/component-factory.c (create_imap_storage): removal of
debug statements
mail/folder-browser.c (folder_browser_load_folder): improved imap
service parser
Dan Winship [Tue, 20 Jun 2000 17:37:33 +0000 (17:37 +0000)]
mark the message info with CAMEL_MESSAGE_FOLDER_FLAGGED if we change the
* camel-folder-summary.c (camel_folder_summary_add): mark the
message info with CAMEL_MESSAGE_FOLDER_FLAGGED if we change the
uid, so the folder will know that it's dirty.
Jeffrey Stedfast [Tue, 20 Jun 2000 17:34:18 +0000 (17:34 +0000)]
Now returns the last line of data that the server sends back as well. This
2000-06-20 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (camel_imap_command_extended):
Now returns the last line of data that the server sends back as
well. This is needed for commands like SELECT (like Peter pointed
out).
(camel_imap_command): No longer checks for SELECT (no need)
* providers/imap/camel-imap-folder.c: Added namespace stuff
which we will need later on...
(imap_parse_subfolder_line): Convenience function for use in
get_subfolder_names()
(imap_get_subfolder_names): Updated. Also changed it to use LIST
instead of LSUB (temporary change).
Jeffrey Stedfast [Tue, 20 Jun 2000 04:57:38 +0000 (04:57 +0000)]
basically got IMAP into the tree view
Jeffrey Stedfast [Mon, 19 Jun 2000 20:54:50 +0000 (20:54 +0000)]
Set summary equal to NULL. (imap_get_summary): Store the summary in the
2000-06-19 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_init):
Set summary equal to NULL.
(imap_get_summary): Store the summary in the ImapFolder
(imap_summary_get_by_uid): If we have a summary cache in the
ImapFolder, first check to see if that message info is in the
cached summary first, if not fetch it directly from the IMAP
server and append it to the summary cache.
(imap_get_message_flags): Don't free the message info that we
get back from summary_get_by_uid as we don't want to be
corrupting our cached summary.
Peter Williams [Mon, 19 Jun 2000 20:46:20 +0000 (20:46 +0000)]
Read the full server reply when we SELECT mailboxes.
Jeffrey Stedfast [Sun, 18 Jun 2000 21:47:21 +0000 (21:47 +0000)]
Now gets the message flags as it should. (imap_get_summary): Same as
2000-06-18 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_summary_get_by_uid):
Now gets the message flags as it should.
(imap_get_summary): Same as imap_summary_get_by_uid
(imap_get_permanent_flags): Return the permanent flags stored
on the folder.
(imap_get_message_flags): Return message flags associated with
given uid. Note: we may want to somehow cache summary info so
that we don't have to keep querying the IMAP provider in
imap_summary_get_by_uid().
Jeffrey Stedfast [Sun, 18 Jun 2000 01:56:23 +0000 (01:56 +0000)]
We were leaking memory - but not anymore! (imap_get_summary): We now get
2000-06-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_free_summary): We were
leaking memory - but not anymore!
(imap_get_summary): We now get the UIDs and the beginnings of the
code to get the message flags as well.
Dan Winship [Sun, 18 Jun 2000 00:59:15 +0000 (00:59 +0000)]
Don't copy newlines into the parsed header text, and turn any number of
* camel-mime-parser.c (folder_scan_header): Don't copy newlines
into the parsed header text, and turn any number of tabs and
spaces after a newline into a single space.
Jeffrey Stedfast [Sun, 18 Jun 2000 00:18:56 +0000 (00:18 +0000)]
camel/providers/imap/camel-imap-folder.c: CAPABILITY now works like it should
po/POTFILES.in: removed reference to camel/providers/imap/imap.c - this was just
a temporary file to use as a reference for IMAP code
Dan Winship [Sat, 17 Jun 2000 19:12:47 +0000 (19:12 +0000)]
Add some debugging printfs when rebulding summary to help figure out why
* providers/mbox/camel-mbox-summary.c: Add some debugging printfs
when rebulding summary to help figure out why people's summaries
are always being rebuilt.
Jeffrey Stedfast [Sat, 17 Jun 2000 19:00:58 +0000 (19:00 +0000)]
removed imap.c/h from providers/imap
began implementing search functionality
Jeffrey Stedfast [Sat, 17 Jun 2000 05:29:55 +0000 (05:29 +0000)]
Added code to expunge if called for (still need to finish coding this).
2000-06-16 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_sync): Added code
to expunge if called for (still need to finish coding this).
(imap_get_uids): Implemented.
(imap_get_summary): Found a way to get the date
(imap_summary_get_by_uid): Same.
(imap_free_summary): Implemented.
* string-utils.c (strstrcase): Fixed a compile warning
* providers/imap/camel-imap-summary.c: Removed - we don't
need a CamelImapSummary structure.
Dan Winship [Fri, 16 Jun 2000 23:09:43 +0000 (23:09 +0000)]
Move flag handling from CamelMimeMessage to CamelFolder. This
simplifies several flag-handling pieces of code in the mailer, and
lets you change a message's flags without having to fetch the
message body. It also means that fully-constructed
CamelMimeMessages are now essentially constant, which will help
simplify locking issues later since it means two threads
interested in the same message can just work with separate copies
of it.
* camel-mime-message.h (struct _CamelMimeMessage): Removed flags
and user_flags (moved to summary). Removed expunged and
message_number which were unused. Removed message_uid and folder
which are no longer needed in the new scheme.
(struct CamelMimeMessageClass): Removed message_changed signal and
get/set_message_number methods.
* camel-mime-message.c: Updates for CamelMimeMessage changes.
(camel_mime_message_get/set_flags,
camel_mime_message_get/set_user_flag): Replaced with methods in
CamelFolder.
(camel_flag_get, camel_flag_set, camel_flag_list_size,
camel_flag_list_free): Moved verbatim to camel-folder-summary.c
* camel-folder.c (camel_folder_get/set_message_flags,
camel_folder_get/set_message_user_flag): New methods (and
corresponding useless default implementations)
(camel_folder_class_init): add a message_changed signal
* camel-folder-summary.c (camel_flag_get, camel_flag_set,
camel_flag_list_size, camel_flag_list_free): Moved here from
camel-mime-message.c
* providers/mbox/camel-mbox-folder.c (message_changed): Removed.
(mbox_get_message_flags, mbox_set_message_flags,
mbox_get_message_user_flag, mbox_set_message_user_flag): Tweak
summary bits as appropriate. (Functionality moved here from
message_changed.)
(mbox_get_message_by_uid): Update for CamelMimeMessage changes
(less stuff to initialize).
* providers/imap/camel-imap-folder.c (message_changed): Remove
this. It was just copied from the mbox provider and doesn't deal
with the real IMAP flag stuff anyway. (So there's currently no
flag support in the IMAP provider.)
(imap_get_message_by_uid): Update for CamelMimeMessage changes.
* providers/vee/camel-vee-folder.c: (message_changed): Remove old
one. Add a new one to listen for message_changed on each folder
and re-emit message_changed signals that correspond to messages in
the vfolder.
(vee_get/set_message_flags, vee_get/set_message_user_flag): Proxy
flag setting to the underlying real messages.
(vee_append_message): Removed for now; there's no way to translate
this into the new CamelMimeMessage/CamelFolder scheme, but (a)
there's also no code which would ever call it and (b) we're
probably going want a better interface than append_message for
message drag and drop to work anyway. To be revisited.
Dan Winship [Fri, 16 Jun 2000 22:42:12 +0000 (22:42 +0000)]
KLUDGE! Since neither ETable nor GtkHTML supports UTF-8 yet, output
* camel-mime-utils.c (rfc2047_decode_word):
* camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser):
* camel-folder-summary.c (summary_build_content_info):
KLUDGE! Since neither ETable nor GtkHTML supports UTF-8 yet,
output ISO-8859-1 instead, so Ettore can read his Italian mail. :)
This will be reverted later.