Commit Graph

1030 Commits

Author SHA1 Message Date
dbad1c19f8 Removed these directories since they're unused.
2001-01-02  Christopher James Lahey  <clahey@helixcode.com>

	* providers/maildir/, providers/mbox/, providers/mh/: Removed
	these directories since they're unused.

svn path=/trunk/; revision=7219
2001-01-02 23:48:27 +00:00
70844a59a3 fix off-by-one
svn path=/trunk/; revision=7217
2001-01-02 22:13:32 +00:00
b1a4da002f IMAP randomness.
* providers/imap/camel-imap-stream.[ch]: Remove. To be replaced.

	* providers/imap/Makefile.am (libcamelimapinclude_HEADERS): Remove
	camel-imap-stream.h

	* providers/imap/camel-imap-utils.c (imap_parse_flag_list): Take a
	char ** instead of char *, to return the position at the end of
	parsing like the string parsing functions.
	(imap_parse_string_generic): New function to parse a string,
	nstring, or astring.
	(imap_parse_nstring, imap_parse_astring): Now macros
	(imap_parse_string): Added

	* providers/imap/camel-imap-folder.h: Remove the "exists" field
	from CamelImapFolder.

	* providers/imap/camel-imap-folder.c: Remove unused include of
	camel-imap-stream.h.
	(camel_imap_folder_init): Remove no-longer-relevant summary
	initialization.
	(camel_imap_folder_new): Update for imap_parse_flag_list change,
	exists removal, and imap_rescan.
	(imap_rescan): New function that does most of the work of the old
	imap_refresh_info, but taking "exists" as an argument instead of
	getting it from the folder. Also calls camel_imap_folder_changed
	to do the summary updating and signalling, rather than duplicating
	that code.
	(imap_refresh_info): Just call imap_rescan (using the size of the
	folder summary as "exists").
	(imap_update_summary): Update for imap_parse_flag_list change
	(camel_imap_folder_changed): Update for "exists" change.

svn path=/trunk/; revision=7216
2001-01-02 22:07:44 +00:00
af35d99587 New function to return just foo/bar with no parameters.
* camel-mime-utils.c (header_content_type_simple): New function to
	return just foo/bar with no parameters.

	* camel-data-wrapper.c (get_mime_type): Use
	header_content_type_simple rather than header_content_type_format.

svn path=/trunk/; revision=7213
2001-01-02 19:33:34 +00:00
156996ac5e Remove this. It was only a thin wrapper around struct _header_content_type
* gmime-content-field.[ch]: Remove this. It was only a thin
	wrapper around struct _header_content_type anyway, and didn't
	match the naming scheme of anything else.

	* Makefile.am: Remove gmime-content-field.[ch]

	* camel.h: Remove gmime-content-field.h

	* camel-types.h: Add CamelContentType as a typedef for struct
	_header_content_type (especially for use outside of camel).

	* camel-multipart.c:
	* camel-mime-part.c:
	* camel-mime-message.c:
	* camel-folder-summary.c:
	* camel-folder-search.c:
	* camel-data-wrapper.[ch]: Use CamelContentType and
	header_content_type_* functions rather than the GMime stuff.

	* camel-mime-part-utils.c:
	* camel-medium.c: Remove unused gmime-content-field.h include.

svn path=/trunk/; revision=7186
2000-12-28 19:28:39 +00:00
5f5ddfccb6 Fix the APOP check to not crash on servers that don't return any
* providers/pop3/camel-pop3-store.c (connect_to_server): Fix the
	APOP check to not crash on servers that don't return any
	information on the +OK greeting line.

svn path=/trunk/; revision=7184
2000-12-27 19:10:06 +00:00
d187b5887d (camel_imap_folder_changed): Make sure we unref the summary lookup.
svn path=/trunk/; revision=7156
2000-12-24 01:42:27 +00:00
5363e65d85 clean up a stubborn and hard to remove imap_folder->summary.
svn path=/trunk/; revision=7155
2000-12-24 01:41:17 +00:00
d5b5b5f097 Minor compilation fixes.
svn path=/trunk/; revision=7151
2000-12-24 00:51:54 +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
7706c0163b When getting the top-level folder list, include INBOX even if it's not
* providers/imap/camel-imap-store.c (get_folder_info): When
	getting the top-level folder list, include INBOX even if it's not
	subscribed. Don't show subscribed folders outside of the given
	namespace. Do a better job of pruning the namespace from the
	returned folder tree.

svn path=/trunk/; revision=7131
2000-12-22 20:33:00 +00:00
b1ed87891b New CamelFolderSearch subclass that just reimplements body_contains (using
* providers/imap/camel-imap-search.c: New CamelFolderSearch
	subclass that just reimplements body_contains (using the IMAP
	SEARCH command). All other kinds of searching are done against the
	local summary.

	* providers/imap/camel-imap-folder.c (imap_search_by_expression):
	Use a CamelImapSearch to do searching.

	* providers/imap/camel-imap-utils.c (imap_translate_sexp, etc): No
	longer needed.

	* camel-folder-search.h: Add missing CAMEL_FOLDER_SEARCH_TYPE
	#define

svn path=/trunk/; revision=7119
2000-12-21 19:50:09 +00:00
d812b5e331 Update the doc comment: since it always NUL-terminates the buffer, it
* camel-stream-buffer.c (camel_stream_buffer_gets): Update the
	doc comment: since it always NUL-terminates the buffer, it reads
	at most @max-1 bytes, not @max.

	* camel-remote-store.c (remote_recv_line): Fix the "did
	camel_stream_buffer_gets fill the whole buffer" check. Fixes a bug
	when reading lines longer than 1024 characters (eg, IMAP SEARCH
	responses in very large folders).

svn path=/trunk/; revision=7117
2000-12-21 17:14:07 +00:00
739f0eda9d Oops. Don't do "FETCH 1:0" when the folder is empty.
* providers/imap/camel-imap-folder.c (imap_refresh_info): Oops.
	Don't do "FETCH 1:0" when the folder is empty.
	(imap_protocol_get_summary_specifier): Request RFC822.SIZE too.
	(imap_update_summary): Parse RFC822.SIZE and add it to the
	summary.

svn path=/trunk/; revision=7088
2000-12-19 20:40:12 +00:00
fb91cdbd3a Add "guint32 server_flags" to CamelImapMessageInfo to keep track of the
* providers/imap/camel-imap-summary.c: Add "guint32 server_flags"
        to CamelImapMessageInfo to keep track of the last known message
        flag state on the server.
        (message_info_save, message_info_load): Save/load the
        server_flags.

        * providers/imap/camel-imap-folder.c: Make this use
        CamelFolderChangeInfo and emit folder_changed notifications as it
        gets them rather than only on refresh_info.
        (imap_refresh_info): Notice flags that get cleared on the server
        as well as flags that get set.
        (imap_update_summary): Remove a comment that never actually
        applied to the committed code.

svn path=/trunk/; revision=7086
2000-12-19 19:42:15 +00:00
bebb2583a8 Change the semantics of fmt: Now %S (capital S) means an IMAP "string",
* providers/imap/camel-imap-command.c (camel_imap_command): Change
	the semantics of fmt: Now %S (capital S) means an IMAP "string",
	(which can be sent as either a quoted string or a literal). If
	the server supports LITERAL+, these will be sent as extended
	literals (which don't require any special escaping). Otherwise
	they'll be sent as quoted strings (and it now properly deals with
	" or \ in the string).
	(imap_command_strdup_vprintf): Utility routine that does the real
	work for the functionality mentioned above.

	* providers/imap/camel-imap-utils.c (imap_quote_string): Turns a
	string into a proper IMAP "quoted string".

	* providers/imap/camel-imap-store.c:
	* providers/imap/camel-imap-folder.c: Use %S instead of "%s" where
	appropriate.

svn path=/trunk/; revision=7070
2000-12-18 19:17:17 +00:00
7fbf92b1d6 When checking to see if we need to fold the header, when we come accross a
2000-12-15  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-mime-utils.c (header_fold): When checking to see if we
	need to fold the header, when we come accross a \n, make sure to
	start at p + 1 the next time through the loop or else we get into
	an infinite loop.

svn path=/trunk/; revision=7055
2000-12-15 21:33:21 +00:00
f70597c49e change a bunch of IS_CAMEL_* macros to CAMEL_IS_*
* Namespace cleanup: change a bunch of IS_CAMEL_* macros to
	CAMEL_IS_*

svn path=/trunk/; revision=6972
2000-12-13 19:56:34 +00:00
bd99ceb9ff add #include <sys/types.h> for freebsd.
2000-12-13  Chris Toshok  <toshok@helixcode.com>

	* providers/imap/camel-imap-auth.c: add #include <sys/types.h> for
	freebsd.

svn path=/trunk/; revision=6971
2000-12-13 19:40:53 +00:00
7b80470152 Added #ifndef NO_WARNINGS around a #warning. Added (void) to the prototype
2000-12-12  Christopher James Lahey  <clahey@helixcode.com>

	* camel-folder-summary.c, camel-folder-summary.h: Added #ifndef
	NO_WARNINGS around a #warning.  Added (void) to the prototype and
	declaration of camel_message_info_new.

	* camel-mime-message.h: Added an include for
	camel-mime-filter-bestenc.h.  Added a prototype for
	camel_mime_message_set_best_encoding.  Reformatted prototypes to
	line up.

	* camel-mime-parser.c: Added #if d(!)0 around the states string
	lookup table since it's only used in debugging output.

	* camel-seekable-substream.c (stream_flush): Added a cast.

	* providers/imap/camel-imap-auth.c: Added #include <netinet/in.h>.

	* providers/imap/camel-imap-folder.c (imap_refresh_info): Made uid
	and flags const to fix warnings here.

	* providers/imap/camel-imap-store.c (get_folder_info): Made p
	const to fix warnings here.

svn path=/trunk/; revision=6954
2000-12-12 23:31:40 +00:00
6621536150 Add missing .h file. (From campd.)
* tests/lib/Makefile.am: Add missing .h file. (From campd.)

svn path=/trunk/; revision=6951
2000-12-12 23:10:39 +00:00
1c95a1e985 Remove use of linewrap filter. Headers are now wrapped. encode_8bit
* providers/smtp/camel-smtp-transport.c (smtp_data): Remove use of
	linewrap filter.  Headers are now wrapped.  encode_8bit already
	enforces a 998 octet line limit.
	(smtp_data): Also fixed a memleak, we always have to unref our own
	copy of the filters.  We also dont need to remove them manually,
	so dont bother.  The type's an int too ...

	* camel-internet-address.c (internet_unformat): When scanning past
	quotes, remove them also.
	(camel_internet_address_format_address): If the name contains "'s,
	or ','s then strip and quotes and wrap the whole lot in one set of
	quotes.

	* Makefile.am (noinst_HEADERS): We dont want to install
	camel-charset-map-private.h, ever.  There are probably other
	similar files ..?

	* camel-mime-part.c (write_to_stream): Fold header lines
	appropriately as we're writing them out.

	* camel-mime-utils.c (header_fold): Add a new argument, headerlen,
	tells it how long the associated header token is.
	(header_fold): Also,k check to see if we need to fold first, using
	a better algorithm, and also accept already-folded lines, and
	re-process accordingly.
	(rfc2047_decode_word): Add a little buffer space to iconv output
	for shifting overheads?
	(rfc2047_decode_word): finish the iconv with a null call, to flush
	shift state, etc.
	(rfc2047_encode_word): Attempt to break up long words into
	appropriately sized, independent, chunks.  See rfc2047, section 2.
	(header_decode_mailbox): Dont add in extra spaces into the output
	if we are decoding adjacent encoded words.  We can only guess this
	case, as some broken mailers put encoded words inside quoted
	words.
	(header_encode_phrase): Dont merge words if they are going to end
	up too long.  Also change back ot only merge consecutive words of
	the same type.  e.g. 'foo. blah fum.' -> "foo." blah "fum."  or
	'iam an. idiot' -> iam "an." idiot

svn path=/trunk/; revision=6902
2000-12-11 11:40:15 +00:00
154f1347bd Hrm, we actually want to call set_header, not add_header here, probably
2000-12-11  Not Zed  <NotZed@HelixCode.com>

        * camel-medium.c (camel_medium_set_header): Hrm, we actually want
        to call set_header, not add_header here, probably explains some
        duplicate X-Evolution headers i was trying to track down.  Also
        changed the api to handle a NULL value == remove the header.

        * providers/local/camel-maildir-summary.c
        (maildir_summary_decode_x_evolution): Always return error, we dont
        use x-evolution for maildir.
        (maildir_summary_encode_x_evolution): Always return a NULL string,
        likewise.
        (maildir_summary_add): Hook in here, since the _new function
        doesn't have access to any flags from the caller.  If we have
        flags, then update the filename again.  Not ideal, but should
        work.

svn path=/trunk/; revision=6897
2000-12-11 04:09:03 +00:00
d75cbc249d oops
svn path=/trunk/; revision=6864
2000-12-08 18:06:19 +00:00
683427c0bc Shush
svn path=/trunk/; revision=6863
2000-12-08 17:55:42 +00:00
d0aff6462a Remove test3 from build until the files show up
2000-12-08  JP Rosevear  <jpr@helixcode.com>

	* tests/message/Makefile.am: Remove test3 from build until the files
	show up

2000-12-08  JP Rosevear  <jpr@helixcode.com>

	* Makefile.am: Remove files from extra_dist since they are already
	listed

svn path=/trunk/; revision=6861
2000-12-08 17:52:28 +00:00
e2b2aeceea Change the sign of the default date offset when none is supplied.
2000-12-09  Not Zed  <NotZed@HelixCode.com>

	* camel-mime-message.c (camel_mime_message_set_date): Change the
	sign of the default date offset when none is supplied.
	(camel_mime_message_set_date): Also do dst if its dst (forward 1
	hour).  Fixes #928 + some.

svn path=/trunk/; revision=6860
2000-12-08 14:22:36 +00:00
a791b442b5 Change line no format so that emacs can detect it.
2000-12-06  Not Zed  <NotZed@HelixCode.com>

        * tests/lib/camel-test.h (check): Change line no format so that
        emacs can detect it.

svn path=/trunk/; revision=6848
2000-12-07 22:28:59 +00:00
3bd0a70d22 We want to bitwise-or the server and cached flags here so that we keep the
2000-12-06  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/imap/camel-imap-folder.c (imap_refresh_info): We want
	to bitwise-or the server and cached flags here so that we keep the
	flags that we have set locally and set any additional flags that a
	parallel connection may have set.

svn path=/trunk/; revision=6834
2000-12-07 02:02:43 +00:00
c6747ac9b4 If the data wrapper fails to be written to the stream, unref it and the
2000-12-05  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/smtp/camel-smtp-transport.c (smtp_data): If the data
	wrapper fails to be written to the stream, unref it and the
	filters before returning.

svn path=/trunk/; revision=6804
2000-12-05 23:47:50 +00:00
efeeb1bd1f (imap_refresh_info): Fix a really really really dumb bug.
svn path=/trunk/; revision=6801
2000-12-05 22:58:41 +00:00
135baf56e4 use BODY.PEEK[] rather than RFC822, so the message doesn't get marked as
* providers/imap/camel-imap-folder.c (imap_get_message): use
	BODY.PEEK[] rather than RFC822, so the message doesn't get marked
	as \Seen.

svn path=/trunk/; revision=6800
2000-12-05 22:20:10 +00:00
8d4e508f40 Fix the check for "flags aren't actually changing".
* providers/imap/camel-imap-folder.c (imap_set_message_flags): Fix
	the check for "flags aren't actually changing".

	* providers/local/camel-local-folder.c (local_set_message_flags,
	local_set_message_user_flag, local_set_message_user_tag): Don't
	emit message_changed unless the flags actually changed.

	* providers/nntp/camel-nntp-folder.c
	(nntp_folder_set_message_flags): Don't emit message_changed unless
	the flags actually changed. Fix the check for marked as seen.

svn path=/trunk/; revision=6797
2000-12-05 16:46:15 +00:00
e57a50f532 Stream testing stuff.
svn path=/trunk/; revision=6792
2000-12-05 12:07:01 +00:00
a8d65409de stream_flush does make sense for a substream afterall (if you have a
2000-12-05  Not Zed  <NotZed@HelixCode.com>

        * camel-seekable-substream.c (stream_flush): stream_flush does
        make sense for a substream afterall (if you have a stream_write).
        (stream_write): Implement this.
        (stream_seek): Change the STREAM_END behaviour to be more sane.
        if bounded go from the end of the bound, if unbounded, go from the
        end of the parent stream.

        * camel-stream-mem.c (stream_read): Dont return error if reading
        past the end of data, just return 0.

        * camel-stream-fs.c (camel_stream_fs_init): Initialise the stream
        to be unbound.
        (stream_seek): Fix the logic when seeking from the end of an
        unbounded stream.
        (camel_stream_fs_new_with_fd): If the fd is invalid (-1), then
        return NULL immediately.
        (stream_seek): Range check a SEEK_END so it fits within
        bound_start.

2000-12-01  Not Zed  <NotZed@HelixCode.com>

        * tests/lib/folders.c (test_folder_basic): New test to perform
        basic store operations on folders (taken from folders/test1).
        (test_folder_message_ops): Tkane the guts out of folders/test2.

svn path=/trunk/; revision=6790
2000-12-05 11:50:32 +00:00
c75f7dbc07 i18n-ize exception strings. (get_name): And here. (_send_to): Here too.
2000-12-04  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/smtp/camel-smtp-transport.c (smtp_connect): i18n-ize
	exception strings.
	(get_name): And here.
	(_send_to): Here too.
	(smtp_helo): And here and there...
	(smtp_mail): And around the square...
	(smtp_rcpt): Saying catch me if you can...
	(smtp_data): And here three.
	(smtp_rset): And here.
	(smtp_quit): And finally here.

svn path=/trunk/; revision=6785
2000-12-04 22:37:45 +00:00
a2391a3e11 added some imap tests, tho they dont get far yet and dont
recover automatically.

svn path=/trunk/; revision=6772
2000-12-04 12:59:01 +00:00
787d1833c0 Added system_flag to CamelFolderSearchClass
2000-12-01  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-folder-search.h: Added system_flag to CamelFolderSearchClass

	* camel-folder-summary.c (camel_system_flag_get): Convenience
	function to return whether or not a flag is set using a string as
	the flag name.
	(camel_system_flag): Return the integer value of the flag string.

	* camel-folder-search.c (search_system_flag): New ESExp callback
	for allowing vfoldering on CamelMessageInfo flags.

svn path=/trunk/; revision=6763
2000-12-02 03:55:18 +00:00
dfee15e65a Don't g_return_if_fail if the service is already disconnected. Just
* camel-service.c (camel_service_disconnect): Don't
	g_return_if_fail if the service is already disconnected. Just
	return.

	* providers/pop3/camel-pop3-store.c (pop3_try_authenticate):
	Return FALSE (don't try again) if we get CAMEL_POP3_FAIL.
	(pop3_connect): If we don't succeed, disconnect.

svn path=/trunk/; revision=6756
2000-12-01 17:32:42 +00:00
65e948466d Fix a possible bug where 'name' could be uninitialized.
2000-11-30  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/imap/camel-imap-store.c
	(parse_list_response_as_folder_info): Fix a possible bug where
	'name' could be uninitialized.

	* camel-folder-summary.c (camel_message_info_new): New convenience
	function, doesn't do much but it sure makes code cleaner to read.
	(camel_message_info_new_from_header): This one makes my life heaven.

svn path=/trunk/; revision=6752
2000-12-01 04:25:43 +00:00
c1d2ec0123 New convenience function, doesn't do much but it sure makes code cleaner
2000-11-30  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-folder-summary.c (camel_message_info_new): New convenience
	function, doesn't do much but it sure makes code cleaner to read.
	(camel_message_info_new_from_header): This one makes my life heaven.

svn path=/trunk/; revision=6749
2000-12-01 00:34:33 +00:00
2f1d55bd73 Handle the case where the summary failed to load - clear the summary and
2000-11-30  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/imap/camel-imap-summary.c (camel_imap_summary_new):
	Handle the case where the summary failed to load - clear the
	summary and then set the dirty bit so that it is sure to save
	later. Is this the right fix?

svn path=/trunk/; revision=6743
2000-11-30 21:15:09 +00:00
7547b5166d Remove unused variable.
* camel-exception.c (camel_exception_setv): Remove unused
	variable.

svn path=/trunk/; revision=6742
2000-11-30 20:53:55 +00:00
1fbfdbd43e Remove assertion that content is there, when it no longer can be.
2000-11-30  Not Zed  <NotZed@HelixCode.com>

	* providers/local/camel-mbox-folder.c (mbox_get_message): Remove
	assertion that content is there, when it no longer can be.

	* camel-folder-summary.h: Removed pos/bodypos/endpos from
	camelmeessagecontentinfo.
	(CamelMessageFlags): Added an attachments flag.

	* providers/local/camel-local-summary.h: Added load virtual
	function.

	* tests/lib/folders.c (test_message_info): Accessors.
	(test_folder_message): "

	* camel-folder-thread.c (get_root_subject): Fix accessors.
	(dump_tree_rec): "

	* camel-folder-search.c (camel_folder_search_execute_expression):
	Accessors for messageinfo.
	(search_match_all): "
	(search_header_contains): "
	(search_header_contains): "
	(search_body_contains): "
	(camel_folder_search_execute_expression): Use mepool_strdup.

	* providers/local/camel-mbox-summary.c (summary_update): Accessors
	for messageinfo.
	(mbox_summary_sync_full): "

	* providers/local/camel-mh-summary.c (remove_summary): Accessors
	for messageinfo.
	(mh_summary_check): "
	(mh_summary_sync_message): "
	(mh_summary_sync): "

	* providers/local/camel-mh-folder.c (mh_append_message): Use
	accessor for uid.

	* providers/local/camel-local-summary.c
	(local_summary_decode_x_evolution): Use accessor to uid.
	(local_summary_encode_x_evolution): Likewise.
	(message_info_new): And here.
	(camel_local_summary_load): Call virtual load function.
	(local_summary_load): Default load function, load summary.
	(camel_local_summary_load): Check file exists before trying to
	load.
	(camel_local_summary_construct): Turn off building content info!
	(CAMEL_LOCAL_SUMMARY_VERSION): Bump, since we dont build content
	info anymore.
	(camel_local_summary_load): After a successful load/check, do a
	save too so we dont have to go through it again randomly.

	* providers/nntp/camel-nntp-utils.c (get_XOVER_headers): Use
	accessors for messageinfo.

	* providers/nntp/camel-nntp-folder.c (nntp_folder_get_uids): Use
	accessors for uid.

	* providers/imap/camel-imap-folder.c (imap_refresh_info): Use
	accessor for uid.
	(imap_sync): Likewise.
	(imap_get_uids): Likewise.
	(imap_update_summary): And here.

	* providers/vee/camel-vee-folder.c (vfolder_remove_match): Use
	accessor for uid.
	(vfolder_add_match): Handle estrv stuff.
	(vfolder_change_match): Accessor for uid.
	(get_real_message): "
	(vee_get_uids): "
	(vee_folder_build): " + estrv.
	(vee_folder_build_folder): "

	* providers/local/camel-maildir-folder.c (maildir_append_message):
	Use acccessors for uid's.
	(maildir_get_message): Here too.

	* providers/local/camel-maildir-summary.c
	(camel_maildir_summary_init): Setup the string count for us.
	(message_info_new): Access the string array directly.
	(message_info_free): No need to free string if using array.
	(camel_maildir_summary_info_to_name): Use accessor to get to uid.
	(remove_summary): And here.
	(maildir_summary_check): Likewise.
	(maildir_summary_sync): And here.
	(maildir_summary_load): Load up a cache of uid->filename mappings
	before loading the actual summary file.  This saves us having to
	waste the diskspace storing the filenames in the summary itself,
	and also helps us sync the summary better on load.
	(message_info_load): If we have the load_map setup, and the uid
	exists, then set the filename cache from it, and update the flags
	from the name, incase our summary mismatches it.

	* camel-folder-summary.c (camel_folder_summary_init): Setup string
	count for compressed info record.  An optional compile mode which
	stores all strings for a given messageinfo into a packed array,
	which should save 36-50 bytes/record.
	(camel_folder_summary_info_new): Init the string array.
	(message_info_new): Set the string array items, as required.
	(message_info_load): And here too.
	(message_info_save): Use accessors to get to strings.
	(message_info_free): Free strings as one.
	(camel_message_info_dup_to): Handle packed array case.
	(camel_folder_summary_add): Use accessors.  And pack the strv
	before storing it.
	(summary_assign_uid): New function to assign a unique uid to a
	message, if it doesn't have one.
	(camel_folder_summary_add): Call assign_uid instead of doing it
	ourselves.
	(camel_folder_summary_info_new_from_parser): "
	(camel_folder_summary_info_new_from_message): "
	(camel_folder_summary_encode_string): constify.
	(camel_folder_summary_encode_token): "
	(summary_build_content_info_message): Fix accessors to messageinfo.
	(CAMEL_FOLDER_SUMMARY_VERSION): Bumped, for removal of
	contentinfo->pos data.
	(camel_folder_summary_info_new_from_parser): Calculate the size
	based on the parser position, not the removed contentinfo stuff.
	(camel_folder_summary_info_new_from_message): Remove size stuff.
	(camel_folder_summary_offset_content): Removed, no longer means anything.
	(content_info_new):
	(content_info_load):
	(content_info_save):
	(summary_build_content_info): Remove stuff for contentinfo->pos*.
	(summary_build_content_info): Take a msginfo argument, set
	attachments flag if we find any attachments.
	(summary_build_content_info_message): set attachments flag if we
	find any attachments.
	(camel_folder_summary_info_new_from_parser): Always scan the
	content info, even if we dont save it.
	(camel_folder_summary_info_new_from_message): And here too.
	(summary_build_content_info): Only create the contentinfo stuff if
	we have it turned on, otherwise just parse and discard.
	(summary_build_content_info_message): Likewise.

svn path=/trunk/; revision=6731
2000-11-30 11:05:36 +00:00
a6ee833694 Updated the gtk-doc comment.
2000-11-29  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-store.c (camel_store_get_folder): Updated the gtk-doc
	comment.

svn path=/trunk/; revision=6725
2000-11-29 21:35:14 +00:00
ac3f575649 Use iconv instead of unicode_iconv.
* camel-mime-utils.c:
	* camel-mime-filter-charset.c: Use iconv instead of unicode_iconv.

svn path=/trunk/; revision=6721
2000-11-29 20:41:08 +00:00
bb04a38e88 Fix some off-by-one-ness.
* providers/imap/camel-imap-command.c (imap_read_untagged): Fix
	some off-by-one-ness.

	* camel-stream-buffer.c (stream_read): Fix another bug found in
	previously-unused code here.

svn path=/trunk/; revision=6718
2000-11-29 20:04:16 +00:00
571a286c62 Builddir != srcdir loving.
svn path=/trunk/; revision=6712
2000-11-29 12:33:21 +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
0a68cff31e Shush
svn path=/trunk/; revision=6709
2000-11-29 03:54:10 +00:00