Commit Graph

96 Commits

Author SHA1 Message Date
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
0d2998b1a1 update CamelFolderInfo New function to free the contents of a
* camel-folder-summary.h: update CamelFolderInfo
	* camel-folder-summary.c (camel_folder_info_free): New function to
	free the contents of a CamelFolderInfo

svn path=/trunk/; revision=5476
2000-09-17 17:13:57 +00:00
81f994a359 More UTF-8 handling
svn path=/trunk/; revision=5032
2000-08-25 04:31:13 +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
983c9f72a3 Oops, an unsigned integer can never be < 0
2000-07-10  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-folder-summary.c (camel_folder_summary_decode_string):
	Oops, an unsigned integer can never be < 0

svn path=/trunk/; revision=4077
2000-07-11 00:02:17 +00:00
b104482c8f Cleaned up a bunch of compile warnings
2000-07-10  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-folder-summary.c: Cleaned up a bunch of compile warnings

svn path=/trunk/; revision=4055
2000-07-10 21:44:49 +00:00
90d51074c9 New function to copy a header_references structure.
* camel-mime-utils.c (header_references_dup): New function to copy
	a header_references structure.

	* camel-folder-summary.c (camel_message_info_dup_to): New function
	to (deep) copy the data from one CamelMessageInfo into another.
	(camel_message_info_free): And free the data.

	* providers/vee/camel-vee-folder.c (vee_sync): Implement. (empty).
	(vee_search_by_expression): belatedly update for
	camel_folder_search change.
	(vee_folder_build): belatedly update for camel_folder_search
	change. Use camel_message_info_dup_to and camel_message_info_free
	(in particular, so that we get message_id and references info so
	vfolders can be threaded).
	(vee_folder_build_folder): Ditto.

svn path=/trunk/; revision=4024
2000-07-09 22:40:49 +00:00
941a7e5a30 Parse for more header information to allow message threading in IMAP.
2000-07-06  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/imap/camel-imap-folder.c (imap_get_summary): Parse for
	more header information to allow message threading in IMAP.
	(imap_get_message_info): Same.

	* camel-folder-summary.c: Renamed summary_format_* to
	camel_summary_format_* and moved them into public scope.

svn path=/trunk/; revision=3925
2000-07-06 20:52:41 +00:00
9f381f8245 remove some non-error case debugging messages.
* remove some non-error case debugging messages.

svn path=/trunk/; revision=3904
2000-07-06 01:52:51 +00:00
0837fc4099 Fix the "clashing UIDs are not updated on disk" problem by syncing
back to disk even if the saved UID does not match the in-memory UID
and added some debugging messages.

Also, make sure the UID we use for Ibex stuff is the new one when
changing UIDs to solve a clashing problem.

svn path=/trunk/; revision=3892
2000-07-05 19:42:32 +00:00
a3c2c90d0a Add "Cc" to summary and bump summary version number.
* camel-folder-summary.c: Add "Cc" to summary and bump summary
	version number.

	* camel-folder-search.c (search_header_contains): make "Cc" a
	searchable header.

svn path=/trunk/; revision=3888
2000-07-05 17:59:48 +00:00
6d76cc84a1 Centralize creation of new UIDs for the summary.
svn path=/trunk/; revision=3885
2000-07-04 03:40:58 +00:00
9bc397a131 Get rid of unused function `camel_folder_summary_set_uid()'.
svn path=/trunk/; revision=3882
2000-07-04 02:37:00 +00:00
a1d1e450a1 Parse In-Reply-To with header_references_decode, not header_msgid_decode.
* camel-folder-summary.c (message_info_new): Parse In-Reply-To
	with header_references_decode, not header_msgid_decode.

	* camel-mime-message.c (camel_mime_message_class_init): message
	headers are case-insensitive.

svn path=/trunk/; revision=3870
2000-07-03 15:13:07 +00:00
242ffb8b8e Set date_received based on the first (most recent) "Received" header.
* camel-folder-summary.c (message_info_new): Set date_received
	based on the first (most recent) "Received" header.

svn path=/trunk/; revision=3677
2000-06-21 18:15:27 +00:00
b7f2532c93 mark the message info with CAMEL_MESSAGE_FOLDER_FLAGGED if we change the
* camel-folder-summary.c (camel_folder_summary_add): mark the
	message info with CAMEL_MESSAGE_FOLDER_FLAGGED if we change the
	uid, so the folder will know that it's dirty.

svn path=/trunk/; revision=3647
2000-06-20 17:37:33 +00:00
174d7c38d1 Move flag handling from CamelMimeMessage to CamelFolder. This
simplifies several flag-handling pieces of code in the mailer, and
	lets you change a message's flags without having to fetch the
	message body. It also means that fully-constructed
	CamelMimeMessages are now essentially constant, which will help
	simplify locking issues later since it means two threads
	interested in the same message can just work with separate copies
	of it.

	* camel-mime-message.h (struct _CamelMimeMessage): Removed flags
	and user_flags (moved to summary). Removed expunged and
	message_number which were unused. Removed message_uid and folder
	which are no longer needed in the new scheme.
	(struct CamelMimeMessageClass): Removed message_changed signal and
	get/set_message_number methods.

	* camel-mime-message.c: Updates for CamelMimeMessage changes.
	(camel_mime_message_get/set_flags,
	camel_mime_message_get/set_user_flag): Replaced with methods in
	CamelFolder.
	(camel_flag_get, camel_flag_set, camel_flag_list_size,
	camel_flag_list_free): Moved verbatim to camel-folder-summary.c

	* camel-folder.c (camel_folder_get/set_message_flags,
	camel_folder_get/set_message_user_flag): New methods (and
	corresponding useless default implementations)
	(camel_folder_class_init): add a message_changed signal

	* camel-folder-summary.c (camel_flag_get, camel_flag_set,
	camel_flag_list_size, camel_flag_list_free): Moved here from
	camel-mime-message.c

	* providers/mbox/camel-mbox-folder.c (message_changed): Removed.
	(mbox_get_message_flags, mbox_set_message_flags,
	mbox_get_message_user_flag, mbox_set_message_user_flag): Tweak
	summary bits as appropriate. (Functionality moved here from
	message_changed.)
	(mbox_get_message_by_uid): Update for CamelMimeMessage changes
	(less stuff to initialize).

	* providers/imap/camel-imap-folder.c (message_changed): Remove
	this. It was just copied from the mbox provider and doesn't deal
	with the real IMAP flag stuff anyway. (So there's currently no
	flag support in the IMAP provider.)
	(imap_get_message_by_uid): Update for CamelMimeMessage changes.

	* providers/vee/camel-vee-folder.c: (message_changed): Remove old
	one. Add a new one to listen for message_changed on each folder
	and re-emit message_changed signals that correspond to messages in
	the vfolder.
	(vee_get/set_message_flags, vee_get/set_message_user_flag): Proxy
	flag setting to the underlying real messages.
	(vee_append_message): Removed for now; there's no way to translate
	this into the new CamelMimeMessage/CamelFolder scheme, but (a)
	there's also no code which would ever call it and (b) we're
	probably going want a better interface than append_message for
	message drag and drop to work anyway. To be revisited.

svn path=/trunk/; revision=3598
2000-06-16 23:09:43 +00:00
f0600c2ccb KLUDGE! Since neither ETable nor GtkHTML supports UTF-8 yet, output
* camel-mime-utils.c (rfc2047_decode_word):
	* camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser):
	* camel-folder-summary.c (summary_build_content_info):
	KLUDGE! Since neither ETable nor GtkHTML supports UTF-8 yet,
	output ISO-8859-1 instead, so Ettore can read his Italian mail. :)
	This will be reverted later.

svn path=/trunk/; revision=3597
2000-06-16 22:42:12 +00:00
4cf5bbfa5a If we get a funny result, just throw it out. Basically a fix for the one
2000-06-02  Not Zed  <NotZed@HelixCode.com>

        * camel-mime-utils.c (header_decode_date): If we get a funny
        result, just throw it out.  Basically a fix for the one true
        broken TradeClient.

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

        * camel-folder-summary.c (message_info_free): Free
        references/messsage id.
        (message_info_save): Save them.
        (message_info_load): Load them.
        (message_info_new): And get them from the new message.
        (CAMEL_FOLDER_SUMMARY_VERSION): Bumped for new changes.

        * camel-folder-summary.h: Added references and messageid to
        summary.

svn path=/trunk/; revision=3391
2000-06-02 18:09:18 +00:00
1ff07425c1 Guess!
2000-05-18  NotZed  <NotZed@HelixCode.com>

        * providers/vee/camel-vee-folder.c: Guess!

        * camel-folder-search.c (search_user_flag): Implement user_flag
        search term.

        * camel-folder-search.h: Added user_flag search capability
        (user-flag "blah")

        * providers/mbox/camel-mbox-folder.c (mbox_init): Set USER flag in
        permanent flags for the folder.

svn path=/trunk/; revision=3122
2000-05-18 22:40:24 +00:00
879ec8920b Quick fix to get it to compile. I hope I don't get into trouble.
* camel-folder-summary.c: (message_info_load):
	Quick fix to get it to compile. I hope I don't get into trouble.

svn path=/trunk/; revision=3110
2000-05-17 23:40:47 +00:00
14bc1cbfc8 All this basically to support user flags in the summary. They are not yet
All this basically to support user flags in the summary.  They
are not yet saved to the message headers (complicates things a bit).

2000-05-17  NotZed  <NotZed@HelixCode.com>

        * providers/mbox/camel-mbox-folder.c (message_changed): Snoop
        changes to user flags on the message into the summary as well.

        * providers/mbox/camel-mbox-summary.c (camel_mbox_summary_init):
        Changed version init to include the parent class version info
        (i.e. add it not overwrite it).

        * camel-folder-summary.c (message_info_new): Initialise user_flags
        to empty.
        (message_info_load): And load user flags.
        (message_info_save): And save user flags.
        (message_info_free): And free them.
        (CAMEL_FOLDER_SUMMARY_VERSION): Bumped file revision.

        * camel-folder-summary.h: Added user-flags to summary.

        * camel-mime-message.c (camel_mime_message_set_user_flag): Dont
        use a hashtable for user flags.
        (camel_mime_message_get_user_flag): And changed here too.
        (camel_flag_get): New interface to get a flag from a flag
        list.  Flag lists are easier to work with than hash tables, and
        save memory too.
        (camel_flag_set): And set.
        (camel_flag_list_free): And free.
        (free_key_only): Discard.
        (finalize): Remove the flag list.

svn path=/trunk/; revision=3107
2000-05-17 19:24:24 +00:00
cb13084bc2 > * providers/mbox/camel-mbox-folder.c (message_changed): Indicate
> 	the summary changed also.
>

> 	(camel_mbox_summary_update): Also save summary when done.
> 	(camel_mbox_summary_expunge): Unindex items when deleting them.
> 	(camel_mbox_summary_expunge): Save the index as well as the
> 	summary.

> 	(camel_folder_summary_touch): New function, indicate the summary
> 	info changed.
> 	(camel_folder_summary_remove): Dirty here.

svn path=/trunk/; revision=2994
2000-05-11 20:46:13 +00:00
e17b3c90f4 Big bunch o memleaks fixed.
2000-05-11  NotZed  <NotZed@HelixCode.com>

        * camel-mime-part.c (write_to_stream): Unref the filter after
        adding it to the filtering stream.

        * providers/mbox/camel-mbox-summary.c
        (camel_mbox_summary_finalise): Free the folder path.

        * camel-folder-summary.c (camel_folder_summary_finalise): Free the
        summary path.

        * camel-internet-address.c (internet_decode): Free multiple entry
        addresses properly.

        * camel-mime-utils.c (header_decode_mailbox): Plugged another
        memleak, free text after converting it.
        (header_decode_addrspec): More leaks plugged.

        * camel-mime-message.c (finalize): Free message_uid.
        (finalize): Free the recipients hashtable.

svn path=/trunk/; revision=2989
2000-05-11 18:39:53 +00:00
1
d91a0645f9 Free summary items and charset filters.
2000-05-11    <notzed@helixcode.com>

        * camel-folder-summary.c (camel_folder_summary_finalise): Free
        summary items and charset filters.

2000-05-10    <notzed@helixcode.com>

        * camel-folder-summary.c (camel_folder_summary_finalise): Don't
        free stuff in p, after we've free'd p.

        * providers/mbox/camel-mbox-folder.c (mbox_append_message): Unref
        the stream we created for appending.

svn path=/trunk/; revision=2986
2000-05-11 17:05:04 +00:00
b7f49ccf57 Merged NEW_SUMMARY branch back to trunk, and resolved conflicts.
2000-05-08  NotZed  <NotZed@HelixCode.com>

	* Merged NEW_SUMMARY branch back to trunk, and resolved conflicts.

	* providers/mbox/camel-mbox-summary.c (camel_mbox_summary_update):
	Return status.

	* camel-stream-filter.c (do_close): We NEED a stream close.

svn path=/trunk/; revision=2906
2000-05-08 05:24:54 +00:00
580d885820 Make camel not leak like a sieve.
* camel-object.c: New subclass of GtkObject which is now the base
	of the Camel object hierarchy. Currently the only difference
	between CamelObject and GtkObject is that CamelObjects don't start
	out floating.

	* *.h: Move a bunch of typedefs to camel-types.h. Standardize on
	using <camel/foo.h> in header files rather than <foo.h>, "foo.h",
	or "camel/foo.h". Remove some unneeded includes.

	* camel-address.c, camel-data-wrapper.c, camel-folder-search.c,
	camel-folder-summary.c, camel-folder.c, camel-mime-filter.c,
	camel-mime-parser.c, camel-service.c, camel-session.c,
	camel-stream.c: These are now subclasses of CamelObject.

	* camel-data-wrapper.c (set_output_stream):
	* camel-medium.c (set_content_object):
	* camel-seekable-substream.c
	(init_with_seekable_stream_and_bounds):
	* providers/mbox/camel-mbox-folder.c (mbox_get_message_by_uid):
	remove gtk_object_sink calls.

	* camel-stream-buffer.c (init_vbuf):
	* camel-stream-filter.c (camel_stream_filter_new_with_stream):
	ref the original stream.

	* camel-folder-summary.c (camel_folder_summary_finalise): unref
	the filters when finalizing.

	* camel-mime-part-utils.c
	(simple_data_wrapper_construct_from_parser,
	camel_mime_part_construct_content_from_parser):
	* camel-mime-part.c (camel_mime_part_set_content): Unref objects
	that are created only to be handed off to other objects. If
	they're going to be needed later, they will have been additionally
	ref'ed by the object that needs them.

	* providers/pop3/camel-pop3-folder.c (get_message_by_number):
	unref the message stream after creating the data from it.

	* camel-stream.c, camel-stream-buffer.c, camel-stream-filter.c,
	camel-stream-fs.c, camel-stream-mem.c: Remove camel_stream_close,
	since its semantics are dubious (what happens when you close a
	stream other people still have references on?).

	* providers/nntp/camel-nntp-store.c:
	* providers/smtp/camel-smtp-transport.c:
	* providers/pop3/camel-pop3-store.c:
	replace camel_stream_close calls with gtk_object_unref.

	* providers/mbox/camel-mbox-folder.c:
	* providers/nntp/camel-nntp-folder.c:
	* providers/sendmail/camel-sendmail-transport.c:
	replace camel_stream_close with camel_stream_flush +
	gtk_object_unref

svn path=/trunk/; revision=2882
2000-05-07 21:56:32 +00:00
659c7faac5 And same here ... (camel_folder_summary_encode_fixed_int32): Ugh, fwrite
2000-05-05  NotZed  <NotZed@HelixCode.com>

        * camel-folder-summary.c: And same here ...
        (camel_folder_summary_encode_fixed_int32): Ugh, fwrite doesn't
        return -1 on error ..
        (camel_folder_summary_decode_fixed_int32): Neither deos fread.
        (camel_folder_summary_encode_token): Fix here too.

svn path=/trunk/; revision=2819
2000-05-05 18:58:05 +00:00
aa7851f1f0 And same here ...
2000-05-05  NotZed  <NotZed@HelixCode.com>

        * camel-folder-summary.c: And same here ...

        * camel-mime-utils.c: Defined out some memory profiling stuff I
        left there by mistake.

        * camel-mime-parser.c (folder_scan_content): Apply the fix from
        the header scanner to here too.
        (folder_scan_header): Only check for end of header if we have
        space for it (didn't end the read with a newline)
        (folder_scan_header): inptr is the only real thing we need
        registerised for performance.  Try to help the compiler be smart
        about it ..
        (folder_scan_header): Simplified the save header case a tad.

        Commented out some memory profiling stuff.

svn path=/trunk/; revision=2811
2000-05-05 08:47:02 +00:00
5
022c7ab1f2 Plug a memory leak. (header_decode_text): Fixed memory leaks with
2000-05-05    <notzed@helixcode.com>

        * camel-mime-utils.c (header_decode_mailbox): Plug a memory leak.
        (header_decode_text): Fixed memory leaks with g_string_append().
        (header_encode_string): And here too, and a few other places.  The
        glib api is so awful ...
        (header_content_type_decode): More memory leaks, more left ...

2000-05-05    <notzed@helixcode.com>

        * camel-mime-parser.c (folder_scan_init_with_fd): Make sure we
        init the end of buffer sentinal!
        (folder_scan_init_with_stream): And here too ...

svn path=/trunk/; revision=2810
2000-05-05 07:28:20 +00:00
214c910550 Maxcount is minimum of the max and the requested count, not the maximum :)
2000-05-04  NotZed  <NotZed@HelixCode.com>

        * providers/mbox/camel-mbox-folder.c (summary_get_message_info):
        Maxcount is minimum of the max and the requested count, not the
        maximum :)

        * camel-mime-parser.c (folder_scan_content): Properly set midline,
        so we dont falsely catch offset boundary markers (i.e. From inside
        content).
        (folder_read): Set a sentinal on the end of the read data (\n) so
        we dont have to check the buffer boundary in the inner loop.
        (mempool_*): New experimental memory management routines, speed
        up simple structure parsing by about 25% ... not compiled in by
        default.  Something similar may be needed for camel-mime-utils to
        address performance issues with g_malloc and friends.

        * camel-mime-utils.c: Added a macro w(x) used to wrap all warnings
        about mime/rfc violations, so they can be turned off.

        * camel-folder-summary.c (summary_build_content_info): Step after
        the end of a message ...
        Turn into a stand-alone program for testing and profiling.

svn path=/trunk/; revision=2808
2000-05-05 03:46:07 +00:00
f8bfbef0a7 No, we're not going to have g_strcasecmp for no good reason,
not even if its slipped in with no changelog.

2000-05-04  NotZed  <NotZed@HelixCode.com>

	* providers/mbox/camel-mbox-summary.c: Yes, and anotherone.

	* camel-mime-utils.c: And another one.

	* camel-mime-part.c: And another one.

	* camel-mime-part-utils.c: And another one.

	* camel-folder-search.c: And another one.

	* camel-mime-parser.c: Reverted a change wihtout a ChangeLog entry.

2000-05-04  NotZed  <NotZed@HelixCode.com>

	* camel-folder-summary.[hc]: Yes, CamelFolderSummary is back ...
	... re-usable class to summarise and index any stream or message
	and to manage/load/save the created summaries.

	* camel-folder.c: Include string.h to kill a warning.

2000-05-03  NotZed  <NotZed@HelixCode.com>

	* camel-folder.h: Added pos/bodypos/endpos to the basic message
	content info object.  Size to be removed?  Moved the
	messageconentinfo and messageinfo back to camel-folder-summary.h.

	* camel-mime-filter-index.c (camel_mime_filter_index_set_ibex):
	New function to (re)set the index to use on a filter.

	* camel-mime-parser.c (camel_mime_parser_scan_from): Whole bunch
	of inline docs.
	(camel_mime_parser_drop_step): New function to drop a state from
	the parser.  Needs more testing.

svn path=/trunk/; revision=2789
2000-05-04 05:45:30 +00:00
44575d972d > * gmime-utils.[ch]: What the hell, remove it. This will break the
> 	nntp provider (but its broken anyway).  The mime parser can be
>	used instead though.
> 	Removed from all code including it (but none were using it).
>
> 	* gmime-utils.c (_store_header_pair_from_string): Removed bizarre
> 	string_dichotomy version of this.  This code is somewhat redundant
> 	now, and is headed for death anyway.
>
> 	* gstring-util.c (g_string_dichotomy): Same with this one.
> 	(g_string_clone): Removed a memory leak, g_string_new() allocates
> 	its own memory.
> 	(g_string_append_g_string): Allow to append an empty gstring onto
> 	another gstring, dont abort()!
>
> 	* string-utils.c (string_dichotomy): Removed this incredibly weird
> 	function.
>
> 	* camel-folder.c (_create): Replaced the rather obtuse use of
> 	"string_dichotomy" function with a simple strrchr().  Still not
> 	sure it'll work.
>
> 	* camel-folder-summary.c: cvs removed a long-removed file.

svn path=/trunk/; revision=2753
2000-05-02 20:37:06 +00:00
fe97fa2fbb kill camel-log
svn path=/trunk/; revision=2487
2000-04-18 19:05:15 +00:00
a74c859d8c change the CamelFolderSummary interfaces to allow partial summary queries
* camel-folder-summary.[ch]: change the CamelFolderSummary
	interfaces to allow partial summary queries (for dealing
	with very large folders). Remove the "extended_fields" from
	CamelFolderInfo and CamelMessageInfo: this is better dealt
	with by subtyping.

	* providers/mbox/camel-mbox-summary.[ch]: Make CamelMboxSummary a
	subclass of CamelFolderSummary. Update interfaces for that. Remove
	the internal/external summary distinction. Remove the (unused) md5
	checksum in the folder summary. Change the summary file format
	(primarily to make it no longer byte-order dependent) and add a
	version number to it so it will be easier to change in the future.

	* providers/mbox/camel-mbox-folder.[ch]
	* providers/mbox/camel-mbox-search.c
	* providers/mbox/camel-mbox-utils.c: update for summary changes

	* camel-exception-list.def: add
	CAMEL_EXCEPTION_FOLDER_SUMMARY_INVALID

svn path=/trunk/; revision=2159
2000-03-25 05:18:55 +00:00
1e7ab47d26 fix the name of "Helix Code, Inc." in all the copyrights
svn path=/trunk/; revision=2091
2000-03-09 19:52:48 +00:00
bb2f8ae373 renamed mbox_folder->summary to mbox_folder->internal_summary to avoid
2000-01-26  bertrand  <bertrand@helixcode.com>

	* camel/providers/mbox/camel-mbox-folder.c:
	renamed mbox_folder->summary to
	mbox_folder->internal_summary to avoid
	confusion with the camel_folder->summary
	field.
	(_append_message):
	(_check_get_or_maybe_generate_summary_file):
	update the external summary thingie.

	* camel/camel-folder-summary.c (camel_folder_summary_new):
	create the message and folder info arrays.

	* camel/providers/mbox/camel-mbox-summary.c
	(camel_mbox_summary_append_internal_to_external):
	new function to append entries from the internal summary
	to the external one.


	* camel/providers/mbox/camel-mbox-folder.c (_append_message): reflect
	name change.

	* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_summary_append_entries):
	namespace fix.

svn path=/trunk/; revision=1632
2000-01-25 18:28:02 +00:00
d44875ac5f tests for summary and parsing process of mbox files.
2000-01-18  bertrand  <bertrand@helixcode.com>

	* tests/test9.c:
	tests for summary and parsing process of mbox files.

	* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file): do
	not use case insensitive comp to detect message separators. Kill
	some nasty bugs in netscape file parsing,

	* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary):
	don't use g_array_append but write directly inside the
	array data instead. Better performance and bug fix.

	* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_load_summary):
	fix the name and bugs.

	* camel/camel-folder-summary.h: update the class
	method definition to match the public defs.

svn path=/trunk/; revision=1592
2000-01-19 04:33:14 +00:00
5e4695e717 summary file read/write routines.
2000-01-18  bertrand  <bertrand@helixcode.com>

	* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary):
	(mbox_load_summary): summary file read/write routines.

	* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary):
	routine to construct the summary after the mbox
	file has been parsed and the x-evolution fields
	inserted.

	* camel/providers/mbox/camel-mbox-utils.c (camel_mbox_write_xev):
	dont use the x_evolution field but rather the uid to
	determine the presence of "X-Evolution" in the mail.

	* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file):
	parse the status and uid values if the x-evolution
	has been found.

	* camel/providers/mbox/camel-mbox-utils.c (camel_mbox_xev_parse_header_content):
	return the parsed status field correctly.

	* camel/providers/mbox/camel-mbox-utils.h:
	fixed bad prototype.

	* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file):
	parse and store the "To:" header.

	* camel/providers/mbox/camel-mbox-parser.h:
	added a "to" field

	* camel/camel-folder-summary.c:
	create the arrays here.

	* camel/camel-folder-summary.h: the list of
	summary information is no longer a GList but
	rather a GArray.


Parsing/summary/sync-check is here. Needs testing
and integration with the rest of the folder code.

svn path=/trunk/; revision=1589
2000-01-18 19:29:48 +00:00
316a4c47ff Updated my e-mail address to reflect my new employment
svn path=/trunk/; revision=1533
2000-01-03 23:05:55 +00:00
331335d12c Fix copyright informations once again
svn path=/trunk/; revision=1489
1999-12-14 22:40:38 +00:00
8fe1aa5f41 Copyright change
svn path=/trunk/; revision=1348
1999-10-23 15:19:51 +00:00
0fe7101224 started summary implementation. (_open): correct use of open.
1999-09-04  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/providers/MH/camel-mh-folder.c (_create_summary):
	started summary implementation.
	(_open): correct use of open.

	* camel/camel-folder.c (camel_folder_get_summary):
	get folder associated summary object.

svn path=/trunk/; revision=1177
1999-09-04 19:33:31 +00:00
eb1b108970 added summary files build
1999-09-04  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/Makefile.am:
	added summary files build

	* camel/camel-folder-summary.[ch]:
	basic summary framework

svn path=/trunk/; revision=1176
1999-09-04 14:48:01 +00:00