Commit Graph

36 Commits

Author SHA1 Message Date
a7943ce5a4 Only retry another uid if we had a name clash, otherwise fail.
2000-08-07  Not Zed  <NotZed@HelixCode.com>

        * providers/mh/camel-mh-folder.c (mh_append_message): Only retry
        another uid if we had a name clash, otherwise fail.

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

        * camel-url.c (camel_url_set_protocol):
        (camel_url_set_host):
        (camel_url_set_path):
        (camel_url_set_port): Url editing functions.

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

        * providers/mh/camel-mh-summary.c (camel_mh_summary_sync): Expunge
        from the end, so the index isn't messed up when you remove a
        message.

        * providers/mh/camel-mh-folder.c (mh_append_message): Fix a bug
        where it would never open an output file/uid.

        * providers/mbox/camel-mbox-store.c (rename_folder):
        Implementation for mbox as well.

        * camel-store.c (camel_store_rename_folder): New method to rename folders.
        (rename_folder): Default implementation.

        * providers/mh/camel-mh-store.c (delete_folder): Implement this.
        (rename_folder): Implement a rename operation.

svn path=/trunk/; revision=4590
2000-08-08 03:42:47 +00:00
4d5427769c Remove exists, create, delete. A CamelFolder now always references an
* camel-folder.c: Remove exists, create, delete. A CamelFolder
	now always references an existing folder. Remove delete_messages
	too since it wasn't being used. Add a "create" flag to
	get_subfolder saying whether or not to create the subfolder if it
	doesn't yet exist.

	* camel-store.c (camel_store_get_folder): Add a "create" flag to
	say whether or not to create the folder if it doesn't yet exist.
	(camel_store_delete_folder): New method, moved from CamelFolder.
	(cache_folder, uncache_folder): Fix up a bit.
	(get_folder_name): Explain what this is for.

	* providers/mbox/camel-mbox-folder.c:
	* providers/mbox/camel-mbox-store.c: Update. Remove support for
	hierarchical folders to simplify this for now, since we're not
	using it, and it's not completely clear how they should work in an
	ELocalStorage world. Needs to be revisited.

	* providers/pop3/camel-pop3-folder.c (delete_messages): Remove.
	* providers/pop3/camel-pop3-store.c (get_folder): Update.

	* providers/vee/camel-vee-folder.c (exists): Remove.
	* providers/vee/camel-vee-store.c (vee_get_folder): Update.

svn path=/trunk/; revision=3453
2000-06-07 00:06:29 +00:00
8d6afbe910 Ref and unref objects in the service cache properly.
2000-06-02  Christopher James Lahey  <clahey@helixcode.com>

	* camel-session.c: Ref and unref objects in the service cache
	properly.

	* camel-store.c: Ref the folder when returning it using
	lookup_folder.  Used the folder's full name for the key for the
	folder cache since that's used to uncache it.

svn path=/trunk/; revision=3388
2000-06-02 16:12:26 +00:00
631dda8ae0 Init filter_from to NULL, for exception case. (mbox_get_message_by_uid):
2000-05-30  Not Zed  <NotZed@HelixCode.com>

        * providers/mbox/camel-mbox-folder.c (mbox_append_message): Init
        filter_from to NULL, for exception case.
        (mbox_get_message_by_uid): Cast off_t to long int for diagnostics.

        * camel-url.c (camel_url_hash): Hash funciton for using camel
        url's as hash keys.
        (camel_url_equal): equal function for same.

        * camel-session.c (camel_session_finalise): Free cached services.
        (camel_session_init): Init service cache.
        (service_cache_remove): destroy callback to remove a service from
        the cache.

        * camel-store.c (get_folder_internal): Remove the extra ref of the
        folder.  That seems the right behaviour ...?
        (camel_store_get_type): Doh, actually call store init, so the
        cache works.
        (cache_folder): strdup the folder name!  no wonder it never found
        it again.

svn path=/trunk/; revision=3298
2000-05-30 22:35:40 +00:00
3cc160e17b diff -r1.206 ChangeLog
2a3,9
> 	* camel-store.c (camel_store_init): Move it to here.  If this
> 	level is going to maintain it, it should set it up.  Lets see what
> 	caching folders breaks :(
>
> 	* providers/pop3/camel-pop3-store.c (camel_pop3_store_init): Dont
> 	init folder cache here.
>
7a15,16
> 	(camel_mbox_summary_expunge): Remove some debug, and dont offset
> 	frompos?

svn path=/trunk/; revision=3274
2000-05-30 01:05:18 +00:00
fe97fa2fbb kill camel-log
svn path=/trunk/; revision=2487
2000-04-18 19:05:15 +00:00
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
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
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
d3d2adb98c add CamelExceptions to several functions. Use camel_session_new to
* camel-session.h:
        * camel-session.c: add CamelExceptions to several functions. Use
        camel_session_new to initialize the session and URL fields of
        created CamelStores as appropriate.

        * camel-store.h:
        * camel-store.c
        * camel-service.h:
        * camel-service.c: Move the session and url (and associated
        functions) from CamelStore to CamelService. Add url_flags to
        CamelService so subclasses can specify which URL components
        are mandatory for them. Add camel_session_new for
        camel_session_get_store* to use.

        * providers/mbox/camel-mbox-folder.c:
        * providers/mbox/camel-mbox-store.c:
        * providers/mbox/camel-mbox-store.h: Update for above changes.

svn path=/trunk/; revision=1888
2000-02-21 18:38:58 +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
cd9e88989f fix minor typos
svn path=/trunk/; revision=1795
2000-02-16 15:44:55 +00:00
98e15c6b5c add recipient_list to the recipients, not recipients_list. I don't know
2000-01-24  bertrand  <bertrand@helixcode.com>

	* camel/camel-recipient.c (camel_recipient_table_add_list):
	add recipient_list to the recipients, not recipients_list.
	I don't know what that variable was doing here.

2000-01-23  bertrand  <bertrand@helixcode.com>

	* camel/camel-store.c (camel_store_get_session):
	added a public get_session method.

	* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary):
	(camel_mbox_load_summary): load/save message sizes in the summary file

	* camel/providers/mbox/camel-mbox-summary.h:
	added a size field to the message information
	structure.

	* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary):
	copy message size to the mbox summary information too.

	* camel/camel-stream-fs.c (_seek): updated to
	work with bounded fs streams.
	(_write): ditto.
	(_read): ditto.

	* camel/camel-stream-fs.h (struct ):
	added the cur_pos, inf_bound and sup_bound
	members to allow for bounded fs stream.

	* camel/camel-stream-fs.c (_set_bounds): new func.
	(_init_with_fd_and_bounds): idem.
	(_init_with_name_and_bounds): idem.
	New functions to allow the usage of bounded fs streams.

	The bounded fs stream allow, for example, to make a stream
	from a message stored in an mbox file.

svn path=/trunk/; revision=1620
2000-01-24 15:07:18 +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
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
d938232d3c Address update
svn path=/trunk/; revision=1147
1999-08-29 22:13:34 +00:00
1c721c4abb remove stupid debug code. (add_mail_store): use camel_session_get_store
1999-08-12  bertrand  <Bertrand.Guiheneuf@aful.org>

	* tests/ui-tests/store_listing.c (show_folder_messages):
	remove stupid debug code.
	(add_mail_store): use camel_session_get_store instead
	of creating MH store directly.
	(main): load MH provider.

	* camel/camel-provider.c (camel_provider_register_as_module):
	register new provider.
	(camel_provider_get_for_protocol):
	Now, implementation is correct.

	* camel/camel-store.c (_finalize):
	* camel/camel-store.h (struct _CamelStore):
	further disabled url_name field use.
	URL will be generated dynamically.

Ben dam don dieu, vla t'y pas que ya tout le bourier qui marche !
(Autoload store/protocol from URL works)

svn path=/trunk/; revision=1108
1999-08-12 21:01:07 +00:00
96b7f9a5fd compilation and runtime fixes.
1999-08-12  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-session.c (camel_session_get_store_for_protocol):
	compilation and runtime fixes.

	* camel/providers/MH/camel-mh-store.c (_init):
	synced with CamelStore.

	* camel/camel-store.c (_init):
	in CamelStore::init, url_name is now const.
	disabled url_name copy.

Last check in did not even compile...

svn path=/trunk/; revision=1107
1999-08-12 11:00:04 +00:00
33ffe9aadc Message creation still consumes a lot of
memory (maybe 2000k) and I really don't
understand why. As soon as I get gtk working
on SunOS, purify should hopefully give me the answer.

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

	* camel/camel-service.c (_finalize):
	* camel/camel-stream-fs.c (_finalize):
	(_destroy): close file descriptor.
	* camel/camel-stream-mem.c (_finalize):
	* camel/camel-store.c (_finalize):
	* camel/camel-folder.c (_finalize):

svn path=/trunk/; revision=1104
1999-08-11 10:59:17 +00:00
db89b1a62f updated some autogen doc stuff. Still don't understand warnings :(
1999-08-06  bertrand  <Bertrand.Guiheneuf@aful.org>

	* devel-docs/camel/:
	updated some autogen doc stuff.
	Still don't understand warnings :(

	* camel/camel-data-wrapper.c:
	* camel/providers/MH/camel-mh-store.c:
	* camel/url-util.c:
	* camel/gmime-content-field.c:
	* camel/camel-store.c:
	various inline doc corrections.

	* camel/camel-folder.c (get_message_count):
	new method. Returns the number of message
	in the folder.

svn path=/trunk/; revision=1092
1999-08-06 17:28:26 +00:00
cf2f1c428f add debug information (_list_subfolders): test if first char in folder
1999-08-06  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/providers/MH/camel-mh-folder.c (_exists): add debug information
	(_list_subfolders): test if first char in folder name is not '.'
	before adding it to the folder list.

	* camel/camel-store.c (_init):
	disable session check temporarily
	(_get_separator):
	(_get_folder): new static func.
	Fixed several oddities in class definition.

	* camel/providers/MH/camel-mh-store.c (camel_mh_store_get_type):
	parent type is CAMEL_STORE_TYPE not CAMEL_FOLDER_TYPE

	* camel/camel-store.c:
	prent class is CamelServiceClass not GtkObjectClass

	* camel/url-util.c :
	cosmetic changes + use of const when possible.
	(find_host):
	fix a bug: when there is no host and no port don't skip the '/'
	all static find_* func are now named _func_*
	(g_url_free): destructor func.
	cache field has been disabled. Constructing the url string
	won't be too slow and will occur rarely enough that we
	do not need to add complexity to this code.

	* camel/providers/MH/camel-mh-store.c:
	parent class is CamelStorClass not GtkObjectClass

svn path=/trunk/; revision=1087
1999-08-06 14:17:27 +00:00
b9daf0016b new public functions (_set_name): set full_path.
* camel/camel-folder.c (camel_folder_set_name):
	(camel_folder_get_name):
	new public functions
	(_set_name): set full_path.

	(_set_full_name):
	(camel_folder_set_full_name):
	commented out this functions def.
	It would make things very difficult to handle, and would not
	be very useful.

	* camel/providers/MH/camel-mh-store.h:
	* camel/providers/MH/camel-mh-store.c (camel_mh_store_set_toplevel_dir):
	(camel_mh_store_get_toplevel_dir):
	* camel/providers/MH/camel-mh-folder.c (_set_name):
	* camel/providers/MH/camel-mh-folder.h:
	use (gchar *) instead of (GString *) everywhere.
	use const when necessary.

	* camel/camel-folder.h (struct _CamelFolder):
	removed unused message_list field.

svn path=/trunk/; revision=1072
1999-08-03 15:37:35 +00:00
cac0ba57e6 merge a lot of work. Rough ChangeLog will follow
svn path=/trunk/; revision=1052
1999-08-01 13:38:28 +00:00
fce26238c4 Implemented base64 encoder based on CamelStreams. Should the
1999-07-13  Miguel de Icaza  <miguel@gnu.org>

	* camel/gmime-base64.c (gmime_encode_base64): Implemented base64
	encoder based on CamelStreams.  Should the encoder/decoder be a
	Stream itself?

	* camel/gmime-utils.c: include config.h here.
	* camel/url-util.c: ditto.
	* camel/gstring-util.c: ditto.
	* camel/gmime-content-field.c: ditto.
	* camel/camel-stream.c: ditto.
	* camel/camel-stream-fs.c: ditto.
	* camel/camel-store.c: ditto.
	* camel/camel-simple-data-wrapper.c: ditto.
	* camel/camel-session.c: ditto.
	* camel/camel-service.c: ditto.
	* camel/camel-mime-part.c: ditto.
	* camel/camel-mime-message.c: ditto.
	* camel/camel-log.c: ditto.
	* camel/camel-data-wrapper.c: ditto
	* camel/camel-folder.c: ditto.

	* camel/camel-stream.c (camel_stream_write): Moved api
	documentation to the places that they document.
	(camel_stream_class_init): Virtual classes do not need to have a
	default implementation.  So null them all.
	(camel_stream_write): Return value from write.
	(camel_stream_available): implement.
	(camel_stream_write_strings): documented.

	* devel-docs/query/virtual-folder-in-depth.sgml: Small
	reformatting

1999-06-28  bertrand  <Bertrand.Guiheneuf@inria.fr>

	* tests/test2.c (main): now use
	CamelDataWrapper::contruct_form_stream to test

svn path=/trunk/; revision=1024
1999-07-15 00:11:56 +00:00
fac699cd43 typo fix.
1999-05-11  bertrand  <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-store.c: typo fix.

svn path=/trunk/; revision=903
1999-05-11 17:18:41 +00:00
cf2aea02b6 static functions naming follows gnome coding style guide.
1999-05-11  bertrand  <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-store.c:
	* camel/camel-service.c:
	* camel/camel-folder.c:
	* camel/camel-data-wrapper.c:
	* camel/camel-mime-part.c:
	static functions naming follows gnome
	coding style guide.

svn path=/trunk/; revision=902
1999-05-11 17:09:43 +00:00
d224d1aaad initialize folder object.
1999-04-25  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-session.c (camel_session_get_store_from_provider):
	initialize folder object.

	* camel/camel-store.c (init): new method.
	called by session object at instantiation time.

	* camel/camel-store.h (struct _CamelStore):
	new fields : session and url_name

svn path=/trunk/; revision=879
1999-04-25 21:58:27 +00:00
eb2c9a6024 basic provider structure. Have to write the code for dynamic loading.
1999-04-25  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-provider.[ch]:
	basic provider structure. Have to write the
	code for dynamic loading.

svn path=/trunk/; revision=876
1999-04-25 09:45:13 +00:00
ed6323e978 more test implementation.
1999-04-22  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/providers/MH/camel-mh-store.c:
	more test implementation.

	* camel/camel-store.c (camel_store_get_type): typo fix

A lot of small adds and corrections.

svn path=/trunk/; revision=867
1999-04-21 22:45:49 +00:00
50b8c2c0af A first attempt at setting up the documentation system.
svn path=/trunk/; revision=862
1999-04-21 12:56:28 +00:00
94dc5be053 now CamelStore inherits from CamelService.
1999-04-20  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-store.h: now CamelStore inherits from
	CamelService.

svn path=/trunk/; revision=861
1999-04-20 20:36:26 +00:00
bba607613c basic abstract service class.
1999-04-20  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-service.c (camel_service_class_init):
	basic abstract service class.

svn path=/trunk/; revision=860
1999-04-20 20:23:48 +00:00
3ac5092836 missing files.
svn path=/trunk/; revision=855
1999-04-18 20:26:51 +00:00