2000-05-19 NotZed <NotZed@HelixCode.com>
* camel-simple-data-wrapper.c (construct_from_stream): If we
already have been constructed, unref our content.
(write_to_stream): Check we've been constructued, and change for
stream api changes.
* camel-mime-parser.c: Removed exception stuff.
* md5-utils.c (md5_get_digest_from_stream): repaired.
* camel-mime-message.c: Remove exception from write_to_stream, and
fix, and fix formatting.
* providers/sendmail/camel-sendmail-transport.c (_send_internal):
Fix for stream changes.
* providers/pop3/camel-pop3-store.c (camel_pop3_command): Fixes
for stream changes.
* providers/mbox/camel-mbox-folder.c, and elsewhere, fix all
stream api changes.
(mbox_append_message): Use stream_close() now its back.
(mbox_append_message): unref the from filter.
* camel-stream-mem.c: And here.
* camel-stream-fs.[ch]: Here too.
* camel-stream-filter.c: Likewise. This is getting tedious.
* camel-stream-buffer.c (stream_write): Fix a few little problems.
(stream_close): Reimplmeent.
(camel_stream_buffer_read_line): Slightly more efficient version,
that also only allocates the right amount of memory for strings.
* camel-seekable-substream.c: Likewise.
* camel-seekable-stream.[ch]: Remove exceptions, fix formatting,
changes for stream (re)fixes. set_bounds returns an error.
* camel-stream.[ch]: Remove exceptions. Make flush and reset return
an error code, repair all the screwed up formatting, and put back
close.
* camel-mime-part-utils.c
(camel_mime_part_construct_content_from_parser): And here.
* camel-mime-part.c (camel_mime_part_set_content): And this too.
(write_to_stream): Fixed for stream changes.
* camel.h: Fixed.
* providers/vee/camel-vee-folder.c (vee_search_by_expression):
Implement. Performs an intersection of the two searches.
(camel_vee_folder_finalise): Unref search folders.
(vee_append_message): Implement append.
svn path=/trunk/; revision=3142
* camel-data-wrapper.c: remove get/set_output_stream operations.
They're redundant with write_to_stream, and CamelMimePart and
CamelMimeMessage only implement the latter, meaning that trying to
get_output_stream on a CamelMimeMessage that was built from pieces
rather than being parsed from a stream doesn't work. Anything that
uses get_output_stream can be rewritten to use write_to_stream, so
we'll standardize on that.
(camel_data_wrapper_new): remove this: CamelDataWrapper is
supposed to be an abstract class.
(write_to_stream): remove default implementation. (Moved to
CamelSimpleDataWrapper)
* camel-simple-data-wrapper.c: resurrect, although it's not really
the same thing it was before. A simple data wrapper, which is
backed by a CamelStream.
* camel-mime-part-utils.c
(simple_data_wrapper_construct_from_parser): Use
construct_from_stream rather than set_output_stream.
(camel_mime_part_construct_content_from_parser): Change
camel_data_wrapper_new to camel_simple_data_wrapper_new.
* camel-mime-part.c (camel_mime_part_set_content): Change
camel_data_wrapper_new to camel_simple_data_wrapper_new.
svn path=/trunk/; revision=3112
* providers/smtp/camel-smtp-transport.c
(smtp_get_email_addr_from_text): fix an off-by-one error in
address parsing
(smtp_data): use camel_data_wrapper_get_output_stream rather than
data_wrapper->output_stream
svn path=/trunk/; revision=3108
All this basically to support user flags in the summary. They
are not yet saved to the message headers (complicates things a bit).
2000-05-17 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-folder.c (message_changed): Snoop
changes to user flags on the message into the summary as well.
* providers/mbox/camel-mbox-summary.c (camel_mbox_summary_init):
Changed version init to include the parent class version info
(i.e. add it not overwrite it).
* camel-folder-summary.c (message_info_new): Initialise user_flags
to empty.
(message_info_load): And load user flags.
(message_info_save): And save user flags.
(message_info_free): And free them.
(CAMEL_FOLDER_SUMMARY_VERSION): Bumped file revision.
* camel-folder-summary.h: Added user-flags to summary.
* camel-mime-message.c (camel_mime_message_set_user_flag): Dont
use a hashtable for user flags.
(camel_mime_message_get_user_flag): And changed here too.
(camel_flag_get): New interface to get a flag from a flag
list. Flag lists are easier to work with than hash tables, and
save memory too.
(camel_flag_set): And set.
(camel_flag_list_free): And free.
(free_key_only): Discard.
(finalize): Remove the flag list.
svn path=/trunk/; revision=3107
2000-05-16 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-folder.c (mbox_delete_message_by_uid):
Implement.
2000-05-12 NotZed <NotZed@HelixCode.com>
* camel-movemail.c (camel_movemail): Open the destination with
O_APPEND, so we dont blow away a partially transferred mbox.
(camel_movemail): Loop if we get errno=INTR, and not fail.
svn path=/trunk/; revision=3100
* providers/nntp/camel-nntp-folder.c:
* providers/nntp/camel-nntp-folder.h:
* providers/nntp/camel-nntp-provider.c:
* providers/nntp/camel-nntp-store.c:
* providers/nntp/camel-nntp-utils.c:
* providers/nntp/camel-nntp-utils.h:
get things working with new camel summary stuff.
* providers/nntp/camel-nntp-summary.c:
* providers/nntp/camel-nntp-summary.h:
removed files since camel-folder-summary does all we need.
svn path=/trunk/; revision=3090
* camel-stream-mem.c (camel_stream_mem_new_with_buffer): Change
to match prototype (size_t vs unsigned int) so it works on 64-bit
machines. Noted by msw.
svn path=/trunk/; revision=2998
> the summary changed also.
>
> (camel_mbox_summary_update): Also save summary when done.
> (camel_mbox_summary_expunge): Unindex items when deleting them.
> (camel_mbox_summary_expunge): Save the index as well as the
> summary.
> (camel_folder_summary_touch): New function, indicate the summary
> info changed.
> (camel_folder_summary_remove): Dirty here.
svn path=/trunk/; revision=2994
2000-05-11 <notzed@helixcode.com>
* camel-folder-summary.c (camel_folder_summary_finalise): Free
summary items and charset filters.
2000-05-10 <notzed@helixcode.com>
* camel-folder-summary.c (camel_folder_summary_finalise): Don't
free stuff in p, after we've free'd p.
* providers/mbox/camel-mbox-folder.c (mbox_append_message): Unref
the stream we created for appending.
svn path=/trunk/; revision=2986
* camel-multipart.c (write_to_stream): fix a stupid typo. Thank
you, C.
* camel-mime-part.c (write_to_stream): don't ref the stream before
wrapper a filter around it, since nothing will ever unref it.
svn path=/trunk/; revision=2978
2000-05-10 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Removed dist-hook section.
* configure.in: Set the version number. Added a check for gnome
window icons. Removed a bunch of unused Makefiles.
* tools/Makefile.am: Created a proper EXTRA_DIST section.
* widgets/e-text/Makefile.am: Added
e-text-event-processor-types.h.
From addressbook/ChangeLog:
2000-05-10 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/Makefile.am: Added e-book-types.h, e-card-pairs.h,
e-card-types.h.
* backend/pas/Makefile.am: Added pas-backend-ldap.h.
* contact-editor/Makefile.am: Added a proper EXTRA_DIST section.
Removed some old defines.
* ename/Makefile.am: Added e-name-western-tables.h.
* gui/component/Makefile.am: Added e-ldap-server-dialog.h. Added
a proper EXTRA_DIST section.
* gui/minicard/e-reflow.c: Added a missed cast.
* printing/Makefile.am: Added a proper EXTRA_DIST section.
From calendar/ChangeLog:
2000-05-10 Christopher James Lahey <clahey@helixcode.com>
* gui/Makefile.am: Added main.h. Combined the two EXTRA_DIST
sections.
From camel/ChangeLog:
2000-05-10 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added camel-types.h, camel-folder-pt-proxy.h, and
camel-thread-proxy.h.
From default_user/ChangeLog:
2000-05-10 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am, local/Calendar/Makefile.am,
local/Contacts/Makefile.am, local/Directories/Makefile.am,
local/Directories/subfolders/Bigfoot/Makefile.am,
local/Directories/subfolders/Netcenter/Makefile.am,
local/Drafts/Makefile.am, local/Inbox/Makefile.am,
local/Outbox/Makefile.am, local/Trash/Makefile.am: Created a
proper EXTRA_DIST section.
From filter/ChangeLog:
2000-05-10 Christopher James Lahey <clahey@helixcode.com>
* filter-arg.h: Changed tree.h to gnome-xml/tree.h.
* Makefile.am: Added filter-arg-types.h, filter-arg.h,
filter-xml.h, filter-format.h, filter-druid.h, filter-editor.h.
From libical/ChangeLog:
2000-05-10 Christopher James Lahey <clahey@helixcode.com>
* configure.in: Reorder Makefiles so that it will build.
From mail/ChangeLog:
2000-05-09 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Removed folder-browser-factory.h since it doesn't
exist. Added mail-display.h, mail-types.h, pixmaps.h.
From widgets/e-table/ChangeLog:
2000-05-10 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-table-col-dnd.h and table-test.h.
From wombat/ChangeLog:
2000-05-10 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added an include for the pcs directory.
svn path=/trunk/; revision=2966
* providers/sendmail/camel-sendmail-transport.c (_send_internal):
Bleah. Can't fsync a pipe. As a quick kludge, just don't
stream_flush it. The right fix will require bringing back
stream_close though.
svn path=/trunk/; revision=2950
Tue May 9 09:32:33 EDT 2000 Jeffrey Stedfast <fejj@stampede.org>
o Undid changes to camel-internet-address.[c,h]
o Fixed providers/smtp/camel-smtp-transport.c _send to use camel_internet_address_get()
o formatting changes to providers/smtp/camel-smtp-transport.c
svn path=/trunk/; revision=2938
Tue May 9 09:03:18 EDT 2000 Jeffrey Stedfast <fejj@stampede.org>
o Moved struct_address from camel-internet-address.c to camel-internet-address.h (so it could be used in providers/smtp/camel-smtp-transport.h)
o providers/smtp/camel-smtp-transport.c _send should now work like it was meant to
CVS
svn path=/trunk/; revision=2937
Mon May 8 22:12:55 EDT 2000 Jeffrey Stedfast <fejj@stampede.org>
o updated to use CamelException (as needed by new camel-stream.c)
o no longer frees memory it shouldn't touch
svn path=/trunk/; revision=2929
* camel-stream.c (camel_stream_read, camel_stream_write,
camel_stream_flush, camel_stream_reset, camel_stream_printf,
camel_stream_write_to_stream): Use CamelException to signal
failure.
(camel_stream_write_strings): Remove. camel_stream_printf is more
useful in most of the places that used this.
(camel_stream_write_string): Change from macro to function to
prevent problems with double-evaluation.
* camel-seekable-stream.c (camel_seekable_stream_seek,
camel_seekable_stream_set_bounds): Use CamelException.
(reset): Update.
* camel-seekable-substream.c, camel-stream-buffer.c,
camel-stream-filter.c, camel-stream-fs.c, camel-stream-mem.c:
Update.
* camel-stream-fs.c: Remove the virtual init functions and move
the code into the creator functions. Add CamelExceptions to
creation functions that could fail.
* camel-data-wrapper.c (camel_data_wrapper_write_to_stream): Use
CamelException.
* camel-mime-message.c, camel-mime-part.c, camel-multipart.c
(write_to_stream): Update.
* camel-mime-parser.c: add an exception to the mime parser private
data and pass that to stream functions as needed.
* gmime-content-field.c, md5-utils.c: Update (badly) for stream
changes.
* camel-exception.h (camel_exception_is_set): convenience macro.
* providers/Makefile.am: disable SMTP for now
* providers/mbox/camel-mbox-folder.c (mbox_append_message): Pass
CamelException to the functions that now need it. Check the
exception after calling camel_stream_flush, and fail if it fails.
(mbox_get_message_by_uid): More updates.
* providers/pop/camel-pop3-folder.c,
providers/pop/camel-pop3-store.c,
providers/sendmail/camel-sendmail/transport.c: Update.
svn path=/trunk/; revision=2924
2000-05-08 NotZed <NotZed@HelixCode.com>
* camel-mime-message.c (process_header): Format From and Reply-To
to at least a decoded string. Should probably store them as an
camelinternetaddress.
svn path=/trunk/; revision=2908
2000-05-08 NotZed <NotZed@HelixCode.com>
* Merged NEW_SUMMARY branch back to trunk, and resolved conflicts.
* providers/mbox/camel-mbox-summary.c (camel_mbox_summary_update):
Return status.
* camel-stream-filter.c (do_close): We NEED a stream close.
svn path=/trunk/; revision=2906
* camel-object.c: New subclass of GtkObject which is now the base
of the Camel object hierarchy. Currently the only difference
between CamelObject and GtkObject is that CamelObjects don't start
out floating.
* *.h: Move a bunch of typedefs to camel-types.h. Standardize on
using <camel/foo.h> in header files rather than <foo.h>, "foo.h",
or "camel/foo.h". Remove some unneeded includes.
* camel-address.c, camel-data-wrapper.c, camel-folder-search.c,
camel-folder-summary.c, camel-folder.c, camel-mime-filter.c,
camel-mime-parser.c, camel-service.c, camel-session.c,
camel-stream.c: These are now subclasses of CamelObject.
* camel-data-wrapper.c (set_output_stream):
* camel-medium.c (set_content_object):
* camel-seekable-substream.c
(init_with_seekable_stream_and_bounds):
* providers/mbox/camel-mbox-folder.c (mbox_get_message_by_uid):
remove gtk_object_sink calls.
* camel-stream-buffer.c (init_vbuf):
* camel-stream-filter.c (camel_stream_filter_new_with_stream):
ref the original stream.
* camel-folder-summary.c (camel_folder_summary_finalise): unref
the filters when finalizing.
* camel-mime-part-utils.c
(simple_data_wrapper_construct_from_parser,
camel_mime_part_construct_content_from_parser):
* camel-mime-part.c (camel_mime_part_set_content): Unref objects
that are created only to be handed off to other objects. If
they're going to be needed later, they will have been additionally
ref'ed by the object that needs them.
* providers/pop3/camel-pop3-folder.c (get_message_by_number):
unref the message stream after creating the data from it.
* camel-stream.c, camel-stream-buffer.c, camel-stream-filter.c,
camel-stream-fs.c, camel-stream-mem.c: Remove camel_stream_close,
since its semantics are dubious (what happens when you close a
stream other people still have references on?).
* providers/nntp/camel-nntp-store.c:
* providers/smtp/camel-smtp-transport.c:
* providers/pop3/camel-pop3-store.c:
replace camel_stream_close calls with gtk_object_unref.
* providers/mbox/camel-mbox-folder.c:
* providers/nntp/camel-nntp-folder.c:
* providers/sendmail/camel-sendmail-transport.c:
replace camel_stream_close with camel_stream_flush +
gtk_object_unref
svn path=/trunk/; revision=2882
* providers/pop3/camel-pop3-store.c (query_auth_types): A machine
which serves neither POP nor KPOP is not a POP server.
* providers/smtp/camel-smtp-provider.c: Note in the description
that this provider is not yet tested.
svn path=/trunk/; revision=2843
2000-05-05 NotZed <NotZed@HelixCode.com>
* camel-folder-summary.c: And same here ...
* camel-mime-utils.c: Defined out some memory profiling stuff I
left there by mistake.
* camel-mime-parser.c (folder_scan_content): Apply the fix from
the header scanner to here too.
(folder_scan_header): Only check for end of header if we have
space for it (didn't end the read with a newline)
(folder_scan_header): inptr is the only real thing we need
registerised for performance. Try to help the compiler be smart
about it ..
(folder_scan_header): Simplified the save header case a tad.
Commented out some memory profiling stuff.
svn path=/trunk/; revision=2811
2000-05-05 <notzed@helixcode.com>
* camel-mime-utils.c (header_decode_mailbox): Plug a memory leak.
(header_decode_text): Fixed memory leaks with g_string_append().
(header_encode_string): And here too, and a few other places. The
glib api is so awful ...
(header_content_type_decode): More memory leaks, more left ...
2000-05-05 <notzed@helixcode.com>
* camel-mime-parser.c (folder_scan_init_with_fd): Make sure we
init the end of buffer sentinal!
(folder_scan_init_with_stream): And here too ...
svn path=/trunk/; revision=2810
2000-05-04 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-folder.c (summary_get_message_info):
Maxcount is minimum of the max and the requested count, not the
maximum :)
* camel-mime-parser.c (folder_scan_content): Properly set midline,
so we dont falsely catch offset boundary markers (i.e. From inside
content).
(folder_read): Set a sentinal on the end of the read data (\n) so
we dont have to check the buffer boundary in the inner loop.
(mempool_*): New experimental memory management routines, speed
up simple structure parsing by about 25% ... not compiled in by
default. Something similar may be needed for camel-mime-utils to
address performance issues with g_malloc and friends.
* camel-mime-utils.c: Added a macro w(x) used to wrap all warnings
about mime/rfc violations, so they can be turned off.
* camel-folder-summary.c (summary_build_content_info): Step after
the end of a message ...
Turn into a stand-alone program for testing and profiling.
svn path=/trunk/; revision=2808
* providers/pop3/camel-pop3-store.c (pop3_connect): Don't fall
back to plaintext passwords if APOP fails, since it should also
fail.
svn path=/trunk/; revision=2798
* camel-session.c (camel_session_list_providers): New function to
replace camel_provider_scan. Returns a list of either (a) all
currently-loaded providers, or (b) all available providers.
* camel-url.[ch]: Add an "empty" flag to CamelURL (indicating that
it contains only a protocol).
* camel-service.c (camel_service_query_auth_types): Make this take
a CamelException (since it may have to try to connect to the
server, and it might not able to.)
* providers/pop3/camel-pop3-store.c: add KPOP (Kerberized POP)
support. This is mostly so I have two kinds of authmech to play
with instead of just one. (But it does actually work.)
* providers/smtp/camel-smtp-transport.c (query_auth_types): update
for prototype change, but disable the functionality, since it
doesn't really support any auth types yet.
(camel_smtp_transport_get_type): add an object init function to
set the service url_flags.
svn path=/trunk/; revision=2797
not even if its slipped in with no changelog.
2000-05-04 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-summary.c: Yes, and anotherone.
* camel-mime-utils.c: And another one.
* camel-mime-part.c: And another one.
* camel-mime-part-utils.c: And another one.
* camel-folder-search.c: And another one.
* camel-mime-parser.c: Reverted a change wihtout a ChangeLog entry.
2000-05-04 NotZed <NotZed@HelixCode.com>
* camel-folder-summary.[hc]: Yes, CamelFolderSummary is back ...
... re-usable class to summarise and index any stream or message
and to manage/load/save the created summaries.
* camel-folder.c: Include string.h to kill a warning.
2000-05-03 NotZed <NotZed@HelixCode.com>
* camel-folder.h: Added pos/bodypos/endpos to the basic message
content info object. Size to be removed? Moved the
messageconentinfo and messageinfo back to camel-folder-summary.h.
* camel-mime-filter-index.c (camel_mime_filter_index_set_ibex):
New function to (re)set the index to use on a filter.
* camel-mime-parser.c (camel_mime_parser_scan_from): Whole bunch
of inline docs.
(camel_mime_parser_drop_step): New function to drop a state from
the parser. Needs more testing.
svn path=/trunk/; revision=2789
* camel/Makefile.am (INCLUDES): add $(UNICODE_CFLAGS) to the INCLUDES,
people who installed libunicde in non-standard include paths
need this.
* mail/Makefile.am (evolution_mail_LDADD):
s/-lunicode/$(UNICODE_LIBS)/
svn path=/trunk/; revision=2785
2000-05-03 NotZed <NotZed@HelixCode.com>
* camel-mime-utils.c (rfc2047_decode_word): If the iconv handle is
-1, then dont try and convert (crashes unicode_iconv?).
(rfc2047_decode_word): Use alloca for variables instead of
g_malloc - by the rfc they should always be short.
(rfc2047_decode_word): If we can't do the charset conversion, undo
the quoted-printable/base64 at least? Should probably convert
unknown characters to the utf-8 unknown character.
svn path=/trunk/; revision=2774