2001-12-17 Jeffrey Stedfast <fejj@ximian.com>
* camel-charset-map.c (camel_charset_iso_to_windows): New function
to map ISO charsets to the Windows charsets.
* camel-mime-part-utils.c (broken_windows_charset): Detect Windows
charsets.
(simple_data_wrapper_construct_from_parser): Simplify a tad and
also check for iso-8859-* charsets that are really Windows
charsets. Fixes bug #12631.
svn path=/trunk/; revision=15144
2001-12-16 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): Reverted my
previous changes here since it doesn't actually work afterall.
* providers/imap/camel-imap-wrapper.c (imap_wrapper_hydrate):
Update to do uudecoding when appropriate.
svn path=/trunk/; revision=15098
2001-12-16 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): Try to use the
original boundary so luis will stop bugging me about "data
corruption". Also preserve other params in the multipart
content-type by dumping it to a string and setting it on the mime
part.
svn path=/trunk/; revision=15094
2001-12-16 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): Try to use the
original boundary so luis will stop bugging me about "data
corruption".
svn path=/trunk/; revision=15093
2001-12-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c
(camel_filter_driver_reset_filtered_count): Reset the
filtered_count to zero.
(camel_filter_driver_get_filtered_count): Return the private
filtered_count value.
(camel_filter_driver_filter_message): Increment the
filtered_count.
(camel_filter_driver_set_shell_exec_func): New function to set the
shell-exec func.
(shell_exec): New ESExp filter action callback.
svn path=/trunk/; revision=15087
2001-12-13 Chris Toshok <toshok@ximian.com>
* camel-data-cache.c: include stdlib.h (for alloca on freebsd) and
only include alloca.h if HAVE_ALLOCA_H is defined.
svn path=/trunk/; revision=15033
2001-12-11 Jeffrey Stedfast <fejj@ximian.com>
* camel-object.c (camel_type_register): Keep a name-to-type hash
so that we can make sure that the type has not yet been registered
(prevents a race condition such as the one in bug #16559).
* camel-service.c (camel_service_connect): Make sure that the
connect_op is non-NULL before unregistering/unreffing it.
svn path=/trunk/; revision=15021
2001-12-04 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_content_type_simple): Protect against
either of the types being NULL.
2001-12-05 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-filter-basic.c (filter): If complete() allocates
len+2 bytes for the out buffer, so should this. See bug #16371 for
an example case.
2001-12-05 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-digest-md5.c: iconv() returns a size_t, not an int.
* camel-pgp-context.c: The return value of iconv() is a size_t,
not an int.
* camel-mime-part-utils.c (convert_buffer): Always use size_t args
for iconv().
* camel-mime-filter-charset.c (complete): Always use size_t args
for iconv().
(filter): Same.
* camel-mime-utils.c (header_address_fold): Make headerlen a
size_t instead of an int.
(header_fold): Same.
(base64_encode_close): We should be returning a size_t and inlen
should also be a size_t.
(base64_encode_step): Same here.
(base64_decode_step): Here too.
(base64_encode_simple): And here...
(base64_decode_simple): Same.
(uuencode_close): We should also use size_t's here...
(uuencode_step): And here too.
(uudecode_step): And also here.
(quoted_encode_close): Same idea here.
(quoted_encode_step): Again here.
(quoted_decode_step): Here too.
(quoted_encode): Input length should be a size_t.
(rfc2047_decode_word): Same.
(g_string_append_len): Here too.
(append_8bit): "
(rfc2047_encode_word): "
(quote_word): "
(hex_decode): "
(rfc2184_decode): Use size_t's with iconv().
(header_decode_param): Same.
svn path=/trunk/; revision=14956
* camel-mime-message.c (camel_mime_message_set_date): Fix the
tm_gmtoff case (its sign is the opposite of "timezone"). Fixes
#14678
svn path=/trunk/; revision=14948
Implements marking messages as "Need Reply".
2001-12-09 Jon Trowbridge <trow@ximian.com>
* mail-need-reply.xpm: Added a really, really ugly and
awful icon to symbolize "message needs a reply".
* Makefile.am (EXTRA_DIST): Added mail-need-reply.xpm.
2001-12-09 Jon Trowbridge <trow@ximian.com>
* camel-folder-summary.c: Add "NeedsReply" to the flag_names array
for CAMEL_MESSAGE_NEEDS_REPLY.
* camel-folder-summary.h: Added CAMEL_MESSAGE_NEEDS_REPLY flag.
2001-12-09 Jon Trowbridge <trow@ximian.com>
* vfoldertypes.xml: Add "Needs Reply" option to different status
types.
* filtertypes.xml: Add "Needs Reply" option to different status
types.
2001-12-09 Jon Trowbridge <trow@ximian.com>
* message-list.c: #include "art/mail-need-reply.xpm".
(ml_tree_value_at): Adjust magic numbers, show "Need Reply" icon
if the message needs reply.
(message_list_create_extras): Adjust magic numbers to add new
icon.
(on_click): Changed to toggle between unread, read, and need reply
when the status icon is clicked.
* mail-callbacks.c (mark_as_needing_reply): Added.
(mark_as_not_needing_reply): Added. Add "set" value to struct
post_send_data.
(composer_sent_cb): Use both "flags" and "set" elements of
post_send_data when setting message flags.
(mail_reply): Clear "Needs Reply" flag when we actually reply to a
message.
* folder-browser.c: Changed flag values to be given by
bit-shifting (1<<5) vs. base-ten (32). Added
CAN_MARK_DOESNT_NEED_REPLY flag. Added "Mark as Needing Reply"
and "Mark as Not Needing Reply" elements to context menu.
(on_right_click): Hide "Mark as (Not) Needing Reply" context menu
elements as appropriate.
svn path=/trunk/; revision=14946
2001-11-14 <NotZed@Ximian.com>
* camel-vee-folder.c (folder_changed_remove_uid): Use the uid
rather than vuid for unmatched. Also add the uid to unmatched if
it wasn't in the unmatched_uids table at all.
(folder_changed_change): If checking for added, if the new ones
dont match, then try to add them to unmatched. Fixes#6893.
* camel-folder-summary.c (camel_folder_summary_index): Change lock
order, always summary_lock before ref_lock.
(camel_folder_summary_array): "
(camel_folder_summary_uid): "
(camel_folder_summary_remove_uid): " Fixes a deadlock.
svn path=/trunk/; revision=14831
2001-11-30 Not Zed <NotZed@Ximian.com>
* providers/nntp/camel-nntp-*.c:
Completely new implementation of NNTP.
Doesn't support subscriptions yet (lists all folders), but should
be more reliable (faster?), and has an integrated cache.
* camel-exception.c (camel_exception_new): Use e_memchunks for
exception blocks.
(camel_exception_free): Same.
* camel-data-cache.[ch]: New object for managing on-disk caches of
anything that can be stored in a camel-stream.
* camel-file-utils.c (camel_file_util_mkdir): New function, just a
nicer place to put this (than camel-store), should be removed from
camel-store.
(camel_file_util_safe_filename): New function to url-encode a
filename.
* camel-mime-parser.c (drop_states): New func to drop the parser
state to initial state.
(folder_scan_init_with_fd):
(folder_scan_init_with_stream): Call above func to reset state if
the stream is changed on us so we can change streams to reuse a
parser object.
svn path=/trunk/; revision=14822
2001-11-25 Not Zed <NotZed@Ximian.com>
* providers/nntp/camel-nntp-folder.c (nntp_folder_get_message): If
the uid doesn't have a ',' in it, fail to crash.
* providers/nntp/camel-nntp-newsrc.c
(camel_nntp_newsrc_article_is_read): check group != NULL before scanning.
(camel_nntp_newsrc_get_highest_article_read): "
(camel_nntp_newsrc_get_num_articles_read): "
(camel_nntp_newsrc_mark_range_read): "
* providers/nntp/camel-nntp-store.c
(camel_nntp_store_get_overview_fmt): IF we dont have
nntp_list_follows, dont try and get a list response.
(nntp_store_get_folder_info): Set path part of folderinfo.
svn path=/trunk/; revision=14799
2001-11-20 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (get_smtp_error_string):
Check to see that errno is non-zero before returning
g_strerror. If it's 0, then we have an unknown error.
svn path=/trunk/; revision=14790
2001-11-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-filter-basic.c: For the uudecoding mode, garble up
the "begin <mode> <filename>" line before decoding.
* camel-mime-part-utils.c
(simple_data_wrapper_construct_from_parser): Add a uudecoder if
the transfer encoding is x-uuencode.
* camel-mime-part.c (write_to_stream): Handle x-uuencoded content
too.
svn path=/trunk/; revision=14789
2001-11-19 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (stream_read): Added a check to see if
the operation has been cancelled.
(stream_write): Same.
svn path=/trunk/; revision=14751
2001-11-19 Jeffrey Stedfast <fejj@ximian.com>
Updates for compliance with rfc2231
* camel-mime-utils.c (header_encode_param):
camel_mime_special_table[c] & IS_ESAFE should have been
!(camel_mime_special_table[c] & IS_ESAFE). Also added a few
comments for how to improve the code at some future date.
(header_decode_param): Now takes an argument rfc2184_part so our
caller can get this information as well.
(header_decode_param_list): Pass an rfc2184_part argument to
header_decode_param and also added a few comments on where to
improve on rfc2184/rfc2231 compliance.
(rfc2047_decode_word): Updated to respect the updated ABNF syntax
of rfc2047 encoded words, yay.
svn path=/trunk/; revision=14750
2001-11-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-filter-tohtml.c (camel_mime_filter_tohtml_new): New
mime filter to convert plain text to html.
svn path=/trunk/; revision=14737
2001-11-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-command.c
(camel_imap_command_response): If we get a BYE response, call
camel_service_disconnect() and set an exception. Also do the check
for "* BYE" first instead of passing it off imap_read_untagged()
since we'll just waste time in there mallocing left and right only
to arrive at the single response line "* BYE" again :-)
svn path=/trunk/; revision=14735
2001-11-13 <NotZed@Ximian.com>
* camel-filter-search.c (get_source): If we have no source string,
then use undefined, which should always evaluate to FALSE. Fix
for #15267.
svn path=/trunk/; revision=14688
2001-11-08 Jeffrey Stedfast <fejj@ximian.com>
* camel-pgp-context.c (crypto_exec_with_passwd): If any of the
pipe()'s fail, clean up any pipes that may have succeeded. Also
close the password fds.
svn path=/trunk/; revision=14649
2001-11-09 <NotZed@Ximian.com>
* providers/imap/camel-imap-store.c (imap_auth_loop): If we get a
user cancel and that causes us to fail to authenticate, abort
rather than loop forever. Fix for #14951.
svn path=/trunk/; revision=14648
2001-11-06 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-command.c
(camel_imap_command_continuation): Now takes a command-length
argument so we can 1) avoid duping the command string yet again,
yay. 2) we now don't have to worry about embedded nul-chars
screwing us over (we still need to avoid allowing them into the
string but at least now it won't mess us up).
* providers/imap/camel-imap-folder.c (do_append): Instead of
appending a nul char to the end of the byte array and then passing
that off as if it were a string to
camel_imap_command_continuation, instead pass the byte-array
length since that function now takes a length argument. Yay. Also
encode any 8bit parts to avoid the possibility of sending embedded
nul chars to the imap server.
* providers/imap/camel-imap-store.c (try_auth): Updated to pass a
command-length argument to camel_imap_command_continuation().
svn path=/trunk/; revision=14637
2001-11-07 Jeffrey Stedfast <fejj@ximian.com>
* camel-pgp-mime.c (camel_pgp_mime_part_decrypt): Add code to
kludge around any x-inline-pgp-hacks by prepending some content
headers to the decrypted data.
svn path=/trunk/; revision=14620
2001-11-02 Jeffrey Stedfast <fejj@ximian.com>
* camel-data-wrapper.c (camel_data_wrapper_init): Initialize our
private mutex.
(camel_data_wrapper_finalize): Destroy our private mutex.
(write_to_stream): Lock around camel_stream_write_to_stream() so
that we don't get 2 threads trying to read from our stream at the
same time.
svn path=/trunk/; revision=14573
2001-11-01 <NotZed@Ximian.com>
* camel-vee-folder.c (folder_changed_change): Move all searching
operations outside of any locks except subfolder lock, same as
build_folder. Fix for #14294.
svn path=/trunk/; revision=14571
2001-10-31 <NotZed@Ximian.com>
* providers/local/camel-spool-folder.c (spool_get_message): Same
as below.
* providers/local/camel-maildir-folder.c (maildir_get_message):
Same as below.
* providers/local/camel-mbox-folder.c (mbox_get_message): Set
USER_CANCEL if failed due to EINTR.
* camel-filter-driver.c (camel_filter_driver_filter_mbox): If
construct from parser fails due to user cancel, set USER_CANCEL on
exception.
* camel-mime-part.c (construct_from_parser): Return error if the
parser had an io error.
* camel-mime-message.c (construct_from_parser): Check error on
parser/return error.
* camel-mime-parser.c (folder_scan_init): Init error number.
(camel_mime_parser_errno): New function, return errno of any io
failures.
(folder_read): Set errno if a failure occured.
(folder_seek): Same.
(folder_scan_init_with_fd): Setup errno depeding on ok/failure.
(folder_scan_init_with_stream): Same.
svn path=/trunk/; revision=14559
2001-10-30 <NotZed@Ximian.com>
* camel-operation.c (camel_operation_new): Dont setup cancel_fd.
(camel_operation_cancel_fd): If cancel_fd not created, set it up.
(camel_operation_cancel): Set cancel flag before sending message.
(cancel_thread): Same.
svn path=/trunk/; revision=14469
2001-10-30 <NotZed@Ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_mbox): Make
sure we unref the mimeparse when we're done (successfully). This
was leaking an fd every get-mail! :(
* camel-lock-client.c (camel_lock_helper_init): Close all fd's
above 2.
svn path=/trunk/; revision=14468
2001-10-30 <NotZed@Ximian.com>
* providers/local/camel-mbox-folder.c (mbox_get_message): Remove
the X-Evolution header before anyone else gets to see this private
thing. Shoudl fix 11676 since we were inheriting flags from
X-Evolution headers we didn't want to.
svn path=/trunk/; revision=14453
2001-10-30 <NotZed@Ximian.com>
* camel-folder-search.c (match_message): If we can't retrieve the
message, ignore it, it can't match.
* providers/imap/camel-imap-search.c
(camel_imap_search_class_init): Setup parent class pointer.
(imap_body_contains): If offline, just use the parent
body_contains method which will get the messages and search them
manually.
* providers/imap/camel-imap-folder.c (imap_search_by_expression,
imap_search_by_uids): Remove offline check.
svn path=/trunk/; revision=14442
2001-10-30 <NotZed@Ximian.com>
* providers/local/camel-local-store.c (rename_folder): Dont try to
move ibex if we have none.
svn path=/trunk/; revision=14429
2001-10-30 <NotZed@Ximian.com>
* camel-mime-utils.c (header_decode_mailbox): w(x) out some warnings.
* providers/local/camel-local-summary.c
(camel_local_summary_load): Remove the warning about not loading
summary file - its a valid case for new folders.
svn path=/trunk/; revision=14411