Commit Graph

157 Commits

Author SHA1 Message Date
ac90200663 fix some obvious minor bugs noted by -Wall.
* camel-mime-utils.c (header_to_decode, header_mime_decode): fix
	some obvious minor bugs noted by -Wall.

svn path=/trunk/; revision=2563
2000-04-23 17:17:31 +00:00
5fcb83b5fb Whole swag of changes. Still lots of cleanup remaining ...
2000-04-23  NotZed  <NotZed@HelixCode.com>

	* camel-data-wrapper.c (set_mime_type_field): Ref the
	content_field when we get it?

	* camel-mime-parser.c (camel_mime_parser_unstep): New function.
	Cause a subsequent call to mime_parser_step() to return the same
	state over again.

	* providers/mbox/camel-mbox-folder.c (_get_message_by_uid):
	Initial test code using the mime parser to construct the message.

	* camel-mime-part.c (construct_from_parser): part constructor.
	(camel_mime_part_construct_content): Basically a simpler
	replacement for the datawrapper repository.
	(camel_mime_part_init): Set the default type to text/plain.

	* camel-simple-data-wrapper.c (construct_from_parser): Initial
	implementation of a content constructor.

	* camel-multipart.c (construct_from_parser): Multipart
	construction routine.
	(camel_multipart_init): Set the default multipart type to
	multipart/mixed.  Duh, no subtype is not allowed anyway.

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

	* camel-mime-message.h (struct _CamelMimeMessage): Removed
	send_date, and received_date, and replaced it with a time_t
	'date' (this is what the header is called), and date_offset to
	store the GMT offset of the date.

	* camel-mime-message.c (camel_mime_message_set_from): Update raw
	header as we go.
	(_set_from): Removed.
	(_get_from): Removed.
	(camel_mime_message_get_from): Moved implementation here.
	(camel_mime_message_get_subject): Move implementation here.
	(_get_subject): Nuked.
	(camel_mime_message_set_subject): Handle utf-8 input, and also
	update raw header when changed.
	(_set_subject): Removed.
	(_set_received_date): Removed.
	(camel_mime_message_set_received_date): Removed.
	(_get_received_date): Removed.
	(camel_mime_message_get_received_date): Removed.
	(_get_sent_date): Removed.
	(camel_mime_message_get_sent_date): Removed.
	(camel_mime_message_get_date): New function to get the date as a
	time_t/offset.
	(camel_mime_message_set_date): Set the date as a time_t/offset.
	(camel_mime_message_get_date_string): Get the date as a string.
	(camel_mime_message_init): Initialise the current date as
	'CMAEL_MESSAGE_DATE_CURRENT'.
	(_set_reply_to): Removed.
	(camel_mime_message_set_reply_to): Moved implementation here.
	This is still broken, reply-to can have multiple addresses.
	(_get_reply_to): Removed.
	(_set_field): Removed, no longer used anywhere.
	(_get_field): Also removed.
	(_init_header_name_table): Add the Date header.
	(process_header): Also handle snooping of Date header here.

	* camel-stream-filter.c (finalise): Unref the source stream on
	finalise, and also call the parent class (oops).

	* camel-mime-parser.c (camel_mime_parser_state): New function to
	get the current parser state.
	(camel_mime_parser_stream): Allow you to get the stream back from
	the mime_parser.
	(camel_mime_parser_fd): Alternative to allow you to get the fd
	back from the mime_parser.
	(folder_scan_init_with_stream): Properly ref/unref the stream.
	(folder_scan_close): Properly unref the stream/close the fd on
	exit.
	(folder_scan_init_with_fd): Close the old fd if there is one.

	* camel-data-wrapper.c (camel_data_wrapper_construct_from_parser):
	New method, construct a data wrapper from an initialised parser.
	(construct_from_parser): Empty implementation.

	* providers/mbox/camel-mbox-summary.c (message_struct_new):
	Convert subject line to unicode, before storing in the summary.
	(strdup_trim): Removed, no longer needed.

	* providers/mbox/camel-mbox-folder.c (_get_message_by_uid): Ref
	the folder after setting it in the new message.

	* camel-mime-part.c (my_set_content_object): Have the headers
	follow the content-type change here too.
	(my_write_to_stream): Dont write content-type here, automatically
	stored in the headers ...
	(my_write_to_stream): Use header_disposition_format() to format
	the content-disposition header.
	(my_write_to_stream): Removed old code, all headers are now stored
	in the camel-medium level, always.  Need to do the same with
	camel-mime-message i suppose ...
	(my_write_to_stream): Write the content using the parent class,
	not some weird function.
	(camel_mime_part_class_init): Dont override get_output_stream.
	(camel_mime_part_encoding_from_string): Bleh, make it
	case-insensitive.

	* camel-mime-utils.c (header_content_type_is): Handle empty types.
	(header_encode_string): Start of an implementation of the rfc2047
	encoder.  It does iso-8859-1, and us-ascii, and utf-8 (others get
	tricky *sigh*)
	(rfc2047_encode_word): Convert a single word/string into rfc2047
	encoding.
	(quoted_encode): Different quoted-printable encoding for rfc2047
	encoding of headers.

	* gmime-content-field.c (gmime_content_field_write_to_stream): Use
	header_content_type_format() to format it.

svn path=/trunk/; revision=2560
2000-04-23 10:10:44 +00:00
0d82053015 Ref the folder after setting it in the new message.
2000-04-22  NotZed  <NotZed@HelixCode.com>

	* providers/mbox/camel-mbox-folder.c (_get_message_by_uid): Ref
	the folder after setting it in the new message.

	* camel-mime-part.c (my_set_content_object): Have the headers
	follow the content-type change here too.
	(my_write_to_stream): Dont write content-type here, automatically
	stored in the headers ...
	(my_write_to_stream): Use header_disposition_format() to format
	the content-disposition header.
	(my_write_to_stream): Removed old code, all headers are now stored
	in the camel-medium level, always.  Need to do the same with
	camel-mime-message i suppose ...

	* camel-mime-utils.c (header_content_type_is): Handle empty types.

	* gmime-content-field.c (gmime_content_field_write_to_stream): Use
	header_content_type_format() to format it.

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

	* camel-mime-utils.h: Add prototype for header_param_list_free.

	* camel-recipient.c: New function to remove all the types of a
	recipient list.  I think this whole object needs a major review.

	* camel-mime-message.c (camel_mime_message_class_init): Removed
	parse_header_pair override, override add_header instead.
	(_parse_header_pair): Renamed to add_header.
	(remove_header): Add this method, to make sure we keep upto date
	with removed headers too.
	(_set_field): If given a NULL value, clear it out.
	(_set_recipient_list_from_string): Constify.
	(set_header): Override set_header from camel_medium.
	(process_header): Local function to handle set/add/remove of each
	header we know about.

	* camel-mime-part.c (camel_mime_part_class_init): Removed
	parse_header_pair setup.
	(my_parse_header_pair): Moved into add_header(), removed.
	(my_set_disposition): Allow a NULL disposition to clear it.
	(my_set_content_id): Allow NULL content id to clear it.
	(remove_header): Track removed headers.
	(my_set_description): Allow NULL description to clear it.
	(my_set_content_MD5): Make sure we copy the md5 value, and allow a
	NULL value to reset it.
	(my_set_filename): Copy the filename.
	(my_set_header_lines): Removed.  Nothing uses it, it doesn't
	actually serve any purpose.
	(camel_mime_part_set_header_lines): Ditto.
	(my_get_header_lines): Ditto.
	(camel_mime_part_get_header_lines): Ditto.
	(camel_mime_part_class_init): Remove *_header_lines setup.
	(camel_mime_part_init): Remove header_lines init.
	(my_finalize): Remove header_lines finalise.
	(my_write_to_stream): Write the headers here.  This is just WRONG,
	camel_medium should be doing this.
	(my_get_output_stream): Kill a warning.
	(camel_mime_part_encoding_to_string): Ditto.
	(camel_mime_part_set_description): Unvirtualiase, use add_header()
	to do the processing.
	(my_set_description): Removed.
	(set_disposition): Renamed from my_set_disposition.
	(camel_mime_part_get_description): Get the descriptionf rom the
	get_header method.
	(my_get_description): Removed.
	(my_set_filename): Removed.
	(camel_mime_part_get_filename): Get the parameter from the
	disposition.
	(camel_mime_part_encoding_from_string): Handle NULL string.
	(camel_mime_part_init): Remove reference to filename.
	(my_finalize): Dont free filename.

	* camel-mime-part.h (CamelMimePartClass): Removed
	parse_header_pair() method, it doesn't add anything that
	add_header() can't be used for.
	(CamelMimePartClass): Remove *_header_lines methods.
	(struct _CamelMimePart): Remove header_lines list.
	(struct _CamelMimePart): Removed filename attribute.

	* camel-medium.c (camel_medium_init): Init headers to null, not a
	hashtable.
	(add_header): Append the headers as a list.
	(remove_header): Remove headers as a list.
	(get_header): Likewise for lookup.
	(free_header): Removed, no longer needed.
	(finalize): Free headers using header_raw_clear().
	(camel_medium_set_header): New function, to reset and override all
	values of a header with a new value.

	* camel-medium.h (struct _CamelMedium): Changed to use a
	header_raw struct rather than a hash table, to store headers
	(many headers can occur multiple times).

	* camel-mime-utils.c (header_raw_find_next): New function, allows
	you to find multi-valued header fields.
	(header_disposition_format): New function to format/create
	content-disposition header string.
	(header_param_list_format_append): Function to format parameter
	lists into a GString.
	(header_content_type_format): Function to format content-type into
	a usable format.
	(header_set_param): allow NULL value to remove the parameter.
	(decode_token): Renamed from header_decode_token.
	(header_decode_token): New interface for external use.
	(quoted_decode): Made static to kill annoying warnings.
	(g_strdup_len): Killed, replaced with calls to g_strndup().
	(rfc2047_decode_word): Made static to kill warnings.
	(decode_coded_string): Terminated.
	(g_string_append_len): Made static to kill warnings.
	(header_decode_text): Made static to kill warnings.
	(header_decode_text): Constify.
	(rfc2047_decode_word): Constify.
	(header_param): Constify.
	(header_content_type_new): Copy the type/subtype strings.
	(header_param_list_decode): Made static.
	(header_param_list_format_append): Made static.
	(quoted_decode): Constify.
	(g_string_append_len): Constify.
	(header_token_decode): New function to decode a single token.

	* providers/mbox/camel-mbox-summary.c (header_write): Append a
	trailing \n when writing headers.
	(strdup_trim): Killed a warning.
	(camel_mbox_summary_set_uid): Make sure the next uid is at least 1
	higher than any existing one.
	(header_evolution_decode): Use header_token_decode to get the
	token.

	* camel-mime-parser.c (folder_scan_header): Strip the trailing \n
	of the end of all header lines.

svn path=/trunk/; revision=2551
2000-04-22 05:22:20 +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
383f245d39 MERGE NEW_PARSER branch into HEAD, fixed conflicts.
2000-04-20  NotZed  <NotZed@HelixCode.com>

	* MERGE NEW_PARSER branch into HEAD, fixed conflicts.

	* gmime-content-field.c (_print_parameter): Duh, removed again
	(@@#$@ cvs merge).

	* camel-mime-utils.c (header_content_type_is): Constify.
	(header_content_type_unref): Killed a couple warnings.

	* camel-folder.c (_init): Removed more log crap.

	* providers/Makefile.am (SUBDIRS): Removed nntp, pending fixes for
	summary changes.

	* providers/mbox/camel-mbox-folder.c (_get_message_by_number):
	Fixed for new summary interface.  Added a warning for using this
	broken api.
	(_get_message_by_uid): Fixed for message new with session
	vanishing.

svn path=/trunk/; revision=2531
2000-04-20 23:48:45 +00:00
bd3559cdf2 mime utils namespace change
svn path=/trunk/; revision=920
1999-05-12 08:40:54 +00:00
bdc34487d7 overload wrapper class method. (_write_to_file): start to write some text
1999-05-11  bertrand  <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-mime-part.c (_write_to_file):
	overload wrapper class method.
	(_write_to_file): start to write some text in
	file.

svn path=/trunk/; revision=904
1999-05-11 21:20:28 +00:00