Commit Graph

157 Commits

Author SHA1 Message Date
7ac88d8631 Use the FOLD_SIZE as a recommended folding size, but add a new
2002-02-28  Not Zed  <NotZed@Ximian.com>

        * camel-mime-utils.c (header_fold): Use the FOLD_SIZE as a
        recommended folding size, but add a new FOLD_MAX_SIZE (=998, the
        smtp max line size) as the hard limit for any output.

svn path=/trunk/; revision=15866
2002-02-28 01:09:05 +00:00
d56ec225b8 The day number has to be 2 chars wide, space filled to work properly with
2002-02-08  Not Zed  <NotZed@Ximian.com>

        * providers/local/camel-spool-summary.c
        (camel_spool_summary_build_from): The day number has to be 2 chars
        wide, space filled to work properly with pine, etc.

        * providers/local/camel-spoold-store.[ch]: new type of provider
        'spool directory', which lets you view external mbox dirs without
        adding any extra cruft.  Perhaps it should use . files to store
        summaries?  Still a bit experimental, there's a warning when you
        select it in the account editor.  Finished off most of #1185.
        Can't rename or move folders.

        * camel-mime-utils.c (header_decode_date): If the date is
        100->1900 then we actually want to use it as the year in the tm
        struct, not year+100.  e.g. year 102 -> 2002, not 2102.

2002-02-07  Not Zed  <NotZed@Ximian.com>

        * providers/local/camel-spool-store.c (get_folder): Pass path into
        spool_folder_new.

        * providers/local/camel-spool-folder.c (camel_spool_folder_new):
        (camel_spool_folder_construct): Take the full path to the folder
        and use that as the file path, independent of the full_name we
        use.

2002-02-07  Not Zed  <NotZed@Ximian.com>

        * providers/local/camel-local-provider.c: Added new type, spoold
        provider, spoold: for local directories.

        * providers/imap/camel-imap-store.c (get_one_folder_offline):
        Create offline uri's in a compatible manner to online ones.

svn path=/trunk/; revision=15606
2002-02-08 02:10:46 +00:00
e111399fba Use camel_mime_parser_read to read internal parser data.
2002-02-04  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-http-stream.c (stream_read): Use camel_mime_parser_read to
	read internal parser data.
	(camel_http_stream_get_content_type): Implemented.

	* camel-mime-utils.c (header_decode_int): Made public.

svn path=/trunk/; revision=15571
2002-02-05 00:21:14 +00:00
42ffb93955 Oops, this was converting foo@[blah] to foo@[ blah ], fixed.
2002-01-31  Not Zed  <NotZed@Ximian.com>

        * camel-mime-utils.c (header_decode_domain): Oops, this was
        converting foo@[blah] to foo@[ blah ], fixed.

svn path=/trunk/; revision=15535
2002-01-31 02:30:36 +00:00
aeb798c028 New function to decode an enhanced status code. (smtp_set_exception): Sets
2002-01-28  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/smtp/camel-smtp-transport.c (smtp_decode_status_code):
	New function to decode an enhanced status code.
	(smtp_set_exception): Sets an exception based on the
	Enhanced-Status-Code.
	(esmtp_get_authtypes): Don't diplicate the key in the hash since
	the key and value are the same.
	(smtp_rcpt): Include the failed recipient in the error message to
	be more helpful to the user.

	* camel-mime-utils.c (hex_decode): Make sure to allocate enough
	for the NUL byte.

svn path=/trunk/; revision=15500
2002-01-29 00:31:58 +00:00
cf8db42ff8 As a temporary solution, just printf ("\a"); to make a beep :-)
2002-01-21  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-filter-driver.c (do_beep): As a temporary solution, just
	printf ("\a"); to make a beep :-)

	* providers/imap/camel-imap-command.c
	(imap_command_strdup_vprintf): Encode the mailbox to UTF-7 here.

	* providers/imap/camel-imap-utils.c (imap_parse_list_response):
	Decode the mailbox name as we parse the list response.
	(imap_mailbox_decode): It's only an illegal mailbox name if it
	didn't switch back to US-ASCII mode.

svn path=/trunk/; revision=15421
2002-01-21 23:28:20 +00:00
eea1e59abb Stop uudecoding once the CAMEL_UUDECODE_STATE_END state bit gets set. Set
2002-01-17  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-filter-basic.c (filter): Stop uudecoding once the
	CAMEL_UUDECODE_STATE_END state bit gets set. Set the
	CAMEL_UUDECODE_STATE_BEGIN state bit once we find the begin line.
	(reset): No longer have uu_begin or uulen state variables, these
	are now stuffed into a single state variable.

	* camel-mime-utils.c (uudecode_step): No longer needs a uulen
	argument and also keeps track of whether or not the end of the
	encoded data has been found in 'state'.
	(uuencode_step): Now stuffs uulen into state so that the uulen
	argument is no longer needed.
	(uuencode_close): Same.

svn path=/trunk/; revision=15349
2002-01-17 19:21:11 +00:00
ffa73cbd5c Don't try setting a content-type parameter if either the name or value is
2001-12-12  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-folder-summary.c (content_info_load): Don't try setting a
	content-type parameter if either the name or value is NULL.

	* camel-mime-utils.c (header_set_param): NULL-protection.

svn path=/trunk/; revision=15248
2002-01-04 22:20:29 +00:00
3460dc5c49 Completely rewritten. It is now a load faster and a heck of a lot more
2001-12-21  Jeffrey Stedfast  <fejj@ximian.com>

	* broken-date-parser.c (parse_broken_date): Completely
	rewritten. It is now a load faster and a heck of a lot more
	accurate, also now returns a time_t and sets the saveoffset
	variable rather than returning a new char* buffer for the normal
	camel date parser to re-parse. This saves a fair number of cpu
	cycles :-)

	* camel-mime-utils.c (header_decode_date): Cleanup the broken date
	parsing code.

svn path=/trunk/; revision=15205
2001-12-21 19:51:58 +00:00
081f6dbb1b Protect against either of the types being NULL.
2001-12-04  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_content_type_simple): Protect against
	either of the types being NULL.

2001-12-05  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-filter-basic.c (filter): If complete() allocates
	len+2 bytes for the out buffer, so should this. See bug #16371 for
	an example case.

2001-12-05  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-sasl-digest-md5.c: iconv() returns a size_t, not an int.

	* camel-pgp-context.c: The return value of iconv() is a size_t,
	not an int.

	* camel-mime-part-utils.c (convert_buffer): Always use size_t args
	for iconv().

	* camel-mime-filter-charset.c (complete): Always use size_t args
	for iconv().
	(filter): Same.

	* camel-mime-utils.c (header_address_fold): Make headerlen a
	size_t instead of an int.
	(header_fold): Same.
	(base64_encode_close): We should be returning a size_t and inlen
	should also be a size_t.
	(base64_encode_step): Same here.
	(base64_decode_step): Here too.
	(base64_encode_simple): And here...
	(base64_decode_simple): Same.
	(uuencode_close): We should also use size_t's here...
	(uuencode_step): And here too.
	(uudecode_step): And also here.
	(quoted_encode_close): Same idea here.
	(quoted_encode_step): Again here.
	(quoted_decode_step): Here too.
	(quoted_encode): Input length should be a size_t.
	(rfc2047_decode_word): Same.
	(g_string_append_len): Here too.
	(append_8bit): "
	(rfc2047_encode_word): "
	(quote_word): "
	(hex_decode): "
	(rfc2184_decode): Use size_t's with iconv().
	(header_decode_param): Same.

svn path=/trunk/; revision=14956
2001-12-10 19:14:32 +00:00
5d3580719a Updates for compliance with rfc2231
2001-11-19  Jeffrey Stedfast  <fejj@ximian.com>

	Updates for compliance with rfc2231

	* camel-mime-utils.c (header_encode_param):
	camel_mime_special_table[c] & IS_ESAFE should have been
	!(camel_mime_special_table[c] & IS_ESAFE). Also added a few
	comments for how to improve the code at some future date.
	(header_decode_param): Now takes an argument rfc2184_part so our
	caller can get this information as well.
	(header_decode_param_list): Pass an rfc2184_part argument to
	header_decode_param and also added a few comments on where to
	improve on rfc2184/rfc2231 compliance.
	(rfc2047_decode_word): Updated to respect the updated ABNF syntax
	of rfc2047 encoded words, yay.

svn path=/trunk/; revision=14750
2001-11-19 19:27:46 +00:00
ebb0b83790 Removed unused variable.
2001-10-29  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (camel_mime_utils_init): Removed unused
	variable.

svn path=/trunk/; revision=14419
2001-10-30 04:26:28 +00:00
0
e01b1cb662 w(x) out some warnings.
2001-10-30    <NotZed@Ximian.com>

        * camel-mime-utils.c (header_decode_mailbox): w(x) out some warnings.

        * providers/local/camel-local-summary.c
        (camel_local_summary_load): Remove the warning about not loading
        summary file - its a valid case for new folders.

svn path=/trunk/; revision=14411
2001-10-30 03:27:28 +00:00
c764ec4132 Minor fix - should have been using a strNcmp when checking if it was an
2001-10-29  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_decode_param): Minor fix - should
	have been using a strNcmp when checking if it was an rfc2047
	encoded word.

svn path=/trunk/; revision=14360
2001-10-29 20:51:24 +00:00
9
c43aa966cb Turn off w() -> warnings.
2001-10-29    <NotZed@Ximian.com>

        * camel-mime-utils.c: Turn off w() -> warnings.

        * providers/imap/camel-imap-store.c (rename_folder): Also rename
        the message cache.
        (rename_folder): Fix subscribed folders table with rename(s).

        * providers/imap/camel-imap-folder.c (imap_rename): Implement,
        rename the cache dir pointer.

        * providers/imap/camel-imap-message-cache.c
        (camel_imap_message_cache_set_path): New method to set the path
        used by a message cache.

svn path=/trunk/; revision=14327
2001-10-29 08:24:00 +00:00
4ca07463a0 More fixing of the license texts.
svn path=/trunk/; revision=14217
2001-10-27 18:21:05 +00:00
5
5b449d9ca7 Remove the stupid warning that should never have been there in the first
2001-10-25    <NotZed@Ximian.com>

        * camel-search-private.c (utf8_get): Remove the stupid warning
        that should never have been there in the first place.

        * camel-sasl-digest-md5.c (digest_response): s/iconv/e_iconv/

        * camel-pgp-context.c (pgp_verify): "

        * camel-mime-utils.c (rfc2047_decode_word, rfc2047_decode_word,
        append_8bit, rfc2047_encode_word, rfc2184_decode,
        header_decode_param): "

        * camel-mime-part-utils.c (convert_buffer, convert_buffer): "

        * camel-mime-filter-charset.c (reset, complete, filter): "

svn path=/trunk/; revision=14113
2001-10-26 00:37:52 +00:00
66efbe69a2 Remove an extra * in one of the regexps that glibc apparently doesn't mind
* camel-mime-utils.c (mail_list_magic): Remove an extra * in one
	of the regexps that glibc apparently doesn't mind but bsd does.

svn path=/trunk/; revision=13942
2001-10-23 16:18:47 +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
42d022008a (camel_search_header_match): Oops, missing i=0.
svn path=/trunk/; revision=13891
2001-10-22 19:12:06 +00:00
6
a009ea9f2d If no content, dont try and decode further and spit meaningless warnings.
2001-10-16    <NotZed@Ximian.com>

        * camel-mime-utils.c (header_address_decode): If no content, dont
        try and decode further and spit meaningless warnings.

svn path=/trunk/; revision=13702
2001-10-16 20:35:49 +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
15b182a1fc Fix a slight error in logic. Just because the last word was an encoded
2001-10-06  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_decode_text): Fix a slight error in
	logic. Just because the last word was an encoded word doesn't mean
	we ignore the lwsp padding, we only ignore it if the last word and
	*this* word are encoded.

svn path=/trunk/; revision=13490
2001-10-06 23:44:46 +00:00
9ab12dd363 Implemented uuencoding and decoding. (complete): Implemented uuencoding
2001-10-06  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-filter-basic.c (filter): Implemented uuencoding and
	decoding.
	(complete): Implemented uuencoding and decoding.

	* camel-mime-utils.c (uuencode_close): New function to flush the
	uu encoder.
	(uuencode_step): New function to uuencode a block of data.

svn path=/trunk/; revision=13476
2001-10-06 07:19:41 +00:00
5
796292fb21 Try harder to get broken names out of addresses. Unencoded ,'s in names
2001-10-05    <NotZed@Ximian.com>

	* camel-mime-utils.c (header_decode_mailbox): Try harder to get
	broken names out of addresses.  Unencoded ,'s in names will still
	break it, but well what can you do eh?
	(header_decode_mailbox): Always add .'s into address we've scanned
	past a '.', even if we can't decode the next part.  Fix for some
	annoying bug #.

svn path=/trunk/; revision=13453
2001-10-05 18:52:21 +00:00
2
65014a74aa Change to camel_charset_iconv_open/close.
2001-10-02    <NotZed@Ximian.com>

        * camel-sasl-digest-md5.c (digest_response):  Change to
        camel_charset_iconv_open/close.

        * camel-pgp-context.c (pgp_verify): Change to
        camel_charset_iconv_open/close.

        * camel-mime-part-utils.c (convert_buffer): Change to
        camel_charset_iconv_open().

        * camel-mime-filter-charset.c
        (camel_mime_filter_charset_new_convert, finalise): Change to
        camel_charset_iconv_open, etc.

        * camel-mime-utils.c: Use the camel_charset_iconv_open/close()
        functions to open/close it.

        * camel-charset-map.c (camel_charset_iconv_open): New function,
        wrap iconv_open, so we can cache ic's.
        (camel_charset_iconv_close): Likewise for close.
        (camel_charset_map_init,shutdown): Init/free iconv cache.

svn path=/trunk/; revision=13361
2001-10-03 00:12:49 +00:00
f88a537b58 Revert my x-unknown special-case hack - this may mask other problems.
2001-10-02  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-charset-map.c (camel_charset_to_iconv): Revert my
	x-unknown special-case hack - this may mask other problems.

	* camel-mime-utils.c (rfc2047_decode_word): If the iconv
	conversion fails, for whatever reason, retry using the user's
	locale charset.

svn path=/trunk/; revision=13359
2001-10-02 23:32:14 +00:00
4
450e955e76 If the type is encoded, get the fallback charset from the message
2001-09-24    <NotZed@Ximian.com>

        * camel-filter-search.c (check_header): If the type is encoded,
        get the fallback charset from the message content-type.

        * camel-mime-part-utils.c (check_html_charset): Dont check for
        charset==null before calling charset_to_iconv.
        (simple_data_wrapper_construct_from_parser): "

        * camel-mime-message.c (process_header): Try use content-type
        charset param as the fallback charset.

        * camel-charset-map.c (camel_charset_to_iconv): Handle name ==
        NULL, return NULL.

        * camel-folder-summary.c (camel_folder_summary_format_address):
        (camel_folder_summary_format_string): Made private again, removed
        #warning about it.  Renamed to s/camel_folder//.
        (summary_format_string): Take default charset param.
        (camel_message_info_new_from_header, message_info_new): Decode
        content-type field to get the charset parameter to use as the
        default charset for decoding strings.

        * camel-search-private.c (camel_search_header_match): Pass NULL as
        the charset, the locale charset is always tried.
        (camel_search_header_match): Supply a default_charset parameter to
        be used with TYPE_ENCODED params.

        * camel-mime-utils.c
        (header_param): get rid of the g_strcasecmp crap.
        (header_set_param): Same here.
        (header_decode_param_list): And here.
        (header_decode_text): Totally rewritten.  30% of its size.  If the
        word is not rfc2047 encoded, always try default_charset if
        supplied, if that fails, try locale charset if it exists, if that
        fails then assume latin1/7 bit ascii.
        (append_8bit): Changed to return FALSE if we can't convert for
        whatever reason, and dont append anything.

        * camel-mime-part.h (struct _CamelMimePart): Move content_type and
        headers out of the 'private' section.

        * camel-mime-part.c (get_headers): Dont do any conversion on the
        header.
        (process_header): Get the content-type charset as the fallback
        charset for decode_string.
        (construct_from_parser): IF we have a content-type header, process
        it before doing anything else, so we have access to a fallback
        charset for invalid headers.

svn path=/trunk/; revision=13096
2001-09-24 19:31:07 +00:00
7d17dc2230 New function to just load the summary. Not much use yet, until unread
* camel-folder-summary.c (camel_folder_summary_header_load): New
	function to just load the summary.  Not much use yet, until unread
	counts are stored in the summary (which now looks like too much
	work!).

	* camel-mime-utils.c (header_decode_mailbox): Crappy fix for
	stupid mailers.  If we get 'name b. name <foo>' then treat it as
	'"name b. name" <foo>'.  See 8147.
	(header_decode_mailbox): Another fix for really broken mailers
	that have things that look like addresses followed by <address>
	bits.
	(rfc2047_encode_word): Escape ??= to avoid some bizarre warning
	about trigraphs.

	(scan_dir): If we dont have the folder open, then scan the 'new'
	and 'cur' folders for new and unread messages to count instead.

svn path=/trunk/; revision=13040
2001-09-21 03:05:03 +00:00
9
bef39dc4e0 General cleanup of camel debug printfs.
2001-09-19    <NotZed@Ximian.com>

        * General cleanup of camel debug printfs.

        * camel-lock.c (camel_lock_fcntl): Changed to return 'success' if
        the error indicates file locking isn't supported on this
        filesystem.  Still return a warning just incase (if its the first
        time).  Might fix a lot of reported bugs.

        * providers/local/camel-spool-store.c (get_folder_info): Dont
        include the empty // host part in the uri.  This 'breaks' the
        service lookup.

svn path=/trunk/; revision=12973
2001-09-19 08:28:36 +00:00
49dc2eda6d s/List-Owner/List-Post
svn path=/trunk/; revision=12962
2001-09-18 23:55:02 +00:00
ce6bceaadc Match mailing-list header List-Owner.
2001-09-18  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c: Match mailing-list header List-Owner.

svn path=/trunk/; revision=12959
2001-09-18 22:21:45 +00:00
6dbfa6b0af Make sure the generated UID is non-NULL before appending it to the array
2001-08-19  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/pop3/camel-pop3-folder.c (pop3_generate_uids): Make
	sure the generated UID is non-NULL before appending it to the
	array of UIDs. How would this even happen? I have no clue...

svn path=/trunk/; revision=12225
2001-08-19 19:25:01 +00:00
8907111d47 regfree the pattern before continue'ing. This was showing up quite a bit
2001-08-10  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_raw_check_mailing_list): regfree the
	pattern before continue'ing. This was showing up quite a bit under
	purify.

svn path=/trunk/; revision=11867
2001-08-10 04:06:53 +00:00
a58cd1586c Fix the fix that fixes broken mailer behavior. We want to make sure that
2001-07-27  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_decode_param): Fix the fix that fixes
	broken mailer behavior. We want to make sure that the user's
	locale charset is non-NULL before we pass it off to
	iconv_open(). If it *is* NULL, we want to use iso-8859-1.

svn path=/trunk/; revision=11448
2001-07-27 16:41:55 +00:00
d5f77c20a8 Allow the url to be NULL just like the libc free convention.
2001-07-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-url.c (camel_url_free): Allow the url to be NULL just like
	the libc free convention.

svn path=/trunk/; revision=11437
2001-07-26 21:56:12 +00:00
f1e3f2f0e4 Add another Sender pattern.
* camel-mime-utils.c (mail_mlist_magic): Add another Sender
	pattern.

svn path=/trunk/; revision=11399
2001-07-25 15:23:43 +00:00
5c9bf39bb2 oops, and just in case value is NULL...
svn path=/trunk/; revision=11363
2001-07-24 22:24:03 +00:00
443f0aba47 Handle broken mailers that send unencoded 8bit header params. And there
2001-07-24  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_decode_param): Handle broken mailers
	that send unencoded 8bit header params. And there was much
	rejoicing. Rah.

svn path=/trunk/; revision=11362
2001-07-24 22:23:40 +00:00
f1738a4b78 renamed to camel_charset_to_iconv() to make it just a little more
2001-07-20  Not Zed  <NotZed@Ximian.com>

        * camel-charset-map.c (camel_charset_get_iconv_friendly_name):
        renamed to camel_charset_to_iconv() to make it just a little more

svn path=/trunk/; revision=11254
2001-07-20 04:59:46 +00:00
25ea76f3a7 Convert to the iconv-friendly charset names.
2001-07-19  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-filter-charset.c
	(camel_mime_filter_charset_new_convert): Convert to the
	iconv-friendly charset names.

	* providers/imap/camel-imap-store.c (create_folder): Fixed a
	compiler warning about returning without a value in a non-void
	function. Blah.

	* camel-mime-part.c (process_header): Pass the locale charset as
	the default_charset to header_decode_string().

	* camel-folder-summary.c (camel_folder_summary_format_string):
	Pass the locale charset as the default_charset to
	header_decode_string().
	(content_info_new): Same.

	* camel-mime-message.c (process_header): Pass the locale charset
	as the default_charset to header_decode_string().

	* camel-mime-utils.c (append_8bit): New helper function who's
	purpose is similar to append_latin1() but for 8bit text that we
	are assuming is not latin1.
	(header_decode_text): Now takes a default_charset parameter and
	calls append_8bit when appropriate.
	(header_decode_string): Also takes a default_charset parameter
	now.
	(header_decode_mailbox): Pass NULL as the default_charset to
	header_decode_string().

svn path=/trunk/; revision=11250
2001-07-20 00:08:50 +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
aabc9c14ea Added a hack to convert charsets in the format iso8859-1 to iso-8859-1
2001-07-13  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (rfc2047_decode_word): Added a hack to
	convert charsets in the format iso8859-1 to iso-8859-1 because it
	seems to be more iconv friendly. It has been reported that on some
	systems, iconv doesn't know about iso8859-1 while it *does* know
	about iso-8859-1. See bug #4530.

svn path=/trunk/; revision=11094
2001-07-13 18:53:08 +00:00
b88f6b9593 Removed. (check_html_charset): Replaced with this.
2001-07-12  Not Zed  <NotZed@Ximian.com>

        * camel-mime-part-utils.c (extract_metatag_charset): Removed.
        (check_html_charset): Replaced with this.
        (simple_data_wrapper_construct_from_parser): Call
        check_html_charset if we dont have a charset on the content-type,
        and we have text/html data.
        (check_html_charset): We also need to do qp/base64 decoding
        ourselves, sigh.

        * camel-mime-utils.c (html_meta_param_list_decode): Removed.  This
        was very wrong, the rules for mail headers vastly different from
        rules for decoding html elements.
        (rfc2184_decode): Move the malloc inside the iconv_open worked,
        otherwise we have a memleak.

        * camel-mime-filter-html.c (camel_mime_filter_html_finalize, init,
        run, reset): Changed to use camelhtmlparser, and fixed a tiny
        memleak.

        * camel-html-parser.c: Made the html indexer tokeniser re-usable.
        ONLY TO BE USED INTERNAL TO CAMEL HOWEVER.
        (tokenise_step): Slight fix to non-quoted values.

svn path=/trunk/; revision=11028
2001-07-12 05:02:11 +00:00
768ef5c60b New function to extract a meta-tag charset value if it exists.
2001-07-11  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-part-utils.c (extract_metatag_charset): New function
	to extract a meta-tag charset value if it exists.
	(simple_data_wrapper_construct_from_parser): Along the same lines
	as the code I previously ripped out, but this time use the
	mime-parser's seek ability to help us along. Currently I read up
	to a 2k buffer size - this is probably overkill, 1k is probably
	plenty.

	* camel-mime-utils.c (html_meta_param_list_decode): When we get to
	an `=', we must skip past it before trying to grab the param
	value. duh.

svn path=/trunk/; revision=11021
2001-07-11 23:56:31 +00:00
1606416242 Ripped out my code since it was never being used since the mime parser is
2001-07-11  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-part-utils.c
	(simple_data_wrapper_construct_from_parser): Ripped out my code
	since it was never being used since the mime parser is not using a
	seekable stream (ever?) which pretty much means my code needs to
	be done someplace else.

svn path=/trunk/; revision=11016
2001-07-11 21:10:52 +00:00
e39d94c5ef New function to parse an HTML meta-tag.
2001-07-10  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (html_meta_param_list_decode): New function
	to parse an HTML meta-tag.

	* camel-mime-part-utils.c
	(simple_data_wrapper_construct_from_parser): If the Content-Type
	did not contain a charset parameter and it's also a text/html
	part, we have 1 last place to look - in the META html tags. *sigh*

	* camel-mime-message.c (camel_mime_message_get_source):
	s/gint/unsigned since that's what it should be.

svn path=/trunk/; revision=10976
2001-07-10 22:06:56 +00:00
b663fac4ab Don't allow in to be NULL, so instead of doing if (in == NULL) return;,
2001-07-06  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_encode_param): Don't allow in to be
	NULL, so instead of doing if (in == NULL) return;, make it a
	g_return_val_if_fail and later we can make it an assert or
	something.

svn path=/trunk/; revision=10868
2001-07-06 21:59:14 +00:00
e64a02be08 Added Originator: header as a header to look for when looking for the
2001-06-29  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c: Added Originator: header as a header to look
	for when looking for the mailing list.

svn path=/trunk/; revision=10603
2001-06-29 18:24:30 +00:00
b7e09293e9 Fix a memory leak. Also if the decoded value is NULL, that means it wasn't
2001-06-28  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_decode_param_list): Fix a memory
	leak. Also if the decoded value is NULL, that means it wasn't
	encoded so we don't want to toss the old value.
	(header_param_list_format_append): Correctly wrap long parameter
	values according to rfc2184.

svn path=/trunk/; revision=10566
2001-06-28 16:52:23 +00:00