Commit Graph

175 Commits

Author SHA1 Message Date
f3f2afef4c Reorganize the folder-fetching methods and implement a folder cache so
2000-04-06  Dan Winship  <danw@helixcode.com>

	* camel-store.[ch]: Reorganize the folder-fetching methods and
	implement a folder cache so that multiple requests for the same
	folder will yield the same CamelFolder object (as long as it
	remains active). Includes some code to remove no-longer-active
	folders from the cache, but it doesn't get used since nothing is
	ever unref'ed in Camel right now...

	* providers/mbox/camel-mbox-store.c:
	* providers/pop3/camel-pop3-store.c: update for CamelStore
	changes.

	* camel-folder.[ch]: Remove the (unused) CamelException argument
	from camel_folder_get_name and camel_folder_get_full_name.
	(camel_folder_set_name): make this go away since changing a
	folder's name after it has been created could result in it
	conflicting with a separately-issued folder.

svn path=/trunk/; revision=2314
2000-04-06 20:10:05 +00:00
c7ae879700 fix warnings
svn path=/trunk/; revision=2217
2000-03-28 21:12:12 +00:00
15287c0ce6 add delete_message_by_{number,uid}.
* camel-folder.[ch]: add delete_message_by_{number,uid}.

	* providers/pop3/camel-pop3-folder.[ch]: implement
	delete_message_by_uid. Add a close method to do expunging
	of deleted messages if requested.

	* providers/pop3/camel-pop3-store.[ch]: support for
	CamelPop3Folder::close. (You have to close the connection
	in order to expunge the folder, thus the store may be
	connected in the CamelService::is_connected sense when it
	is not actually connected to the server.) Also some bugfixes.

svn path=/trunk/; revision=2203
2000-03-28 01:57:59 +00:00
6a76635141 Added async search api.
2000-03-22  NotZed  <NotZed@HelixCode.com>

        * camel-folder.[ch]: Added async search api.

        * providers/mbox/camel-mbox-search.c
        (camel_mbox_folder_search_by_expression): Changed to use an
        asynchronous interface.
        (camel_mbox_folder_search_cancel): Cancel function for async
        interface.

svn path=/trunk/; revision=2155
2000-03-23 19:57:31 +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
bbbee6ba11 No, its not a fatal error to search on a non-searchable folder, you just
2000-02-28  NotZed  <NotZed@HelixCode.com>

        * camel-folder.c (camel_folder_search_by_expression): No, its not
        a fatal error to search on a non-searchable folder, you just dont
        get any matches.
        (_open): Dont open an opened folder (i dont see why this is really
        a bug, but what the hell ...)

        * providers/mbox/camel-mbox-folder.c (_init): Set search cap on.
        (_open): Call parent class to perform open.  Remove folder-open
        check to parent instead.

svn path=/trunk/; revision=1984
2000-02-28 20:10:54 +00:00
ac659fe698 remove some camel_store_get_separators that I missed before
svn path=/trunk/; revision=1925
2000-02-24 23:40:39 +00:00
4ec5c4b998 Move "separator" from camel-store to camel-folder, since it can vary from
location to location in an IMAP store. Rename CamelFolder::init_with_store
to init and add parent_folder, name, and separator arguments.

svn path=/trunk/; revision=1919
2000-02-24 16:43:09 +00:00
55e6218d59 use CamelExceptions for run-time errors, not incorrect code. Don't bother
* camel-folder.c: use CamelExceptions for run-time errors, not
	incorrect code. Don't bother validating that an object exists from
	inside one of its methods, since you couldn't have gotten there if
	it didn't. Fix some code style bugs.

svn path=/trunk/; revision=1918
2000-02-24 16:25:23 +00:00
f65a2d78c6 fix to show a sample correct implementation.
2000-02-22  bertrand  <Bertrand.Guiheneuf@aful.org>

	* message-list.c (message_list_set_folder):
	fix to show a sample correct implementation.

	* camel-folder.c (camel_folder_get_subfolder):
	(camel_folder_create):
	(camel_folder_delete):
	(camel_folder_delete_messages):
	(camel_folder_list_subfolders):
	(camel_folder_expunge):
	(camel_folder_get_message_by_number):
	(camel_folder_get_message_count):
	(camel_folder_append_message):
	(camel_folder_copy_message_to):
	(camel_folder_get_summary):
	(camel_folder_get_message_uid):
	(camel_folder_get_message_by_uid):
	(camel_folder_get_uid_list):
	Check folder state (open/close) and raise an
	exception if it is not ok.

	* providers/mbox/camel-mbox-folder.c (_create):
	create the file and the path with two different
	names.

	* camel-folder.c (_create): handle the case
	when the folder name starts with '/'

	* camel-exception.c (camel_exception_new): use
	(void) instead of () in decl.

	* camel-exception.h: cosmetic fixes.

	* camel-exception.c (camel_exception_init): new routine.
	Fix a bug in mail/message-list.c


	* camel-folder.h: cosmetic changes.

	* camel-stream-b64.c (reset__static): added a
	reset method. Thanks message-browser to find
	so much bugs :)

	* providers/mbox/Makefile.am (libcamelmbox_la_LIBADD): readd
	Unicode libs.

Fixes and exception handling in camel-folder.
Fixes in mail/evolution-mail to make it not
segfault and to demonstrate a correct implementation.

svn path=/trunk/; revision=1902
2000-02-22 11:16:36 +00:00
e72c45d304 New header with the typedefs for all camel classes. Now the class headers
* camel/camel-types.h: New header with the typedefs for all camel
	classes. Now the class headers can just include this and the
	header for the parent type. This makes it possible for
	CamelService to include a CamelSession without creating an
	#include loop.

	* camel/*:
	* composer/e-msg-composer-attachment-bar.h:
	* mail/folder-browser.c:
	* mail/message-list.c: frob #includes to match the new reality

svn path=/trunk/; revision=1850
2000-02-19 01:40:57 +00:00
39400a38c7 use camel_stream_reset instead of seek. The formatter should be able to
2000-02-17  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-formatter.c (handle_text_plain):
	(handle_text_html): use camel_stream_reset instead
	of seek. The formatter should be able to work
	with all streams, not only seekable streams.
	In the case where some provider implementation
	would not be able to provide a reset method
	to their stream, implementors would have
	to find a workaround.

	* camel/camel-session.c (camel_session_new): use
	(void) instean of () in function decl.

	* camel/camel-folder.c: ifdef async operation
	related code.

	* camel/camel-seekable-stream.c (_seek): added a warning.
	(_reset): default implementation of reset for seekable
	stream.

	* camel/camel-mime-message.h: set_received_date declaration fix.
	cosmetic changes.

	* camel/providers/mbox/camel-mbox-provider.c (camel_provider_module_init):
	use (void) instead of ().

	* camel/camel-stream.c (camel_stream_reset):
	new method for CamelStream.

svn path=/trunk/; revision=1835
2000-02-17 22:16:33 +00:00
aeaa2ed700 New file, implements the search api for mbox folders.
2000-02-13  NotZed  <notzed@zedzone.helixcode.com>

        * providers/mbox/camel-mbox-search.c: New file, implements the
        search api for mbox folders.

        * providers/mbox/Makefile.am: Link with ibex.

        * camel-folder.c (camel_folder_has_search_capability): Api
        additions.
        (camel_folder_search_by_expression): Ditto.

2000-02-12  NotZed  <notzed@zedzone.helixcode.com>

        * providers/mbox/camel-mbox-folder.c (_set_name): Setup index
        filename as well.
        (_init_with_store): Init index filename.  Hmm, none of these
        names ever seem to get free'd (FIXME?)

        * providers/mbox/camel-mbox-folder.h: Add index file name.

2000-02-12  NotZed  <notzed@helixcode.com>

        * camel-folder.h: Add folder search functions.

        ** Created ChangeLog just for camel **
         - refer to ../ChangeLog for changes prior to this date.

svn path=/trunk/; revision=1772
2000-02-14 05:39:02 +00:00
15e6a36cef implemented. A lot of fixes too. Works now.
2000-01-22  bertrand  <bertrand@helixcode.com>

	* camel/providers/mbox/camel-mbox-folder.c (_append_message):
	implemented. A lot of fixes too. Works now.

svn path=/trunk/; revision=1608
2000-01-22 19:52:46 +00:00
84423c930e test the mbox provider.
2000-01-21  bertrand  <bertrand@helixcode.com>

	* tests/test10.c:
	test the mbox provider.

	* camel/camel-folder.c (_set_name):
	if camel_folder_get_mode returns an
	exception, return it instead of
	overriding it with a new one.
	(camel_folder_is_open): make the is_open
	method public.
	(_set_name): use the is_open instead of
	get_mode.
	(_set_name): set the fullname even in the case
	where the folder has no parent.
	(_set_name): use %c, not %d to add the
	separator char into the full path.

svn path=/trunk/; revision=1606
2000-01-22 02:58:12 +00:00
e8a2fed920 add exception handling everywhere in the store related functions
2000-01-21  bertrand  <bertrand@helixcode.com>

	* camel/camel-store.c: add exception handling everywhere in
	the store related functions arguments.
	* camel/providers/mbox/camel-mbox-folder.c: idem
	* camel/providers/mbox/camel-mbox-folder.h: idem
	* camel/providers/mbox/camel-mbox-store.h: idem

	* camel/providers/mbox/Makefile.am (libcamelmbox_la_SOURCES):
	added camel-mbox-provider.c to the mbox provider
	sources.

svn path=/trunk/; revision=1605
2000-01-22 01:35:11 +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
fe17c00980 part of the mbox provider.
1999-12-22  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/providers/mbox/camel-mbox-store.h:
	* camel/providers/mbox/camel-mbox-store.c:
	* camel/providers/mbox/camel-mbox-folder.h:
	* camel/providers/mbox/camel-mbox-folder.c:
	part of the mbox provider.

svn path=/trunk/; revision=1510
1999-12-21 23:17:03 +00:00
5eed01a18d documented.
1999-12-18  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (camel_folder_get_summary):
	documented.

	added the providers/mbox directory. Now that camel-folder
	has been cleaned up a bit, the main evolution provider
	work can start. The MH provider was only a proof of
	concept, and should not be used for the moment.

svn path=/trunk/; revision=1503
1999-12-18 15:27:14 +00:00
83f5a95caa updated to take the change on append into account.
1999-12-18  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder-pt-proxy.c (_append_message):
	updated to take the change on append into account.

	* camel/camel-folder.h:
	updated class def concerning append.
	* camel/camel-folder.c
	(camel_folder_append_message): documented.
	(camel_folder_append_message): don't return the
	message number. Use specific methods instead.
	(_append_message): idem.

svn path=/trunk/; revision=1502
1999-12-18 14:59:36 +00:00
3027e9e45d use exception mechanism. (camel_folder_delete): idem. (_delete_messages):
1999-12-18  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (_delete): use
	exception mechanism.
	(camel_folder_delete): idem.
	(_delete_messages): idem.
	(camel_folder_delete_messages): idem.
	(_get_parent_folder): idem.
	(camel_folder_get_parent_folder): idem.
	(_get_parent_store): idem.
	(_get_mode): idem.
	(camel_folder_get_parent_store): idem.
	(camel_folder_get_mode): idem.
	(_list_subfolders): idem.
	(camel_folder_list_subfolders): idem.
	(_expunge): idem.
	(camel_folder_expunge): idem.
	(_has_message_number_capability): idem.
	(camel_folder_has_message_number_capability): idem.
	(_get_message_by_number): idem.
	(camel_folder_get_message_by_number): idem.
	(camel_folder_get_message_count): idem.
	(_list_permanent_flags): idem.
	(camel_folder_list_permanent_flags): idem.
	(_copy_message_to): idem.
	(camel_folder_copy_message_to): idem.
	(camel_folder_has_summary_capability): idem.
	(camel_folder_get_summary): idem.
	(camel_folder_has_uid_capability): idem.
	(camel_folder_get_message_uid): idem.
	(_get_message_uid_by_number): idem.
	(camel_folder_get_message_uid_by_number): idem.
	(camel_folder_get_message_by_uid): idem.
	(camel_folder_get_uid_list): idem.

svn path=/trunk/; revision=1501
1999-12-18 14:38:43 +00:00
0c6cc80cdf use exception mechanism. (camel_folder_set_name): idem.
1999-12-17  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (_set_name):
	use exception mechanism.
	(camel_folder_set_name): idem.
	(camel_folder_set_full_name): idem.
	(_get_name): idem.
	(camel_folder_get_name): idem.
	(_get_full_name): idem.
	(camel_folder_get_full_name): idem.
	(_can_hold_folders): idem.
	(_can_hold_messages): idem.
	(_exists): idem.
	(camel_folder_exists): idem.
	(_is_open): idem.
	(_get_subfolder): idem.
	(camel_folder_get_subfolder): idem.

	* camel/camel-exception.c (camel_exception_clear):
	New function. Clear an exception.
	(camel_exception_get_id):
	New function.
	(camel_exception_get_description):
	New function.

	* camel/camel-folder.c (_set_name):
	Use the exception system. When the folder
	has no parent, don't set its full name
	field.

svn path=/trunk/; revision=1499
1999-12-17 19:19:59 +00:00
d376deb02b changed the return value. Now returns the list of expunged messages
1999-12-16  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (camel_folder_expunge):
	(_expunge):
	* camel/camel-folder-pt-proxy.c (_expunge):
	changed the return value. Now returns the list
	of expunged messages

	* camel/camel-folder.c (_init_with_store):
	cleaned up. Use the exception system now.
	(_open): ditto.
	(camel_folder_open): ditto.
	(camel_folder_open_async): ditto.
	(_close):  ditto.
	(camel_folder_close):  ditto.
	(camel_folder_close_async): ditto.

	* camel/camel-exception.c (camel_exception_set):
	When no exception is given, do nothing, just
	return.
	(camel_exception_set): documented.
	(camel_exception_new): idem.
	(camel_exception_free): idem.
	(camel_exception_xfer): idem.


	* camel/camel-folder.c:
	* camel/camel-folder.h: more clean-ups.
	Removed message list related code.
	This was braindead design.

svn path=/trunk/; revision=1494
1999-12-16 18:05:41 +00:00
6bd8382bd6 implemented. The routines in this file will be called by providers to
1999-12-16  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder-utils.c (camel_aml_expunge_messages):
	implemented. The routines in this file will be
	called by providers to handle the list of
	message already standing in memory.

1999-12-15  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder-utils.c:
	* camel/camel-folder-utils.h:
	New files, misc utilities for the
	folder providers. Includes active message
	list utilities.


	* camel/camel-folder.c (_has_message_number_capability):
	(camel_folder_has_message_number_capability):
	Added this to know if a folder provides
	number-based message access.

	* camel/camel-folder.c (_get_message_count):
	added warning when called directly.
	(_append_message): ditto
	(_open_async):  ditto
	(_close_async):  ditto
	(_delete_messages): ditto
	(_expunge):  ditto
	(_get_message_by_number):  ditto
	(_get_message_uid):  ditto
	(_get_message_uid_by_number):  ditto
	(_get_message_by_uid):  ditto
	(_get_uid_list):  ditto

svn path=/trunk/; revision=1492
1999-12-15 23:48:23 +00:00
78c9c2b070 update (_get_message_by_number): Update to reflect changes in CamelFolder
1999-12-15  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder-pt-proxy.c (_open_async):
	(_open):
	(_close_async):
	(_close):
	(camel_folder_pt_proxy_class_init):
	update
	(_get_message_by_number):
	Update to reflect changes in CamelFolder

svn path=/trunk/; revision=1491
1999-12-15 13:01:34 +00:00
14a6a4c746 clean-ups.
1999-12-15  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.[ch]:
	 clean-ups.

svn path=/trunk/; revision=1490
1999-12-15 11:11:35 +00:00
331335d12c Fix copyright informations once again
svn path=/trunk/; revision=1489
1999-12-14 22:40:38 +00:00
b681ec2b9a Here is my initial Evolution work: message composition widget and some
installation fixes for Camel.

svn path=/trunk/; revision=1369
1999-11-05 23:06:09 +00:00
8fe1aa5f41 Copyright change
svn path=/trunk/; revision=1348
1999-10-23 15:19:51 +00:00
741b645885 lap sync
svn path=/trunk/; revision=1332
1999-10-18 23:00:20 +00:00
bf9f54f961 A lot of changes. The thread proxy mechanism
is now functional. The signal proxy needs to be tested
though. The thread proxy folder is being implemented.
A rough summary :

1999-10-13  bertrand <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (camel_folder_close): the
	folder->close method is now asynchronous.

	* camel/camel-folder-pt-proxy.c (_folder_open_cb):
	(_open):
	(_folder_open_cb):
	(_open):
	open/close method implemented in the thread proxy
	folder. More to come.

	* camel/camel-exception.c (camel_exception_xfer):
	new utility func.

	* camel/camel-marshal-utils.c: some new marshallers

	* camel/camel-folder-pt-proxy.c: Some explanations
	on the thread proxy system.

1999-10-11  bertrand <Bertrand.Guiheneuf@aful.org>

	* camel/camel-marshal-utils.c:
	camel/camel-marshal-utils.h:
	Handles operation marshalling.

	* camel/camel-thread-proxy.c:
	camel/camel-thread-proxy.h:
	new files. Generic proxy system.

	* camel/camel-folder-pt-proxy.c
	moved all proxy related code in dedicated files.

	(camel_folder_pt_proxy_init):
	removed proxy initialisation code
	(_finalize):
	removed proxy finalization code


	* camel/camel-exception.c
	(camel_exception_new):
	(camel_exception_set):
	(camel_exception_free):
	New funcs.

svn path=/trunk/; revision=1328
1999-10-13 21:16:55 +00:00
10ec882bf1 redesign of the proxy/marshaling code. Uses GtkArg now. sync commit.
* redesign of the proxy/marshaling code. Uses GtkArg now.
* sync commit. Evolution does not build at all now.

svn path=/trunk/; revision=1260
1999-09-27 18:05:43 +00:00
6ed1a40852 Added corba-like exception system to CamelFolder. The exception system is
* Added corba-like exception system to CamelFolder.
The exception system is not finished but I wanted
the async and event implementation to get this right
from the beginning.

svn path=/trunk/; revision=1256
1999-09-23 19:26:54 +00:00
10da3f1841 more work.
* camel/camel-folder-pt-proxy.c:
	more work.

svn path=/trunk/; revision=1248
1999-09-21 21:21:36 +00:00
9da28b3161 camel_folder_get_full_name did not work. Fixed.
svn path=/trunk/; revision=1246
1999-09-21 13:16:56 +00:00
68ceb01f60 Summary files are here and work !!!
1999-09-08  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/providers/MH/mh-summary.c
	(mh_load_summary):
	(mh_save_summary):
	(mh_create_summary):
	implemented summary (files) for MH folders.

	* camel/providers/MH/camel-mh-folder.c
	(_get_message_by_uid): implemented.
	(camel_mh_folder_class_init):
	(_get_message_uid): implemented

svn path=/trunk/; revision=1219
1999-09-08 18:59:27 +00:00
4a3be14666 impemented.
1999-09-08  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/providers/MH/camel-mh-folder.c
	(_get_message_by_uid): impemented.

	* camel/camel-folder.c:
	(camel_folder_get_message_uid_by_number):
	const'ified uid.
	(camel_folder_get_message_by_uid): idem
	removed stupid camel_folder_get_message_uid_by_number
	method.

svn path=/trunk/; revision=1215
1999-09-08 12:20:30 +00:00
0c1cbcdb39 Documented UIDs.
1999-09-08  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (camel_folder_has_uid_capability):
	(camel_folder_get_message_uid):
	(camel_folder_get_message_uid_by_number):
	(camel_folder_get_message_by_uid):
	(camel_folder_get_uid_list):
	Documented UID methods.

svn path=/trunk/; revision=1193
1999-09-08 10:11:54 +00:00
116b88eb5d Basic UID framework.
1999-09-05  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (camel_folder_has_uid_capability):
	(camel_folder_get_message_uid):
	(camel_folder_get_message_uid_by_number):
	(camel_folder_get_message_by_uid):
	(camel_folder_get_uid_list):
	Basic UID framework.

svn path=/trunk/; revision=1181
1999-09-05 20:08:23 +00:00
1ee21a1820 New revision. Some fixes.
1999-09-05  bertrand  <Bertrand.Guiheneuf@aful.org>

	* devel-docs/misc/ref_and_id_proposition.txt:
	New revision. Some fixes.

	* camel/camel-folder.h (struct _CamelFolder): added
	uid_capability field.

* started to work on UIDs

svn path=/trunk/; revision=1180
1999-09-05 17:48:59 +00:00
4e4eb45bf6 use folder summary instead of opening all messages.
1999-09-05  bertrand  <Bertrand.Guiheneuf@aful.org>

	* tests/ui-tests/store_listing.c (show_folder_messages):
	use folder summary instead of opening all messages.

	* camel/providers/MH/camel-mh-folder.c (_create_summary):
	basic and highly non-efficient summary implementation.
	Should be seen as a proof of concept only.
	subfolder summary still has to be implemented.

	* camel/providers/maildir/camel-maildir-folder.c (_init_with_store):
	hasn't summary for the moment.
	* camel/providers/maildir/camel-maildir-folder.c
	cosmetic changes.

svn path=/trunk/; revision=1178
1999-09-05 16:15:12 +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
5900d4d114 sync again. Changelog comes tomorow
svn path=/trunk/; revision=1170
1999-09-02 23:14:26 +00:00
f5be7984b2 When using g_free (obj) don't test if obj != NULL g_free () already do
1999-09-01  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (_finalize):
	(_set_name):
	* camel/camel-mime-message.c (_finalize):
	* camel/camel-mime-part.c (_finalize):
	(_set_description):
	(_set_disposition):
	* camel/camel-service.c (_finalize):
	* camel/camel-stream-fs.c (_finalize):
	* camel/gmime-content-field.c:
	(gmime_content_field_construct_from_string):
	* camel/url-util.c (g_url_free):

	When using g_free (obj) don't test if obj != NULL
	g_free () already do that. Thanks to elerium for
	the feedback.

19

svn path=/trunk/; revision=1151
1999-09-01 11:53:18 +00:00
d938232d3c Address update
svn path=/trunk/; revision=1147
1999-08-29 22:13:34 +00:00
f5aadb31ca new method.
1999-08-15  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c	(_copy_message_to): new method.

svn path=/trunk/; revision=1118
1999-08-15 21:08:34 +00:00
fb5218e353 moved the active list readjustment code here. Much saner, providers won't
1999-08-15  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (camel_folder_expunge):
	moved the active list readjustment code here.
	Much saner, providers won't have to worry about
	that.

	* camel/providers/MH/camel-mh-folder.c (_expunge):
	no more active list readjustment stuff.

	* camel/camel-folder.h: the expunge virtual no more
	returns a list of expunged messages. Now providers
	only have to set the expunge flag on the expunged
	messages.

	* camel/camel-folder.c (camel_folder_get_message):
	moved the caching code here. Finally, I don't want
	providers to crash the libs with a bad message cache
	implementation.
	(_close): do not call the CamelFolder virtual expunge
	method directly, use camel_folder_expunge() instead.
	(camel_folder_expunge): added the want_list param.
	The client can decide if it wants the expunged message
	list or not. If yes, it'll have to unref the messages
	itself.

svn path=/trunk/; revision=1117
1999-08-15 20:40:11 +00:00
e579dc553c Implemented deletion/expunge mechanism.
1999-08-14  bertrand  <Bertrand.Guiheneuf@aful.org>

	* tests/ui-tests/store_listing.c (delete_selected_messages):
	(expunge_selected_folders):
	Implemented deletion/expunge mechanism.

	* camel/camel-folder.c (_get_message):
	Added some debug info.

	* camel/providers/MH/camel-mh-folder.c (_expunge):
	implemented and tested.

	* camel/camel-mime-message.c (_set_flag):
	changed the old braindead implementation.
	boolean are inserted in the flag hash
	table casted as gpointers.


	* camel/camel-mime-message.c: indentation fix

svn path=/trunk/; revision=1114
1999-08-14 18:50:46 +00:00
920be6e190 default implementation to be called first by providers methods. It looks
1999-08-13  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.c (_get_message): default implementation
	to be called first by providers methods. It looks in the
	folder message list (in memory) to see if the message has
	not already been retrieved, and in this case, returns
	the same CamelMimeMessage object

Caching messages in folder kworks. Providers will have to
do their job correctly.
Enough for today.

svn path=/trunk/; revision=1113
1999-08-13 18:28:56 +00:00
ec22bcd920 New field (message_list) which will hold a reference on each message
1999-08-13  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-folder.h (struct _CamelFolder):
	New field (message_list) which will hold a
	reference on each message obtained by the folder,
	which is necessary in order for the caching procedure
	to work (Getting the same message from a folder twice
	will return the same CamelMimeMessage object).

	* camel/camel-folder.c (camel_folder_get_message):
	When the store retreives a message put it in its
	message list.
	(_finalize): free message list.

	* ChangeLog: fix typo (parmanent)

svn path=/trunk/; revision=1112
1999-08-13 17:41:18 +00:00