diff options
author | bertrand <Bertrand.Guiheneuf@aful.org> | 1999-08-26 17:44:33 +0800 |
---|---|---|
committer | Bertrand Guiheneuf <bertrand@src.gnome.org> | 1999-08-26 17:44:33 +0800 |
commit | 2a912b33018b0389672d9a4f09496b6a57071388 (patch) | |
tree | a34375a629d3d36575eae930a39ee3e76f2fba3c /camel/camel-mime-part.c | |
parent | a76dccf18b6d8b854280031dbcc9187cd5744958 (diff) | |
download | gsoc2013-evolution-2a912b33018b0389672d9a4f09496b6a57071388.tar gsoc2013-evolution-2a912b33018b0389672d9a4f09496b6a57071388.tar.gz gsoc2013-evolution-2a912b33018b0389672d9a4f09496b6a57071388.tar.bz2 gsoc2013-evolution-2a912b33018b0389672d9a4f09496b6a57071388.tar.lz gsoc2013-evolution-2a912b33018b0389672d9a4f09496b6a57071388.tar.xz gsoc2013-evolution-2a912b33018b0389672d9a4f09496b6a57071388.tar.zst gsoc2013-evolution-2a912b33018b0389672d9a4f09496b6a57071388.zip |
new file, groups mime-part related utils. Meant to be used by providers
1999-08-26 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-mime-part-utils.c: new file, groups
mime-part related utils. Meant to be used by providers
subclassing MimeMessage.
(camel_mime_part_construct_headers_from_stream):
(camel_mime_part_construct_content_from_stream):
no more useless temporary hash table.
* camel/camel-mime-part.c (_construct_from_stream): calls
mime-part-utils functions now.
* camel/gmime-utils.c (_store_header_pair_from_string):
do not use hash table to store header, use an array instead.
* MimePart cleanup. Not complete yet. Content must not be
parsed when constructing but only when content object is requested.
Default implementation will keep content in a stream.
svn path=/trunk/; revision=1144
Diffstat (limited to 'camel/camel-mime-part.c')
-rw-r--r-- | camel/camel-mime-part.c | 71 |
1 files changed, 6 insertions, 65 deletions
diff --git a/camel/camel-mime-part.c b/camel/camel-mime-part.c index 1e41e5038d..ef01a54ba4 100644 --- a/camel/camel-mime-part.c +++ b/camel/camel-mime-part.c @@ -719,77 +719,18 @@ _parse_header_pair (CamelMimePart *mime_part, gchar *header_name, gchar *header_ } -/* calls _parse_header_pair, but can be called - in a g_hash_table_for_each */ -void -_parse_hash_table_pair (gpointer key, gpointer value, gpointer user_data) -{ - gchar *header_name = (gchar *)key; - gchar *header_value = (gchar *)value; - CamelMimePart *mime_part = (CamelMimePart *) user_data; - - - CAMEL_LOG_FULL_DEBUG ("\n--------- New Header ----------\n"); - if (header_name) - CAMEL_LOG_FULL_DEBUG ( "header name :%s\n", header_name); - if (header_value) - CAMEL_LOG_FULL_DEBUG ( "header value :%s\n", header_value); - - camel_medium_add_header ( CAMEL_MEDIUM (mime_part), header_name, header_value); - - CAMEL_LOG_FULL_DEBUG ( "--------- End -----------------\n"); -} void _construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) { - GHashTable *header_table; + CamelMimePart *mime_part = CAMEL_MIME_PART (data_wrapper); - GMimeContentField *content_type; - gchar *mime_type; - GtkType content_object_type; - CamelDataWrapper *content_object; - - CAMEL_LOG_FULL_DEBUG ("CamelMimePart:: Entering _construct_from_stream\n"); - g_assert (stream); - CAMEL_LOG_FULL_DEBUG ("CamelMimePart::construct_from_stream parsing headers\n"); - /* parse all header lines */ - header_table = get_header_table_from_stream (stream); - if (header_table) { - g_hash_table_foreach (header_table, _parse_hash_table_pair, (gpointer)mime_part); - } - g_hash_table_destroy (header_table); - CAMEL_LOG_FULL_DEBUG ("CamelMimePart::construct_from_stream headers parsed \n"); - - /* now parse the content */ - /* find its mime type */ - CAMEL_LOG_FULL_DEBUG ("CamelMimePart::construct_from_stream parsing content\n"); - content_type = camel_mime_part_get_content_type (mime_part); - mime_type = gmime_content_field_get_mime_type (content_type); - - if (!mime_type) { - CAMEL_LOG_FULL_DEBUG ("CamelMimePart::construct_from_stream content type field not found " - "using default \"text/plain\"\n"); - mime_type = g_strdup ("text/plain"); - camel_mime_part_set_content_type (mime_part, mime_type); - } - content_object_type = data_wrapper_repository_get_data_wrapper_type (mime_type); - - CAMEL_LOG_FULL_DEBUG ("CamelMimePart::construct_from_stream content type object type used: %s\n", gtk_type_name (content_object_type)); - g_free (mime_type); - content_object = CAMEL_DATA_WRAPPER (gtk_type_new (content_object_type)); - camel_data_wrapper_set_mime_type_field (content_object, camel_mime_part_get_content_type (mime_part)); - camel_medium_set_content_object ( CAMEL_MEDIUM (mime_part), content_object); - camel_data_wrapper_construct_from_stream (content_object, stream); - - /* the object is referenced in the set_content_object method, so unref it here */ - gtk_object_unref (GTK_OBJECT (content_object)); - - - CAMEL_LOG_FULL_DEBUG ("CamelMimePart::construct_from_stream content parsed\n"); - - + + camel_mime_part_construct_headers_from_stream (mime_part, stream); + camel_mime_part_construct_content_from_stream (mime_part, stream); + CAMEL_LOG_FULL_DEBUG ("CamelMimePart:: Leaving _construct_from_stream\n"); + } |