2003-08-11  Not Zed  <NotZed@Ximian.com>

	* providers/imapp/camel-imapp-store.c (imap_get_folder_info):
	force connect manually so basics work.

	** See bug #45505.

	* camel-service.c (camel_gethostbyname): duh, pthread_create
	returns the error code directly, not via errno.
	(camel_gethostbyaddr): Same, also properly handle the failure
	case.

2003-08-01  Not Zed  <NotZed@Ximian.com>

	** See bug #47208.

	* camel-filter-search.c (match_all): match-all with no arguments	
	should always return TRUE.

	* camel-folder-search.c (camel_folder_search_execute_expression):
	print a warning when we get an invalid result type & fixed a leak
	for that case.

2003-08-08  Jeffrey Stedfast  <fejj@ximian.com>

	* tests/message/test4.c: New test suite for the mime parser (which
	is where the below 2 fixes were noticed).

	* camel-mime-parser.c (folder_boundary_check): Calculate 'len' by
	subtracting the boundary start from inend rather than 'atleast'.
	(folder_scan_content): Calculate 'inend' differently depending on
	the EOF state.

2003-08-08  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-filter-tohtml.c (html_convert): Rather than checking
	*inptr == '\n', check inptr >= inend - this gets rid of an Invalid
	Read report from valgrind.

	* camel-mime-part.c (write_to_stream): Don't necessarily re-encode
	just because the encodings differ. Need to look into making it so
	that message/rfc822 and multipart parts ignore the
	Content-Transfer-Encoding header and just keep their 'encoding'
	bits set to DEFAULT.

2003-08-05  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-folder.c (get_content): Updated.

	* camel-mime-message.c (camel_mime_message_init): Don't override
	the mime_type here.
	(process_header): Updated to use CamelDataWrapper's mime_type
	field.
	(find_best_encoding): Same.
	(best_encoding): Here too.

	* camel-digest-folder.c (camel_digest_folder_new): Updated for
	CamelMimePart::content_type change.

	* camel-mime-part.c (camel_mime_part_init): Override our parent
	class's default mime_type.
	(camel_mime_part_finalize): Don't need to unref the content_type
	anymore.
M	(process_header): Updated to use CamelDataWrapper's mime_type
	field.
	(camel_mime_part_set_filename): Same.
	(camel_mime_part_get_filename): Same.
	(camel_mime_part_get_content_type): Same.
	(set_content_object): Here too.
	(write_to_stream): Updated.
	(construct_from_parser): Updated.

	* camel-mime-part.h: Remove the content_type field.

2003-07-31  Jeffrey Stedfast  <fejj@ximian.com>

	* tests/lib/messages.c (test_message_compare_content): If the
	chunks differ, perform a hexdump on the data being compared so
	that we may analyse it easier.

	* camel-multipart-signed.c (write_to_stream): Return ssize_t.

	* camel-mime-utils.h: Added the CamelMimePartEncodingType enum
	here.

	* camel-mime-part.h: Removed the CamelMimePartEncodingType enum
	from here.

	* camel-mime-part.c (write_to_stream): Updated to return
	ssize_t. Also minor changes to only re-encode the content stream
	if the charset or encoding changed (this way we write it out in
	the original raw form if nothing changed).

	* camel-mime-part-utils.c
	(simple_data_wrapper_construct_from_parser): Drastically
	simplify. We no longer scan html content to try and find the
	charset, nor do we care about converting the content to UTF-8 and
	handling broken windows charsets.

	* camel-mime-message.c (find_best_encoding): Use
	decode_to_stream() here. Also updated to not assume the content
	charset is UTF-8 since it is very likely not the case anymore
	since data-wrappers no longer are converted to UTF-8 at parse
	time.

	* camel-folder-summary.c (summary_build_content_info_message): Use
	decode_to_stream instead here too.

	* camel-folder-search.c (match_words_1message): Use
	decode_to_stream instead of write_to_stream so we can search the
	contents.

	* camel-data-wrapper.c (camel_data_wrapper_init): Set the default
	encoding to DEFAULT.
	(write_to_stream): Updated to return ssize_t
	(camel_data_wrapper_decode_to_stream): New virtual function to
	decode a data wrapper to a stream (results in nearly identical
	behaviour to the old write_to_stream method).
	(decode_to_stream): Default implementation of above virtual
	method. Decodes base64/qp/etc streams.

	* camel-data-wrapper.h: Removed the rawtext bit and added an
	encoding member.

2003-08-01  Jeffrey Stedfast  <fejj@ximian.com>

	* tests/smime/pgp-mime.c: Same.

	* tests/smime/pgp.c: Updated to build and to import some custom
	gpg keys for use with testing.

2003-07-30  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-message.c (write_to_stream): Also updated.

	* camel-data-wrapper.c (write_to_stream): This should return ssize_t

	* camel-multipart-signed.c (write_to_stream): Updated.

	* camel-multipart.c (write_to_stream): Same.

	* camel-mime-part.c (write_to_stream): Here too.

2003-07-11  Suresh Chandrasekharan <suresh.chandrasekharan@sun.com>

	* camel-iconv.c: Fix for #46168 'some additional locale aliases
	required for chinese support'.

2003-07-25  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_decode_word): Revert NotZed's fix for
	bug #42170 - this causes even more problems than it solves. See
	bug #46331 for info. Basically, each address header would be
	converted to UTF-8 twice which means no raw 8bit address header
	would render correctly.
	(header_decode_mailbox): Perform a sanity check on the resultant
	addr->str to make sure that it is valid UTF-8, if not convert it
	to UTF-8. Fixes bug #42170.

2003-07-23  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-message.c (find_best_encoding): Revert my previous
	changes to this function.

	* camel-mime-utils.h: Revert previous changes.

	* camel-mime-part.h: Revert previous changes.

	* camel-mime-part-utils.c: Revert previous changes.

	* camel-data-wrapper.c (camel_data_wrapper_init): Revert previous
	changes.
	(write_to_stream): Revert previous changes.

2003-07-23  Dan Winship  <danw@ximian.com>

	* camel-block-file.c: #include camel-file-utils.h for camel_read()

	* camel-uid-cache.c (camel_uid_cache_save): Remove unused variable
	and label.

	* camel-url.c: #include camel-string-utils.h for camel_strdown

	* providers/pop3/camel-pop3-store.c (pop3_try_authenticate): Cast
	an (unsigned char *) to (char *) to fix a warning

2003-07-17  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-message.c (find_best_encoding): Updated to convert
	to/from the correct charset (since content is no longer
	necessarily in UTF-8).
	(best_encoding): Free the charset string when we're done with it.

	* camel-stream-fs.c (stream_read): Increment the seekable stream
	position by the number of bytes read. Oops.
	(stream_write): Same here.

2003-07-17  Timo Sirainen <tss@iki.fi>

	** See bug #42573
	
	* providers/imap/camel-imap-folder.c (do_append): Only free the
	response after we have finished the literal request, otherwise we
	could try processing folder updates incorrectly.

2003-07-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.h: Add the CamelMimePartEncodingType definition
	here.

	* camel-mime-part.h: Remove the CamelMimePartEncodingType
	definition.

	* camel-mime-part-utils.c
	(simple_data_wrapper_construct_from_parser): Don't do any of the
	auto-detection we used to do here anymore. Just read the content
	into a memory buffer and record the encoding type.
	(camel_mime_part_construct_content_from_parser): Don't mangle the
	Content-Type struct here anymore.

	* camel-data-wrapper.c (camel_data_wrapper_init): Init encoding to
	DEFAULT.
	(write_to_stream): If the stream needs to be decoded, decode it.

2003-07-15  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-stream-fs.c (stream_read): If we read 0 bytes, then set
	eos to TRUE.

2003-07-09  Jeffrey Stedfast  <fejj@ximian.com>

	Get rid of the #ifdef ENABLE_THREADS since we no longer plan to
	support/maintain this.

	* providers/nntp/camel-nntp-store.c: Here.

	* providers/nntp/camel-nntp-newsrc.c: And here.

	* providers/nntp/camel-nntp-folder.c: Same.

	* providers/local/camel-local-folder.c: And here.

	* camel-block-file.c: Here too.

	* camel.c: Same.

	* camel-certdb.c: Here too.

	* camel-charset-map.c: And here.

	* camel-cipher-context.c: "

	* camel-data-wrapper.c: "

	* camel-digest-folder.c: "

	* camel-exception.c: "

	* camel-folder.c: "

	* camel-folder-summary.c: "

	* camel-lock-client.c: "

	* camel-mime-utils.c: "

	* camel-object.c: "

	* camel-operation.c: "

	* camel-partition-table.c: "

	* camel-sasl-popb4smtp.c: "

	* camel-service.c: "

	* camel-session.c: "

	* camel-store.c: "

	* camel-store-summary.c: "

	* camel-text-index.c: "

	* camel-transport.c: "

	* camel-vee-folder.c: "

	* camel-tcp-stream-openssl.c: Removed pthread.h, it isn't needed.

2003-07-09  Larry Ewing  <lewing@ximian.com>

	* camel.h: remove reference to camel-pgp-mime.h

2003-07-08  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-pgp-mime.[c,h]: Removed.

	* camel-iconv.c: Updated (new copy/paste from e-iconv).

	* camel-block-file.c (camel_block_file_get_block): Use
	camel_read() rather than libc read.

	* camel-tcp-stream-raw.c (stream_read): Use camel_read().
	(stream_write): Use camel_write().

	* camel-stream-fs.c (stream_read): Use camel_read().
	(stream_write): Use camel_write().

2003-07-07  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/nntp/camel-nntp-folder.c (camel_nntp_folder_new): Use
	camel_mkdir().

	* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Use
	camel_mkdir().

	* camel-session.c (get_storage_path): Use camel_mkdir().

	* camel-store.c (camel_mkdir_hier): Removed.

	* camel-data-cache.c (camel_data_cache_new): Updated to use
	camel_mkdir().
	(data_cache_path): Same.

	* camel-file-utils.c (camel_mkdir): Renamed and documented.
	(camel_file_util_safe_filename): Documented.
	(camel_read): Moved here from camel-io.c
	(camel_write): Same.

	* camel-io.[c,h]: Removed.

	* camel-uid-cache.c (camel_uid_cache_new): Use the
	camel-file-utils.c version of mkdir.

2003-07-07  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-session.c (camel_session_init): Updated for string-utils
	namespace changes.

	* camel-provider.c: Updated for string-utils namespace changes.

	* camel-mime-part.c (init_header_name_table): Updated for
	string-utils namespace changes.

	* camel-mime-message.c (camel_mime_message_class_init): Updated
	for string-utils namespace changes.
	(camel_mime_message_init): Same.

	* camel-mime-filter-enriched.c
	(camel_mime_filter_enriched_class_init): Updated for string-utils
	namespace changes.

	* camel-folder-summary.c (camel_folder_summary_init): Updated for
	string-utils namespace changes.

	* camel-string-utils.[c,h]: Renamed from string-utils.[c,h] and
	also namespaced all functions.

2003-07-01  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-sasl-digest-md5.c (digest_response): Don't quote the
	charset value, the qop value, nor the response value. Fixes bug
	#45712.

2003-07-01  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_format_date): Use gmtime_r() instead
	of using gmtime() and memcpy() to try and be "atomic".

2003-06-30  Dan Winship  <danw@ximian.com>

	* camel-folder-search.c (camel_folder_search_finalize): free the
	summary hash

2003-06-24  David Woodhouse  <dwmw2@infradead.org>

	* camel-mime-utils.c (header_format_date): Put day of week into
	outgoing email.


2003-06-25  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-folder-summary.h: Added prototype for
	camel_folder_summary_remove_range().

2003-06-25  Not Zed  <NotZed@Ximian.com>

	** See bug #45386
	
	* camel-service.c (camel_gethostbyname, camel_gethostbyaddr): Make
	sure we have an exception that we test against.

2003-06-20  Not Zed  <NotZed@Ximian.com>

	** See bug #43887

	* camel-mime-filter-enriched.c (camel_enriched_to_html): simple
	wrapper to convert enriched to html in one go.

2003-06-18  Not Zed  <NotZed@Ximian.com>

	* camel-service.c (get_hostbyaddr, get_hostbyname): if we got
	cancelled, the message is floating, so free it.
	(struct _lookup_msg): Add a cancelled tag.
	(camel_gethostbyname, camel_gethostbyaddr): if we get a
	failure/cancel, cancel the lookup thread and detach, so we dont
	have to wait for it to return.  cleanup changed to handle the case
	where we didn't get a reply message.

2003-06-13  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/pop3/camel-pop3-folder.c (pop3_finalize): Made static
	(to match the prototype).

2003-06-13  Larry Ewing  <lewing@ximian.com>

	* camel-folder-thread.c (camel_folder_thread_messages_apply):
	don't leak the summary when reloading it.  Fixes a very large
	leak.

2003-06-17  Not Zed  <NotZed@Ximian.com>

	* camel-vee-folder.c (vee_folder_remove_folder): Calculate ranges
	to remove folder info's more efficiently.  affects shutdown
	performance on big vfolders signifinantly.
	(vee_folder_build_folder): do the same here, when rebuilding a
	folder's definition.

	* camel-folder-summary.c (camel_folder_summary_remove_index): new
	function to drop a range of index entries in one hit.

2003-06-16  Not Zed  <NotZed@Ximian.com>

	** See bug #31745

	* providers/imap/camel-imap-store-summary.c
	(camel_imap_store_summary_namespace_new): Workaround a shell bug -
	if the namespace has '#' in it, then strip it.

2003-06-16  Not Zed  <NotZed@Ximian.com>

	** See bug #44322
	
	* providers/imap/camel-imap-command.c (imap_command_strdup_vprintf):
	If we are outputting a folder name, make sure we calculate buffer
	size based on the raw/utf7 version

	** See bug #44121
	
	* camel-multipart-signed.c (signed_get_part): If we can't parse
	the content, but we have a stream, just use that as the content.

2003-06-05  Jeffrey Stedfast  <fejj@ximian.com>

	Fix for bug #40788.

	* providers/pop3/camel-pop3-engine.c (camel_pop3_engine_new): Now
	takes a flags argument. Currently there is only 1 flag which can
	be used to disable Pop3 server extensions.
	(get_capabilities): Don't check for Pop3 server extensions if the
	DISABLE_EXTENSIONS flag is set on the engine.
	(camel_pop3_engine_iterate): If we get a response that is neither
	+OK nor -ERR, default to treating it like a -ERR.

	* providers/pop3/camel-pop3-store.c (connect_to_server): Check for
	the disable_extensions param.

	* providers/pop3/camel-pop3-provider.c: Define a checkbox to
	disable all POP3 extension support.

2003-06-11  Jeffrey Stedfast  <fejj@ximian.com>

	Partial fix for bug #44457.

	* camel-mime-part-utils.c
	(simple_data_wrapper_construct_from_parser): Make sure to set
	rawtext to FALSE if we successfully convert the text to UTF-8.

	* camel-data-wrapper.c (camel_data_wrapper_init): Default the
	value of rawtext to TRUE instead of FALSE. This way if the mailer
	decides to try displaying a non-textual part as text, it knows
	that it needs to convert the content to UTF-8.

2003-06-04  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-uid-cache.c (camel_uid_cache_new): Create the directory
	with mode 0777 and the cache file itself with mode 0666. Let the
	user's umask filter the permissions. Instead of saving the fd on
	the Cache object, instead save the filename. Use camel_read()
	instead of expecting read() to just always work without getting an
	EINTR/etc.
	(maybe_write_uid): Don't do anything if cache->fd == -1, this
	means an error has occured in a previous callback. Replace the 2
	calls to write() with camel_write() and check their return
	values. If either of them fails, set cache->fd to -1 (GHashTable
	doesn't give us a way to abort foreach'ing thru the table).
	(camel_uid_cache_save): Save to a temp file instead of overwriting
	the original. Do proper error checking, etc. Also added some
	smarts about whether to try and overwrite the old cache even if we
	haven't successfully saved all the uids in the cache.
	(camel_uid_cache_destroy): Free the cache->filename, no longer
	need to close (cache->fd).

2003-06-11  Larry Ewing  <lewing@ximian.com>

	* camel-text-index.c (text_index_normalise): use g_utf8_strdown
	properly.

2003-06-09  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-message.c (find_best_encoding): Add the
	CAMEL_BESTENC_TEXT bit to enctype if the part is a text part.

	* camel-mime-filter-bestenc.c
	(camel_mime_filter_bestenc_get_best_encoding): If we have any
	nul-bytes or if the content is non-text and contains any 8bit
	octets, we need to use base64. Fixes bug #44344.