Commit Graph

130 Commits

Author SHA1 Message Date
fb099f5619 New virtual class for manipulating cryptographic message syntax messages
2001-05-31  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-cms-context.[c,h]: New virtual class for manipulating
	cryptographic message syntax messages (like S/MIME).

	* camel-smime-context.[c,h]: Modified to inherit from the
	CamelCMSContext class rather than the CamelCipherContext class.

	* camel-smime.[c,h]: Removed - just use camel-smime-context
	directly.

	* camel-smime-utils.[c,h]: New source files. Moved the 2 useful
	functions from camel-smime.[c,h] into here.

svn path=/trunk/; revision=10065
2001-05-31 20:15:35 +00:00
11ea26d0e3 Code for logging and replaying offline operations.
* camel-disco-diary.c: Code for logging and replaying offline
	operations.

	* camel-disco-store.c (disco_construct): Set disco->status here
	(where we can base it on the session's offline status) rather than
	at init time.
	(disco_connect): If we connect online and have a non-empty diary,
	switch to RESYNCING mode and replay the diary to the server.
	(disco_get_folder, disco_get_folder_info): Add _resyncing
	variants.

	* camel-disco-folder.c (disco_sync, disco_expunge_uids,
	disco_append_message, disco_copy_messages_to,
	disco_move_messages_to): Add _resyncing variants to switches.
	(disco_expunge_uids, disco_append_message, disco_copy_messages_to,
	disco_move_messages_to): Remove #ifdef'ed out diary code: let the
	provider do it.
	(disco_append_message): Redo the append methods to no longer
	return the UID, since we're no longer doing the logging from here.

svn path=/trunk/; revision=10040
2001-05-29 17:08:53 +00:00
c2940feaaa Don't use EXTRA_GNOME_*, use the new CAMEL_* variables so we don't link in
2001-05-15  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Don't use EXTRA_GNOME_*, use the new CAMEL_*
	variables so we don't link in tons of extra cruft that we don't
	need.

svn path=/trunk/; revision=9821
2001-05-15 19:09:03 +00:00
9d1641a573 Add camel-smime-context.[c,h] and camel-smime.[c,h] to the build.
2001-05-14  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Add camel-smime-context.[c,h] and camel-smime.[c,h]
	to the build.

	* camel-smime.[c,h]: New source files for manipulating S/MIME
	message parts.

svn path=/trunk/; revision=9799
2001-05-14 21:14:34 +00:00
416d8fa6cd Add support for using OpenSSL.
2001-05-04  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/smtp/camel-smtp-transport.c (connect_to_server): Add
	support for using OpenSSL.

	* camel-remote-store.c (remote_connect): Add support for using the
	OpenSSL implementation.

	* camel-tcp-stream-ssl.c (ssl_bad_cert): Hmmmm, don't pass in a
	NULL as the last argument to alert_user - prototype doesn't take
	that argument anymore?

	* camel-tcp-stream-openssl.c (camel_tcp_stream_openssl_finalize):
	(ssl_verify): Use a global hash table to try and lookup the
	CamelTcpStreamOpenSSL object given the ssl context since OpenSSL
	doesn't think one needs to pass data around, we should all be
	living in a world of global variables, duh!

svn path=/trunk/; revision=9697
2001-05-07 20:33:25 +00:00
612ada489c Fix another build problem. (Um, anyone else could have done this...)
* Makefile.am (libcamelinclude_HEADERS): Fix another build
	problem. (Um, anyone else could have done this...)

svn path=/trunk/; revision=9687
2001-05-06 15:33:36 +00:00
7c553e6e5b new abstract class for disconnectable remote stores
* camel-disco-store.c: new abstract class for disconnectable
	remote stores

	* camel-disco-folder.c: new abstract class for folders on
	disconnectable stores.

	* Makefile.am: Add camel-disco-folder.[ch] and
	camel-disco-store.[ch].

	* providers/imap/camel-imap-store.c: Make this a subclass of
	CamelDiscoStore, and fix up the offline interfaces for the changes
	since they were first written (particularly the fact that some
	IMAP stores don't just use subscribed folders).

	* providers/imap/camel-imap-folder.c: Make this a subclass of
	CamelDiscoFolder, although most ops still fail in disconnected
	mode.

	* camel-store.c (camel_store_get_folder_info): Change gboolean,
	gboolean, gboolean to guint32 in the prototype for this function.

	* providers/local/camel-local-store.c (get_folder_info): Update
	for prototype change.

svn path=/trunk/; revision=9659
2001-05-03 20:52:59 +00:00
84e075645b New file, with the int, string, time_t, and off_t encode/decode routines
* camel-file-utils.c: New file, with the int, string, time_t, and
	off_t encode/decode routines from camel-folder-summary.c moved
	here and renamed, for the enjoyment of non-CamelFolderSummary
	subclasses.

	* Makefile.am (libcamel_la_SOURCES): Add camel-file-utils.c
	(libcamelinclude_HEADERS): and camel-file-utils.h

	* camel-folder-summary.c: Remove functions that were moved to
	camel-file-utils.c, update uses of them for the new names.
	(camel_folder_summary_{en,de}code_token are still here.)

	* providers/local/camel-mbox-summary.c: Use camel_file_util_*
	names

	* providers/imap/camel-imap-summary.c: Use camel_file_util_* names

	* providers/imap/camel-imap-store.c (imap_store_setup_online,
	imap_store_setup_offline): Use camel_file_util_* names, which
	makes much more sense since this isn't folder summary stuff.

svn path=/trunk/; revision=9590
2001-04-26 19:44:50 +00:00
18af050c05 Remove UNICODE_CFLAGS (and some other stuff that's redundant with
* Makefile.am (INCLUDES): Remove UNICODE_CFLAGS (and some other
	stuff that's redundant with EXTRA_GNOME_CFLAGS)
	(libcamel_la_LIBADD): Replace UNICODE_LIBS with GAL_LIBS.

	* camel-search-private.c:
	* camel-pgp-context.c:
	* camel-mime-utils.c: Use gunicode interfaces rather than
	libunicode.

	* camel-charset-map.c: Use gunicode rather than libunicode. (The
	charmap-regen code still depends on libunicode though.)

	* camel-mime-filter-charset.h:
	* tests/message/test2.c (convert): Use iconv rather than
	unicode_iconv.

	* providers/smtp/Makefile.am (libcamelsmtp_la_LIBADD):
	* providers/pop3/Makefile.am (libcamelpop3_la_LIBADD):
	* providers/local/Makefile.am (libcamellocal_la_LIBADD): Remove
	UNICODE_LIBS.

	* camel.c (camel_init): Remove call to unicode_init.

	* camel-mime-parser.c: Remove unused unicode.h include.

svn path=/trunk/; revision=9585
2001-04-26 18:21:32 +00:00
e95a407f3c New class that can be used to browse a multipart/digest message as if it
2001-04-23  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-digest-folder.[c,h]: New class that can be used to browse
	a multipart/digest message as if it were a CamelFolder.

svn path=/trunk/; revision=9530
2001-04-24 00:01:51 +00:00
aef303fd88 Added a prototype for stamp().
2001-04-16  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-operation.c: Added a prototype for stamp().

	* camel-charset-map.c (camel_charset_locale_name): #include
	string.h so we don't get a warning about strchr being undefined
	and also init charset to NULL.

	* camel-pgp-context.c (pgp_verify): Go back to doing the utf8
	conversion by hand so that we don't depend on gal.

svn path=/trunk/; revision=9388
2001-04-16 19:16:53 +00:00
8cc3a0e4dc Remove the EXTRA_GNOME_CFLAGS include.
2001-04-16  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Remove the EXTRA_GNOME_CFLAGS include.

	* camel-store.c (camel_mkdir_hier): Convenience function that it
	seems a number of camel-store implementations used gal for.

	* providers/nntp/camel-nntp-store.c (ensure_news_dir_exists): Lets
	not depend on gal for just e_mkdir_hier() - use camel_mkdir_hier()
	instead.

	* providers/nntp/camel-imap-store.c: Lets not depend on gal for
	just e_mkdir_hier() - use camel_mkdir_hier() instead.

	* camel-session.c (camel_session_get_storage_path): Don't depend
	on e_mkdir_heir() anymore, use the CamelStore version.

	* camel-folder-search.h: Removed gal dependency, why was this even
	there in the first place?

	* providers/imap/camel-imap-folder.c: Don't need gal/util/e-util.h
	here, so remove it.

	* string-utils.c (strstrcase): New function, well more like old
	function brought back to life so we don't have to depend on gal.

	* providers/imap/camel-imap-store.c (imap_store_setup_online): Use
	strstrcase rather than e_strstrcase so we don't depend on gal.
	(get_unread_online): Same here.

	* providers/smtp/camel-smtp-transport.c (smtp_helo): Use
	strstrcase.

svn path=/trunk/; revision=9383
2001-04-16 17:09:38 +00:00
0417c81c05 Updated to reflect the few changes made to the CamelPgpContext class.
2001-04-12  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-pgp-mime.c: Updated to reflect the few changes made to the
	CamelPgpContext class.

	* camel-pgp-context.c: Updated to subclass of CamelCipherContext.

	* camel-cipher-context.[c,h]: New base class for
	CamelPgpContext. Also contains the replacement for
	CamelPgpValidity, CamelCipherValidity.

svn path=/trunk/; revision=9283
2001-04-12 21:18:40 +00:00
55bb947869 Added pgp-mime.c to the tests.
2001-04-11  Jeffrey Stedfast  <fejj@ximian.com>

	* tests/smime/Makefile.am: Added pgp-mime.c to the tests.

	* tests/smime/pgp-mime.c: Test suite for camel-pgp-mime.c functions.

	* Makefile.am: Add camel-pgp-mime.[c,h] to the build.

	* camel-pgp-mime.c: Made a number of fixes to get it to compile
	and also fixed a few logic errors (mostly forgetting to reset
	streams) so that it worked (thanks to the pgp-mime test program).

svn path=/trunk/; revision=9247
2001-04-11 20:10:24 +00:00
f132c28d7f Check if gethostbyname_r take five params
2001-04-11  JP Rosevear  <jpr@ximian.com>

	* configure.in: Check if gethostbyname_r take five params

	* acconfig.h: add GETHOSTBYNAME_R_FIVE_ARGS

2001-04-11  JP Rosevear  <jpr@ximian.com>

	* providers/imap/Makefile.am: user GNOME_INCLUDEDIR since gnome
	files are included in the top level camel headers and the gtk
	include dir is now versioned and such

	* providers/local/Makefile.am: ditto

	* providers/pop3/Makefile.am: ditto

	* providers/smtp/Makefile.am: ditto

	* providers/sendmail/Makefile.am: ditto

	* camel-service.c: use five arg version of gethostbyname_r if
	appropriate
	(camel_get_host_byname): check if msg->herr is non-zero instead of
	checking if msg->hp is null since we may not always have msg->hp

svn path=/trunk/; revision=9239
2001-04-11 16:10:30 +00:00
eee943f21e Added camel-pgp-context.[c,h] to the build. Also added tests/smime/pgp.c
2001-04-06  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Added camel-pgp-context.[c,h] to the build. Also
	added tests/smime/pgp.c and Makefile.am

	* tests/smime/pgp.c: New test suite for PGP functions.

	* camel-pgp-context.c: Various fixes to get it to build.

svn path=/trunk/; revision=9213
2001-04-10 15:47:00 +00:00
2723c5fba6 Added tests/ back in
2001-04-03  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Added tests/ back in

	* camel-mime-utils.c (header_decode_text): Ignore whitespace
	between encoded words (there were a few cases where it didn't
	before).
	(header_encode_string): Preserve whitespace between words that are
	to be encoded by encoding them too.
	(header_encode_phrase): Same here but with phrases.

svn path=/trunk/; revision=9158
2001-04-04 02:00:25 +00:00
b27a35eae5 New files to handle the LOGIN SASL mechanism.
2001-04-01  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-sasl-login.[c,h]: New files to handle the LOGIN SASL
	mechanism.

	* camel-sasl-plain.c: Removed the definition of
	camel_sasl_login_authtype.

	* camel-sasl.c (camel_sasl_new): Oops. I thought LOGIN was an
	alias to PLAIN. I was wrong. These two SASL objects have to be
	separate.

	* providers/smtp/camel-smtp-transport.c (smtp_auth): Updated to
	check for and use authmech->quick_login when available.

svn path=/trunk/; revision=9088
2001-04-01 22:54:44 +00:00
7b12839018 If we aren't going to even check the resp/free buffer that gets returned
2001-03-27  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/pop3/camel-pop3-folder.c (pop3_sync): If we aren't
	going to even check the resp/free buffer that gets returned from
	camel_pop3_command, don't even bother using it. Send in NULL
	instead.
	(pop3_get_message): Check to make sure that the `result' string is
	non-NULL. It's possible that some POP servers may return with
	"+OK\r\n<message>..." rather than the expected
	"+OK ### octets\r\n<message>..."

svn path=/trunk/; revision=8985
2001-03-27 23:12:46 +00:00
efddd51d3b Use camel_vtrash_folder_new() to create the vtrash folder now.
2001-03-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-store.c (init_trash): Use camel_vtrash_folder_new() to
	create the vtrash folder now.

	* camel-vtrash-folder.[c,h]: New subclass of CamelVeeFolder for
	our vTrash folders.

	* camel-folder.c (camel_folder_copy_messages_to): Don't watch for
	vtrash folders anymore.
	(camel_folder_move_messages_to): Same.

	* camel-vee-folder.c (camel_vee_folder_class_init): Update.
	(vee_move_messages_to): Rewrite to use the new move API.

	* camel-filter-driver.c (do_copy): Updated to reflect
	copy_message_to changes. Create a temporary uid array and use
	that.
	(do_move): Same.
	(camel_filter_driver_filter_message): And again, here...

	* providers/imap/camel-imap-folder.c (imap_copy_messages_to):
	Update to the new API.
	(imap_move_messages_to): Same.
	(get_uid_set): New function to create a `set' string based on an
	array of UIDs for use with imap_copy_messages_to.

	* camel-folder.c (camel_folder_copy_messages_to): Replaces
	camel_folder_copy_message_to
	(camel_folder_move_message_to): Replaces
	camel_folder_move_message_to.

svn path=/trunk/; revision=8960
2001-03-27 01:41:21 +00:00
262ee8128d Added $(EXTRA_GNOME_CFLAGS)
2001-03-19  Christopher James Lahey  <clahey@ximian.com>

	* Makefile.am (INCLUDES): Added $(EXTRA_GNOME_CFLAGS)

svn path=/trunk/; revision=8838
2001-03-20 04:45:39 +00:00
c768305c2f Don't include system include dir.
2001-03-17  Jeffrey Stedfast <fejj@ximian.com>

	* Makefile.am: Don't include system include dir.

	* camel.c: Use quotes around the nss.h include so it doesn't try
	to use the systen nss.h file.

	* camel-tcp-stream-ssl.c: Same here.

svn path=/trunk/; revision=8786
2001-03-17 22:13:19 +00:00
174adfa471 Numerous fixes to get it to build correctly with NSS enabled.
2001-03-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-ssl.c: Numerous fixes to get it to build
	correctly with NSS enabled.

	* camel-remote-store.c (remote_connect): Pass in the session and
	expected host args, oops.

	* camel-provider.h (CAMEL_URL_ALLOW_SSL): Defined.

	* providers/imap/camel-imap-store.c (camel_imap_store_init): Check
	to see if we are supposed to use SSL and set the options
	accordingly.
	(imap_connect): Return FALSE here instead of NULL.

	* providers/imap/camel-imap-provider.c: Add CAMEL_URL_ALLOW_SSL.

	* providers/imap/libcamelimap.urls: Add "imaps" which is the
	protocol for Secure IMAP.

svn path=/trunk/; revision=8711
2001-03-14 21:59:40 +00:00
4391d0f3b1 Added
2001-03-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-openssl.[c,h]: Added

	* Makefile.am: Added camel-tcp-stream-openssl.[c,h] to the build.

	* camel-types.h: Added CamelTcpStreamSSL and CamelTcpStreamOpenSSL

svn path=/trunk/; revision=8710
2001-03-14 19:53:12 +00:00
0e9c0268a8 re-constify inbuf, to remove a warning.
2001-03-14  Not Zed  <NotZed@Ximian.com>

	* camel-mime-filter-charset.c (filter, complete): re-constify
	inbuf, to remove a warning.

	* camel-mime-parser.c (folder_scan_step): When we're out of data,
	run the filter_complete.  For some reason the logic that was there
	was never being run, always try it now, i think it was to work
	around a buggy filter, rather than fix it the right way.

	* camel-folder-summary.c (summary_build_content_info): If indexing
	html parts, use the html filter to convert it to some indexable
	format.
	(summary_build_content_info): Reset the filters before adding them
	back to the stream, if they get re-used in a given instance
	(likely).

	* Makefile.am (libcamelinclude_HEADERS): Added
	camel-mime-filter-html.[ch].
	(INCLUDES): Added xml clags

2001-03-05  Not Zed  <NotZed@Ximian.com>

	* camel-folder-search.c (camel_folder_search_class_init): Setup a
	new function, "uid" which matches uids.
	(search_uid): Implement the "match uid" command.

svn path=/trunk/; revision=8705
2001-03-14 07:06:54 +00:00
bf5c7e12fc Added camel-tcp-stream-ssl to the build.
2001-03-13  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Added camel-tcp-stream-ssl to the build.

	* camel-remote-store.h: Add a use_ssl member to the
	CamelRemoteStore object.

svn path=/trunk/; revision=8698
2001-03-14 03:42:07 +00:00
e258958d9e Oops. Make this a subclass of CamelTcpStream, not CamelStream.
2001-03-13  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-ssl.c (camel_tcp_stream_ssl_get_type):
	Oops. Make this a subclass of CamelTcpStream, not CamelStream.

	* camel-types.h: Add the defs for CamelTcpStream and
	CamelTcpStreamRaw

	* Makefile.am: Add camel-tcp-stream and camel-tcp-stream-raw to
	the build.

	* camel-remote-store.c (remote_connect): Update to use
	CamelTcpStreams.

	* camel-tcp-stream-raw.c (stream_connect): Made cancellable by
	copying the currently used code in camel-remote-store.c.
	(stream_setsockopt): Oops, flags = fcntl (..., GET_FL);
	(camel_tcp_stream_raw_get_type): Oops. Make this a subclass of
	CamelTcpStream, not CamelStream.

svn path=/trunk/; revision=8697
2001-03-14 00:46:59 +00:00
81b0fea2f0 #include "camel-sasl-digest-md5.h" (camel_sasl_authtype_list): add
2001-03-01  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-sasl.c: #include "camel-sasl-digest-md5.h"
	(camel_sasl_authtype_list): add DIGEST-MD5 stuff here.
	(camel_sasl_authtype): And here too.
	(camel_sasl_new): And here...

	* camel-sasl-digest-md5.[c,h]: new SASL class for DIGEST-MD5 (has
	been tested and proven to work).

svn path=/trunk/; revision=8513
2001-03-02 02:29:08 +00:00
47497db453 camel depends on krb4 now (where available), for camel-sasl-kerberos4.c
* Makefile.am (libcamel_la_LIBADD, INCLUDES): camel depends on
	krb4 now (where available), for camel-sasl-kerberos4.c

	* camel-sasl-kerberos4.[ch]: Make this at least compile. Dunno if
	it works yet.

svn path=/trunk/; revision=8451
2001-03-01 17:16:32 +00:00
eb3167206c Added camel-sasl-anonymous.[c,h] to the build.
2001-02-28  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Added camel-sasl-anonymous.[c,h] to the build.

	* camel-sasl-anonymous.[c,h]: new SASL class for ANONYMOUS

	* camel-sasl-plain.c (plain_challenge): Oops, have a state for
	setting sasl->authenticated = TRUE;

	* camel-sasl-cram-md5.c (cram_md5_challenge): Same here.

svn path=/trunk/; revision=8433
2001-02-28 23:24:15 +00:00
4321d72d9b Added camel-sasl*.[c,h] to the build.
2001-02-28  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Added camel-sasl*.[c,h] to the build.

	* camel-sasl.[c,h]: new "abstract" SASL class

	* camel-sasl-kerberos4.[c,h]: new SASL class for KERBEROS_V4

	* camel-sasl-cram-md5.[c,h]: new SASL class for CRAM-MD5

	* camel-sasl-plain.[c,h]: new SASL class for PLAIN

	* providers/imap/camel-imap-auth.c: Removed the base64 functions.

	* camel-mime-utils.c (base64_encode_simple): Moved here from
	camel-imap-auth.c
	(base64_decode_simple): Same.

svn path=/trunk/; revision=8428
2001-02-28 18:16:02 +00:00
c81bce50bb Removed all files.
2001-02-22  Not Zed  <NotZed@Ximian.com>

        * providers/vee/*: Removed all files.

        * camel-private.h: Move camel-vee-private.h stuff into here.

        * camel-session.c: Move the vee_provider here, and initialise it
        always as part of a session.  The vfolder provider is always
        available.

        * providers/Makefile.am: Remove "vee" from the build list, now
        built as part of the main library.

        * Makefile.am (libcamelinclude_HEADERS):
        (libcamel_la_SOURCES): Added camel-vee-store.[ch],
        camel-vee-folder.[ch].

svn path=/trunk/; revision=8340
2001-02-21 20:30:29 +00:00
49f8a687a4 Changed to push the operation into a status stack.
2001-02-07  Not Zed  <NotZed@Ximian.com>

        * camel-operation.c (camel_operation_start): Changed to push the
        operation into a status stack.
        (camel_operation_progress): Changed to only accept % complete.
        (camel_operation_reset): Free status stack as well.

        * providers/pop3/camel-pop3-folder.c (pop3_get_message): Get the
        octect count from the return line, and pass it to
        get_additional_data().
        (pop3_refresh_info): Added status stuff.

        * providers/pop3/camel-pop3-store.c
        (camel_pop3_command_get_additional_data): Added a total bytes
        expected argument for progress reporting & fixed callers.
        (camel_pop3_command_get_additional_data): Added progress
        reporting.

        * providers/local/camel-mbox-summary.c (mbox_summary_sync_full):
        (mbox_summary_sync_quick):
        (summary_rebuild): Added progress reporting stuff.

svn path=/trunk/; revision=8095
2001-02-08 01:42:53 +00:00
1a403012d4 Changed the subject search to handle case sensitive when it is mixed case.
2001-01-25  Not Zed  <NotZed@Ximian.com>

	* tests/folder/test3.c: Changed the subject search to handle case
	sensitive when it is mixed case.

	* Makefile.am (libcamel_la_SOURCES): Added camel-ssearch-private.c
	(noinst_HEADERS): Added camel-search-private.h

	* camel-folder-search.c (check_header): New function to do the
	work of the various header checks.
	(search_header_matches):
	(search_header_starts_with):
	(search_header_ends_with):
	(search_header_contains): Use check_header to do the work.
	(build_match_regex): Removed.

	* camel-search-private.c (header_soundex):  New
	function to match words to phrases using soundex algorithm.

	* camel-filter-search.c (soundexcmp): Removed.
	(check_match): Moved to search-private.h

2001-01-24  Not Zed  <NotZed@Ximian.com>

	* camel-search-private.c (camel_search_build_match_regex): Added
	extra flags, so the same function can be used for
	start/end/whole/partial matches.
	(camel_search_header_match): Convenience function to check a
	single header against all sorts of different matches.

	* providers/imap/camel-imap-search.c (imap_body_contains): Fix for
	e_sexp api changes.

	* camel-folder-search.c: Fix for e_sexp api changes.
	(search_header_contains): Free args/quit on unknown header.
	(search_header_matches): "
	(search_header_starts_with): "
	(search_header_ends_with): "
	(match_message): Add an exception argument.
	(search_body_contains): Free args/quit on fatal error.
	(message_body_contains): Removed (moved to
	camel-search-private.c), fixed callers.

	* camel-filter-search.c: Fix for e_sexp api changes.
	(build_match_regex, message_body_contains): Moved into
	camel-filter-private.c  Fixed callers.
	(check_header): moved guts to camel-search-private, and
	changed to use regex's for everything.  Just calls that with the
	right args.
	(check_header): GEts the header, decodes it, and checks for
	failure, and whatnot.
	(check_match): Removed.
	(header_soundex): Changed significantly.  Now it soundexes each
	word in the header separately, and compares it to the first
	argument.

	* tests/folder/test9.c (main): Fix for api changes.
	(main): Added tests to see that invalid match and action
	rules are properly detected.

	* camel-filter-driver.c (camel_filter_driver_filter_mbox): Remove
	the 'finished message' bit.
	(camel_filter_driver_filter_message): Remove an accidentally
	checked in debug.
	(camel_filter_driver_filter_message): Fix for e-sexp api changes.

svn path=/trunk/; revision=7796
2001-01-25 02:04:28 +00:00
4f5effdf88 Index: ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/camel/ChangeLog,v
retrieving revision 1.684
diff -r1.684 ChangeLog
0a1,34
> 2001-01-17  Not Zed  <NotZed@Ximian.com>
>
> 	* camel-folder.c (free_summary): Call
> 	camel_folder_summary_array_free() to do the work.
> 	(get_summary): Use camel_folder_summary_array() to get the array
> 	atomically.  These fixes allow folder/test8 to work again, and fix
> 	a sort of race where the summary size can change while we were
> 	making a copy of it.
>
> 	* camel-folder-summary.c (camel_folder_summary_array): Get the
> 	summary array atomically, so it can't contain empty records.
> 	(camel_folder_summary_array_free): And free it.
>
> 	* tests/lib/camel-test.c (die): If we are verbose & in threads,
> 	then goto sleep so we can debug.
>
> 	* tests/folder/test8.c (worker): Add a missing pull() for
> 	comnparing content.
>
> 	* camel-filter-search.c: Fix the symbol table, so match-all is an
> 	immediate function, as it should be.
>
> 	* tests/folder/test9.c (main): New test, tests some filtering
> 	things.
>
> 	* tests/message/test3.c (main): Dont use a boundary string with
> 	spaces in it.  Folding can corrupt it.  Maybe the folding isn't
> 	working entirely right, but anyway.
>
> 	* camel-session.c: Debug out the debug.
>
> 	* camel-filter-driver.c (camel_filter_driver_filter_folder): Plug
> 	a messageinfo leak.
>
1a36,94
>
> 	* camel-filter-search.c (header_exists): Changed to support
> 	multiple args (or'd together).
> 	(header_contains): Cleaned up to match the search code.  Why did
> 	fejj change it? I'll never know.
> 	(header_matches):
> 	(header_starts_with):
> 	(header_ends_with): Big cleanup of fejj's "i'm the cut & paste
> 	king" code.  Also properly handle or'ing of additional args to
> 	match what the folder-search code should do.
> 	(check_match): New function which does the annoying matching
> 	stuff (for header matches).
> 	(check_header): Similarly, handles or'ing of the matches together.
> 	(header_contains):
> 	(header_matches):
> 	(header_starts_with):
> 	(header_ends_with): Call check_header to do the actual work.
> 	(header_soundex): And here too.
> 	(match_all): Yeah like match-all isn't passed expression results,
> 	its passed expression terms.  Fix this so match-all works like it
> 	should, by executing the contained expression.
> 	(message_body_contains): Copied directly from
> 	camel-folder-search.c, a more robust/faster/simpler body search
> 	code.
> 	(mime_part_matches): Removed entirely.
> 	(handle_multipart): Removed entirely.
> 	(build_match_regex): Copied from camel-folder-search.  Builds a
> 	set of simple strings into a regex pattern that matches any of
> 	them (for faster & simpler matching).  Expanded to accept regex
> 	patterns itself, so it can merge them together.
> 	(body_contains): Use build match/match message to match using a
> 	built regex.
> 	(body_regex): Likewise, this time we tell it we're building a
> 	regex though.
> 	(header_full_regex): Use build_match_regex to take the drudgery
> 	out of it, and expand it to handle multiple regex's at once.
> 	(get_full_header): slightly cleaner (well i dunno, the sprintf
> 	stuff just got to me).
> 	(header_regex): Cleaned up to use build_match_Regex too, and to
> 	properly check types.
> 	(filter_message_search): Just allocate 'fms' on the stack.
>
> 	* camel-filter-driver.c (camel_filter_driver_finalise):
> 	(camel_filter_driver_init):
> 	(camel_filter_driver_class_init):
> 	(camel_filter_driver_get_type): Changed from gtk object to camel
> 	object.
> 	(camel_filter_driver_add_rule): New function to add a rule to be
> 	processed in sexp form.
> 	(camel_filter_driver_init): Init the rules list.
> 	(camel_filter_driver_finalise): Clear the rules/rules list.
> 	(camel_filter_driver_filter_message): Scan rules list directly
> 	rather than creating on the fly.
>
> 	* Makefile.am (libcamelinclude_HEADERS): Added camel-filter-driver.h
> 	(libcamel_la_SOURCES): Added camel-filter-driver.c, code taken
> 	from filter-driver, which can drive, uh, filters based on sexp's.
> 	(libcamelinclude_HEADERS):
> 	(libcamel_la_SOURCES): Added camel-filter-search.[ch]

svn path=/trunk/; revision=7560
2001-01-17 01:07:02 +00:00
156996ac5e Remove this. It was only a thin wrapper around struct _header_content_type
* gmime-content-field.[ch]: Remove this. It was only a thin
	wrapper around struct _header_content_type anyway, and didn't
	match the naming scheme of anything else.

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

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

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

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

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

svn path=/trunk/; revision=7186
2000-12-28 19:28:39 +00:00
6de256c2a2 Lock the command channel while searching. (imap_body_contains): If
2000-12-24  Not Zed  <NotZed@HelixCode.com>

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

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

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

        * Merge from camel-mt-branch.

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

svn path=/trunk/; revision=7150
2000-12-24 00:46:20 +00:00
1c95a1e985 Remove use of linewrap filter. Headers are now wrapped. encode_8bit
* providers/smtp/camel-smtp-transport.c (smtp_data): Remove use of
	linewrap filter.  Headers are now wrapped.  encode_8bit already
	enforces a 998 octet line limit.
	(smtp_data): Also fixed a memleak, we always have to unref our own
	copy of the filters.  We also dont need to remove them manually,
	so dont bother.  The type's an int too ...

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

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

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

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

svn path=/trunk/; revision=6902
2000-12-11 11:40:15 +00:00
99e80d6ecf Add tests.
2000-11-24  Not Zed  <NotZed@HelixCode.com>

	* Makefile.am (SUBDIRS): Add tests.

	* camel-mime-filter-basic.c (filter): Well, I'll add the extra
	bytes here too, lathough not strictly needed, might save a
	re-malloc when we get to complete().

	* camel-mime-filter-charset.c (filter): Make sure we have room if
	we only convert very short data.
	(complete): and here too.

	* tests/Makefile.am: Initial test harness & tests.  Requires gcc
	for this.

	* camel-internet-address.c (d): Turn off debug.

	* camel-charset-map.c (camel_charset_step): Oops, & masks for set
	intersection, not | them.  Dunno how this got even close to
	working.

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

	* camel-mime-filter-basic.c (filter): For base64 encoding, the
	output size for 0, 1, or 2 bytes of input can exceed input*2, so
	make sure we account for that as well.
	(complete): And here.
	(complete): Similarly for qp encoding, if we have a trailing
	space, we need some extra bytes (not needed for 'filter()', as any
	such bytes are stored in state/save).

	* camel-mime-utils.c (quoted_decode_step): Removed fixme not required.
	(quoted_encode_close): Dont append a trailing afterall.  Otherwise
	a pass through the encode/decode will grow the message each time.

svn path=/trunk/; revision=6656
2000-11-24 03:18:20 +00:00
7ea24b0cb1 Added camel-folder-thread.[ch].
2000-11-21  Not Zed  <NotZed@HelixCode.com>

        * Makefile.am (libcamel_la_SOURCES): Added
        camel-folder-thread.[ch].

        * camel-folder-thread.c: message-threading algorithm, taken from
        evolutions' mail component, as it is generally more useful than
        just for evolution itself.  Changed to use e-memchunks as well to
        speed it up a little and use less mem.

svn path=/trunk/; revision=6623
2000-11-21 03:51:33 +00:00
d39149c579 New file - utility functions for locking using different strategies and/or
2000-11-16  Not Zed  <NotZed@HelixCode.com>

        * camel-lock.c: New file - utility functions for locking using
        different strategies and/or for locking folders safely.

        * Makefile.am (libcamel_la_SOURCES): Adde camel-lock.[ch]

svn path=/trunk/; revision=6590
2000-11-16 08:36:39 +00:00
c70c4c35f3 Implement a complete() function, now we need one. (filter): Upgraded to
2000-11-07  Not Zed  <NotZed@HelixCode.com>

	* camel-mime-filter-bestenc.c (complete): Implement a complete()
	function, now we need one.
	(filter): Upgraded to match rfrc2045 properly.  Checks also for
	length of line and valid CRLF sequences.
	(camel_mime_filter_bestenc_get_best_encoding): Do the work of
	working out what is the best encoding given what we found about
	the stream.

	* camel-mime-part.c (camel_mime_part_encoding_to_string): Use a
	lookup table to get the encoding naem, and add the binary type.
	(camel_mime_part_encoding_from_string): Likewise for the reverse.

	* camel-mime-part.h: Added the binary encoding type, see rfc2045.

	* camel-mime-utils.c (header_param_list_format_append): Dont put a
	space before ;'s in parameter lists, makes them more
	readable/consistent.

	* camel-mime-message.c (multipart_has_8bit_parts): Cleaned up the
	old stuff, well removed it.
	(camel_mime_message_set_best_encoding): Added another argument
	that lets you select what you want to set the best of.  i.e. for
	smtp transport we only need 7 bit, and dont need to optimise the
	charset (although of course, we should always).
	(find_best_encoding): Implement this feature, if we are not
	getting the best charset, use the one we have.
	(best_encoding): Set the charset on the part appropriately.  Sigh,
	the interfaces for this are nonexistant.
	(find_best_encoding): Tell the bestenc filter that lf should be
	treated as crlf for the purposes of determining encodings.

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

	* camel-charset-map.c (camel_charset_init): Init function for an
	iterative charset determinator.
	(camel_charset_step): Iterate another buffer.
	(camel_charset_mask): Removed, since it couldn't have worked.
	(camel_charset_best): Use the iterative interface to do the work.
	(camel_charset_best_name): Get the best name for a charset so far.

	* camel-mime-filter-bestenc.c: New class, a stream
	filter that can be used to memory-efficiently determine the best
	encoding and/or charset to use for a given stream of bytes.

	* Makefile.am (libcamelinclude_HEADERS): Added stream-null*.
	(libcamel_la_SOURCES): Added bestenc*

	* camel-stream-null.c: New class, a null-stream, that always
	succeeds, and never has any contents.

	* camel-stream.c: Minor pointless changes.  Was going to do
	something else but changed my mind.  Added trivial default
	implementations for all callbacks.

	* camel-mime-message.h: Cleaned up some old cruft.

	* camel-folder-summary.c (camel_folder_summary_format_address):
	address_list_format() no longer encodes, so we dont need to decode
	it.

	* camel-address.c (camel_address_unformat): New function, attempts
	to reverse the formatting process on display addresses.
	(camel_address_length): New function to get the number of
	addresses, without having to peek the structure.

	* camel-mime-message.c (camel_mime_message_set_from): Fix a typo.
	(camel_mime_message_finalize): Only unref from/reply_to if we have
	it.
	(camel_mime_message_set_recipients): New function - set the
	recipients as a CamelInternetAddress.  This function effectively
	deprecates the older recipient setting functions.
	(camel_mime_message_add_recipient): What the hell, i'll bite the
	bullet.  Terminate this function.  The old api was ambiguious and
	inefficient and didn't work right anyway.
	(camel_mime_message_remove_recipient_address): And this one.
	(camel_mime_message_remove_recipient_name): And this one too.
	(camel_mime_message_set_recipients): If we set an empty header,
	then remove it from the header list.  Allow a null receipient
	object to clear a header.
	(camel_mime_message_set_from): Likewise, if setting an empty from
	address.
	(camel_mime_message_encode_8bit_parts): Eeek!!
	camel_stream_mem_new_with_byte_array owns the byte_array we give
	it, so make sure we dont free any of it!
	(camel_mime_message_encode_8bit_parts):  Infact, i'll just rewrite
	the whole lot, its a bit of a mess.  Should really rename it and
	make it a little more useful too, lets see ...
	(best_encoding): This has a string interface?  Oh boy.
	(camel_mime_message_foreach_part): New experimental function to
	iterate over all message parts.  Might not remain.
	(camel_mime_message_has_8bit_parts): New implementation using
	foreach_part.  Fixed a couple of problems.
	(find_best_encoding): New function, that finds the best encoding
	for a given part (will probably be moved to camel-mime-part), and
	also the best charset to use if it is a text part.  Since one
	affects the other it is a two pass process, but uses streams and
	not memory to achieve this.
	(camel_mime_message_set_best_encoding): Uses the function above to
	configure an entire message for the best encoding possible given
	transport constraints.
	(camel_mime_message_encode_8bit_parts): Reimplemented to use the
	function above to perform the work.

	* camel-internet-address.c
	(camel_internet_address_format_address): Dont put <> around a lone
	address with no real name.
	(camel_internet_address_encode_address): Similarly.
	(internet_decode): Actually return the count of decoded addresses.
	(internet_unformat): Implement the unformatting routine.

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

	* providers/smtp/camel-smtp-transport.c (_send_to): Changed to get
	the internetaddress directly, rather than having to parse it
	itself.

	* camel-address.c (camel_address_format): Added a new function
	which will format address, suitable for display.
	(camel_address_cat): Concatentate 1 camel address onto another.
	It is upto the caller to ensure the addresses are of compatible
	types.
	(camel_address_new_clone): New function to create a new address by
	copying an existing one of the same type.
	(camel_address_copy): New helper function to copy an address.

	* camel-mime-message.h (struct _CamelMimeMessage): Removed cached
	copy of date string.
	(struct _CamelMimeMessage): Added date_received info.

	* camel-mime-message.c (camel_mime_message_get_date_string):
	Removed.  Nothing uses it anyway, and it is redundant.
	(camel_mime_message_finalize): No more date_str.
	(camel_mime_message_init): No more date_str, initialise
	date_received*
	(write_to_stream): Change the check for a date header.
	(process_header): No longer track the date_str.
	(camel_mime_message_get_received_date): Removed.  totally invalid
	anyway.
	(camel_mime_message_get_sent_date): Removed.  Redundant.  The only
	'date' is the sent date, the received date is just made up.
	(camel_mime_message_get_date): Args changed to be more consistent
	with utility functions.
	(camel_mime_message_get_date): Dont set the date when we're asked
	for it (if its not set by the time its written, it'll be set
	then).
	(camel_mime_message_get_date_received): Actually do 'the right
	thing' here, if we have a received header, use that to determine
	the received date.  And return the data in the same format as
	get_date.
	(camel_mime_message_set_from): Changed the api to better match
	what we should be doing.  Pass a camelinternetaddress, etc.
	(camel_mime_message_set_reply_to): Cahnged similarly to take an
	internetaddress.
	(camel_mime_message_get_reply_to): Likewise.
	(camel_mime_message_finalize): Unref the from/reply_to objects.
	(format_address): Removed, no longer needed.
	(process_header): Changed to store the from/reply_to as
	internetaddress's.
	(write_to_stream): Set the from header directly to empty, if we
	dont have one.  Maybe we should just abort, and/or create one
	based on the current user.

	* camel-mime-utils.c (header_address_list_format): Renamed to
	header_address_list_encode, which is what it is actually doing.
	(header_address_list_format_append): Similarly.
	(encoding_map[]): Removed, no longer used.
	(header_address_list_encode_append): Take another arg, do we
	encode the address (for internet), or not (for display - utf8
	only).
	(header_address_list_format): Re-added this function, but now it
	generates a display version only.  Surprise surprise, that is all
	anythign needs to generate anyway.  Sigh.

	* camel-internet-address.c (camel_internet_address_get): Return
	false if we get an invalid index only.
	(camel_internet_address_encode_address): Helper function to encode
	a single address for mailing.
	(internet_encode): Use the above function to format it.
	(camel_internet_address_format_address): Format a single address
	for display.
	(internet_format): Implement the display version.
	(camel_internet_address_class_init): Init the internet_format
	virtual function.
	(internet_cat): Implement virtual function to concatenate
	addresses.

	* camel-folder-summary.c
	(camel_folder_summary_info_new_from_header): new function, only
	build the summary info, dont add it.
	(camel_folder_summary_info_new_from_parser): Likewise, for new
	info from parser.
	(camel_folder_summary_add_from_parser): Cahnged to call function
	above to build info.
	(camel_folder_summary_add_from_header): Changed to call function
	above, to build info.
	(camel_folder_summary_info_free): New function to free the summary
	message info.
	(camel_folder_summary_clear): Changed to clal above to free info.
	(camel_folder_summary_remove): Likewise.
	(camel_folder_summary_add): Cleaned up the clashing uid
	re-assignment logic a little bit.
	(camel_folder_summary_decode_uint32): Fixed a typo, 01 != -1.
	(camel_folder_summary_decode_time_t): Return -1 on error.
	(camel_folder_summary_encode_off_t): New function to encode an
	off_t type.
	(camel_folder_summary_decode_off_t): And likewise for the reverse.
	(CAMEL_FOLDER_SUMMARY_VERSION): Bumped the summary version, since
	we're now encoding time/off_t's right.
	(summary_header_save): Use time_t encoder to save the timestamp.
	(summary_header_load): Likewise for decoding the timestamp.
	(content_info_load): Decode off_t types directly, now we can.
	(content_info_save): And likewise for encoding.
	(camel_folder_summary_add_from_message): New function, create a
	summary item from an existing message and add it.
	(camel_folder_summary_info_new_from_message): New function, create
	a summary item from an existing message.
	(summary_build_content_info_message): New function to do the dirty
	work of building the conent info/indexing, from a message source.
	(format_recipients): Format an internetaddress suitable for the
	summary.
	(message_info_new_from_message): Build a new summary item from a
	mime message.
	(content_info_new_from_message): Build a new conent info from a
	mime part.
	(camel_folder_summary_class_init): Init the new class functions.
	(message_info_new_from_message): Fixed for message api change.

	Added documentation to the functions.

svn path=/trunk/; revision=6474
2000-11-07 12:31:10 +00:00
7
4edb2c4651 build md5-utils
2000-10-27    <jpr@helixcode.com>

	* Makefile.am: build md5-utils

	* md5-utils.c: Make part of util, get rid of camel stream util
	function include string.h

	* md5-utils.h: ditto

2000-10-27    <jpr@helixcode.com>

	* providers/pop3/Makefile.am: Tidy up build

	* providers/smtp/Makefile.am: ditto

	* Makefile.am:  Move md5-utils.[hc] to e-util because the
	addressbook is going to use md5 hashes for pilot syncing.
	Maybe the calendar conduits as well because this is a good idea
	Chris had.

svn path=/trunk/; revision=6234
2000-10-27 18:28:20 +00:00
329fe7df32 Build fixes from Jacob, same as the other branch.
svn path=/trunk/; revision=6035
2000-10-19 17:47:39 +00:00
e71de4c021 New function to fold headers.
2000-09-28  Not Zed  <NotZed@HelixCode.com>

        * camel-mime-utils.c (header_fold): New function to fold headers.

2000-09-27  Not Zed  <NotZed@HelixCode.com>

        * camel-mime-parser.c (folder_scan_header): If we had an empty
        header, then it must be end of the headers too.
        (folder_scan_init): No we dont need to init the outbuf with a nul
        terminator.

        * camel-folder-summary.c (camel_folder_summary_set_uid): New
        function to reset the uid to a higher value.

        * providers/mbox/camel-mbox-summary.c (camel_mbox_summary_sync):
        "something failed (yo!)" what sort of crap is this?  Fixed all the
        indenting again, what wanker keeps running stuff through indent?
        (message_info_new): Check the uid we loaded off the disk, if it
        existed already, assign a new one.  If it didn't then make sure
        the nextuid is higher.

        * camel-charset-map.c: New file, used to build a large unicode
        decoding mapping table, and use it to determine what is the
        lowest charset a given word can be encoded with.  Uses tables from
        libunicode's source.

        * camel-internet-address.c (internet_encode): Use
        header_phrase_encode to properly encode the fullname, as required.
        refixed indenting.  Who keeps doing that?
        (camel_internet_address_find_address): Changed fatal return/warnings
        into assertions.

        * camel-mime-utils.c (header_raw_append_parse): Check : explicitly
        (removed from is_fieldname() macro).
        (camel_mime_special_table): Changed to short, so we can represent
        more bit types.
        (quoted_encode): Take a mask of the safe chars for this encoding.
        (header_address_decode): Removed a #warning that makes no sense
        anymore.
        (header_decode_date): Fixed the 'broken date' parser code, if it
        ever decoded it it just threw away the result.
        (header_encode_string): Use better charset matching for encoding
        strings as well.

2000-08-31  Not Zed  <NotZed@HelixCode.com>

        * providers/mh/camel-mh-summary.c (camel_mh_summary_sync): Save
        the index if we do a sync.
        (camel_mh_summary_check): Save the index here too.  Probably.

svn path=/trunk/; revision=5615
2000-09-28 11:31:29 +00:00
e6272ebbed Use the linewrap filter to achieve full RFC0821 compliance.
2000-09-19  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/smtp/camel-smtp-transport.c (smtp_data): Use the
	linewrap filter to achieve full RFC0821 compliance.

	* camel-mime-filter-linewrap.[c,h]: New mime-filter to word-wrap.

svn path=/trunk/; revision=5510
2000-09-19 21:49:15 +00:00
da570c6660 CamelRemoteStore: a new generic store for stores that connect to servers. Prepare for the ability to cancel operations (much better exception handling). Clean up IMAP like nobody's business
svn path=/trunk/; revision=5103
2000-08-29 21:28:46 +00:00
8cb514d6dd Merge with camel-async.
svn path=/trunk/; revision=4687
2000-08-10 17:30:50 +00:00
234e613bc3 New code to keep an on-disk cache of what UIDs have been seen in a folder.
* camel-uid-cache.c: New code to keep an on-disk cache of what
	UIDs have been seen in a folder.

	* camel-provider.h: Add new flags CAMEL_PROVIDER_IS_SOURCE (mail
	can arrive in it by non-Camel means) and CAMEL_PROVIDER_IS_STORAGE
	(you can work with mail directly without needing to copy it local).

	* providers/*/camel-*-provider.c: Add flags as needed: imap and
	mbox are SOURCE and STORAGE. mh and nntp are just STORAGE, pop3 is
	just SOURCE.

	* camel-mime-message.c (process_header): Add another subject
	g_strstrip that fejj's earlier commit missed.

svn path=/trunk/; revision=4616
2000-08-09 00:07:56 +00:00
34057bd1f0 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

svn path=/trunk/; revision=4291
2000-07-24 15:13:07 +00:00