Commit Graph

95 Commits

Author SHA1 Message Date
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
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
b29855a647 add a missing #include
svn path=/trunk/; revision=6154
2000-10-24 22:20:44 +00:00
360675f54b lots of i18n fixes
svn path=/trunk/; revision=6143
2000-10-24 05:23:27 +00:00
e81e64f8dd Simple subclass of CamelFolderSummary that also keeps a UIDVALIDITY value
* providers/imap/camel-imap-summary.c: Simple subclass of
	CamelFolderSummary that also keeps a UIDVALIDITY value (and
	doesn't, for the moment, build content info).

	* providers/imap/camel-imap-folder.c:
	(various): Use a CamelImapSummary to store/fetch summary info.
	(camel_imap_folder_new): Take a path to a file to use for the
	summary. Set the folder's permanent_flags correctly according to
	the server response. Read in the summary (checking the
	UIDVALIDITY) and update it if it's out of date.
	(imap_refresh_info): Just fetch UIDs and flags. If the UIDs all
	match, update the flags as needed and be done with it. Otherwise,
	delete messages that have been expunged from the server and fetch
	full summary info for any new messages.
	(imap_sync): Save the summary to disk.
	(imap_update_summary): Renamed from imap_get_summary_internal. Can
	now be told to get summary for only a subset of messages. Use
	camel-mime-utils functions rather than rolling our own header
	parsing.
	(imap_get_message_info_internal): Merged into imap_update_summary.
	(imap_set_message_flags): Don't marked the message FOLDER_FLAGGED
	if we're not actually changing the value of any of the flags.
	(camel_imap_folder_changed): Deal with EXISTS rather than RECENT.

	* providers/imap/camel-imap-store.c (imap_connect): Call
	camel_session_get_storage_path and save the value.
	(get_folder): Create a local directory to store summary
	information and pass a summary file name to camel_imap_folder_new.
	Don't call camel_folder_refresh_info from here any more since
	camel_imap_folder_new does it again.

	* providers/imap/camel-imap-command.c (camel_imap_command): Add a
	special case to this to make it possible to get the repsonses from
	a SELECT and still have store->current_folder be updated
	correctly.
	(imap_read_response): parse EXISTS rather than RECENT

	* camel-session.c (camel_session_get_storage_path): Use
	e_mkdir_hier.

	* camel-folder-summary.c (camel_folder_summary_remove_index): New
	function.

	* camel-mime-utils.c (header_raw_append_parse): fix this.
	(camel-mime-parser.c doesn't use this code because of the MEMPOOL
	optimization, so nothing was ever actually calling it before.)

svn path=/trunk/; revision=5891
2000-10-12 20:55:11 +00:00
38c7385713 Make this not leak.
* camel-session.c (camel_session_get_storage_path): Make this not
	leak.

svn path=/trunk/; revision=5243
2000-09-07 21:00:56 +00:00
1fb4f1bfee Make this take a path to a directory that Camel can use for its own
* camel-session.c (camel_session_new): Make this take a path to a
	directory that Camel can use for its own nefarious purposes.
	(camel_session_get_storage_path): New function to return a path
	that a service can use for its own nefarious sub-purposes.

	* camel-service.c (camel_service_get_path): New method (and
	useful default implementation) to get a (relative) pathname
	corresponding to the service.

svn path=/trunk/; revision=5239
2000-09-07 19:59:53 +00:00
2bdcfe5c47 Make CamelServices connect only when told to (old behavior). Make CamelRemoteStore do its stuff in service::connect, not ::post_connect.
svn path=/trunk/; revision=5116
2000-08-30 17:09:42 +00:00
da570c6660 CamelRemoteStore: a new generic store for stores that connect to servers. Prepare for the ability to cancel operations (much better exception handling). Clean up IMAP like nobody's business
svn path=/trunk/; revision=5103
2000-08-29 21:28:46 +00:00
8cb514d6dd Merge with camel-async.
svn path=/trunk/; revision=4687
2000-08-10 17:30:50 +00:00
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
a7f40b2f5f Updated
2000-06-22  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/sendmail/camel-sendmail-provider.c:
	* providers/vee/camel-vee-provider.c:
	* providers/smtp/camel-smtp-provider.c:
	* providers/mbox/camel-mbox-provider.c:
	* providers/pop3/camel-pop3-provider.c:
	* providers/imap/camel-imap-provider.c: Updated

	* camel-session.c: Moved service_cache hash table into the
	providers.
	(service_cache_remove): Updated.
	(camel_session_get_service): Updated.

	* camel-url.c (camel_url_hash): Took out the hashing of
	url->passwd. We don't want this anymore.

	* providers/imap/camel-imap-folder.c (imap_init): Took out
	references to 'namespace'
	(camel_imap_folder_init): Same

	* providers/imap/camel-imap-folder.h: No more namespace. We are
	instead going to use url->path as the namespace.

svn path=/trunk/; revision=3700
2000-06-22 21:51:40 +00:00
9272361bba Only fetch the summary if the folder summary doesn't already exist. When
2000-06-20  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/imap/camel-imap-folder.c (imap_get_summary): Only
	fetch the summary if the folder summary doesn't already exist.
	When the summary *does* exist, start fetching from 1, not 0.
	(imap_free_summary): Don't do anything here.
	(imap_finalize): Free the summary here instead of in
	imap_free_summary().

	* camel-url.c (check_equal): No need to check s1 if s2 is NULL
	(camel_url_equal): Don't check the passwd component of the url.

and in mail/component-factory.c (create_imap_storage): removal of
debug statements
mail/folder-browser.c (folder_browser_load_folder): improved imap
service parser

svn path=/trunk/; revision=3649
2000-06-20 21:11:07 +00:00
2aefadf282 Add another argument, "mode", which can be CAMEL_AUTHENTICATOR_ASK or
* camel-session.c (camel_session_query_authenticator): Add another
	argument, "mode", which can be CAMEL_AUTHENTICATOR_ASK or
	CAMEL_AUTHENTICATOR_TELL, so callers can get the app to un-cache
	bad info.

	* providers/pop3/camel-pop3-store.c (pop3_connect): uncache the
	password if it doesn't work.

svn path=/trunk/; revision=3496
2000-06-09 22:00:53 +00:00
fd1304e14f Don't ref the services in the cache.
2000-06-02  Christopher James Lahey  <clahey@helixcode.com>

	* camel-session.c: Don't ref the services in the cache.

svn path=/trunk/; revision=3396
2000-06-02 19:15:22 +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
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
ba6b73fe56 New function to replace camel_provider_scan. Returns a list of either (a)
* camel-session.c (camel_session_list_providers): New function to
        replace camel_provider_scan. Returns a list of either (a) all
        currently-loaded providers, or (b) all available providers.

        * camel-url.[ch]: Add an "empty" flag to CamelURL (indicating that
        it contains only a protocol).

        * camel-service.c (camel_service_query_auth_types): Make this take
        a CamelException (since it may have to try to connect to the
        server, and it might not able to.)

        * providers/pop3/camel-pop3-store.c: add KPOP (Kerberized POP)
        support. This is mostly so I have two kinds of authmech to play
        with instead of just one. (But it does actually work.)

        * providers/smtp/camel-smtp-transport.c (query_auth_types): update
        for prototype change, but disable the functionality, since it
        doesn't really support any auth types yet.
        (camel_smtp_transport_get_type): add an object init function to
        set the service url_flags.

svn path=/trunk/; revision=2797
2000-05-04 15:23:43 +00:00
0524f7c06a Tweak the definition of CamelProvider. Among other things, a provider may
* camel-provider.h: Tweak the definition of CamelProvider. Among
	other things, a provider may now be both a store and a transport.

	* camel-provider.c: Remove a lot of code we had no intention of
	using. This now only contains two functions: camel_provider_init
	to read the installed .urls files, and camel_provider_load to
	load and register a new provider.

	* camel-session.c: Remove more unused code and simplify some of
	the remaining code. The list of available provider modules is now
	stored in the session, and it handles calling camel_provider_load
	to load them as needed. Provider registration is now done by
	calling back from the module init routine, which allows a single
	module to register providers for multiple URL types.

	* providers/*: Update provider structures and init routines for
	the new stuff. Add a .urls file to each provider specifying what
	urls it handles, and install that with the library.

	* providers/nntp/camel-nntp-provider.c: Add hints towards
	supporting both news: and nntp: URLs, and using nntp as both a
	store and a transport.

svn path=/trunk/; revision=2691
2000-04-30 15:36:16 +00:00
4f686ae899 Set the exception if no provider is found.
* camel-session.c (get_store_for_protocol_with_url): Set the
	exception if no provider is found.

svn path=/trunk/; revision=2477
2000-04-17 19:38:16 +00:00
2e4a546307 the URL RFC says the port must be numeric, so we don't want to do
* g_url_new really wanted to take a CamelException. So, rename
	Gurl to CamelURL, g_url_* to camel_url_* (with camel_url_new
	taking an exception), and url-util.[ch] to camel-url.[ch]. Also
	force url->port to be numeric and remove camel_service_getport. (I
	was confused before: the URL RFC says the port must be numeric, so
	we don't want to do getportbyname.)

svn path=/trunk/; revision=2300
2000-04-06 03:52:39 +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
7c164f12b9 More changes than a man can remember.
The UI works now.

svn path=/trunk/; revision=2074
2000-03-06 09:38:42 +00:00
64edd4d5de add camel_session_get_transport_for_protocol
svn path=/trunk/; revision=1922
2000-02-24 21:19:05 +00:00
8ea1212d99 Add "authenticator" to CamelSession and update things to use it.
svn path=/trunk/; revision=1890
2000-02-21 19:56:49 +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
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
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
0472611db8 those two func go here now.
1999-08-13  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/hash-table-utils.c (g_strcase_equal):
	(g_strcase_hash): those two func go here now.

	* camel/hash_table_utils.c (hash_table_generic_free):
	free a (gpointer, gpointer) hash table pair.

	* camel/camel-mime-message.c (camel_mime_message_init): use
	case insensitive hash table functions.
	(_set_flag):
	(camel_mime_message_set_flag):
	(_get_flag):
	(camel_mime_message_get_flag):
	Use const for flag name, they are now
	duplicated.

svn path=/trunk/; revision=1110
1999-08-13 14:30:07 +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
f888058fc6 new function: returns a store for an URL.
1999-08-12  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-session.c (camel_session_get_store):
	new function: returns a store for an URL.
	(camel_session_get_store_for_protocol):
	new functionc: returns a store for a given
	store protocol (as IMAP/POP/MH ...)
	* camel/string-utils.c (g_strcase_equal):
	(g_strcase_hash): case insensitive hash table
	funcs.

	* camel/camel-session.c (camel_session_init): hash table
	keys are case insensitive.

	* camel/camel-provider.c (camel_provider_get_for_protocol):
	new function, returns the last registered
	provider for a protocol.

svn path=/trunk/; revision=1106
1999-08-12 10:24:01 +00:00
a478ee7e9d new file. MH provider registration stuff.
1999-08-12  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/providers/MH/camel-mh-provider.c:
	new file. MH provider registration stuff.

	* camel/camel-provider.c (camel_provider_register_as_module):
	load a provider from a shared object (plugin).
	(camel_provider_register): register a provider
	"by hand". Used for statically defined providers.

	* tests/test7.c: new test.
	tests providers loading framework.

Providers modules loading Works !!! :))))

svn path=/trunk/; revision=1105
1999-08-11 22:34:09 +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
4e1dac9940 new methods
1999-05-01  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-folder.c
	(__camel_folder_get_mode):
	(camel_folder_get_mode):
	(camel_folder_get_parent_store):
	(__camel_folder_get_parent_store):
	(camel_folder_get_parent_folder):
	(__camel_folder_get_parent_folder):
	new methods

	* camel/camel-service.c: put __ prefix before
	private virtual funcs.

svn path=/trunk/; revision=886
1999-05-01 14:04:18 +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
f9595bb213 new method to set the default provider for a protocol.
1999-04-25  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-session.c (camel_session_set_provider):
	new method to set the default provider for a protocol.
	(camel_session_get_store_from_provider):
	new method to instantiate a folder from a provider.

	* camel/camel-provider.h: s/GString/gchar/g
	+ typo fix.

svn path=/trunk/; revision=878
1999-04-25 11:21:33 +00:00
8fa0292a20 start session object
svn path=/trunk/; revision=877
1999-04-25 09:55:14 +00:00