Dan Winship [Mon, 24 Jul 2000 15:16:09 +0000 (15:16 +0000)]
Remove camel_folder_get_message_uid, which was not used, and not
* camel-folder.[ch]: Remove camel_folder_get_message_uid, which
was not used, and not implemented by any provider.
* providers/nntp/camel-nntp-folder.c: Remove get_message_uid
non-implementation.
Dan Winship [Mon, 24 Jul 2000 15:13:07 +0000 (15:13 +0000)]
Bye bye bye.
* camel-folder-pt-proxy.[ch], camel-arg-collector.c,
camel-marshal-utils.[ch]: Bye bye bye.
* Makefile.am: remove reference to camel-arg-collector.c
Jeffrey Stedfast [Mon, 24 Jul 2000 01:37:43 +0000 (01:37 +0000)]
Made it a little more forgiving. Also set current_folder to NULL as there
2000-07-23 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (imap_disconnect): Made it a
little more forgiving. Also set current_folder to NULL as there is
no selected folder after a disconnect.
(stream_is_alive): Detects whether or not a socket is "alive"
(camel_imap_command_extended): Use stream_is_alive() to aid in the
detection of a disconnected state.
Jeffrey Stedfast [Sat, 22 Jul 2000 19:12:55 +0000 (19:12 +0000)]
Clear CamelExceptions when appropriate (eg when folder is marked as
2000-07-22 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (get_folder): Clear CamelExceptions when
appropriate (eg when folder is marked as \NoSelect). Still needs some
cleanup and perhaps Dan will have a better way of doing this as this seems
like a messy way of handling this.
* providers/imap/camel-imap-folder.c (imap_get_uids): Took out some debug
statements as they are no longer needed.
Jeffrey Stedfast [Sat, 22 Jul 2000 01:38:41 +0000 (01:38 +0000)]
Updated to not strip out subfolders that are marked as \NoSelect because
2000-07-21 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_subfolder_names): Updated to
not strip out subfolders that are marked as \NoSelect because this will be
correctly handled in store->get_folder from now on.
* providers/imap/camel-imap-store.c (folder_is_selectable): New convenience
function for use in get_folder().
(parse_list_response): Now takes a char **flags argument which is needed by
folder_is_selectable().
(imap_connect): Updated to reflect changes to parse_list_response().
Jeffrey Stedfast [Fri, 21 Jul 2000 19:48:43 +0000 (19:48 +0000)]
Updated with some of the same fixes I've made to camel-imap-folder.c like
2000-07-21 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-stream.c (stream_read): Updated with some of the
same fixes I've made to camel-imap-folder.c like recalculating message part
lengths.
Jeffrey Stedfast [Fri, 21 Jul 2000 19:30:20 +0000 (19:30 +0000)]
Rewrote the code to check for "* %d RECENT". Still needs to be modified,
2000-07-21 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (camel_imap_command_extended): Rewrote
the code to check for "* %d RECENT". Still needs to be modified, but should
no longer cause an infinite loop by detecting mis-detecting RECENT messages.
Jeffrey Stedfast [Thu, 20 Jul 2000 04:29:54 +0000 (04:29 +0000)]
Oops. Fix UID parser to allow 0 and 9 to be in the range of valid UID
2000-07-20 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary):
(imap_get_message_info): Oops. Fix UID parser to allow 0 and 9 to be in
the range of valid UID chars.
Jeffrey Stedfast [Wed, 19 Jul 2000 21:43:44 +0000 (21:43 +0000)]
General cleanup working towards getting Actions->Expunge working
2000-07-19 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c: General cleanup working towards
getting Actions->Expunge working correctly.
* providers/imap/camel-imap-store.c (cammel_imap_command_extended): Added
code to look for "* %d RECENT" and to emit the folder_changed signal if
there are any recent messages. Note: this is a hack and needs to be rewritten
badly.
Jeffrey Stedfast [Wed, 19 Jul 2000 18:15:37 +0000 (18:15 +0000)]
If the folder's message count is not the same as the number of summaries,
2000-07-19 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): If the folder's
message count is not the same as the number of summaries, free the old
summary and create a new summary.
Jeffrey Stedfast [Tue, 18 Jul 2000 20:56:46 +0000 (20:56 +0000)]
Added in imap_[g,s]et_message_user_flag() methods (imap_get_message_info):
2000-07-18 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_class_init): Added
in imap_[g,s]et_message_user_flag() methods
(imap_get_message_info): Rewrote to use the more efficient way of
downloading summary information and also added a UID comparison so that
if the UID requested doesn't match the UID received, it returns NULL.
FIXME: When the mailer gets NULL when it requested message info, it
seems that it displays a row for that message and when you try and select
the blank row, it segfaults.
* providers/imap/camel-imap-store.c (get_folder): Oops, this should not be
checking against "/", it should be checking against dir_sep.
* providers/imap/camel-imap-folder.c (imap_parse_subfolder_line): Updated
to trim out the leading namespace.
(imap_get_subfolder_names): Let the subfolder parser trim the namespace
off the folder name.
Jeffrey Stedfast [Tue, 18 Jul 2000 19:36:12 +0000 (19:36 +0000)]
Added in imap_[g,s]et_message_user_flag() methods
2000-07-18 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_class_init): Added
in imap_[g,s]et_message_user_flag() methods
* providers/imap/camel-imap-store.c (get_folder): Oops, this should not be
checking against "/", it should be checking against dir_sep.
* providers/imap/camel-imap-folder.c (imap_parse_subfolder_line): Updated
to trim out the leading namespace.
(imap_get_subfolder_names): Let the subfolder parser trim the namespace
off the folder name.
Jeffrey Stedfast [Tue, 18 Jul 2000 00:02:59 +0000 (00:02 +0000)]
Send a "LOGOUT" command.
2000-07-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (imap_disconnect): Send a "LOGOUT"
command.
* providers/imap/camel-imap-folder.c (imap_get_message): Hacks to get
IMAP code to work with CommunigatePro and MS Exchange (and any other
servers that send back a UID at the end of each FETCH inside of the main
body of the message part).
(imap_sync): Un-#if 0 the code that sets the flags on the IMAP server
for messages that have changed. Oops, don't mask with DELETED to find out
if the message has been answered ;-)
(imap_expunge): sync before expunging.
Jeffrey Stedfast [Mon, 17 Jul 2000 22:19:19 +0000 (22:19 +0000)]
Hacks to get IMAP code to work with CommunigatePro and MS Exchange (and
2000-07-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Hacks to get
IMAP code to work with CommunigatePro and MS Exchange (and any other
servers that send back a UID at the end of each FETCH inside of the main
body of the message part).
(imap_sync): Un-#if 0 the code that sets the flags on the IMAP server
for messages that have changed. Oops, don't mask with DELETED to find out
if the message has been answered ;-)
Jeffrey Stedfast [Mon, 17 Jul 2000 21:55:04 +0000 (21:55 +0000)]
oops, s/status/s in imap_sync()
Jeffrey Stedfast [Mon, 17 Jul 2000 21:50:11 +0000 (21:50 +0000)]
Hacks to get IMAP code to work with CommunigatePro and MS Exchange (and
2000-07-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Hacks to get
IMAP code to work with CommunigatePro and MS Exchange (and any other
servers that send back a UID at the end of each FETCH inside of the main
body of the message part).
(imap_sync): Un-#if 0 the code that sets the flags on the IMAP server
for messages that have changed
Jeffrey Stedfast [Mon, 17 Jul 2000 21:42:49 +0000 (21:42 +0000)]
Hacks to get IMAP code to work with CommunigatePro and MS Exchange (and
2000-07-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Hacks to get
IMAP code to work with CommunigatePro and MS Exchange (and any other
servers that send back a UID at the end of each FETCH inside of the main
body of the message part).
Jeffrey Stedfast [Mon, 17 Jul 2000 03:27:30 +0000 (03:27 +0000)]
minor fixes that came up when building with gcc -ansi -pedantic
Jeffrey Stedfast [Mon, 17 Jul 2000 02:41:50 +0000 (02:41 +0000)]
All SELECT calls now pass a NULL folder argument to
2000-07-16 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c: All SELECT calls now pass
a NULL folder argument to camel_imap_command_extended() since it's
not needed. Also s/camel_imap_command/camel_imap_command_extended as
I will probably be doing away with camel_imap_command() or at least
only using it for LOGIN and similar commands where the server won't
notify us of any recent messages.
Jeffrey Stedfast [Mon, 17 Jul 2000 02:16:02 +0000 (02:16 +0000)]
All SELECT calls now pass a NULL folder argument to
2000-07-16 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c: All SELECT calls now pass
a NULL folder argument to camel_imap_command_extended() since it's
not needed.
(imap_connect): Moved service_class->connect() to the point right
after a connection is established with the server rather than
waiting until the end of the function.
(camel_imap_command): Updated the documentation comment
(camel_imap_command_extended): Before sending a command, first
check to make sure we are connected; if we aren't, then reconnect.
Don't strncmp() command with "SELECT" as it's redundant.
* providers/imap/camel-imap-folder.c: All SELECT calls now pass
a NULL folder argument to camel_imap_command_extended() since it's
not needed.
Jeffrey Stedfast [Sat, 15 Jul 2000 04:30:16 +0000 (04:30 +0000)]
One last fix to get rid of hard-coded "/" directory separators
2000-07-15 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_new):
One last fix to get rid of hard-coded "/" directory separators
Jeffrey Stedfast [Fri, 14 Jul 2000 23:38:09 +0000 (23:38 +0000)]
Oops, minor fix to make any dir_sep work.
Jeffrey Stedfast [Fri, 14 Jul 2000 23:32:04 +0000 (23:32 +0000)]
New convenience function to unquote a string if it's encapsulated by "'s
2000-07-14 Jeffrey Stedfast <fejj@helixcode.com>
* string-utils.c (string_unquote): New convenience function
to unquote a string if it's encapsulated by "'s
* providers/imap/camel-imap-folder.c:
* providers/imap/camel-imap-store.c: Made the necessary changes
to stop using hard coded directory separators.
Dan Winship [Fri, 14 Jul 2000 00:41:01 +0000 (00:41 +0000)]
If the summary is for a smaller mbox, and rebuilding from the last-known
* providers/mbox/camel-mbox-summary.c (camel_mbox_summary_load):
If the summary is for a smaller mbox, and rebuilding from the
last-known end position fails, try rebuilding from the beginning.
Deals with the case where the user edits the mbox and makes it
bigger, without adding new messages.
Jeffrey Stedfast [Thu, 13 Jul 2000 22:17:19 +0000 (22:17 +0000)]
If a SELECT fails, set imap_store->current_folder to NULL so a SELECT is
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c:
* providers/imap/camel-imap-store.c: If a SELECT fails, set
imap_store->current_folder to NULL so a SELECT is forced before
any message/folder operations are requested. Also, because some
users don't use a namespace, make sure that if the url->path is
"/" we don't use it when creating the folder_path.
(camel_imap_command[_extended]): Since we allow the passing of
a NULL folder which we can use to bypass a forced SELECT, no need
to check for the individual commands that don't require a folder
to be selected.
Peter Williams [Thu, 13 Jul 2000 21:40:04 +0000 (21:40 +0000)]
file make-temp.sh was initially added on branch camel-async.
Peter Williams [Thu, 13 Jul 2000 21:40:04 +0000 (21:40 +0000)]
file temp-test.c was initially added on branch camel-async.
Jeffrey Stedfast [Thu, 13 Jul 2000 20:24:09 +0000 (20:24 +0000)]
Updated to use CAMEL_IMAP_OK, CAMEL_IMAP_NO, CAMEL_IMAP_BAD, and
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c:
* providers/imap/camel-imap-store.c: Updated to use CAMEL_IMAP_OK,
CAMEL_IMAP_NO, CAMEL_IMAP_BAD, and CAMEL_IMAP_FAIL rather than the
ones copied from the POP3 provider.
Jeffrey Stedfast [Thu, 13 Jul 2000 20:08:29 +0000 (20:08 +0000)]
Oops. If the number of messages in the folder is 0, don't fetch summaries
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): Oops.
If the number of messages in the folder is 0, don't fetch
summaries 1 thru 0, just return an empty summary.
(imap_copy_message_to): Fixed to use message UID and also send
the source folder as an arg to camel_imap_command rather than NULL.
(imap_move_message_to): Same.
(imap_init): If SELECT is successful, we need to set the current
folder to the one selected, this was causing problems with move/copy
Jeffrey Stedfast [Thu, 13 Jul 2000 19:07:14 +0000 (19:07 +0000)]
Oops. If the number of messages in the folder is 0, don't fetch summaries
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): Oops.
If the number of messages in the folder is 0, don't fetch
summaries 1 thru 0, just return an empty summary.
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.