2000-02-09 NotZed <notzed@zedzone.helixcode.com>
* camel/camel-simple-data-wrapper-stream.c (read): Increment the
copy source address to match the data read offset.
(seek): Actually implement the seek.
svn path=/trunk/; revision=1722
2000-02-09 NotZed <notzed@zedzone.helixcode.com>
* camel/camel-mime-part-utils.c
(camel_mime_part_store_stream_in_buffer): If we get a -1 read,
DONT update the total bytes, and try and truncate the array in
reverse. Eek.
* camel/camel-mime-part.c (camel_mime_part_encoding_from_string):
This was DEFINETLEY not the right way to do it. strncmp!=strcmp
(camel_mime_part_encoding_to_string): Handle the default case.
: include string.h for strcmp() etc.
svn path=/trunk/; revision=1720
2000-02-09 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-mime-message.c (camel_mime_message_init):
set the mime type to "mime/message".
--- THIS IS NOT THE CONTENT TYPE ---
* camel/camel-mime-body-part.c (camel_mime_body_part_init):
set the mime type to "body-part".
--- THIS IS NOT THE CONTENT TYPE ---
* camel/camel-data-wrapper.c (camel_data_wrapper_set_mime_type):
mime_type is const.
(_set_input_stream): really set the input stream
(_set_output_stream): really set the output stream
various other typo fixes.
* tests/ui-tests/message-browser.c: various typo
fixes in the ctree construction.
svn path=/trunk/; revision=1712
2000-02-09 bertrand <Bertrand.Guiheneuf@aful.org>
* tests/ui-tests/message-browser.c: various typo
fixes in the ctree construction.
* camel/string-utils.c (string_trim): fix braindead
trailing trim bug.
* camel/gmime-content-field.c (gmime_content_field_construct_from_string):
strip the leading and trailing quotes when constructing the
content field. This should be done in a more generic
RFC822 approach, but this fixes a bug that prevent
matt from analysing some multipart messages.
* camel/camel-data-wrapper.h: reorganize the
deprecated and new methods.
* camel/providers/mbox/camel-mbox-folder.c
(_check_get_or_maybe_generate_summary_file):
Use "From " as the message separating string.
* camel/providers/mbox/camel-mbox-folder.c (_append_message):
set the mode when creating the mbox file.
* camel/providers/mbox/camel-mbox-utils.c (camel_mbox_write_xev):
ditto
* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary):
ditto
svn path=/trunk/; revision=1711
2000-02-09 NotZed <notzed@zedzone.helixcode.com>
* camel/camel-simple-data-wrapper-stream.c (class_init): Actually
initialise the class. It simple couldn't have worked before.
(camel_simple_data_wrapper_stream_construct): Commented out code
which crashes just to get something working, memory corruption??
svn path=/trunk/; revision=1707
* tests/ui-tests/message-browser.c: New file; shows a message in
tree format, where multipart's have multiple leaves.
* camel/camel-formatter.c: Changed references from
'multipart/alternate' to 'multipart/alternative'.
svn path=/trunk/; revision=1700
+ buffer length of the stream to create strings which are then
+ printed, rather than printing the stream (which might not have a
+ trailing \0) directly.
+
+ * camel/camel-formatter.c (str_tolower): New function; makes a
+ string lowercase.
svn path=/trunk/; revision=1698
* camel/camel-formatter.c: New member to 'CamelFormatterPrivate',
'attachments', will be used to let the caller know which items
should be treated as attachments (as opposed to objects which are
inline to the body).
(text_to_html): name changed from 'encode_entities'. Also now
converts newlines to <br> tags.
(camel_formatter_mime_message_to_html): Now takes two output
streams -- one for the header, and one for the body.
(get_bonobo_tag_for_object): New function; tries to make a tag out
of (1) the leaf of a mime message and (2) a bonobo object that can
handle its mime type, but can return NULL if it fails to find the
mime type.
(handle_vcard): New function; will write out a vcard as html.
svn path=/trunk/; revision=1696
+ which gives usage information.
+
+ * camel/camel-formatter.c: made the 'stream' a member of the
+ CamelFormatter class, so that streams don't have to be explicitly
+ sent as a param where a CamelFormatter is also sent..
+ (handle_text_plain): Use 'encode_entities' to change '<' to
+ '>', etc.
svn path=/trunk/; revision=1687
+ CamelFormatter class.
+
+ * camel/camel-formatter.c: Lots of cleanup, commenting, some new
+ functions, and a really basic skeleton for getting bonobo objects
+ into the html.
+ (encode_entities): New function, stolen from Daniel Velliard.
svn path=/trunk/; revision=1660
2000-01-26 bertrand <bertrand@helixcode.com>
* camel/providers/mbox/camel-mbox-folder.c:
renamed mbox_folder->summary to
mbox_folder->internal_summary to avoid
confusion with the camel_folder->summary
field.
(_append_message):
(_check_get_or_maybe_generate_summary_file):
update the external summary thingie.
* camel/camel-folder-summary.c (camel_folder_summary_new):
create the message and folder info arrays.
* camel/providers/mbox/camel-mbox-summary.c
(camel_mbox_summary_append_internal_to_external):
new function to append entries from the internal summary
to the external one.
* camel/providers/mbox/camel-mbox-folder.c (_append_message): reflect
name change.
* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_summary_append_entries):
namespace fix.
svn path=/trunk/; revision=1632
2000-01-24 bertrand <bertrand@helixcode.com>
* camel/camel-data-wrapper.h:
* camel/camel-data-wrapper.c
(_set_input_stream):
(_get_input_stream):
(_set_output_stream):
(_get_output_stream):
The CamelDataWrapper can now be provided with input and
output streams, so that nothing has to be kept in memory.
* camel/camel-stream.c (camel_stream_class_init):
added the "data_available" signal.
svn path=/trunk/; revision=1624
2000-01-24 bertrand <bertrand@helixcode.com>
* camel/camel-seekable-stream.c:
* camel/camel-seekable-stream.h:
* camel/camel-simple-data-wrapper-stream.h: parent class is now
CamelSeekableStream
* camel/camel-stream-buffered-fs.h: idem
* camel/camel-stream-buffered-fs.c: idem
* camel/camel-stream-mem.h: idem
* camel/camel-stream-mem.c: idem
(_seek): change declaration
* camel/camel-stream-fs.c: parent class is now
CamelSeekableStream
(_seek): change declaration
* camel/camel-stream-fs.h: parent class is now
CamelSeekableStream
Major compatible change in the stream hierarchy.
Removed the seek method from the general streams
so that we can use them as "DataSources".
svn path=/trunk/; revision=1622
2000-01-24 bertrand <bertrand@helixcode.com>
* camel/camel-recipient.c (camel_recipient_table_add_list):
add recipient_list to the recipients, not recipients_list.
I don't know what that variable was doing here.
2000-01-23 bertrand <bertrand@helixcode.com>
* camel/camel-store.c (camel_store_get_session):
added a public get_session method.
* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary):
(camel_mbox_load_summary): load/save message sizes in the summary file
* camel/providers/mbox/camel-mbox-summary.h:
added a size field to the message information
structure.
* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary):
copy message size to the mbox summary information too.
* camel/camel-stream-fs.c (_seek): updated to
work with bounded fs streams.
(_write): ditto.
(_read): ditto.
* camel/camel-stream-fs.h (struct ):
added the cur_pos, inf_bound and sup_bound
members to allow for bounded fs stream.
* camel/camel-stream-fs.c (_set_bounds): new func.
(_init_with_fd_and_bounds): idem.
(_init_with_name_and_bounds): idem.
New functions to allow the usage of bounded fs streams.
The bounded fs stream allow, for example, to make a stream
from a message stored in an mbox file.
svn path=/trunk/; revision=1620
* camel/camel-formatter.c (write_header_info_to_stream): new
function, broken out from 'camel_formatter_make_html'.
(write_mimepart_to_stream): same.
(find_text_body_part_in_multipart_related): new function.
(camel_formatter_make_html): Now tries to deal with
multipart/related, multipart/alternate, and text/(plain|html).
svn path=/trunk/; revision=1619
2000-01-22 bertrand <bertrand@helixcode.com>
* camel/providers/mbox/camel-mbox-folder.c (_check_get_or_maybe_generate_summary_file):
use the real summary file path instead of a
stupid hardcoded one. Fixes yet another bug.
* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary):
don't forget to copy the date too. Fix a very annoying bug.
* camel/providers/mbox/camel-mbox-folder.c (_append_message):
implemented. A lot of fixes too. Works now.
(_get_uid_list): implemented.
svn path=/trunk/; revision=1609
2000-01-22 bertrand <bertrand@helixcode.com>
* camel/providers/mbox/camel-mbox-folder.c (_append_message):
implemented. A lot of fixes too. Works now.
svn path=/trunk/; revision=1608
2000-01-21 bertrand <bertrand@helixcode.com>
* tests/test10.c:
test the mbox provider.
* camel/camel-folder.c (_set_name):
if camel_folder_get_mode returns an
exception, return it instead of
overriding it with a new one.
(camel_folder_is_open): make the is_open
method public.
(_set_name): use the is_open instead of
get_mode.
(_set_name): set the fullname even in the case
where the folder has no parent.
(_set_name): use %c, not %d to add the
separator char into the full path.
svn path=/trunk/; revision=1606
2000-01-21 bertrand <bertrand@helixcode.com>
* camel/camel-store.c: add exception handling everywhere in
the store related functions arguments.
* camel/providers/mbox/camel-mbox-folder.c: idem
* camel/providers/mbox/camel-mbox-folder.h: idem
* camel/providers/mbox/camel-mbox-store.h: idem
* camel/providers/mbox/Makefile.am (libcamelmbox_la_SOURCES):
added camel-mbox-provider.c to the mbox provider
sources.
svn path=/trunk/; revision=1605
2000-01-21 bertrand <bertrand@helixcode.com>
* camel/providers/mbox/Makefile.am (libcamelmbox_la_SOURCES):
added camel-mbox-provider.c to the mbox provider
sources.
* camel/providers/mbox/camel-mbox-provider.c:
provider registration code.
* camel/providers/mbox/camel-mbox-folder.c (_get_message_count): implemented
(_append_message): implemented
* camel/providers/mbox/camel-mbox-parser.c (initialize_buffer):
use \0 to mark the end of the buffer.
(read_next_buffer_chunk): ditto.
(read_header): test the presence of a \0 instead of
reading the eof field
(read_message_begining): idem.
(camel_mbox_parse_file): idem.
Remove the eof field from the parser
structure.
(read_next_buffer_chunk): removed some nasty bugs
again.
svn path=/trunk/; revision=1604
* camel/camel-formatter.c, camel/camel-formatter.h: New
files. You'll be able to use a CamelFormatter to get
html-formatted versions of a CamelMimeMessage.
svn path=/trunk/; revision=1600
2000-01-19 bertrand <bertrand@helixcode.com>
* camel/providers/mbox/camel-mbox-folder.c (_get_message_count):
implemented.
* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary):
(camel_mbox_load_summary): save/load the next uid.
* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file):
Compute the next available uid.
* camel/providers/mbox/camel-mbox-folder.c (_create):
(_check_get_or_maybe_generate_summary_file):
Set and use the next_uid field properly.
* camel/providers/mbox/camel-mbox-summary.h: added
an extra field to store the next available uid.
* camel/providers/mbox/camel-mbox-folder.c
(_check_get_or_maybe_generate_summary_file):
routine called when the folder is opened.
Reads or creates the summary file.
(_create): initialize the internal summary
structure.
(_close): save the summary file on closing.
(_init_with_store): initialize mbox specific
folder members.
svn path=/trunk/; revision=1597
2000-01-18 bertrand <bertrand@helixcode.com>
* tests/test9.c:
tests for summary and parsing process of mbox files.
* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file): do
not use case insensitive comp to detect message separators. Kill
some nasty bugs in netscape file parsing,
* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary):
don't use g_array_append but write directly inside the
array data instead. Better performance and bug fix.
* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_load_summary):
fix the name and bugs.
* camel/camel-folder-summary.h: update the class
method definition to match the public defs.
svn path=/trunk/; revision=1592
2000-01-18 bertrand <bertrand@helixcode.com>
* camel/providers/mbox/camel-mbox-summary.c (camel_mbox_save_summary):
(mbox_load_summary): summary file read/write routines.
* camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary):
routine to construct the summary after the mbox
file has been parsed and the x-evolution fields
inserted.
* camel/providers/mbox/camel-mbox-utils.c (camel_mbox_write_xev):
dont use the x_evolution field but rather the uid to
determine the presence of "X-Evolution" in the mail.
* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file):
parse the status and uid values if the x-evolution
has been found.
* camel/providers/mbox/camel-mbox-utils.c (camel_mbox_xev_parse_header_content):
return the parsed status field correctly.
* camel/providers/mbox/camel-mbox-utils.h:
fixed bad prototype.
* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file):
parse and store the "To:" header.
* camel/providers/mbox/camel-mbox-parser.h:
added a "to" field
* camel/camel-folder-summary.c:
create the arrays here.
* camel/camel-folder-summary.h: the list of
summary information is no longer a GList but
rather a GArray.
Parsing/summary/sync-check is here. Needs testing
and integration with the rest of the folder code.
svn path=/trunk/; revision=1589
2000-01-17 bertrand <bertrand@helixcode.com>
* tests/test9.c (main): test for the mbox utils.
(copy_file_chunk): fixed a nasty bug.
(camel_mbox_write_xev): create the copy file descriptor
with the proper arguments. Exceptions implememnted.
(camel_mbox_write_xev): changed the way bytes are counted.
No more uses the message size cause it did not take into
account the message separators characters.
(camel_mbox_write_xev): hopefully fixed the last bugs.
works ok now.
Summary information / X-Evolution header generation should all
work ok now.
svn path=/trunk/; revision=1579
2000-01-13 bertrand <bertrand@helixcode.com>
* camel/providers/mbox/camel-mbox-parser.c (read_next_buffer_chunk):
eof is true when no more chars are available, not
when we've read the entire file.
(initialize_buffer): ditto.
(read_message_begining): documented.
(read_header): ditto.
(new_message_detected): ditto.
(advance_n_chars): ditto.
(goto_next_char): ditto.
(read_next_buffer_chunk): ditto.
(initialize_buffer): ditto.
(parser_free): ditto.
(new_parser): ditto.
More parser decoding and clean-ups.
Documented all the static routines properly.
svn path=/trunk/; revision=1567
2000-01-12 bertrand <bertrand@helixcode.com>
* camel/providers/mbox/camel-mbox-parser.h (camel_mbox_parse_file):
Added the prototype of camel_mbox_parse_file.
* camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file):
updated in-line documentation.
Evolution is now in a compilable state.
svn path=/trunk/; revision=1565
2000-01-12 bertrand <bertrand@helixcode.com>
* tests/Makefile.am (noinst_PROGRAMS):
remove non updated tests from the build
process.
* camel/Makefile.am :
remove the rfc2047 related files from
the build process as for the moment, nothing
has been decided concerning unicode.
* Makefile.am (evolution_msg_composer_LDADD):
use $(EXTRA_GNOME_LIBS_THREADS) to link with gthread
svn path=/trunk/; revision=1564
2000-01-12 bertrand <bertrand@helixcode.com>
* corrected a bunch of bugs
* camel/providers/mbox/camel-mbox-parser.c
(camel_mbox_parse_file):
parser the subject and date.
* camel/providers/mbox/camel-mbox-parser.c
(camel_mbox_parse_file): added the ability to
follow the parsing progression.
* camel/providers/mbox/camel-mbox-parser.h:
parse the x-evolution field.
svn path=/trunk/; revision=1563
2000-01-11 bertrand <bertrand@helixcode.com>
Backup of the first clean and working mbox file
parser. It both find the message and pre-parse
the message, that is, retrieve some key headers,
and the first lines of the body.
svn path=/trunk/; revision=1556
Lots of reorganization to get the Evolution shell to begin its life.
It also includes a new evolution widget from Damon.
Miguel.
svn path=/trunk/; revision=1536
2000-01-03 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/providers/mbox/camel-mbox-folder.c (_list_subfolders):
detects netscape ".sdb" folders as well as simple
non-suffixed folders (as the ones used in pine).
* camel/string-utils.c (string_prefix):
finished implementation.
(string_prefix): added a boolean flag to indicate if the
suffix has been found. When the suffix does not match,
return NULL.
svn path=/trunk/; revision=1531
1999-12-18 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (camel_folder_get_summary):
documented.
added the providers/mbox directory. Now that camel-folder
has been cleaned up a bit, the main evolution provider
work can start. The MH provider was only a proof of
concept, and should not be used for the moment.
svn path=/trunk/; revision=1503
1999-12-18 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder-pt-proxy.c (_append_message):
updated to take the change on append into account.
* camel/camel-folder.h:
updated class def concerning append.
* camel/camel-folder.c
(camel_folder_append_message): documented.
(camel_folder_append_message): don't return the
message number. Use specific methods instead.
(_append_message): idem.
svn path=/trunk/; revision=1502