| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-05-24 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-command.c (imap_read_untagged): Use
the new readline function.
* providers/imap/camel-imap-store.c (connect_to_server): Use the
new camel_imap_store_readline() function which doesn't suck quite
as bad as the original camel_remote_store_recv_line() function.
(camel_imap_store_readline): New function to replace
camel_remote_store_recv_line(). This function is at least safe
with embedded nul chars. Not that any of our callers use it
*sigh*.
svn path=/trunk/; revision=17012
|
|
|
|
| |
svn path=/trunk/; revision=14212
|
|
|
|
|
|
| |
(instead of version 2 or any later version).
svn path=/trunk/; revision=14190
|
|
|
|
|
|
| |
helixcode.com with ximian.com all over the place.
svn path=/trunk/; revision=10440
|
|
|
|
| |
svn path=/trunk/; revision=9024
|
|
|
|
|
|
|
|
|
| |
2000-11-14 Jeffrey Stedfast <fejj@helixcode.com>
* camel-stream.c (camel_stream_printf): Don't cast an int to a
ssize_t.
svn path=/trunk/; revision=6574
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-11-07 Not Zed <NotZed@HelixCode.com>
* camel-mime-filter-bestenc.c (complete): Implement a complete()
function, now we need one.
(filter): Upgraded to match rfrc2045 properly. Checks also for
length of line and valid CRLF sequences.
(camel_mime_filter_bestenc_get_best_encoding): Do the work of
working out what is the best encoding given what we found about
the stream.
* camel-mime-part.c (camel_mime_part_encoding_to_string): Use a
lookup table to get the encoding naem, and add the binary type.
(camel_mime_part_encoding_from_string): Likewise for the reverse.
* camel-mime-part.h: Added the binary encoding type, see rfc2045.
* camel-mime-utils.c (header_param_list_format_append): Dont put a
space before ;'s in parameter lists, makes them more
readable/consistent.
* camel-mime-message.c (multipart_has_8bit_parts): Cleaned up the
old stuff, well removed it.
(camel_mime_message_set_best_encoding): Added another argument
that lets you select what you want to set the best of. i.e. for
smtp transport we only need 7 bit, and dont need to optimise the
charset (although of course, we should always).
(find_best_encoding): Implement this feature, if we are not
getting the best charset, use the one we have.
(best_encoding): Set the charset on the part appropriately. Sigh,
the interfaces for this are nonexistant.
(find_best_encoding): Tell the bestenc filter that lf should be
treated as crlf for the purposes of determining encodings.
2000-11-06 Not Zed <NotZed@HelixCode.com>
* camel-charset-map.c (camel_charset_init): Init function for an
iterative charset determinator.
(camel_charset_step): Iterate another buffer.
(camel_charset_mask): Removed, since it couldn't have worked.
(camel_charset_best): Use the iterative interface to do the work.
(camel_charset_best_name): Get the best name for a charset so far.
* camel-mime-filter-bestenc.c: New class, a stream
filter that can be used to memory-efficiently determine the best
encoding and/or charset to use for a given stream of bytes.
* Makefile.am (libcamelinclude_HEADERS): Added stream-null*.
(libcamel_la_SOURCES): Added bestenc*
* camel-stream-null.c: New class, a null-stream, that always
succeeds, and never has any contents.
* camel-stream.c: Minor pointless changes. Was going to do
something else but changed my mind. Added trivial default
implementations for all callbacks.
* camel-mime-message.h: Cleaned up some old cruft.
* camel-folder-summary.c (camel_folder_summary_format_address):
address_list_format() no longer encodes, so we dont need to decode
it.
* camel-address.c (camel_address_unformat): New function, attempts
to reverse the formatting process on display addresses.
(camel_address_length): New function to get the number of
addresses, without having to peek the structure.
* camel-mime-message.c (camel_mime_message_set_from): Fix a typo.
(camel_mime_message_finalize): Only unref from/reply_to if we have
it.
(camel_mime_message_set_recipients): New function - set the
recipients as a CamelInternetAddress. This function effectively
deprecates the older recipient setting functions.
(camel_mime_message_add_recipient): What the hell, i'll bite the
bullet. Terminate this function. The old api was ambiguious and
inefficient and didn't work right anyway.
(camel_mime_message_remove_recipient_address): And this one.
(camel_mime_message_remove_recipient_name): And this one too.
(camel_mime_message_set_recipients): If we set an empty header,
then remove it from the header list. Allow a null receipient
object to clear a header.
(camel_mime_message_set_from): Likewise, if setting an empty from
address.
(camel_mime_message_encode_8bit_parts): Eeek!!
camel_stream_mem_new_with_byte_array owns the byte_array we give
it, so make sure we dont free any of it!
(camel_mime_message_encode_8bit_parts): Infact, i'll just rewrite
the whole lot, its a bit of a mess. Should really rename it and
make it a little more useful too, lets see ...
(best_encoding): This has a string interface? Oh boy.
(camel_mime_message_foreach_part): New experimental function to
iterate over all message parts. Might not remain.
(camel_mime_message_has_8bit_parts): New implementation using
foreach_part. Fixed a couple of problems.
(find_best_encoding): New function, that finds the best encoding
for a given part (will probably be moved to camel-mime-part), and
also the best charset to use if it is a text part. Since one
affects the other it is a two pass process, but uses streams and
not memory to achieve this.
(camel_mime_message_set_best_encoding): Uses the function above to
configure an entire message for the best encoding possible given
transport constraints.
(camel_mime_message_encode_8bit_parts): Reimplemented to use the
function above to perform the work.
* camel-internet-address.c
(camel_internet_address_format_address): Dont put <> around a lone
address with no real name.
(camel_internet_address_encode_address): Similarly.
(internet_decode): Actually return the count of decoded addresses.
(internet_unformat): Implement the unformatting routine.
2000-11-05 Not Zed <NotZed@HelixCode.com>
* providers/smtp/camel-smtp-transport.c (_send_to): Changed to get
the internetaddress directly, rather than having to parse it
itself.
* camel-address.c (camel_address_format): Added a new function
which will format address, suitable for display.
(camel_address_cat): Concatentate 1 camel address onto another.
It is upto the caller to ensure the addresses are of compatible
types.
(camel_address_new_clone): New function to create a new address by
copying an existing one of the same type.
(camel_address_copy): New helper function to copy an address.
* camel-mime-message.h (struct _CamelMimeMessage): Removed cached
copy of date string.
(struct _CamelMimeMessage): Added date_received info.
* camel-mime-message.c (camel_mime_message_get_date_string):
Removed. Nothing uses it anyway, and it is redundant.
(camel_mime_message_finalize): No more date_str.
(camel_mime_message_init): No more date_str, initialise
date_received*
(write_to_stream): Change the check for a date header.
(process_header): No longer track the date_str.
(camel_mime_message_get_received_date): Removed. totally invalid
anyway.
(camel_mime_message_get_sent_date): Removed. Redundant. The only
'date' is the sent date, the received date is just made up.
(camel_mime_message_get_date): Args changed to be more consistent
with utility functions.
(camel_mime_message_get_date): Dont set the date when we're asked
for it (if its not set by the time its written, it'll be set
then).
(camel_mime_message_get_date_received): Actually do 'the right
thing' here, if we have a received header, use that to determine
the received date. And return the data in the same format as
get_date.
(camel_mime_message_set_from): Changed the api to better match
what we should be doing. Pass a camelinternetaddress, etc.
(camel_mime_message_set_reply_to): Cahnged similarly to take an
internetaddress.
(camel_mime_message_get_reply_to): Likewise.
(camel_mime_message_finalize): Unref the from/reply_to objects.
(format_address): Removed, no longer needed.
(process_header): Changed to store the from/reply_to as
internetaddress's.
(write_to_stream): Set the from header directly to empty, if we
dont have one. Maybe we should just abort, and/or create one
based on the current user.
* camel-mime-utils.c (header_address_list_format): Renamed to
header_address_list_encode, which is what it is actually doing.
(header_address_list_format_append): Similarly.
(encoding_map[]): Removed, no longer used.
(header_address_list_encode_append): Take another arg, do we
encode the address (for internet), or not (for display - utf8
only).
(header_address_list_format): Re-added this function, but now it
generates a display version only. Surprise surprise, that is all
anythign needs to generate anyway. Sigh.
* camel-internet-address.c (camel_internet_address_get): Return
false if we get an invalid index only.
(camel_internet_address_encode_address): Helper function to encode
a single address for mailing.
(internet_encode): Use the above function to format it.
(camel_internet_address_format_address): Format a single address
for display.
(internet_format): Implement the display version.
(camel_internet_address_class_init): Init the internet_format
virtual function.
(internet_cat): Implement virtual function to concatenate
addresses.
* camel-folder-summary.c
(camel_folder_summary_info_new_from_header): new function, only
build the summary info, dont add it.
(camel_folder_summary_info_new_from_parser): Likewise, for new
info from parser.
(camel_folder_summary_add_from_parser): Cahnged to call function
above to build info.
(camel_folder_summary_add_from_header): Changed to call function
above, to build info.
(camel_folder_summary_info_free): New function to free the summary
message info.
(camel_folder_summary_clear): Changed to clal above to free info.
(camel_folder_summary_remove): Likewise.
(camel_folder_summary_add): Cleaned up the clashing uid
re-assignment logic a little bit.
(camel_folder_summary_decode_uint32): Fixed a typo, 01 != -1.
(camel_folder_summary_decode_time_t): Return -1 on error.
(camel_folder_summary_encode_off_t): New function to encode an
off_t type.
(camel_folder_summary_decode_off_t): And likewise for the reverse.
(CAMEL_FOLDER_SUMMARY_VERSION): Bumped the summary version, since
we're now encoding time/off_t's right.
(summary_header_save): Use time_t encoder to save the timestamp.
(summary_header_load): Likewise for decoding the timestamp.
(content_info_load): Decode off_t types directly, now we can.
(content_info_save): And likewise for encoding.
(camel_folder_summary_add_from_message): New function, create a
summary item from an existing message and add it.
(camel_folder_summary_info_new_from_message): New function, create
a summary item from an existing message.
(summary_build_content_info_message): New function to do the dirty
work of building the conent info/indexing, from a message source.
(format_recipients): Format an internetaddress suitable for the
summary.
(message_info_new_from_message): Build a new summary item from a
mime message.
(content_info_new_from_message): Build a new conent info from a
mime part.
(camel_folder_summary_class_init): Init the new class functions.
(message_info_new_from_message): Fixed for message api change.
Added documentation to the functions.
svn path=/trunk/; revision=6474
|
|
|
|
| |
svn path=/trunk/; revision=4687
|
|
|
|
|
|
|
|
| |
2000-07-12 Jeffrey Stedfast <fejj@helixcode.com>
* camel-stream.c: Use size_t and ssize_t for read/write methods
svn path=/trunk/; revision=4106
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and fixed at least one problem (end of stream never happening in certain
cases). Things that can fail now have a way of saying they failed too.
So much for taking ANZAC day off to get drunk!
2000-04-26 NotZed <NotZed@HelixCode.com>
* camel-seekable-substream.c (stream_seek): Changed to have
absolute seek semantics, not relative to the bounds.
* camel-seekable-stream.c (reset): When we reset, seek to the
start of the bound, if there is one.
(stream_tell): Make tell virtual.
* camel-stream-filter.c (do_available): Removed.
* camel-stream-buffer.c: Remove leading _'s from static functions.
(stream_read): Renamed from read(). Fancy that conflicting! (my
boo!) Others too.
* providers/pop3/camel-pop3-folder.c (get_message_by_number):
Changed to stream_mem interface.
* providers/mbox/camel-mbox-folder.c (_get_message_by_uid): Fixed
for streamfs interface changes, and implement a failure case.
(_append_message): Changed for fs stream interface change.
* camel-multipart.c (print_part): Iterate rahter than callback. I
hate glists's interface (hence, move this to write_to_stream).
(write_to_stream): Return an error (yuck, this is a royal PITA to
do with the stream write interface).
* camel-mime-message.c: Removed leading _ from static names.
* camel-mime-part.h: construct_from_parser() now returns an error
code.
* camel-mime-part-utils.c
(camel_mime_part_construct_content_from_parser): Changed to use a
camel-data-wrapper instead of a camel-simple-data-wrapper (no
change needed elsewhere?).
(simple_data_wrapper_construct_from_parser): Fixes for stream-mem
interface changes.
* camel-simple-data-wrapper.[ch],
camel-simple-data-wrapper-stream.[ch],
camel-stream-data-wrapper.[ch], removed. Fixed including of these
files.
* camel-mime-part.c (camel_mime_part_set_text): Remove the use of
the camel-simple-data-wrapper-stream, just use a mem stream.
(write_to_stream): Renamed from my_*
(construct_from_stream): Return an error on error.
* camel-stream-mem.c (camel_stream_mem_new*): Remove mode
parameter.
* camel-stream-mem.h (enum CamelStreamMemMode): Removed. It
wasn't used at all.
* camel-data-wrapper.h: Add camel_data_wrapper_new() to create
these.
(write_to_stream, construct_from_stream): Return an error
indicator for success. Fixed all methods to match (ICK).
* Makefile.am (libcamel_la_SOURCES): Remove
camel-simple-data-wrapper.c, camel-simple-data-wrapper-stream.c,
camel-stream-data-wrapper.c. Obsoleted by code re-use!
* camel-data-wrapper.c (construct_from_stream): Change the default
implementation to just set the output stream == construction
stream. Well, this lets me get rid of both simple-data-wrapper
and stream-data-wrapper (unused anyway), and
simple-data-wrapper-stream in one hit. CamelDataWrapper is now
also a concrete class.
(write_to_stream): Use camel_stream_write_to_stream() to
calculate/return values (and save code).
Include <errno.h> for obvious reasons.
* camel-stream.c (eos): Provide a default implementation of .eos().
(camel_stream_write_to_stream): Make it return an error code on
error.
(camel_stream_printf): Changed to return the number of bytes
written/error.
(camel_stream_available): Removed.
* camel-stream-fs.h (enum CamelStreamFsMode): Removed. Changed to
use unix modes and so forth (wasn't used for anything but new file
creation and didn't work well either).
* camel-stream-fs.c: Removed leading _'s for names. And removed
some virtual method 'documentation'.
(destroy): Dont try and close a closed/error fd. Only report
error if close returns -1. Moved all the code to finalise(), and
killed this function.
(init_with_fd): Properly setup the seek offset, if it is a
valid and seekable file descriptor.
(init_with_fd_and_bounds): Use off_t for bounds, set bounds on the
seekable stream.
(init_with_name): Return error codes.
(init_with_name_and_bounds): Ditto.
(camel_stream_fs_new_with_name): REturn NULL object if it failed.
(camel_stream_fs_new_with_name_and_bounds): Return NULL object on
failure. Changed with_name* api's to take unix open style args
and flags.
(read): The bounded stream bounds checking seemed off, simplified
code a bit.
(write): Implement bounds checking for writing, the comment was
wrong, it could make sense to bound writing. Cleaned up a little.
(available): Gone.
(eos): Removed. Use CamelStream's implementation now.
(close): Reset the fd to -1, provide a warning for bad usage.
(seek): Cleaned up. Changed the behaviour a little, the returned
offset is the absolute position in the file, even in bounded
streams.
(seek): Seek from end mirrors lseek() behaviour (reverse seeking).
2000-04-25 NotZed <NotZed@HelixCode.com>
* camel-stream-fs.h (struct _CamelStreamFs): Moved bounds and eof
indicator to other parent classes.
* camel-stream.c (camel_stream_printf): New utility
function. Obvious use.
* camel-stream-mem.c: Removed leading _'s from static func's.
(camel_stream_mem_new_with_byte_array): Fixed for api changes, set
the owner for the byte array to us.
: Removed A bunch of gtk doc stuff for static (implementation) functions.
(available): Removed.
(write): Fixed the write implementation so that seek() works on a
seekable memory stream, as expected. Seeking past the end of the
buffer has unix semantics (filling with 0).
(available): Removed.
(write): Implement seekable stream bounded stream.
(read): Implement seekable stream bounded stream.
(close): Dont free the stream_mem if we're not the owner.
(seek): Allow to seek beyond the end of memory area,
implement bounds checking.
(seek): Set errno on bad policy.
* camel-stream-mem.h (struct _CamelStreamMem): Changed position to off_t.
(new_with_buffer): Changed len to be a size_t.
(set_buffer, set_byte_array): New interface functions.
(struct _CamelStreamMem): Removed position, it is stored in the
superclass.
* camel-stream.h: Removed some of the seemingly random
whitespace. Removed the available method (its not
impelemented/useful enough).
* camel-seekable-substream.c
(init_with_seekable_stream_and_bounds): Remove the data_available
stuff, it hasn't been properly implemented/finished, and may never
work (unfortunately *sigh).
(reemit_parent_signal): Removed part of the above change.
(set_bounds): Removed (moved to seekable-stream).
: Fixed up some of the generally unreadable indenting (sorry,
wrapping at 80 characters with
camels_really_long_function_names()
just_doesnt_work_very_well_does_it().
(available): Removed.
(stream_seek): Fixup for object changes. Make sure we return -1
if the parent stream can't seek.
* camel-seekable-stream.c (ccamel_seekable_stream_set_bounds): New
function to bound any seekable stream.
: Removed _'s.
(camel_seekable_stream_class_init): Implement an init function, to
setup the stream bounds to unbound.
* camel-seekable-stream.h (CamelSeekableStreamClass): New virtual
method set_bounds for seekable streams.
(CAMEL_STREAM_UNBOUND): New define for no bound.
* camel-seekable-substream.h (struct _CamelSeekableSubstream):
Removed sup_bound and inf_bound, moved to CamelSeekableStream (and
renamed, and changed to off_t's).
(new_with_seekable_stream_and_bounds): Use off_t as the bounds.
(CamelSeekableSubstreamClass): Uh, why was the intialiser virtual?
Removed.
* camel-seekable-stream.[ch] (CamelSeekableStreamClass): Changed seek
to accept an off_t as the offset.
(struct _CamelSeekableStream): Renamed cur_pos to position and
changed it to an off_t type.
(enum CamelStreamSeekPolicy): Set to match the SEEK_* constants
from lseek().
(get_current_position): Renamed to tell().
* camel-stream-buffer.h: Commented out set_vbuf - never implemented.
svn path=/trunk/; revision=2624
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-04-20 NotZed <NotZed@HelixCode.com>
* MERGE NEW_PARSER branch into HEAD, fixed conflicts.
* gmime-content-field.c (_print_parameter): Duh, removed again
(@@#$@ cvs merge).
* camel-mime-utils.c (header_content_type_is): Constify.
(header_content_type_unref): Killed a couple warnings.
* camel-folder.c (_init): Removed more log crap.
* providers/Makefile.am (SUBDIRS): Removed nntp, pending fixes for
summary changes.
* providers/mbox/camel-mbox-folder.c (_get_message_by_number):
Fixed for new summary interface. Added a warning for using this
broken api.
(_get_message_by_uid): Fixed for message new with session
vanishing.
svn path=/trunk/; revision=2531
|
|
|
|
| |
svn path=/trunk/; revision=2091
|
|
|
|
|
|
|
|
|
|
| |
to find all the changes.
Important notice, I added uggly hacks to camel-formatter.c
and message-browser so that I could test b64 decoding.
Saving streams works. Have to implement qp now.
svn path=/trunk/; revision=1893
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
svn path=/trunk/; revision=1835
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-02-14 bertrand <Bertrand.Guiheneuf@aful.org>
* 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.
In fact much more changes, but I am lazy.
This is the begining of some major changes
in camel.
svn path=/trunk/; revision=1778
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
svn path=/trunk/; revision=1533
|
|
|
|
| |
svn path=/trunk/; revision=1489
|
|
|
|
| |
svn path=/trunk/; revision=1348
|
|
|
|
| |
svn path=/trunk/; revision=1147
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-28 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-mime-part.c (camel_mime_part_set_text):
text parameter declared const
* camel/camel-mime-part-utils.c (camel_mime_part_store_stream_in_buffer):
actually test correctly nb_bytes_read_chunk is >0
* camel/gstring-util.c:
* camel/gmime-content-field.c:
* camel/providers/MH/camel-mh-folder.c:
* camel/camel-stream-fs.c:
include string.h
* camel/camel-stream-mem.c (_write): return
the numver of written bytes.
* camel/camel-stream-buffered-fs.c (_eos):
return sthg
* camel/camel-stream.c (default_camel_seek):
return something.
* Started to work on new recipient code.
* fixed various leaks.
svn path=/trunk/; revision=1146
|
|
|
|
|
|
|
|
|
| |
1999-08-20 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-stream-fs.c (camel_stream_fs_new_with_name):
name parameter is const. This fixes a bug in destroy ()
svn path=/trunk/; revision=1135
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-08-17 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-stream.c (camel_stream_read):
return the number of bytes read.
How can this have ever worked ?
(camel_stream_flush): don't return anything.
* camel/gmime-utils.c (get_header_table_from_stream):
mem leak fixed.
+ various other mem leaks.
svn path=/trunk/; revision=1120
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel/camel-stream-mem.c:
* camel/camel-stream-mem.h:
new memory buffer based stream.
* camel/camel-stream-fs.c (_seek):
implementation for file system based stream.
* camel/camel-stream.c (camel_stream_seek):
new method.
* camel/camel-stream-fs.c (camel_stream_fs_class_init):
pass CamelStreamFsClass instead of CamelStreamClass.
svn path=/trunk/; revision=1056
|
|
|
|
| |
svn path=/trunk/; revision=1052
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-07-13 Miguel de Icaza <miguel@gnu.org>
* camel/gmime-base64.c (gmime_encode_base64): Implemented base64
encoder based on CamelStreams. Should the encoder/decoder be a
Stream itself?
* camel/gmime-utils.c: include config.h here.
* camel/url-util.c: ditto.
* camel/gstring-util.c: ditto.
* camel/gmime-content-field.c: ditto.
* camel/camel-stream.c: ditto.
* camel/camel-stream-fs.c: ditto.
* camel/camel-store.c: ditto.
* camel/camel-simple-data-wrapper.c: ditto.
* camel/camel-session.c: ditto.
* camel/camel-service.c: ditto.
* camel/camel-mime-part.c: ditto.
* camel/camel-mime-message.c: ditto.
* camel/camel-log.c: ditto.
* camel/camel-data-wrapper.c: ditto
* camel/camel-folder.c: ditto.
* camel/camel-stream.c (camel_stream_write): Moved api
documentation to the places that they document.
(camel_stream_class_init): Virtual classes do not need to have a
default implementation. So null them all.
(camel_stream_write): Return value from write.
(camel_stream_available): implement.
(camel_stream_write_strings): documented.
* devel-docs/query/virtual-folder-in-depth.sgml: Small
reformatting
1999-06-28 bertrand <Bertrand.Guiheneuf@inria.fr>
* tests/test2.c (main): now use
CamelDataWrapper::contruct_form_stream to test
svn path=/trunk/; revision=1024
|
|
|
|
|
|
|
|
| |
All mime stuff uses streams now, and it still works.
Bertrand
svn path=/trunk/; revision=981
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1999-05-31 bertrand <Bertrand.Guiheneuf@inria.fr>
* tests/test2.c (main):
use new stream code instead of raw file * stuff.
* camel/gmime-utils.c (get_header_table_from_stream):
new func. Will replace get_header_table_from_file and will
be used to parse headers from files as well as from
memory buffers.
* camel/camel-stream-fs.c:
CamelStream Subclass. File system based
stream.
svn path=/trunk/; revision=961
|
|
1999-05-30 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-stream.h: new class. Represents an
abstract stream object.
svn path=/trunk/; revision=960
|