diff options
author | bertrand <bertrand@helixcode.com> | 2000-03-04 06:26:13 +0800 |
---|---|---|
committer | Bertrand Guiheneuf <bertrand@src.gnome.org> | 2000-03-04 06:26:13 +0800 |
commit | 41694524a6b39908c8c7a5e298f252c488416afd (patch) | |
tree | 35a04aefd33893af9d83c872919cca2216167a89 /camel/camel-mime-part.c | |
parent | f073038b91db7859f22c240c82226e4741228a7f (diff) | |
download | gsoc2013-evolution-41694524a6b39908c8c7a5e298f252c488416afd.tar.gz gsoc2013-evolution-41694524a6b39908c8c7a5e298f252c488416afd.tar.zst gsoc2013-evolution-41694524a6b39908c8c7a5e298f252c488416afd.zip |
use set_input_stream instead of construct_from_stream to feed the message
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.
mbox provider now also constructs message bodies. I should have looked
here first. damn.
svn path=/trunk/; revision=2030
Diffstat (limited to 'camel/camel-mime-part.c')
-rw-r--r-- | camel/camel-mime-part.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/camel/camel-mime-part.c b/camel/camel-mime-part.c index 57b2659ffb..4c2ecca805 100644 --- a/camel/camel-mime-part.c +++ b/camel/camel-mime-part.c @@ -659,14 +659,27 @@ my_get_content_object (CamelMedium *medium) static void my_write_content_to_stream (CamelMimePart *mime_part, CamelStream *stream) { - CamelMedium *medium = CAMEL_MEDIUM (mime_part); + CamelMedium *medium; CamelStream *wrapper_stream; CamelStreamB64 *stream_b64; - CamelDataWrapper *content = medium->content; + CamelDataWrapper *content; + CAMEL_LOG_FULL_DEBUG ( "Entering CamelMimePart::_write_content_to_stream\n"); CAMEL_LOG_FULL_DEBUG ( "CamelMimePart::_write_content_to_stream, content=%p\n", content); - if (!content) return; + + g_assert (mime_part); + + medium = CAMEL_MEDIUM (mime_part); + content = medium->content; + + if (!content) { + content = camel_medium_get_content_object (mime_part); + } + + if (!content) { + return; + } switch (mime_part->encoding) { case CAMEL_MIME_PART_ENCODING_DEFAULT: @@ -677,6 +690,7 @@ my_write_content_to_stream (CamelMimePart *mime_part, CamelStream *stream) case CAMEL_MIME_PART_ENCODING_BASE64: /* encode the data wrapper output stream in base 64 ... */ wrapper_stream = camel_data_wrapper_get_output_stream (content); + camel_stream_reset (wrapper_stream); stream_b64 = CAMEL_STREAM_B64 (camel_stream_b64_new_with_input_stream (wrapper_stream)); camel_stream_b64_set_mode (stream_b64, CAMEL_STREAM_B64_ENCODER); @@ -858,8 +872,7 @@ my_set_input_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) camel_seekable_substream_new_with_seekable_stream_and_bounds (seekable_stream, content_stream_inf_bound, -1); - - + CAMEL_LOG_FULL_DEBUG ("CamelMimePart::set_input_stream leaving\n"); } |