2000-03-23 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-provider.c: Added flag to provider
initialisation, to match changed structure.
2000-03-22 NotZed <NotZed@HelixCode.com>
* camel-folder.[ch]: Added async search api.
* providers/mbox/camel-mbox-search.c
(camel_mbox_folder_search_by_expression): Changed to use an
asynchronous interface.
(camel_mbox_folder_search_cancel): Cancel function for async
interface.
2000-03-23 Dan Winship <danw@helixcode.com>
* camel-stream-buffer.c (camel_stream_buffer_read_line): Function
to read one line of any size from a stream and return it in
allocated memory.
2000-03-22 Dan Winship <danw@helixcode.com>
* camel-service.c (camel_service_query_auth_types): New function
to query a service for the authentication protocols it supports.
* providers/pop3/camel-pop3-store.c (query_auth_types): implement
* camel-provider.c (camel_provider_scan): New function to
scan the provider dir and return a list of all providers.
* providers/pop3/camel-pop3-folder.c: fill this in partially
* providers/pop3/camel-pop3-store.c: make camel_pop3_command
return the text after "+OK"/"-ERR" and add a separate
camel_pop3_get_additional_data to get the message body or
whatever. Also make them take a CamelPop3Store rather than
a CamelStreamBuffer.
2000-03-22 Matt Loper <matt@helixcode.com>
* camel-formatter.c (debug): Disabled some useless debug
messaging.
2000-03-21 Dan Winship <danw@helixcode.com>
* providers/pop3: some initial bits of the POP3 provider, to
make Matt happy. Incomplete, untested, etc.
2000-03-21 bertrand <bertrand@helixcode.com>
* providers/mbox/camel-mbox-summary.c
(camel_mbox_summary_append_internal_to_external): copy the size field
* providers/mbox/camel-mbox-folder.c (_get_message_by_uid): initialize
message_info to NULL
* camel-folder-summary.h: added the size field.
* providers/mbox/camel-mbox-summary.h:
added the received_date field.
* providers/mbox/camel-mbox-summary.c:
documented all functions.
* camel-folder-summary.h: name change and
new fields.
* providers/mbox/camel-mbox-search.c: update to
conform to name change in the summary fields.
2000-03-10 bertrand <bertrand@helixcode.com>
* camel-service.h: cosmetic changes.
2000-03-09 Dan Winship <danw@helixcode.com>
* s/HelixCode/Helix Code, Inc./ in the copyrights
2000-03-07 bertrand <bertrand@helixcode.com>
* camel-formatter.c (handle_mime_part):
plug mem leaks due to bad documentation
of camel_content_field_get_mime_type
(print_camel_body_part): idem
(handle_multipart_alternative): idem
* gmime-content-field.c (gmime_content_field_get_mime_type):
documentation fix.
* camel-mime-part.c (my_finalize): unref the
content_input_stream if any.
2000-03-06 bertrand <bertrand@helixcode.com>
* camel-stream-fs.c (_seek): fix a bogus calculation
in the return position.
2000-03-05 bertrand <bertrand@helixcode.com>
* camel-session.h: cosmetic fixes.
* camel-stream-fs.c (_read):
(_seek): fixed the current position so that it refers
to the current position in the stream, not in its parent.
2000-03-04 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-search.c
(camel_mbox_folder_search_by_expression): Ref the summary
after we have got it.
2000-03-04 bertrand <bertrand@helixcode.com>
* camel-mime-part.c (my_write_content_to_stream):
stream the raw content instead of nothing if the encoding
is not supported.
* camel-stream-fs.c (_seek): handle eos more
properly.
* camel-formatter.c (get_bonobo_tag_for_object):
bonobo-goad-id is the good key to look for.
(get_bonobo_tag_for_object): close the <object> tag.
(get_bonobo_tag_for_object): the correct syntax for the
to set a parameter inside an <object> tag is :
<object classid="..."> <param name="uid" value="..."> <param ...>
</object>
2000-03-03 bertrand <bertrand@helixcode.com>
* providers/mbox/camel-mbox-folder.c (_get_message_by_uid):
use set_input_stream instead of construct_from_stream
to feed the message object.
* camel-data-wrapper.c (my_write_to_stream): reset output stream.
(my_set_input_stream): unref the previous input stream.
use the set_output_stream for default behaviour.
(my_set_output_stream): unref previous output stream.
* camel-mime-part.c (my_write_content_to_stream): reset content
object output stream.
2000-03-03 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-utils.c (camel_mbox_write_xev): Make
sure we open with create with a creation mask.
2000-03-01 NotZed <NotZed@HelixCode.com>
* camel-mime-part-utils.c
(camel_mime_part_construct_content_from_stream): DO NOT assert on
content type, we have fallback code 4 lines below it ... *sigh*
2000-02-29 NotZed <NotZed@HelixCode.com>
* Makefile.am (libcamelinclude_HEADERS): Added camel-stream-buffer
to build.
* camel-stream-buffer.[ch]: Generic buffer which can be applied to
any stream.
2000-03-03 bertrand <bertrand@helixcode.com>
* camel-formatter.c (handle_image): in the case
of images, put the content object output stream
in the url. This allows the message browser
to show inline images.
* camel-stream-b64.c (my_read_encode): fixed state
0 keep value.
2000-03-02 bertrand <bertrand@helixcode.com>
* camel-stream-b64.c (my_read_encode): don't forget to
set the state to 0 after 3.
(my_read_encode): don't forget to encode, even in state 3.
* camel-simple-data-wrapper.c: static functions are prefixed
with my_ instead of _
* camel-multipart.c: static functions are prefixed
with my_ instead of _
(my_write_to_stream): commented.
(my_write_to_stream): warning in case the boudary is set
but is a zero length string.
* camel-mime-part.c (camel_mime_part_encoding_from_string):
remove debug trace.
* camel-mime-part.c: Replaced all static functions
with name begining with _ by the same name begining
with "my_" to prevent the possible conflicts
with system symbols Dan warned us about.
* camel-stream-b64.c (camel_stream_b64_write_to_stream):
use CamelStreamB64 type for the input stream.
* camel-mime-part.c (_get_content_object): remove
debugging trace
(_write_content_to_stream): implement the b64
encoding the new way (that is using camel_stream_b64)
* camel-data-wrapper.c (my_write_to_stream):
fix implementation so that it writes properly
to the output stream even.
* camel-stream-b64.c (camel_stream_b64_write_to_stream):
fix implementation.
2000-02-29 bertrand <bertrand@helixcode.com>
* camel-stream-b64.c (camel_stream_b64_write_to_stream): new
utility function.
* camel-data-wrapper.c (_write_to_stream): default
implementation.
* gmime-utils.c (_store_header_pair_from_string):
revert strange changes.
* camel-stream-b64.c (my_read_decode): set eos to true when we
have read the whole input stream.
(my_reset): set eos to FALSE.
2000-02-28 NotZed <NotZed@HelixCode.com>
* camel-mime-part.c (_parse_header_pair): Dont free this either.
* camel-medium.c (_remove_header): Ugh, dont free the header
before we actually remove it.
(_add_header): Ugh, dont free hashtable entries which may be
duplicated (hash_insert _will_ reference that memory).
* string-utils.c (string_trim): Trimming a 0-length string is not
an error.
* camel-mime-message.c (_parse_header_pair): Fixed very broken
memory handling of header_name/value.
* providers/mbox/camel-mbox-utils.c (camel_mbox_write_xev):
Initialise end_of_last_message always.
(camel_mbox_copy_file_chunk): Stop trying to read if we run out of
data, rather than looping forever.
(camel_mbox_write_xev): Use an open flag when opening with create.
* camel-folder.c (camel_folder_search_by_expression): No, its not
a fatal error to search on a non-searchable folder, you just dont
get any matches.
(_open): Dont open an opened folder (i dont see why this is really
a bug, but what the hell ...)
* providers/mbox/camel-mbox-folder.c (_init): Set search cap on.
(_open): Call parent class to perform open. Remove folder-open
check to parent instead.
(_create): open takes a creation mask, dont use umask to try and
set the open mode.
(_delete): Dont bother checking folder==NULL, its already been
checked on the external interface (changed to an assertion, this
would have to be a camel bug).
(_delete_messages): Likewise.
(_create): Ditto.
(_init): Dont go and clear all the paths and shit that the parent
open just setup for us.
(_delete_messages): Get rid of more umask stuff.
(_append_message): Make sure we pass file mode to open with create.
(_append_message): Cleaned up some indenting to make it readable.
* camel-stream-b64.c (my_read_encode): Fixed a typo.
* providers/mbox/camel-mbox-search.c: Changed to use e-sexp,
rather than filter-sexp.
2000-02-28 bertrand <bertrand@helixcode.com>
* camel-stream-b64.c (my_read_encode): encoding
filter.
2000-02-23 bertrand <Bertrand.Guiheneuf@aful.org>
* camel-stream-b64.c: changed the __static
suffix into a my_ prefix.
(camel_stream_b64_set_mode): reset the persistent
status.
(my_read_decode): remove superfluous %
* providers/mbox/camel-mbox-utils.c (camel_mbox_copy_file_chunk):
fix exception description message.
2000-02-24 Dan Winship <danw@helixcode.com>
* camel-session.c: Add camel_session_get_transport_for_protocol.
* camel-transport.h:
* camel-transport.c: Add an abstract CamelTransport class.
* providers/sendmail/*: A CamelTransport that uses sendmail
to deliver mail.
2000-02-24 Dan Winship <danw@helixcode.com>
* camel-folder.c: use CamelExceptions for run-time errors, not
incorrect code. Don't bother validating that an object exists from
inside one of its methods, since you couldn't have gotten there if
it didn't. Fix some code style bugs.
(_init): Rename init_with_store to init and add parent_folder,
separator, and name arguments.
(_set_name): Get separator from self, not parent_store now.
* camel-store.h:
* camel-store.c: Remove get/set_separator.
* providers/mbox/: Update for above.
2000-02-23 Dan Winship <danw@helixcode.com>
* camel-medium.c (_finalize): Free the data in the headers hash
table.
(_add_header): g_strdup the header name and value when adding it.
* camel-mime-part-utils.c
(camel_mime_part_construct_headers_from_stream): Free the header
data after calling camel_medium_add_header, since it will have
g_strdup()ed it itself.
2000-02-22 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-search.c: Dont compile by default.
* providers/mbox/Makefile.am: Fuck off the filter code.
2000-02-22 bertrand <Bertrand.Guiheneuf@aful.org>
* camel-stream-b64.c (read_decode__static):
don't read the char if we reached the length
of the output buffer. Hours lost on this
%$!@# bug : 3.5
* camel-folder.c (camel_folder_get_subfolder):
(camel_folder_create):
(camel_folder_delete):
(camel_folder_delete_messages):
(camel_folder_list_subfolders):
(camel_folder_expunge):
(camel_folder_get_message_by_number):
(camel_folder_get_message_count):
(camel_folder_append_message):
(camel_folder_copy_message_to):
(camel_folder_get_summary):
(camel_folder_get_message_uid):
(camel_folder_get_message_by_uid):
(camel_folder_get_uid_list):
Check folder state (open/close) and raise an
exception if it is not ok.
* providers/mbox/camel-mbox-folder.c (_create):
create the file and the path with two different
names.
* camel-folder.c (_create): handle the case
when the folder name starts with '/'
* camel-exception.c (camel_exception_new): use
(void) instead of () in decl.
* camel-exception.h: cosmetic fixes.
* camel-exception.c (camel_exception_init): new routine.
Fix a bug in mail/message-list.c
* camel-folder.h: cosmetic changes.
* camel-stream-b64.c (reset__static): added a
reset method. Thanks message-browser to find
so much bugs :)
* providers/mbox/Makefile.am (libcamelmbox_la_LIBADD): readd
Unicode libs.
2000-02-21 bertrand <Bertrand.Guiheneuf@aful.org>
* camel-formatter.c (lookup_unique_id):
awful hack to test get_output_stream.
* camel-stream-b64.[ch] :
b64 encoding/decoding is now implemented as
a stream.
2000-02-21 bertrand <Bertrand.Guiheneuf@aful.org>
* camel-seekable-substream.c (_reemit_parent_signal):
emit "data_available" when parent stream emits it.
2000-02-21 NotZed <NotZed@HelixCode.com>
* providers/mbox/Makefile.am: Uh, fixed LIBADD again. What was
there was never ever going to work, wasn't it tested?
2000-02-21 Dan Winship <danw@helixcode.com>
* camel-session.h: (struct _CamelSession): Add authenticator.
* camel-session.c (camel_session_new): Add authenticator.
(camel_session_query_authenticator): New function to query the
session authenticator for password, etc, information.
2000-02-21 Dan Winship <danw@helixcode.com>
* camel-session.c: add CamelExceptions to several functions. Use
camel_session_new to initialize the session and URL fields of
created CamelStores as appropriate.
* camel-store.h:
* camel-store.c
* camel-service.h:
* camel-service.c: Move the session and url (and associated
functions) from CamelStore to CamelService. Add url_flags to
CamelService so subclasses can specify which URL components
are mandatory for them. Add camel_session_new for
camel_session_get_store* to use.
* providers/mbox/camel-mbox-folder.c:
* providers/mbox/camel-mbox-store.c:
* providers/mbox/camel-mbox-store.h: Update for above changes.
* camel-exception-list.def: Once camel is being used for real,
exceptions won't be renumberable. So renumber them now to make
more room to add exceptions to the various categories later, and
add a big warning message.
2000-02-20 Dan Winship <danw@helixcode.com>
* providers/mbox/Makefile.am: add libibex back to
libcamelmbox_la_LIBADD
2000-02-18 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-search.h
(camel_mbox_folder_search_by_expression): Added exception to call,
and fixed caller.
* providers/mbox/camel-mbox-search.c
(camel_mbox_folder_search_by_expression): Major changes, to use
the sexp evaluator from filter/filter-sexp.c to implement the
searching.
(func_body_contains): Changed to support multiple strings in 1
command (results or'd together)
* url-util.c (g_url_new): Fixed a typo (colon == 0 isn't right),
and made it so full url's are absolute pathed (Dan, this is how it
has to work!). Also, always include a path part, even if it is an
empty string.
2000-02-18 Dan Winship <danw@helixcode.com>
* camel/camel-types.h: New header with the typedefs for all camel
classes. Now the class headers can just include this and the
header for the parent type. This makes it possible for
CamelService to include a CamelSession without creating an
#include loop.
* camel/*:
* composer/e-msg-composer-attachment-bar.h:
* mail/folder-browser.c:
* mail/message-list.c: frob #includes to match the new reality
2000-02-17 Dan Winship <danw@helixcode.com>
* camel/camel-service.h:
* camel/camel-service.c: Make camel-service us a Gurl internally.
Remove the login/password interfaces and instead provide
camel_service_connect_with_url. Add CamelExceptions
2000-02-17 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-formatter.c (handle_text_plain):
(handle_text_html): use camel_stream_reset instead
of seek. The formatter should be able to work
with all streams, not only seekable streams.
In the case where some provider implementation
would not be able to provide a reset method
to their stream, implementors would have
to find a workaround.
* camel/camel-session.c (camel_session_new): use
(void) instean of () in function decl.
* camel/camel-folder.c: ifdef async operation
related code.
* camel/camel-seekable-stream.c (_seek): added a warning.
(_reset): default implementation of reset for seekable
stream.
* camel/camel-mime-message.h: set_received_date declaration fix.
cosmetic changes.
* camel/providers/mbox/camel-mbox-provider.c (camel_provider_module_init):
use (void) instead of ().
* camel/camel-stream.c (camel_stream_reset):
new method for CamelStream.
2000-02-17 Dan Winship <danw@helixcode.com>
* camel/url-util.c (g_url_to_string): New function to convert
a Gurl back into a char *.
2000-02-17 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-formatter.c (handle_text_plain):
revamped so that it uses the output stream
of the data wrapper
(handle_text_html): ditto.
* camel/camel-simple-data-wrapper.h:
* camel/camel-simple-data-wrapper.c (camel_simple_data_wrapper_new):
use (void) instead of ().
(_get_output_stream): simple implementation.
2000-02-16 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-data-wrapper.c (_set_input_stream): ref input stream
(_set_output_stream): ref output stream
(_finalize): unref input and output streams
* 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 ().
2000-02-16 NotZed <NotZed@HelixCode.com>
* providers/mbox/Makefile.am (libcamelmbox_la_LIBADD): Added
libfilter to link line (temporarily?). Required for
filter-sexp.
2000-02-15 bertrand <bertrand@helixcode.com>
* camel/camel-multipart.c (_localize_part):
this routine replaces the _read_part routine
and does not store the part in a buffer.
(_set_input_stream): use the set_input_stream
instead of the construct_from_stream.
each bodypart is given an input stream.
* camel/camel-mime-part-utils.c:
include the data-wrapper-repository header.
(camel_mime_part_construct_content_from_stream):
use the set_input_stream instead of the
construct_from_stream method.
* camel/camel-seekable-substream.c (_set_bounds):
cur position is set to 0 not to inf_bound.
2000-02-15 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-mime-part.c: include gmime-base64.h
various compilation and runtime fixes.
(_set_input_stream): store the input substream
for the content object.
* camel/camel-data-wrapper.h: declare the
set/get function on input/output stream.
* camel/camel-mime-part.c (_get_content_object):
don't use a temporary mem stream.
* camel/camel-seekable-substream.c (_seek):
(_eos):
(_read): the substream can be unlimited in length
* camel/camel-data-wrapper.c (camel_data_wrapper_class_init):
set the get/set_input/output_stream methods.
* camel/camel-multipart.c (_construct_from_stream):
camel_stream_seek -> camel_seekable_stream_seek
2000-02-14 Miguel de Icaza <miguel@gnu.org>
* camel/providers/mbox/Makefile.am (libcamelmbox_la_LIBADD): Add
the unicode libraries as well.
* camel/camel-provider.c (camel_provider_register_as_module): Add
error reporting here. Desire to use Solaris increases. Hair loss
in the last two hours: 5,400.
* camel/providers/mbox/camel-mbox-provider.c
(camel_mbox_get_provider): Renamed function.
* camel/camel.h: All include files use camel/ now here.
* camel/providers/mbox/Makefile.am: Drop all the dynamism from
Camel, and make this a standard library.
2000-02-14 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/gmime-utils.c (get_header_array_from_stream): use the
eos stream method.
(gmime_read_line_from_stream): ditto.
* camel/camel-stream-fs.h (struct ): add the eof field
cosmetics changes.
* camel/camel-stream-fs.c (camel_stream_fs_init): set eof.
(_read): set eof on end of file.
(_eos): implemented.
* camel/gmime-utils.c (get_header_array_from_stream):
make a blocking version of the header parser.
When the fs stream uses gnome-vfs, this should
be changed.
(gmime_read_line_from_stream): ditto.
2000-02-11 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-stream-fs.c:
everywhere, when using the cur_pos field, do it
on the CamelSeekableStream object.
(_seek): small fix.
* camel/camel-seekable-stream.c (camel_seekable_stream_seek):
s/camel_stream_seek/camel_seekable_stream_seek/g
* camel/camel-seekable-stream.h:
(struct ): added a field to store the
current position.
* camel/camel-seekable-stream.c (camel_seekable_stream_get_current_position):
New function. Allows to get the current position
of a seekable stream.
2000-02-13 NotZed <notzed@zedzone.helixcode.com>
* providers/mbox/camel-mbox-search.c: New file, implements the
search api for mbox folders.
* providers/mbox/Makefile.am: Link with ibex.
* camel-folder.c (camel_folder_has_search_capability): Api
additions.
(camel_folder_search_by_expression): Ditto.
2000-02-12 NotZed <notzed@zedzone.helixcode.com>
* providers/mbox/camel-mbox-folder.c (_set_name): Setup index
filename as well.
(_init_with_store): Init index filename. Hmm, none of these
names ever seem to get free'd (FIXME?)
* providers/mbox/camel-mbox-folder.h: Add index file name.
2000-02-12 NotZed <notzed@helixcode.com>
* camel-folder.h: Add folder search functions.
** Created ChangeLog just for camel **
- refer to ../ChangeLog for changes prior to this date.