Commit Graph

62 Commits

Author SHA1 Message Date
df21ede0c7 s/HSCAN_/CAMEL_MIME_PARSER_STATE_/g and
2003-08-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-parser.[c,h]: s/HSCAN_/CAMEL_MIME_PARSER_STATE_/g and
	s/_header_state/_camel_mime_parser_state/g

	* camel-filter-driver.c: Same.

	* camel-folder-summary.c: Here too.

	* camel-http-stream.c: And here.

	* camel-mime-message.c: ...

	* camel-mime-part-utils.c: ...

	* camel-mime-part.c: ...

	* camel-movemail.c: ...

	* camel-multipart-signed.c: ...

	* camel-multipart.c: ...

	* providers/local/camel-mbox-folder.c: ...

	* providers/local/camel-mbox-summary.c: ...

	* providers/local/camel-mh-summary.c: ...

	* providers/nntp/camel-nntp-summary.c: ...

	* providers/pop3/camel-pop3-folder.c: ...

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

	* camel-mime-utils.[c,h]: Namespaced.

	* camel-data-wrapper.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-digest-folder.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-filter-driver.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-filter-search.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-folder-search.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-folder-summary.[c,h]: updated for namespace changed made
	to camel-mime-utils.[c,h]

	* camel-http-stream.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-http-stream.h: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-internet-address.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-medium.[c,h]: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-mime-message.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-mime-parser.[c,h]: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-mime-part-utils.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-mime-part.[c,h]: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-movemail.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-multipart-encrypted.c: updated for namespace changed made
	to camel-mime-utils.[c,h]

	* camel-multipart-signed.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-multipart.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-search-private.[c,h]: updated for namespace changed made
	to camel-mime-utils.[c,h]

	* camel-types.h: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* providers/imap/camel-imap-folder.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/imap/camel-imap-store-summary.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/imap/camel-imap-utils.c: updated for namespace changed
	made to camel-mime-utils.[c,h]

	* providers/imapp/camel-imapp-utils.[c,h]: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/local/camel-local-summary.[c,h]: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/local/camel-maildir-summary.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/local/camel-mbox-summary.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/local/camel-spool-summary.h: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/nntp/camel-nntp-summary.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/nntp/camel-nntp-utils.c: updated for namespace changed
	made to camel-mime-utils.[c,h]

	* providers/pop3/camel-pop3-folder.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/sendmail/camel-sendmail-transport.c: updated for
	namespace changed made to camel-mime-utils.[c,h]

	* providers/smtp/camel-smtp-transport.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

svn path=/trunk/; revision=22613
2003-09-18 17:07:09 +00:00
1d5176dbe5 ** See bug #47765.
2003-08-20  Not Zed  <NotZed@Ximian.com>

        ** See bug #47765.

        * camel-folder-search.h: Removed match1 member.

        * camel-folder-search.c (camel_folder_search_match_expression):
        use current directly rather than match1.  This method isn't used
        anywhere anyway.
        (search_not): remove match1 stuff.
        (search_match_all): properly handle the match-all against 1
        message as a scalar result, not an array result.

2003-09-03  Not Zed  <NotZed@Ximian.com>

        * camel-http-stream.c (camel_http_stream_set_proxy): handle NULL
        proxy_url - unset the proxy.

svn path=/trunk/; revision=22452
2003-09-03 18:05:54 +00:00
04b9ec51d4 temporarily reverting my camel namespace patches until after we merge in some of the other branches
svn path=/trunk/; revision=22373
2003-08-26 18:16:51 +00:00
e74d9ca1cc Namespaced.
2003-08-25  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.[c,h]: Namespaced.

	* camel-data-wrapper.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-digest-folder.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-filter-driver.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-filter-search.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-folder-search.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-folder-summary.[c,h]: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-http-stream.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-http-stream.h: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-internet-address.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-medium.[c,h]: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-mime-message.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-mime-parser.[c,h]: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-mime-part-utils.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-mime-part.[c,h]: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-movemail.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-multipart-encrypted.c: updated for namespace changed made
	to camel-mime-utils.[c,h]

	* camel-multipart-signed.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-multipart.c: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-search-private.[c,h]: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* camel-types.h: updated for namespace changed made to
	camel-mime-utils.[c,h]

	* providers/imap/camel-imap-folder.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/imap/camel-imap-store-summary.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/imap/camel-imap-utils.c: updated for namespace changed
	made to camel-mime-utils.[c,h]

	* providers/imapp/camel-imapp-utils.[c,h]: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/local/camel-local-summary.[c,h]: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/local/camel-maildir-summary.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/local/camel-mbox-summary.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/local/camel-spool-summary.h: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/nntp/camel-nntp-summary.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/nntp/camel-nntp-utils.c: updated for namespace changed
	made to camel-mime-utils.[c,h]

	* providers/pop3/camel-pop3-folder.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

	* providers/sendmail/camel-sendmail-transport.c: updated for
	namespace changed made to camel-mime-utils.[c,h]

	* providers/smtp/camel-smtp-transport.c: updated for namespace
	changed made to camel-mime-utils.[c,h]

svn path=/trunk/; revision=22355
2003-08-25 21:01:55 +00:00
194d3d6894 force connect manually so basics work.
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.

svn path=/trunk/; revision=22179
2003-08-11 20:41:33 +00:00
b328a21e7c New test suite for the mime parser (which is where the below 2 fixes were
* 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.
	(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.

svn path=/trunk/; revision=22171
2003-08-11 17:57:45 +00:00
8bbe0f34af Updated for string-utils namespace changes.
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.

svn path=/trunk/; revision=21751
2003-07-07 19:18:57 +00:00
e98be89ae6 free the summary hash
* camel-folder-search.c (camel_folder_search_finalize): free the
	summary hash

svn path=/trunk/; revision=21713
2003-07-01 18:48:43 +00:00
c8de5a0059 Ensure cmdbuf is initialized to avoid compiler warning.
2003-05-16  Jeremy Katz  <katzj@redhat.com>

 	* providers/smtp/camel-smtp-transport.c (smtp_helo): Ensure cmdbuf
 	is initialized to avoid compiler warning.

 	* providers/local/camel-mbox-summary.c (summary_header_load): Cast
 	folder_size to uint32 to fix warning.
 	(camel_mbox_summary_sync_mbox): Update for new API.

 	* providers/imap/camel-imap-utils.c (parse_params):
 	imap_parse_nstring expects size_t, not int
 	(imap_body_decode): Likewise.

 	* camel-stream-filter.c (do_read): presize needs to be size_t
 	instead of int.
 	(do_write): Likewise.

 	* camel-seekable-substream.c (stream_read): Return ssize_t instead
 	of int to match prototypes.
 	(stream_write): Likewise.

 	* camel-mime-part.c (construct_from_parser): len needs to be
 	size_t instead of int.

 	* camel-mime-parser.c (folder_scan_step): datalength needs to be a
 	size_t* instead of an int* to make dependent APIs safe.
 	(camel_mime_parser_step): Likewise.
 	(folder_scan_content): Likewise.
 	* camel-mime-parser.h: Likewise.

 	* camel-mime-message.c (camel_mime_message_class_init): Use glib
 	macro for pointer/int conversions.
 	(construct_from_parser): Update for new API.

 	* camel-folder-summary.c
 	(camel_folder_summary_info_new_from_parser): Update len to be
 	size_t for new API.
 	(summary_build_content_info): Likewise.
 	* camel-http-stream.c (http_get_headers): Likewise.
 	* camel-mime-part-utils.c
 	(simple_data_wrapper_construct_from_parser): Likewise.
 	* camel-multipart-signed.c (signed_construct_from_parser): Likewise.
 	* camel-multipart.c (construct_from_parser): Likewise.

 	* camel-folder-search.c (match_words_index): Use glib macros for
 	pointer/int conversions.
 	* camel-html-parser.c (tokenise_setup): Likewise.
 	(convert_entity): Likewise.
 	* camel-block-file.c (block_hash_func): Likewise.
 	(camel_block_file_get_block): Likewise.
 	(camel_block_file_get_block): Likewise.
 	(camel_block_file_detach_block): Likewise.
 	* camel-session.c (session_thread_msg_new): Likewise.
 	(session_thread_msg_free): Likewise.
 	(session_thread_wait): Likewise.
 	* camel-text-index.c (text_index_compress_nosync): Likewise.
 	(text_index_compress_nosync): Likewise.
 	(camel_text_index_validate): Likewise.
 	* camel-vee-folder.c (vee_folder_remove_folder): Likewise.
 	(unmatched_check_uid): Likewise.
 	(folder_added_uid): Likewise.
 	(vee_folder_build_folder): Likewise.
 	(folder_changed_add_uid): Likewise.
 	(folder_changed_remove_uid): Likewise.
 	* providers/imap/camel-imap-search.c (imap_body_contains): Likewise.
 	* providers/pop3/camel-pop3-folder.c (cmd_list): Likewise.
 	(cmd_uidl): Likewise.

 	* camel-data-cache.c (data_cache_init): Cast to CamelCopyFunc.
 	Fixes a warning.

svn path=/trunk/; revision=21220
2003-05-16 18:47:59 +00:00
ed975fa253 This expression can never return an array. We must always return a string
2003-03-24  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-folder-search.c (search_user_tag): This expression can
	never return an array. We must always return a string value.

svn path=/trunk/; revision=20487
2003-03-24 19:34:11 +00:00
aba27fbc03 Added a (get-size ) function to fix bug #38073. (search_get_size):
2003-02-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-folder-search.c: Added a (get-size ) function to fix bug
	#38073.
	(search_get_size): Implemented.

svn path=/trunk/; revision=19915
2003-02-14 21:44:28 +00:00
4655d88867 Check for LOGIN xxxx as well if debug is on, so we dont print passwords to
2002-05-07  Not Zed  <NotZed@Ximian.com>

        * camel-remote-store.c (remote_send_string): Check for LOGIN xxxx
        as well if debug is on, so we dont print passwords to evolution
        logs.

        * providers/imap/camel-imap-utils.c (imap_is_atom_char): This was
        really broken.  1. isprint() is locale dependent, and 2. it looked
        up an 8 bit value in a 7 bit table without truncating it.  I've
        removed the isprint() stuff and just put it directly into the
        special table, which i've expanded to the right size too.

        * providers/imap/*: Applied patch from Preston Elder
        <prez@magick.tm> to make camel only use literals if it needs to
        for simple strings.  Changed slightly to use imap_is_atom() and
        more consistent formatting.
        providers/imap/camel-imap-utils.c (imap_is_atom): Chagned from
        imap_needs_quoting().

        ** Merged in camel-object2 branch.  Simpler camelobject
        implementation + object args interface.

        * camel.c (camel_init): Call camel_object_get_type() to make sure
        camel_object_type is initialised.

        * camel-object.h (CAMEL_OBJECT_TYPE): Changed to return global
        camel_object_type pointer, not call camel_object_get_type.

svn path=/trunk/; revision=16701
2002-05-07 07:31:26 +00:00
6ccd0e6f59 When doing a contains match, split the words and perform an and on it.
2002-04-18  Not Zed  <NotZed@Ximian.com>

        * camel-folder-search.c (check_header): When doing a contains
        match, split the words and perform an and on it.
        (match_words_messages): If we have an index, but were forced to do
        a full search, first lookup a subset of messages using
        the index and a simplified word set.  Only do a manual search of
        this subset.

2002-04-17  Not Zed  <NotZed@Ximian.com>

        * camel-folder-search.c (match_message_index): Changed to take a
        utf8 string not a regex pattern.
        (match_words_index): Matches against a camel_search_words list.
        (match_words_1message): Matches a single message against a
        camel_search_words list.
        (match_words_message): Same, but gets the message from the folder
        for you.
        (match_words_messages): Matches a list of messages against a words
        list.
        (search_body_contains): Rewritten to handle multiple word
        searches.  For #23371.

        * providers/imap/camel-imap-search.c (sync_match): Split words
        when searching, to support multiple search words.  Also, try
        searching specifying charset of utf8 if we can, if that fails,
        fall back to not specifying charset.  TODO: It should translate
        the strings into the locale default charset?

        * providers/imap/camel-imap-store.c (connect_to_server): Added new
        cap - utf8_search, if set, we tell the server we're searching
        using utf8, otherwise we dont (incorrectly, since we always use
        utf8 to search).

        * camel-search-private.c (camel_ustrstrcase): Make this class public.
        (camel_search_words_split): Split a word into multiple words based
        on whitespace, and keep track of whether the word is simple
        (indexable directly), or not.
        (camel_search_words_free): Free 'em.

svn path=/trunk/; revision=16501
2002-04-18 02:18:55 +00:00
c6fc4e27a9 When we add a new name, up all of the cache limits, because we're probably
2002-03-25  Not Zed  <NotZed@Ximian.com>

        * camel-text-index.c (text_index_add_name): When we add a new
        name, up all of the cache limits, because we're probably going to
        be adding more.
        (text_index_sync): Drop the cache limits back down again, we dont
        need them when looking words up.

        ** MERGE camel_index branch.

        * camel-text-index.[ch]: Added files i forgot to add (eep nearly
        lost all this work!)

        * camel-block-file.c (sync_nolock): Fix an infinite loop in syncing.

svn path=/trunk/; revision=16242
2002-03-25 12:11:44 +00:00
0c3435a0e1 Don't use regex matching. Fixes bug #16227.
2001-11-29  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-folder-search.c (search_body_contains): Don't use regex
	matching. Fixes bug #16227.

	* camel-mime-message.c (best_encoding): Check the content-object's
	mime type, not the mime part types. Should fix bug #15843.

2001-11-27  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-folder.c (get_content): Return NULL if
	construct_from_stream fails.
	(get_message): Same.
	(get_message_simple): Here too.
	(add_message_from_data): And here.

svn path=/trunk/; revision=14834
2001-11-30 23:43:39 +00:00
0
4ae909c93b If we can't retrieve the message, ignore it, it can't match.
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 07:55:59 +00:00
4ca07463a0 More fixing of the license texts.
svn path=/trunk/; revision=14217
2001-10-27 18:21:05 +00:00
7429141682 Use search_type_mlist for mailing list searches.
* camel-filter-search.c, camel-folder-search.c (check_header): Use
	search_type_mlist for mailing list searches.

	* camel.c (camel_init): call camel-mime-utils-init func.

	* camel-mime-utils.c: Changed mail mail_list_magic to include a
	domain part, also pre-compile all the patterns.  They are all
	backward compatible except List-Id: which now uses the
	mail-address-like <list-name.host.name> part rather than the
	plain-text part (which might've been blank anyway).
	(camel_mime_utils_init): Initialisation function to setup any
	static data required by camel-mime-utils at run-time.  We now
	setup the base64/charset class tables here, so it doesn't need to
	be done statically.
	(camel_mime_special_table, camel_mime_base64_rank): No longer
	statically initialise these.
	(main): Removed + the tests at the end of the file.
	(header_raw_check_mailing_list): Dont compile regex's here,
	already compiled in utils_init.  Use the regex patterns to remove
	leading <'s from addresses.  Also, if there is a domain part
	matched, add that after a '@' is added.

	camel-search-private.c:
	(camel_search_header_match): Added SEARCH_TYPE_MLIST for mlist
	search types.  It ignores the domain part if either (but not both)
	of the values dont have it.

svn path=/trunk/; revision=13894
2001-10-22 21:08:05 +00:00
4
450e955e76 If the type is encoded, get the fallback charset from the message
2001-09-24    <NotZed@Ximian.com>

        * camel-filter-search.c (check_header): If the type is encoded,
        get the fallback charset from the message content-type.

        * camel-mime-part-utils.c (check_html_charset): Dont check for
        charset==null before calling charset_to_iconv.
        (simple_data_wrapper_construct_from_parser): "

        * camel-mime-message.c (process_header): Try use content-type
        charset param as the fallback charset.

        * camel-charset-map.c (camel_charset_to_iconv): Handle name ==
        NULL, return NULL.

        * camel-folder-summary.c (camel_folder_summary_format_address):
        (camel_folder_summary_format_string): Made private again, removed
        #warning about it.  Renamed to s/camel_folder//.
        (summary_format_string): Take default charset param.
        (camel_message_info_new_from_header, message_info_new): Decode
        content-type field to get the charset parameter to use as the
        default charset for decoding strings.

        * camel-search-private.c (camel_search_header_match): Pass NULL as
        the charset, the locale charset is always tried.
        (camel_search_header_match): Supply a default_charset parameter to
        be used with TYPE_ENCODED params.

        * camel-mime-utils.c
        (header_param): get rid of the g_strcasecmp crap.
        (header_set_param): Same here.
        (header_decode_param_list): And here.
        (header_decode_text): Totally rewritten.  30% of its size.  If the
        word is not rfc2047 encoded, always try default_charset if
        supplied, if that fails, try locale charset if it exists, if that
        fails then assume latin1/7 bit ascii.
        (append_8bit): Changed to return FALSE if we can't convert for
        whatever reason, and dont append anything.

        * camel-mime-part.h (struct _CamelMimePart): Move content_type and
        headers out of the 'private' section.

        * camel-mime-part.c (get_headers): Dont do any conversion on the
        header.
        (process_header): Get the content-type charset as the fallback
        charset for decode_string.
        (construct_from_parser): IF we have a content-type header, process
        it before doing anything else, so we have access to a fallback
        charset for invalid headers.

svn path=/trunk/; revision=13096
2001-09-24 19:31:07 +00:00
9
bef39dc4e0 General cleanup of camel debug printfs.
2001-09-19    <NotZed@Ximian.com>

        * General cleanup of camel debug printfs.

        * camel-lock.c (camel_lock_fcntl): Changed to return 'success' if
        the error indicates file locking isn't supported on this
        filesystem.  Still return a warning just incase (if its the first
        time).  Might fix a lot of reported bugs.

        * providers/local/camel-spool-store.c (get_folder_info): Dont
        include the empty // host part in the uri.  This 'breaks' the
        service lookup.

svn path=/trunk/; revision=12973
2001-09-19 08:28:36 +00:00
8
8347ce1403 If filter inbox is set on the store, and we're opening inbox '', then
2001-09-18    <NotZed@Ximian.com>

	* providers/local/camel-maildir-folder.c
	(camel_maildir_folder_new): If filter inbox is set on the store,
	and we're opening inbox '', then enable filtering on new messages.

	* providers/local/camel-local-folder.c
	(camel_local_folder_construct): After loading the summary, check
	it, and only abort if that fails.  Also maintain the changes
	count.

	* providers/local/camel-local-summary.c
	(camel_local_summary_load): Remove summary_check code from here.
	(camel_local_summary_check): Sync index/summary here, if we were
	successful.

	* providers/local/camel-spool-folder.c
	(camel_spool_folder_new): If we have filter-new-messages-on-inbox
	set and we just opened inbox, turn on filtering on this folder.
	(camel_spool_folder_construct): Keep track of changes for the
	folder, so that filter-new-messages works right (?)

	* providers/local/camel-spool-store.c (get_folder): Pass 'INBOX'
	as the folder name, not the path.

	* camel-folder-search.c (search_not): Modified patch from
	<peterw@ximian.com> since the summary is messageinfo's, not
	strings.

	** Ok so the problem with the stuff below is that maildir/spool
	'summary_load' throws away all events, including recents, joy eh?

	* providers/local/camel-maildir-summary.c (maildir_summary_check):
	Add new messages to the recent changeinfo.

	* providers/local/camel-spool-summary.c: Mark 'new' message as
	recent, for later processing if required (i.e. 'filter new
	messages').

	* camel-store.c (construct): new function, cascade up construct
	method and check for 'filter' param, and set accordingly for any
	one that might want it.

	* providers/imap/camel-imap-store.c (construct): map the
	param_filter_inbox flag to the store->flags as
	CAMEL_STORE_FILTER_INBOX.

	* camel-store.h (CAMEL_STORE_FILTER_INBOX): new flag to tell it to
	filter inbox.

	* providers/imap/camel-imap-folder.h: Removed do_filtering flag
	from CamelImapFolder.

	* providers/imap/camel-imap-folder.c (imap_update_summary): Remove
	the 'recents' parameter, use the 'changes' parameter instead to
	convey this info.
	(camel_imap_folder_changed): Changed for update_summary api
	change.  Now always just emit the changed event if we have any
	changes to report, filtering code removed, handled upstream.
	(filter_proc):
	(filter_free): Removed old filtering code.
	(camel_imap_folder_new): Set the filter_recent flag on the folder
	if we're the inbox and filtering of inbox is enabled.

	* camel-folder.c (folder_changed): If we have 'recent' messages,
	and are set to filter recents, then freeze the folder and launch a
	thread to do the processing (or similar if threading not enabled).
	(thaw): Make sure we emit the changed signal outside of owning the
	lock and if things have changed.  Also, no longer bother
	downgrading folder_changed events to message_changed events.

	* camel-folder.h (struct _CamelFolder): Added filter_recent flag
	-> signifies all recent messages in folder should be filtered.

	* camel-session.c: (camel_session_thread_msg_new,
	camel_session_thread_msg_free, camel_session_thread_queue,
	camel_session_thread_wait): code to handle async operations as
	part of camel processing.
	(camel_session_finalise): free thread_lock, destroy thread, active
	hash, etc.
	(camel_session_init): init thread, active hash, etc.
	(camel_session_class_init): Init virtual functions.
	(session_thread_msg_new, session_thread_msg_free,
	session_thread_destroy, session_thread_received,
	session_thread_queue, session_thread_wait): default implementation
	of session threads stuff.

2001-09-17    <NotZed@Ximian.com>

	* camel-folder.c (camel_folder_change_info_recent_uid): New
	function to add a 'recent' uid to the change info.
	(camel_folder_change_info_clear): Clear recent list.
	(camel_folder_change_info_free): Free recent list.
	(camel_folder_change_info_new): Setup recent list.

	* camel-folder.h: Added a uid_recent item to the folder_changed
	event data.

	* providers/local/camel-maildir-store.c (scan_dir): Free new in
	the right block.

	* providers/local/camel-local-provider.c: Add local config entries
	to filter on new messages in spool and maildir provider.

	* camel-vee-folder.c (vee_folder_construct): Remove the assertion
	which stops ? in names from being allowed.

svn path=/trunk/; revision=12956
2001-09-18 21:43:00 +00:00
2
7999ad2c00 Change the 'not' virtual method from an immediate e-sexp function to a
2001-09-12    <NotZed@Ximian.com>

        * camel-folder-search.h: Change the 'not' virtual method from an
        immediate e-sexp function to a non-immediate one, which is what it
        should be.

        * camel-folder-search.c (search_not): Implement a 'not' function
        ourselves.  If 'not' on a vector value, then not over all items
        in the summary.
        (builtings[]): Change the 'not' builtin to be a non-immediate
        function.

svn path=/trunk/; revision=12781
2001-09-12 20:53:29 +00:00
5dfe756f5f Properly determine match type to pass to header_match.
2001-08-08  Not Zed  <NotZed@Ximian.com>

        * camel-filter-search.c (check_header): Properly determine match
        type to pass to header_match.
        (address_matches_exactly): Removed, effectively added to
        camel_search_header_match.

        * camel-folder-search.c (check_header): Properly determine the
        match type to pass to header_match.

        * camel-search-private.c (camel_search_header_match): Add a new
        parameter 'type' which is the type of header we're matching
        against.  ASIS means utf8 format, ADDRESS means an internet
        address ('formatted'), ADDRESS_ENCODED means a raw address header,
        ENCODED means rfc 2047 encoded text.
        (header_match): Move original logic here, have search_header_match
        call it as appropriate for the 'type' of match.

2001-08-07  Not Zed  <NotZed@Ximian.com>

        * camel-session.c (camel_session_class_init): Only init the vee
        provider struct once (if we're subclassed this will get called
        multiple times).

        * camel-object.c (obj_finalize): Removed a bit of a debug that
        crept in with jacob's poolv patch (?).

svn path=/trunk/; revision=11772
2001-08-08 09:37:40 +00:00
91cc026904 Update the copyrights, replacing Helix Code with Ximian and
helixcode.com with ximian.com all over the place.

svn path=/trunk/; revision=10440
2001-06-23 08:52:02 +00:00
2ac5b884fe merge from evolution-0-10-branch to evolution-0-10-merge-0
2001-04-05  Not Zed  <NotZed@Ximian.com>

        * merge from evolution-0-10-branch to evolution-0-10-merge-0

svn path=/trunk/; revision=9194
2001-04-05 02:31:47 +00:00
fe962a2055 Big header cleanups and nntp compile fix
svn path=/trunk/; revision=9024
2001-03-29 20:31:40 +00:00
22d404e40b Optimise the match "" case, just match everything in the folder (if we
2001-03-29  Not Zed  <NotZed@Ximian.com>

        * camel-folder-search.c (search_body_contains): Optimise the match
        "" case, just match everything in the folder (if we have it).

svn path=/trunk/; revision=9007
2001-03-29 04:04:09 +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
978bfbefbb Implement a pseudo-header "x-camel-mlist" which just looks up in the
2001-02-23  Not Zed  <NotZed@Ximian.com>

        * camel-filter-search.c (check_header): Implement a pseudo-header
        "x-camel-mlist" which just looks up in the message info for a
        match.

        * camel-folder-search.c (check_header): Add pseudo-header
        "x-camel-mlist" which can be used to match on mailing list.

svn path=/trunk/; revision=8355
2001-02-22 23:32:34 +00:00
10fba20de9 Added flags argument. (message_changed): Add support for the auto-update
2001-02-19  Not Zed  <NotZed@Ximian.com>

        * providers/vee/camel-vee-folder.c (camel_vee_folder_new): Added
        flags argument.
        (message_changed): Add support for the auto-update flag, in which
        case we auto-match the content as it changes.
        (camel_vee_folder_init): Remoive "DYNAMIC" optionality
        (camel_vee_folder_finalise): "
        (vee_expunge): As we expunge folders, re-sync their content by
        rerunning the query.

        * providers/vee/camel-vee-store.c (vee_get_folder): Pass flags to
        folder new.

2001-02-18  Not Zed  <NotZed@Ximian.com>

        * providers/vee/Makefile.am (noinst_HEADERS): Added
        camel-vee-private.h.

        * providers/vee/camel-vee-private.h: New file to add locking stuff
        for vee folders.

        * providers/vee/camel-vee-folder.c (camel_vee_folder_new): Add
        locking around unmatched setup.
        (camel_vee_folder_init): Setup lock.
        (camel_vee_folder_finalise): Free locks.
        (folder_changed): Add locking.
        (unmatched_finalise): "
        (message_changed): "
        (vee_folder_build): "

2001-02-17  Not Zed  <NotZed@Ximian.com>

        * providers/vee/camel-vee-folder.c (vee_folder_add): Check uid
        doesn't exist before adding it.

2001-02-16  Not Zed  <NotZed@Ximian.com>

        * providers/vee/camel-vee-folder.c (camel_vee_folder_new): Create
        a new virtual virtual folder UNMATCHED, to store all messages that
        dont match other vfolders.
        (unmatched_folder_changed): When a vfolder issues a changed event,
        use its info to update the unmatched folder info.
        (unmatched_finalise): When a vfolder is finalised, remove any uids
        it has as if we had a removed event for it.

svn path=/trunk/; revision=8276
2001-02-19 20:59:54 +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
4cf9b5a00c Perform error checking on parsing/execution.
2001-01-23  Not Zed  <NotZed@Ximian.com>

        * camel-filter-search.c (camel_filter_search_match): Perform error
        checking on parsing/execution.

        * camel-folder-search.c (camel_folder_search_execute_expression):
        Perform error handling on search expression.
        (CamelFolderSearchPrivate): Add a camelexception for error
        returns.
        (camel_folder_search_execute_expression): Setup exception pointer.
        (search_match_all): Quit on error.

        * providers/imap/camel-imap-summary.c (message_info_load): Removed
        some debug 'warnings', as they should now be displayed at the
        toplevel loader, and just made the code match similar code
        elsewhere.

        * providers/local/camel-mbox-summary.c (message_info_load): Error
        handling.
        (message_info_save): more error handling.

        * camel-folder-summary.c (message_info_load): Add error handling
        and sanity checking.
        (camel_folder_summary_load): Add error checks.
        (perform_content_info_load): Error + sanity checks.
        (content_info_load): error + sanity checks.

svn path=/trunk/; revision=7739
2001-01-23 04:37:59 +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
d5f7afcbd6 Implemented. (search_header_exists): Implemented.
2000-01-03  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-folder-search.c (search_header_matches): Implemented.
	(search_header_exists): Implemented.
	(search_header_starts_with): Implemented.
	(search_header_ends_with): Implemented.

svn path=/trunk/; revision=7243
2001-01-04 06:40:33 +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
787d1833c0 Added system_flag to CamelFolderSearchClass
2000-12-01  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-folder-search.h: Added system_flag to CamelFolderSearchClass

	* camel-folder-summary.c (camel_system_flag_get): Convenience
	function to return whether or not a flag is set using a string as
	the flag name.
	(camel_system_flag): Return the integer value of the flag string.

	* camel-folder-search.c (search_system_flag): New ESExp callback
	for allowing vfoldering on CamelMessageInfo flags.

svn path=/trunk/; revision=6763
2000-12-02 03:55:18 +00:00
1fbfdbd43e Remove assertion that content is there, when it no longer can be.
2000-11-30  Not Zed  <NotZed@HelixCode.com>

	* providers/local/camel-mbox-folder.c (mbox_get_message): Remove
	assertion that content is there, when it no longer can be.

	* camel-folder-summary.h: Removed pos/bodypos/endpos from
	camelmeessagecontentinfo.
	(CamelMessageFlags): Added an attachments flag.

	* providers/local/camel-local-summary.h: Added load virtual
	function.

	* tests/lib/folders.c (test_message_info): Accessors.
	(test_folder_message): "

	* camel-folder-thread.c (get_root_subject): Fix accessors.
	(dump_tree_rec): "

	* camel-folder-search.c (camel_folder_search_execute_expression):
	Accessors for messageinfo.
	(search_match_all): "
	(search_header_contains): "
	(search_header_contains): "
	(search_body_contains): "
	(camel_folder_search_execute_expression): Use mepool_strdup.

	* providers/local/camel-mbox-summary.c (summary_update): Accessors
	for messageinfo.
	(mbox_summary_sync_full): "

	* providers/local/camel-mh-summary.c (remove_summary): Accessors
	for messageinfo.
	(mh_summary_check): "
	(mh_summary_sync_message): "
	(mh_summary_sync): "

	* providers/local/camel-mh-folder.c (mh_append_message): Use
	accessor for uid.

	* providers/local/camel-local-summary.c
	(local_summary_decode_x_evolution): Use accessor to uid.
	(local_summary_encode_x_evolution): Likewise.
	(message_info_new): And here.
	(camel_local_summary_load): Call virtual load function.
	(local_summary_load): Default load function, load summary.
	(camel_local_summary_load): Check file exists before trying to
	load.
	(camel_local_summary_construct): Turn off building content info!
	(CAMEL_LOCAL_SUMMARY_VERSION): Bump, since we dont build content
	info anymore.
	(camel_local_summary_load): After a successful load/check, do a
	save too so we dont have to go through it again randomly.

	* providers/nntp/camel-nntp-utils.c (get_XOVER_headers): Use
	accessors for messageinfo.

	* providers/nntp/camel-nntp-folder.c (nntp_folder_get_uids): Use
	accessors for uid.

	* providers/imap/camel-imap-folder.c (imap_refresh_info): Use
	accessor for uid.
	(imap_sync): Likewise.
	(imap_get_uids): Likewise.
	(imap_update_summary): And here.

	* providers/vee/camel-vee-folder.c (vfolder_remove_match): Use
	accessor for uid.
	(vfolder_add_match): Handle estrv stuff.
	(vfolder_change_match): Accessor for uid.
	(get_real_message): "
	(vee_get_uids): "
	(vee_folder_build): " + estrv.
	(vee_folder_build_folder): "

	* providers/local/camel-maildir-folder.c (maildir_append_message):
	Use acccessors for uid's.
	(maildir_get_message): Here too.

	* providers/local/camel-maildir-summary.c
	(camel_maildir_summary_init): Setup the string count for us.
	(message_info_new): Access the string array directly.
	(message_info_free): No need to free string if using array.
	(camel_maildir_summary_info_to_name): Use accessor to get to uid.
	(remove_summary): And here.
	(maildir_summary_check): Likewise.
	(maildir_summary_sync): And here.
	(maildir_summary_load): Load up a cache of uid->filename mappings
	before loading the actual summary file.  This saves us having to
	waste the diskspace storing the filenames in the summary itself,
	and also helps us sync the summary better on load.
	(message_info_load): If we have the load_map setup, and the uid
	exists, then set the filename cache from it, and update the flags
	from the name, incase our summary mismatches it.

	* camel-folder-summary.c (camel_folder_summary_init): Setup string
	count for compressed info record.  An optional compile mode which
	stores all strings for a given messageinfo into a packed array,
	which should save 36-50 bytes/record.
	(camel_folder_summary_info_new): Init the string array.
	(message_info_new): Set the string array items, as required.
	(message_info_load): And here too.
	(message_info_save): Use accessors to get to strings.
	(message_info_free): Free strings as one.
	(camel_message_info_dup_to): Handle packed array case.
	(camel_folder_summary_add): Use accessors.  And pack the strv
	before storing it.
	(summary_assign_uid): New function to assign a unique uid to a
	message, if it doesn't have one.
	(camel_folder_summary_add): Call assign_uid instead of doing it
	ourselves.
	(camel_folder_summary_info_new_from_parser): "
	(camel_folder_summary_info_new_from_message): "
	(camel_folder_summary_encode_string): constify.
	(camel_folder_summary_encode_token): "
	(summary_build_content_info_message): Fix accessors to messageinfo.
	(CAMEL_FOLDER_SUMMARY_VERSION): Bumped, for removal of
	contentinfo->pos data.
	(camel_folder_summary_info_new_from_parser): Calculate the size
	based on the parser position, not the removed contentinfo stuff.
	(camel_folder_summary_info_new_from_message): Remove size stuff.
	(camel_folder_summary_offset_content): Removed, no longer means anything.
	(content_info_new):
	(content_info_load):
	(content_info_save):
	(summary_build_content_info): Remove stuff for contentinfo->pos*.
	(summary_build_content_info): Take a msginfo argument, set
	attachments flag if we find any attachments.
	(summary_build_content_info_message): set attachments flag if we
	find any attachments.
	(camel_folder_summary_info_new_from_parser): Always scan the
	content info, even if we dont save it.
	(camel_folder_summary_info_new_from_message): And here too.
	(summary_build_content_info): Only create the contentinfo stuff if
	we have it turned on, otherwise just parse and discard.
	(summary_build_content_info_message): Likewise.

svn path=/trunk/; revision=6731
2000-11-30 11:05:36 +00:00
d38a417de3 Add a missed unref.
2000-11-29  Not Zed  <NotZed@HelixCode.com>

	* tests/message/test2.c (main): Add a missed unref.

	* camel-stream-mem.c (camel_stream_mem_set_buffer): We must set
	ourselves as the owner of the byte-array.
	Weird, someone has modified this file (its been reindented), but i
	can't see any changelogs ...

	* tests/lib/messages.c (content_finalise): Fix memleak in tester,
	free byte array when our content object is deleted.

	* camel-folder-search.c (camel_folder_search_finalize): Yeah
	great, so the sexp is a gtk object, not a camel object.  Isn't
	that going to be fun to fix?

	* camel-session.c (camel_session_finalise): Free the storage path.

	* providers/local/camel-local-store.c (camel_local_store_init): If
	store->folders is setup, free it first, then overwrite.  Hmm,
	this seems a bit crappy to me.

	* camel-store.c (camel_store_init): Dont setup store->folders if
	its already setup.

	* camel-exception.c (camel_exception_setv): Removed a memleak.  no
	need to strdup after a strdup_printf!!!

	* camel-address.c (camel_address_finalize): Free the address
	ptrarray, once finished.

	* providers/local/camel-local-folder.c (local_finalize): Make sure
	we dont leave the folder locked on close.
	(local_finalize): Free summary/search.

	* providers/local/camel-mh-summary.c (mh_summary_next_uid_string):
	Small memleak, always free name after using it.

	* camel-mime-part.c (set_content_object): Free txt after setting
	the header.

	* providers/local/camel-maildir-summary.c (maildir_summary_check):
	Fix a memleak, close the dir after scanning new.
	(message_info_free): Added so we can free the filename cached in
	the messageinfo.
	(camel_maildir_summary_finalise): Free the hostname.

	* tests/folder/test[12].c (main): Clear out camel-test before
	starting.

	* providers/local/camel-mbox-summary.c (mbox_summary_sync_quick):
	Because encode_x_evolution folds the line (sigh, because
	encode_param does, unlike every other function in
	camel-mime-utils), unfold the encoded result before comparing.
	(mbox_summary_sync_quick): Another small memleak, free xevnew once
	finished with it.

	* camel-mime-utils.c (header_decode_quoted_string): Removed a
	redundant check for c=0.
	(header_unfold): New function to un-fold headers.

	* providers/local/camel-local-summary.c
	(local_summary_encode_x_evolution): some problems with encoding
	tags, using the wrong output strings.
	(local_summary_encode_x_evolution): We dont need to append a ;
	either, param_list_format_append() will do it for us.
`

svn path=/trunk/; revision=6711
2000-11-29 10:49:05 +00:00
a34a4b15b8 Shite, -1 on error, >=0 on success. So i've just been truncating all the
2000-11-21  Not Zed  <NotZed@HelixCode.com>

	* providers/local/camel-mh-summary.c (mh_summary_sync_message):
	Shite, -1 on error, >=0 on success.  So i've just been truncating
	all the messages I touched, good one zed.
	(mh_summary_sync_message): Sigh, and write to the right damn fd as
	well.
	(mh_summary_sync_message): Argh, and we need to compare the length
	of the old xev -1 to the new xev, to check if we can optimise it.

	* camel-folder.c (camel_folder_change_info_new): Init the pool.
	(camel_folder_change_info_add_source): Allocate string in the
	pool.
	(camel_folder_change_info_add_source_list):
	(camel_folder_change_info_add_update): No longer free the key, as
	it cannot be yet.
	(change_info_add_uid): Add a new arg, copy, telling it whether to
	copy the uid argument or not, and copy using mempool_strdup.
	(change_info_cat): Tell add_uid to copy the string.
	(camel_folder_change_info_add_update): Call add_uid directly.
	(change_info_remove): Call add_uid directly, with no copy, and
	dont free the key.
	(change_info_free_update): No longer required since we dont malloc
	the keys.
	(camel_folder_change_info_add_uid): Fix for add_uid change.
	(camel_folder_change_info_remove_uid):
	(camel_folder_change_info_change_uid):
	(change_info_clear): No longer needed, just set the size to 0 on
	the array directly.
	(camel_folder_change_info_clear): Empty the arrays directly, and
	flush the mempool too, and also clear uid_source, incase anyone
	was silly enough to call us in the wrong order.
	(camel_folder_change_info_free): Dont bother clearing the array's
	contents, just free the pool and throw away all the indexes.

	* camel-folder.h: Added a mempool to CamelFolderChangeInfo to
	store the uid's we get.

	* camel-folder-search.c (search_match_all): If we are only
	matching a single info, just use that/do the search.
	(camel_folder_search_match_expression): New function.  Matches a
	single message info against an expression.
	(camel_folder_search_init): Init a hash table used to map the
	returned gptrarrays' to mempools.
	(camel_folder_search_execute_expression): Store all of the string
	data in a mempool, slightly faster, less wasted space (usually),.
	(camel_folder_search_free_result): Check for the mempool that
	stores the data for the list, and free that if we have it,
	otherwise assume we need to use g_free() (which should only happen
	if the list is empty at the moment).
	: commented out the debugging prints.  Got sick of 'executing
	header search' crap.

	* providers/vee/camel-vee-folder.c (camel_vee_folder_init): Init
	changes.
	(camel_vee_folder_finalise): Free changes.
	(vfolder_add_match): Simple helper to add a new matching info
	record.
	(camel_vee_folder_add_folder): Only trigger a changed event if we
	have changes.
	(vfolder_change_match): New function, changes our local vfolder
	info to match the source.
	(vfolder_add_match): Add a new info to the vfolder list.
	(vfolder_remove_match): Remove a no-longer matching info from the
	vfolder summary.
	(message_changed): check if the message still matches, and
	remove/etc as required.
	(camel_vee_folder_finalise, init): init/free search object.
	(vee_folder_build_folder): Build the changes to the folder into
	the changes data, as we go.
	(folder_changed): If the folder gave us an explicit list of
	changes, then process each one separately (unless there's a lot
	added/changed).

	* providers/vee/camel-vee-folder.h: Added a changes field to the
	folder.

svn path=/trunk/; revision=6628
2000-11-21 13:38:53 +00:00
ad83addd3b #include <sys/types.h> before <regex.h>
2000-10-19  Chris Toshok  <toshok@helixcode.com>

	* camel-folder-search.c: #include <sys/types.h> before <regex.h>

svn path=/trunk/; revision=6072
2000-10-20 05:19:04 +00:00
229f78b929 No, we must not encode the headers here. These interfaces ARE raw
2000-10-18  Not Zed  <NotZed@HelixCode.com>

	* camel-mime-part.c (add_header): No, we must not encode the
	headers here.  These interfaces ARE raw interfaces as they are
	defined in camel_medium.  Also removed a bogus/meaningless FIXME.
	(set_header): Likewise here, we must not.
	(process_header): Removed another bogus comment.

	* camel-object.c (shared_is_of_type): Comment out the spitting of
	a big warning when we're trying to determine types from code.

	* providers/mbox/camel-mbox-summary.c
	(message_info_new_from_parser): Only call ibex funcitons if we
	have an index.

	* providers/mh/camel-mh-summary.c (camel_mh_summary_add): Only
	call ibex functions if we have an index.
	(remove_summary): Likewise.
	(camel_mh_summary_check): Likewise.

	* providers/nntp/camel-nntp-store.c (nntp_store_get_folder):
	get_folder -> flags argument.

	* providers/vee/camel-vee-store.c (vee_get_folder): create->flags.

	* providers/pop3/camel-pop3-store.c (get_folder): Changed create
	-> flags.

	* providers/imap/camel-imap-store.c (get_folder): Added flags
	argument.

	* providers/mh/camel-mh-folder.c (camel_mh_folder_new): Added
	flags argument, and fixed code appropriately.

	* providers/mh/camel-mh-store.c (get_folder): Added flags argument.

	* camel-folder-search.c (message_body_contains): Perform a regex
	match on the contents of messages.  This wont quite work yet as
	message contents are encoded when written to a stream.
	(build_match_regex): Converts a number of strings into a regex
	matching pattern, escaping special chars.
	(match_message): match a single message from a folder, by uid.
	Slow.
	(search_body_contains): Changed to support matching where no index
	is supplied.  Matches are performed by retrieving message
	contents, etc.
	() WTF?  camel should not be including any widget headers.

	* providers/mbox/camel-mbox-folder.c (camel_mbox_folder_new):
	Added flags argument.
	(mbox_refresh_info): Changed into a NOP, the refresh info code
	moved into the new function.
	(camel_mbox_folder_new): If we have an index requested, build one,
	otherwise, remove an old one, or just dont do anything.

	* providers/mbox/camel-mbox-store.c (get_folder): Changed create
	to flags, changed code to suit.

	* camel-store.c (camel_store_get_folder): Changed create to flags.
	(get_folder_internal): And here.
	(get_folder): And here too.

	* camel-store.h (camel_store_get_folder): Change the create
	argument to be a flags argument.

svn path=/trunk/; revision=5978
2000-10-18 06:11:54 +00:00
37d47c916d Added check for gnome-app-lib. Removed directories that have been moved to
2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* configure.in: Added check for gnome-app-lib.  Removed
	directories that have been moved to gal.

From addressbook/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/Makefile.am, contact-editor/Makefile.am,
	ename/Makefile.am, gui/component/Makefile.am,
	gui/widgets/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.

	* backend/ebook/e-card.c, backend/pas/pas-backend-file.c,
	contact-editor/e-contact-editor-address.c,
	contact-editor/e-contact-editor-categories.c,
	contact-editor/e-contact-editor-categories.h,
	contact-editor/e-contact-editor-fullname.c,
	contact-editor/e-contact-editor.c,
	contact-editor/e-contact-save-as.c, ename/e-address-western.c,
	ename/test-ename-western-gtk.c,
	gui/component/addressbook-factory.c, gui/component/addressbook.c,
	gui/component/e-cardlist-model.h, gui/component/e-ldap-storage.c,
	gui/component/select-names/e-select-names-bonobo.c,
	gui/component/select-names/e-select-names-manager.c,
	gui/component/select-names/e-select-names-model.c,
	gui/component/select-names/e-select-names-table-model.c,
	gui/component/select-names/e-select-names-table-model.h,
	gui/component/select-names/e-select-names-text-model.h,
	gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h,
	gui/search/e-addressbook-search-dialog.c,
	gui/widgets/e-addressbook-model.h,
	gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard-label.c,
	gui/widgets/e-minicard-view-widget.c,
	gui/widgets/e-minicard-view-widget.h,
	gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h,
	gui/widgets/e-minicard-widget.h, gui/widgets/e-minicard.c,
	gui/widgets/test-minicard-label.c, gui/widgets/test-reflow.c,
	printing/e-contact-print.c: Fixed the #include lines to deal
	properly with gal.

From calendar/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* gui/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.

	* gui/calendar-model.h, gui/e-calendar-table.c, gui/e-day-view.c,
	gui/e-week-view-event-item.c, gui/e-week-view.c,
	gui/event-editor.c, gui/gncal-todo.c, gui/gnome-cal.c, gui/main.c,
	gui/print.c, gui/dialogs/task-editor.c: Fixed the #include lines
	to deal properly with gal.

	* gui/check-filled.xpm: New file since we can't include it from
	e-table anymore.

From camel/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* camel-folder-search.c, camel-folder-search.h,
	camel-remote-store.c, providers/imap/camel-imap-folder.c,
	providers/imap/camel-imap-store.c: Fixed the #include lines to
	deal properly with gal.

From composer/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.

	* e-msg-composer-address-dialog.c, e-msg-composer-address-entry.c,
	e-msg-composer-attachment.c, e-msg-composer-hdrs.c,
	e-msg-composer.c: Fixed the #include lines to deal properly with
	gal.

From e-util/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Removed all the files moved to gal.

	* e-dialog-widgets.c: Fixed the #include lines to deal properly
	with gal.

	* e-gui-utils.c, e-gui-utils.h: Removed all of the functionality
	that was moved to gal.

	* e-canvas-utils.c, e-canvas-utils.h, e-canvas-vbox.c,
	e-canvas-vbox.h, e-canvas.c, e-canvas.h, e-cursors.c, e-cursors.h,
	e-font.c, e-font.h, e-popup-menu.c, e-popup-menu.h, e-printable.c,
	e-printable.h, e-unicode.c, e-unicode.h, e-util.c, e-util.h,
	e-xml-utils.c, e-xml-utils.h: Moved to gal.

From filter/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* filter-editor.c, filter-filter.c, filter-folder.c,
	filter-input.c, filter-message-search.c, filter-option.c,
	filter-rule.c, score-editor.c, vfolder-editor.c, vfolder-rule.c:
	Fixed the #include lines to deal properly with gal.

From mail/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.

	* component-factory.c, folder-browser-factory.c, folder-browser.c,
	mail-callbacks.c, mail-config-gui.c, mail-display.c,
	mail-display.h, main.c, message-list.c, message-list.h: Fixed the
	#include lines to deal properly with gal.

From po/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* POTFILES.in: Removed files that have been moved to gal.

From shell/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.

	* e-component-registry.c, e-corba-storage-registry.c,
	e-corba-storage.c, e-folder-type-registry.c, e-folder.c,
	e-local-folder.c, e-local-storage.c,
	e-shell-folder-creation-dialog.c,
	e-shell-folder-selection-dialog.c, e-shell-folder-title-bar.c,
	e-shell-view.c, e-shell.c, e-shortcuts-view.c, e-shortcuts.c,
	e-storage-set-view.c, e-storage-set-view.h, e-storage-set.c,
	e-storage.c, evolution-local-storage.c, evolution-session.c,
	evolution-shell-client.c, evolution-shell-component-client.c,
	evolution-shell-component.c, evolution-shell-view.c,
	evolution-storage-listener.c, evolution-storage.c, main.c: Fixed
	the #include lines to deal properly with gal.

From widgets/meeting-time-sel/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.

	* e-meeting-time-sel-list-item.c, e-meeting-time-sel.c,
	e-meeting-time-sel.h: Fixed the #include lines to deal properly
	with gal.

If you've read this far, you deserve a prize.  The first email in my
mailbox with the subject "What a commit message!" (and your physical
mailing address somewhere in the message) will receive a free Helix
Code T-shirt mailed to anywhere within the continental United States.
I cannot be held responsible for problems with email systems anywhere.
This is supposed to be for fun, so please don't make a fuss if
something goes wrong and your mail doesn't reach me.  Find my email
elsewhere in this message, and if it's been more than a few days,
you're probably too late.

From widgets/misc/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.

	* e-calendar-item.c, e-calendar.c, e-calendar.h, e-title-bar.c:
	Fixed the #include lines to deal properly with gal.

	* e-scroll-frame.c, e-scroll-frame.h: Moved to gal.

From widgets/shortcut-bar/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.

	* e-icon-bar.c, e-icon-bar.h, e-shortcut-bar.c,
	e-shortcut-model.c, test-shortcut-bar.c: Fixed the #include lines
	to deal properly with gal.

From widgets/ChangeLog:

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Removed directories that have been moved to gal.

	* e-paned/.cvsignore, e-paned/Makefile.am, e-paned/e-hpaned.c,
	e-paned/e-hpaned.h, e-paned/e-paned.c, e-paned/e-paned.h,
	e-paned/e-vpaned.c, e-paned/e-vpaned.h: Moved to gal.

	* e-reflow/.cvsignore, e-reflow/Makefile.am,
	e-reflow/e-reflow-sorted.c, e-reflow/e-reflow-sorted.h,
	e-reflow/e-reflow.c, e-reflow/e-reflow.h: Moved to gal.

	* e-table/.cvsignore, e-table/ChangeLog, e-table/LICENSE,
	e-table/Makefile.am, e-table/ROADMAP.e-table, e-table/TODO,
	e-table/add-col.xpm, e-table/arrow-down.xpm, e-table/arrow-up.xpm,
	e-table/check-empty.xpm, e-table/check-filled.xpm,
	e-table/clip.png, e-table/e-cell-checkbox.c,
	e-table/e-cell-checkbox.h, e-table/e-cell-string.c,
	e-table/e-cell-text.c, e-table/e-cell-text.h,
	e-table/e-cell-toggle.c, e-table/e-cell-toggle.h,
	e-table/e-cell-tree.c, e-table/e-cell-tree.h, e-table/e-cell.c,
	e-table/e-cell.h, e-table/e-table-click-to-add.c,
	e-table/e-table-click-to-add.h, e-table/e-table-col-dnd.h,
	e-table/e-table-col.c, e-table/e-table-col.h,
	e-table/e-table-column-model.h, e-table/e-table-column.c,
	e-table/e-table-config.c, e-table/e-table-config.glade,
	e-table/e-table-config.glade.h, e-table/e-table-config.h,
	e-table/e-table-defines.h, e-table/e-table-example-1.c,
	e-table/e-table-example-2.c,
	e-table/e-table-field-chooser-dialog.c,
	e-table/e-table-field-chooser-dialog.h,
	e-table/e-table-field-chooser-item.c,
	e-table/e-table-field-chooser-item.h,
	e-table/e-table-field-chooser.c,
	e-table/e-table-field-chooser.glade,
	e-table/e-table-field-chooser.glade.h,
	e-table/e-table-field-chooser.h,
	e-table/e-table-group-container.c,
	e-table/e-table-group-container.h, e-table/e-table-group-leaf.c,
	e-table/e-table-group-leaf.h, e-table/e-table-group.c,
	e-table/e-table-group.glade, e-table/e-table-group.glade.h,
	e-table/e-table-group.h, e-table/e-table-header-item.c,
	e-table/e-table-header-item.h, e-table/e-table-header.c,
	e-table/e-table-header.h, e-table/e-table-item.c,
	e-table/e-table-item.h, e-table/e-table-model.c,
	e-table/e-table-model.h, e-table/e-table-one.c,
	e-table/e-table-one.h, e-table/e-table-scrolled.c,
	e-table/e-table-scrolled.h, e-table/e-table-selection-model.c,
	e-table/e-table-selection-model.h, e-table/e-table-simple.c,
	e-table/e-table-simple.h, e-table/e-table-size-test.c,
	e-table/e-table-sort-info.c, e-table/e-table-sort-info.h,
	e-table/e-table-sorted-variable.c,
	e-table/e-table-sorted-variable.h, e-table/e-table-sorted.c,
	e-table/e-table-sorted.h, e-table/e-table-sorter.c,
	e-table/e-table-sorter.h, e-table/e-table-subset-variable.c,
	e-table/e-table-subset-variable.h, e-table/e-table-subset.c,
	e-table/e-table-subset.h, e-table/e-table-text-model.c,
	e-table/e-table-text-model.h, e-table/e-table-tooltip.h,
	e-table/e-table-tree.h, e-table/e-table.c, e-table/e-table.h,
	e-table/e-tree-example-1.c, e-table/e-tree-example-2.c,
	e-table/e-tree-model.c, e-table/e-tree-model.h,
	e-table/e-tree-simple.c, e-table/e-tree-simple.h,
	e-table/image1.png, e-table/image2.png, e-table/image3.png,
	e-table/remove-col.xpm, e-table/sample.table,
	e-table/table-test.c, e-table/table-test.h, e-table/test-check.c,
	e-table/test-cols.c, e-table/test-table.c: Moved to gal.

	* e-text/.cvsignore, e-text/Makefile.am, e-text/e-entry-test.c,
	e-text/e-entry.c, e-text/e-entry.h,
	e-text/e-text-event-processor-emacs-like.c,
	e-text/e-text-event-processor-emacs-like.h,
	e-text/e-text-event-processor-types.h,
	e-text/e-text-event-processor.c, e-text/e-text-event-processor.h,
	e-text/e-text-model.c, e-text/e-text-model.h,
	e-text/e-text-test.c, e-text/e-text.c, e-text/e-text.h: Moved to
	gal.

i.e.,

...

changed evolution to work with gal.

svn path=/trunk/; revision=5490
2000-09-18 03:43:20 +00:00
e8ae4bc97a A bit more e_utf8 wrappers here and there
svn path=/trunk/; revision=5180
2000-09-02 02:51:32 +00:00
1f10ac1073 Infrastructure for date-based queries
svn path=/trunk/; revision=4838
2000-08-14 19:07:06 +00:00
40eea3692e Fixed some warnings.
2000-08-10  Christopher James Lahey  <clahey@helixcode.com>

	* camel-folder-search.c, camel-folder-summary.c, camel-medium.c,
	camel-mime-filter-charset.c, camel-mime-filter.c,
	camel-mime-filter.h, camel-mime-message.c, camel-mime-parser.c,
	camel-mime-part-utils.c, camel-mime-part.c, camel-mime-utils.c,
	camel-movemail.c, camel-multipart.c, camel-object.c,
	camel-stream-mem.c, providers/mbox/camel-mbox-folder.c,
	providers/mbox/camel-mbox-summary.c,
	providers/mh/camel-mh-folder.c,
	providers/smtp/camel-smtp-transport.c: Fixed some warnings.

svn path=/trunk/; revision=4719
2000-08-11 02:57:11 +00:00
8cb514d6dd Merge with camel-async.
svn path=/trunk/; revision=4687
2000-08-10 17:30:50 +00:00
690509bf82 A better way to compress leading whitespace. The code is probably invalid
2000-08-11  Not Zed  <NotZed@HelixCode.com>

	* camel-mime-parser.c (folder_scan_header): A better way to
	compress leading whitespace.  The code is probably invalid anyway,
	I dont think it will work across buffer boundaries.

	* providers/mbox/camel-mbox-folder.c (mbox_append_message): And
	write out proper format From lines here too.

	* providers/mbox/camel-mbox-summary.c
	(camel_mbox_summary_build_from): New function to build a more
	compatible mbox "From " line.
	(camel_mbox_summary_sync): Write From lines in the proper format.

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

	* providers/mh/camel-mh-store.c (get_folder): Remove warnin g.

	* providers/mbox/camel-mbox-store.c (xrename): Kill some warnings
	with constification.

	* providers/imap/camel-imap-folder.c (imap_append_message): Fixed
	for append api change.  Eek this routine seriously wastes memory.

	* providers/mh/camel-mh-folder.c (mh_search_free): Impelemnt.
	(mh_append_message): Fix for api change, and include user flags
	and tags in new message.

	* providers/vee/camel-vee-folder.c (vee_search_by_expression): Fix
	for search api change.

	* camel-folder.c (camel_folder_search_free): New function for
	freeing search results.
	(search_free): Changed my mind, implement a default that actually
	does something.  Free as to the old interface.
	(camel_folder_append_message): Changed to accept a
	camelmessageinfo rather than flags, which just doesn't have enough
	info in it.
	(copy_message_to): Change for append_message api change.
	(move_message_to): Likewise.

	* providers/mbox/camel-mbox-folder.c (mbox_search_free):
	Implement.
	(mbox_append_message): Fix for api change, and also copy user
	flags/tags across to new summary.

	* camel-folder-search.c (search_user_tag): A search expression
	that returns the current use flag by name.
	(camel_folder_search_free_result): New function to free the result
	of a search.

	* camel-folder-summary.c: Bump summary version.
	(message_info_new):
	(message_info_load):
	(message_info_save):
	(camel_message_info_dup_to):
	(camel_message_info_free): Added support for arbitrary tag/value
	pairs (CamelTag's).
	(camel_tag_get):
	(camel_tag_set):
	(camel_tag_list_size):
	(camel_tag_list_free): Operations for working with CamelTags.

svn path=/trunk/; revision=4683
2000-08-10 16:35:28 +00:00
4b65801638 Reorder search result in summary order if we searched with a summary.
2000-08-09  Not Zed  <NotZed@HelixCode.com>

        * camel-folder-search.c (camel_folder_search_execute_expression):
        Reorder search result in summary order if we searched with a
        summary.

svn path=/trunk/; revision=4618
2000-08-09 00:40:03 +00:00
6fe78080d7 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.

svn path=/trunk/; revision=4133
2000-07-13 02:11:57 +00:00