Commit Graph

34 Commits

Author SHA1 Message Date
08fb7329cb Fixing the license text.
svn path=/trunk/; revision=14212
2001-10-27 16:59:46 +00:00
02dcd0aadf Update the licensing information to require version 2 of the GPL
(instead of version 2 or any later version).

svn path=/trunk/; revision=14190
2001-10-27 00:25:49 +00:00
7429141682 Use search_type_mlist for mailing list searches.
* camel-filter-search.c, camel-folder-search.c (check_header): Use
	search_type_mlist for mailing list searches.

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

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

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

svn path=/trunk/; revision=13894
2001-10-22 21:08:05 +00:00
1
a5fa3f992d Removed charset/locale charset lookup and iconv_open/close functions,
2001-10-11    <NotZed@Ximian.com>

        * camel-charset-map.[ch]: Removed charset/locale charset lookup
        and iconv_open/close functions, moved to gal.  Fixed all callers.

svn path=/trunk/; revision=13602
2001-10-11 22:08:20 +00:00
0676d2890e Don't reuse the exception if it has already been set.
2001-09-13  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-filter-driver.c (camel_filter_driver_filter_folder): Don't
	reuse the exception if it has already been set.
	(camel_filter_driver_filter_message): Same here. Also use the new
	return value from camel_filter_search_match().

	* camel-filter-search.c (camel_filter_search_match): Return an
	integer (matched, no-match, or error).

svn path=/trunk/; revision=12819
2001-09-14 01:44:18 +00:00
8a56749aa6 Remove my iso8859-1 -> iso-8859-1 hack and use
2001-07-19  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (rfc2047_decode_word): Remove my iso8859-1 ->
	iso-8859-1 hack and use camel_charset_get_iconv_friendly_name()
	instead.
	(rfc2184_decode): Use camel_charset_get_iconv_friendly_name()

	* camel.c (camel_init): Call camel_charset_map_init().

	* camel-charset-map.c (camel_charset_map_init): New function to
	initialize the charset-equivalent lookup table. To be called by
	camel_init().
	(camel_charset_get_iconv_friendly_name): New function to try and
	convert a charset into something that iconv is more likely to
	accept.

svn path=/trunk/; revision=11235
2001-07-19 21:00:27 +00:00
91cc026904 Update the copyrights, replacing Helix Code with Ximian and
helixcode.com with ximian.com all over the place.

svn path=/trunk/; revision=10440
2001-06-23 08:52:02 +00:00
092b7e4449 Redo the BUILD_MAP code to not depend on libunicode. Now it only generates
* camel-charset-map.c: Redo the BUILD_MAP code to not depend on
	libunicode. Now it only generates a map of "popular" 8bit
	encodings. (It's not worthwhile to support obscure encodings,
	because any mailer that supports them will support UTF8 too. And
	Chinese and Japanese use mostly the same UTF8 characters so you
	need to decide between those encodings based on the locale or
	the charset of the message you're replying to or the input
	method you used. So this is sufficient for camel_charset_best's
	use.)

	* camel-charset-map-private.h: Regenerated.

	* camel.c (camel_shutdown): Move #ifdefs around to prevent a
	warning.

svn path=/trunk/; revision=10055
2001-05-30 21:32:18 +00:00
533abeb00f Automagically call camel_shutdown() atexit() ;-) (camel_init): Also
2001-04-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel.c (camel_init): Automagically call camel_shutdown()
	atexit() ;-)
	(camel_init): Also initialize NSS databases as read/write for
	S/MIME and if NSS fails to init, try initializing with volatile
	databases.

	* camel-file-utils.h: #include <sys/types.h> for off_t.

svn path=/trunk/; revision=9609
2001-04-27 00:16:41 +00:00
18af050c05 Remove UNICODE_CFLAGS (and some other stuff that's redundant with
* Makefile.am (INCLUDES): Remove UNICODE_CFLAGS (and some other
	stuff that's redundant with EXTRA_GNOME_CFLAGS)
	(libcamel_la_LIBADD): Replace UNICODE_LIBS with GAL_LIBS.

	* camel-search-private.c:
	* camel-pgp-context.c:
	* camel-mime-utils.c: Use gunicode interfaces rather than
	libunicode.

	* camel-charset-map.c: Use gunicode rather than libunicode. (The
	charmap-regen code still depends on libunicode though.)

	* camel-mime-filter-charset.h:
	* tests/message/test2.c (convert): Use iconv rather than
	unicode_iconv.

	* providers/smtp/Makefile.am (libcamelsmtp_la_LIBADD):
	* providers/pop3/Makefile.am (libcamelpop3_la_LIBADD):
	* providers/local/Makefile.am (libcamellocal_la_LIBADD): Remove
	UNICODE_LIBS.

	* camel.c (camel_init): Remove call to unicode_init.

	* camel-mime-parser.c: Remove unused unicode.h include.

svn path=/trunk/; revision=9585
2001-04-26 18:21:32 +00:00
fe962a2055 Big header cleanups and nntp compile fix
svn path=/trunk/; revision=9024
2001-03-29 20:31:40 +00:00
c768305c2f Don't include system include dir.
2001-03-17  Jeffrey Stedfast <fejj@ximian.com>

	* Makefile.am: Don't include system include dir.

	* camel.c: Use quotes around the nss.h include so it doesn't try
	to use the systen nss.h file.

	* camel-tcp-stream-ssl.c: Same here.

svn path=/trunk/; revision=8786
2001-03-17 22:13:19 +00:00
403205b15e Don't use the hardcoded cert db directory, use the one passed in.
2001-03-15  Jeffrey Stedfast  <fejj@ximian.com>

	* camel.c (camel_init): Don't use the hardcoded cert db directory,
	use the one passed in.

	* camel-tcp-stream-ssl.c (ssl_get_client_auth): Wrote the default
	implementation. Not that we'll use this though, since this is the
	default implementation provided by NSS anyway. This more or less
	serves as a reference in case we want to change anything.
	(ssl_auth_cert): Same.
	(ssl_bad_cert): Changed the prompt string and free it when we're
	done.

svn path=/trunk/; revision=8753
2001-03-16 04:41:49 +00:00
2da82ca262 So it turns out that NSS_Init *isn't* idempotent, so we have to protect
2001-03-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel.c (camel_init): So it turns out that NSS_Init *isn't*
	idempotent, so we have to protect against initializing it more
	than once(contrary to what their design specs suggest).

	* camel-session.c (camel_session_get_service): Use
	camel_exception_is_set() - Makes no difference but it's more
	consistant with how we normally do it.

	* camel-provider.h (CAMEL_URL_ALLOW_SSL): We don't need this.

	* providers/imap/camel-imap-provider.c: Define the imaps provider.
	(camel_provider_module_init): Register the imaps provider.

	* camel-provider.c (camel_provider_init): Only add the protocol to
	the hash table if it's non empty. Also, g_strdup() the filename
	into the hash table.

	* providers/imap/camel-imap-store.c (camel_imap_store_init): Eek!
	So the service's URL isn't set until after this is
	initialized. This means we can't check for SSL here.
	(imap_connect): Set the SSL options here instead.

svn path=/trunk/; revision=8718
2001-03-15 01:59:00 +00:00
343844c138 Eek! So the service's URL isn't set until after this is initialized. This
2001-03-14  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-store.c (camel_imap_store_init): Eek!
	So the service's URL isn't set until after this is
	initialized. This means we can't check for SSL here.
	(imap_connect): Set the SSL options here instead.

svn path=/trunk/; revision=8715
2001-03-15 00:51:09 +00:00
e31313b07f Since all of the Mozilla libs (including NSPR and NSS) correctly handle
2001-03-13  Jeffrey Stedfast  <fejj@ximian.com>

	* camel.c (camel_init): Since all of the Mozilla libs (including
	NSPR and NSS) correctly handle reinitializations, we might as well
	init both NSPR and NSS in camel_init so we can be sure of that
	these libs have been initialized.
	(camel_shutdown): New function to call the NSS cleanup stuff.

svn path=/trunk/; revision=8690
2001-03-13 23:31:32 +00:00
abe164fb39 Created a new mode (CAMEL_AUTHENTICATOR_ACCEPT) which is a Yes/No prompt
2001-03-09  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-session.c (camel_session_query_authenticator): Created a
	new mode (CAMEL_AUTHENTICATOR_ACCEPT) which is a Yes/No prompt to
	the user. This will be needed by the SSL/TLS code to come. Also
	changed the return value to a gpointer rather than a char* to
	allow the returning of TRUE/FALSE values.

	* camel.c: Wrap stuff with HAVE_NSS

svn path=/trunk/; revision=8623
2001-03-10 00:15:49 +00:00
e12bc65aa5 Uses an SSL socket now although there's still a few things missing (like
2001-01-15  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-ssl.c (stream_connect): Uses an SSL socket now
	although there's still a few things missing (like certificate
	handling and such).

	* camel.c (camel_ssl_init): A replacement function for
	camel_init() that also initializes SSL.

svn path=/trunk/; revision=7494
2001-01-15 06:25:23 +00:00
6de256c2a2 Lock the command channel while searching. (imap_body_contains): If
2000-12-24  Not Zed  <NotZed@HelixCode.com>

        * providers/imap/camel-imap-search.c (imap_body_contains): Lock
        the command channel while searching.
        (imap_body_contains): If performing a whole uid search, then add
        references to our own summary items, dont look it up in the
        folder.  This way they can't vanish unexpectedly.

        * providers/imap/camel-imap-folder.h (CamelImapFolder): Added a
        private field.

        * providers/imap/camel-imap-private.h: Added lock for imap
        searches.

        * Merge from camel-mt-branch.

        * providers/imap/camel-imap-folder.c (imap_update_summary): Merge
        fix, use the folder->summary.
        (imap_get_message_flags, imap_set_message_flags,
        imap_get_message_user_flag, imap_set_message_user_flag): Removed
        again.
        (camel_imap_folder_init): Setup private data/lock.
        (imap_finalize): Free private data/search lock.
        (imap_search_free): Lock the search_lock.
        (imap_search_by_expression): Lock the search lock when using the
        search object.  Also copy/ref hte summary, rather than getting it
        directly.
        (imap_refresh_info): Free any info lookups.  Use folder->summary
        not imap_folder->summary.  And lock around commands.

svn path=/trunk/; revision=7150
2000-12-24 00:46:20 +00:00
e2c2e5b55a Set camel_verbose_debug to TRUE if CAMEL_VERBOSE_DEBUG is set in the
* camel.c (camel_init): Set camel_verbose_debug to TRUE if
	CAMEL_VERBOSE_DEBUG is set in the environment.

	* camel-remote-store.c (remote_send_line, remote_recv_line): only
	log if camel_verbose_debug is TRUE.

svn path=/trunk/; revision=5462
2000-09-15 18:26:36 +00:00
b1e66c4c60 Cleanup of lots of exception handling ; bugfixes
svn path=/trunk/; revision=5202
2000-09-05 20:08:10 +00:00
dbce630738 Add support for specifying on which port to connect to a server; fix a potential infinite loop in unicode.
svn path=/trunk/; revision=5041
2000-08-25 21:09:53 +00:00
8c9b0cc3f0 No longer call data_wrapper_repository_init.
2000-04-24  NotZed  <NotZed@HelixCode.com>

	* camel.c (camel_init): No longer call
	data_wrapper_repository_init.

	* camel-medium.c (write_to_stream): Moved (back) to
	camel-mime-part.
	(add_header):
	(set_header):
	(remove_header):
	(get_header): Make all these abstract, and spit warnings if
	called.  I guess it could manage the list, but well, it doesn't.

	* camel-medium.h (struct _CamelMedium): Dont store headers here,
	the implementor is the only one who knows their format.
	(CamelMediumClass): Changed header values to be void *'s.  They
	need not be strings?

	* camel-simple-data-wrapper.c (construct_from_stream): And we're
	back.  Set the output stream.
	(construct_from_parser): Moved to camel-mime-part-utils.

	* camel-mime-part-utils.c
	(camel_mime_part_construct_content_from_parser): Create the
	contents of multipart and simple messages.

	* camel-multipart.c (construct_from_parser): Moved to
	camel-mime-part-utils.
	(separate_part): Removed.

	* camel-mime-part.c (construct_from_stream): Back again!  This now
	switches over to using a mime parser for any mime parts, only.
	(my_write_to_stream): Write our headers and so forth here.
	(add_header): Add header directly, parent class is abstract.
	(remove_header): Ditto.
	(set_header): Ditto.

	* camel-data-wrapper.c (camel_data_wrapper_construct_from_stream):
	Remade abstract.
	(camel_data_wrapper_construct_from_parser): Moved to
	camel_mime_part.

	* camel-data-wrapper.h: Put back construct_from_stream.

	* camel-mime-part.h: Put construct_from_parser in here, the
	data-wrapper shouldn't know about mime.  Ok, so now to undo half
	of the last hours changes ... duh.

2a51,93
	* providers/pop3/camel-pop3-folder.c (get_message_by_number): Use
	construct_from_stream instead of set_input_stream().

	* camel-simple-data-wrapper-stream.c
	(camel_simple_data_wrapper_stream_construct): REmoved the destroy
	callback code.
	(wrapper_destroy_cb): Removed.

	* camel-simple-data-wrapper.h: Add prototype for _construct()
	method.

	* camel.c: Include unicode.h to kill a warning.

	* camel-data-wrapper.h (CameldataWrapperClass): Removed
	construct_from_stream virtual method.
	Removed get/set input stream.

	* data-wrapper-repository.[ch]: Removed&from build.  Obsoleted?
	The justification as is follows: It is mixing storage
	protocol/format with message architecture.  It really just doesn't
	serve any purpose, as each medium implementor will have to have its
	own type->handler mapping, and the only current implementor,
	mimepart has a very simple structure and no need for this.

	* camel-medium.c (write_to_stream): Moved here from most of the
	stuff in camel-mime-part.  Well, the MEDIUM is the one that knows
	what the headers are, and the content is, let it write it out.

	* camel-mime-part-utils.c (camel_mime_part_construct_content):
	Copied from camel-mime-part.c, removed handling of message
	followon state (moved to camel-mime-message).
	(camel_mime_part_construct_content_from_parser): Renamed from
	construct_content.
	(camel_mime_part_construct_headers_from_stream):
	(camel_mime_part_construct_content_from_stream):
	(camel_mime_part_store_stream_in_buffer): Removed.  Replaced by
	the new construct from parser stuff.

	* camel-mime-message.c (construct_from_parser): Do
	construct_from_parser for mime-message.
	(_write_to_stream): Set the mime-version header for medium to
	write out, rather than writing it out ourselves.

4a96,102
	(construct_from_stream): Removed.
	(camel_data_wrapper_construct_from_stream): Changed to a helper
	function, creates a mime_parser, and constructs from that.
	(set_input_stream): Removed.
	(camel_data_wrapper_set_input_stream): Removed.
	(get_input_stream): Removed.
	(camel_data_wrapper_get_input_stream): Removed.
11a110,111
	(_get_message_by_uid): Use construct_from_stream() instead of
	creating our own parser.
16a117,131
	(camel_mime_part_construct_content): Removed to
	camel-mime-part-utils.c
	(my_get_output_stream): Removed.  The streeam is in the
	data-wrapper.
	(my_get_content_object): Removed.  The content object is stored in
	the medium.  If none is there, the object wasn't created properly.
	(my_write_content_to_stream): Removed.  The content object is the
	one that knows how to write itself out!!!!!!!!
	(my_write_to_stream): Remove the base header writing stuff - has
	been moved to camel-medium, where it belongs.  This can just be
	used to check for mandatory headers.
	(my_construct_from_stream): Removed.
	(my_set_input_stream): What the hell, i'll remove this too.
	Nobody seems to understand how it differs from create from stream,
	and they both seem to serve the same purpose ...
19a135,136
	(construct_from_stream): Removed!  Job taken over by
	construct_from_parser.
24a142
	(set_input_stream): REmoved.  Replaced by construct_from_parser.

svn path=/trunk/; revision=2577
2000-04-24 06:05:41 +00:00
170588e217 use libunicode iconv functions rather than libc ones (since libc might not
* camel-mime-utils.c (rfc2047_decode_word): use libunicode iconv
	functions rather than libc ones (since libc might not have them).
	(header_decode_date): add autoconfiscation on timezone code

	* camel.c (camel_init): call unicode_init ()

svn path=/trunk/; revision=2540
2000-04-21 04:05: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
7f04720b1e don't seek the begining of the substream. (_eos): fix eos condition
2000-02-16  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-seekable-substream.c (_set_bounds): don't
	seek the begining of the substream.
	(_eos): fix eos condition testing.
	(_finalize): unref parent stream
	(_init_with_seekable_stream_and_bounds): ref parent stream

	* camel/gstring-util.c (g_string_equal_for_hash):
	(g_string_equal_for_glist): return type is int.

	* camel/camel.h:
	* camel/camel.c (camel_init): use (void)
	instead of ().

A lot of other small changes to make the set_input_stream
scheme work. It actually works.

svn path=/trunk/; revision=1798
2000-02-16 18:04:40 +00:00
784c1184a8 don't build thread related tests if evolution has been compiled with no
2000-02-10  bertrand  <Bertrand.Guiheneuf@aful.org>

	* tests/Makefile.am (THREAD_RELATED_TESTS): don't
	build thread related tests if evolution has been
	compiled with no thread support.

	* configure.in (have_pthread): allow user to enable/disable
	thread support at configure time
	(EXTRA_GNOME_CFLAGS):
	(EXTRA_GNOME_LIBS): thread support is directly
	included in this variable if enabled. No more
	EXTRA_GNOME_CFLAGS_THREADS
	Other special support should be added in
	EXTRA_GNOME_LIBS and EXTRA_GNOME_CFLAGS
	instead of redefining a new variable
	each time we want to add a new lib.
	(bonobo, ....)

	* camel/camel.c (camel_init): only try to initialize threads if
	we enabled threads support.

	* tests/ui-tests/Makefile.am (message_browser_LDADD): use
	EXTRA_GNOME_LIBS

	* configure.in (have_pthread): remove HAVE_PTHREADS
	variable. Define ENABLE_THREADS instead.

	* camel/Makefile.am: use ENABLE_THREADS not HAVE_PTHREADS
	to test if we build thread relateed code.

	* tests/Makefile.am: use EXTRA_GNOME_LIBS,
	not EXTRA_GNOME_LIBS_THREADS


I need to be able to disable thread support to use Insure.

svn path=/trunk/; revision=1725
2000-02-11 00:43:23 +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
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
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
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
3d7a8fdeac Adding missing files
svn path=/trunk/; revision=1053
1999-08-01 13:42:43 +00:00