aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
Diffstat (limited to 'camel')
-rw-r--r--camel/camel-data-wrapper.c28
-rw-r--r--camel/camel-data-wrapper.h11
-rw-r--r--camel/camel-mime-part.c81
-rw-r--r--camel/camel-mime-part.h5
4 files changed, 81 insertions, 44 deletions
diff --git a/camel/camel-data-wrapper.c b/camel/camel-data-wrapper.c
index f885e8a0a6..38d91b13e9 100644
--- a/camel/camel-data-wrapper.c
+++ b/camel/camel-data-wrapper.c
@@ -33,8 +33,8 @@ static GtkObjectClass *parent_class=NULL;
static void _construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream, guint size);
static void _write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream);
-static void _set_content_type (CamelDataWrapper *data_wrapper, GString *content_type);
-static GString *_get_content_type (CamelDataWrapper *data_wrapper);
+static void _set_mime_type (CamelDataWrapper *data_wrapper, GString *mime_type);
+static GString *_get_mime_type (CamelDataWrapper *data_wrapper);
static void
camel_data_wrapper_class_init (CamelDataWrapperClass *camel_data_wrapper_class)
@@ -44,8 +44,8 @@ camel_data_wrapper_class_init (CamelDataWrapperClass *camel_data_wrapper_class)
/* virtual method definition */
camel_data_wrapper_class->write_to_stream = _write_to_stream;
camel_data_wrapper_class->construct_from_stream = _construct_from_stream;
- camel_data_wrapper_class->set_content_type = _set_content_type;
- camel_data_wrapper_class->get_content_type = _get_content_type;
+ camel_data_wrapper_class->set_mime_type = _set_mime_type;
+ camel_data_wrapper_class->get_mime_type = _get_mime_type;
/* virtual method overload */
}
@@ -59,7 +59,7 @@ camel_data_wrapper_init (gpointer object, gpointer klass)
{
CamelDataWrapper *camel_data_wrapper = CAMEL_DATA_WRAPPER (object);
- camel_data_wrapper->content_type = gmime_content_field_new (NULL, NULL);
+ camel_data_wrapper->mime_type = gmime_content_field_new (NULL, NULL);
}
@@ -147,29 +147,29 @@ camel_data_wrapper_construct_from_stream (CamelDataWrapper *data_wrapper, CamelS
static void
-_set_content_type (CamelDataWrapper *data_wrapper, GString *content_type)
+_set_mime_type (CamelDataWrapper *data_wrapper, GString *mime_type)
{
- g_assert (content_type);
- gmime_content_field_construct_from_string (data_wrapper->content_type, content_type);
+ g_assert (mime_type);
+ gmime_content_field_construct_from_string (data_wrapper->mime_type, mime_type);
}
void
-camel_data_wrapper_set_content_type (CamelDataWrapper *data_wrapper, GString *content_type)
+camel_data_wrapper_set_mime_type (CamelDataWrapper *data_wrapper, GString *mime_type)
{
- CDW_CLASS(data_wrapper)->set_content_type (data_wrapper, content_type);
+ CDW_CLASS(data_wrapper)->set_mime_type (data_wrapper, mime_type);
}
static GString *
-_get_content_type (CamelDataWrapper *data_wrapper)
+_get_mime_type (CamelDataWrapper *data_wrapper)
{
GString *mime_type;
- mime_type = gmime_content_field_get_mime_type (data_wrapper->content_type);
+ mime_type = gmime_content_field_get_mime_type (data_wrapper->mime_type);
return mime_type;
}
static GString *
-camel_data_wrapper_get_content_type (CamelDataWrapper *data_wrapper)
+camel_data_wrapper_get_mime_type (CamelDataWrapper *data_wrapper)
{
- return CDW_CLASS(data_wrapper)->get_content_type (data_wrapper);
+ return CDW_CLASS(data_wrapper)->get_mime_type (data_wrapper);
}
diff --git a/camel/camel-data-wrapper.h b/camel/camel-data-wrapper.h
index a0bb859f3b..d0881ebe6e 100644
--- a/camel/camel-data-wrapper.h
+++ b/camel/camel-data-wrapper.h
@@ -48,8 +48,7 @@ typedef struct
{
GtkObject parent_object;
- GMimeContentField *content_type;
-
+ GMimeContentField *mime_type;
} CamelDataWrapper;
@@ -60,8 +59,8 @@ typedef struct {
/* Virtual methods */
void (*write_to_stream) (CamelDataWrapper *data_wrapper, CamelStream *stream);
void (*construct_from_stream) (CamelDataWrapper *data_wrapper, CamelStream *stream, guint size);
- void (*set_content_type) (CamelDataWrapper *data_wrapper, GString *content_type);
- GString * (*get_content_type) (CamelDataWrapper *data_wrapper);
+ void (*set_mime_type) (CamelDataWrapper *data_wrapper, GString *content_type);
+ GString * (*get_mime_type) (CamelDataWrapper *data_wrapper);
} CamelDataWrapperClass;
@@ -75,8 +74,8 @@ GtkType camel_data_wrapper_get_type (void);
void camel_data_wrapper_write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream);
void camel_data_wrapper_construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream, guint size);
-void camel_data_wrapper_set_content_type (CamelDataWrapper *data_wrapper, GString *content_type);
-static GString *camel_data_wrapper_get_content_type (CamelDataWrapper *data_wrapper);
+void camel_data_wrapper_set_mime_type (CamelDataWrapper *data_wrapper, GString *mime_type);
+static GString *camel_data_wrapper_get_mime_type (CamelDataWrapper *data_wrapper);
#ifdef __cplusplus
}
diff --git a/camel/camel-mime-part.c b/camel/camel-mime-part.c
index 89eb85b35f..5bba86f54a 100644
--- a/camel/camel-mime-part.c
+++ b/camel/camel-mime-part.c
@@ -68,6 +68,8 @@ static void _set_content_languages (CamelMimePart *mime_part, GList *content_lan
static GList *_get_content_languages (CamelMimePart *mime_part);
static void _set_header_lines (CamelMimePart *mime_part, GList *header_lines);
static GList *_get_header_lines (CamelMimePart *mime_part);
+static void _set_content_type (CamelMimePart *mime_part, GString *content_type);
+static GString *_get_content_type (CamelMimePart *mime_part);
static CamelDataWrapper *_get_content_object(CamelMimePart *mime_part);
static void _write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream);
@@ -99,25 +101,28 @@ camel_mime_part_class_init (CamelMimePartClass *camel_mime_part_class)
_init_header_name_table();
/* virtual method definition */
- camel_mime_part_class->add_header=_add_header;
- camel_mime_part_class->remove_header=_remove_header;
- camel_mime_part_class->get_header=_get_header;
- camel_mime_part_class->set_description=_set_description;
- camel_mime_part_class->get_description=_get_description;
- camel_mime_part_class->set_disposition=_set_disposition;
- camel_mime_part_class->get_disposition=_get_disposition;
- camel_mime_part_class->set_filename=_set_filename;
- camel_mime_part_class->get_filename=_get_filename;
- camel_mime_part_class->set_content_id=_set_content_id;
- camel_mime_part_class->get_content_id=_get_content_id;
- camel_mime_part_class->set_content_MD5=_set_content_MD5;
- camel_mime_part_class->get_content_MD5=_get_content_MD5;
- camel_mime_part_class->set_encoding=_set_encoding;
- camel_mime_part_class->get_encoding=_get_encoding;
- camel_mime_part_class->set_content_languages=_set_content_languages;
- camel_mime_part_class->get_content_languages=_get_content_languages;
- camel_mime_part_class->set_header_lines=_set_header_lines;
- camel_mime_part_class->get_header_lines=_get_header_lines;
+ camel_mime_part_class->add_header = _add_header;
+ camel_mime_part_class->remove_header = _remove_header;
+ camel_mime_part_class->get_header = _get_header;
+ camel_mime_part_class->set_description = _set_description;
+ camel_mime_part_class->get_description = _get_description;
+ camel_mime_part_class->set_disposition = _set_disposition;
+ camel_mime_part_class->get_disposition = _get_disposition;
+ camel_mime_part_class->set_filename = _set_filename;
+ camel_mime_part_class->get_filename = _get_filename;
+ camel_mime_part_class->set_content_id = _set_content_id;
+ camel_mime_part_class->get_content_id = _get_content_id;
+ camel_mime_part_class->set_content_MD5 =_set_content_MD5;
+ camel_mime_part_class->get_content_MD5 = _get_content_MD5;
+ camel_mime_part_class->set_encoding = _set_encoding;
+ camel_mime_part_class->get_encoding = _get_encoding;
+ camel_mime_part_class->set_content_languages = _set_content_languages;
+ camel_mime_part_class->get_content_languages = _get_content_languages;
+ camel_mime_part_class->set_header_lines =_set_header_lines;
+ camel_mime_part_class->get_header_lines =_get_header_lines;
+ camel_mime_part_class->set_content_type = _set_content_type;
+ camel_mime_part_class->get_content_type = _get_content_type;
+
camel_mime_part_class->parse_header_pair = _parse_header_pair;
camel_mime_part_class->get_content_object = _get_content_object;
@@ -133,7 +138,7 @@ camel_mime_part_init (gpointer object, gpointer klass)
CamelMimePart *camel_mime_part = CAMEL_MIME_PART (object);
camel_mime_part->headers = g_hash_table_new (g_string_hash, g_string_equal_for_hash);
-
+ camel_mime_part->content_type = gmime_content_field_new (NULL, NULL);
}
@@ -478,6 +483,36 @@ camel_mime_part_get_header_lines (CamelMimePart *mime_part)
+/*********/
+static void
+_set_content_type (CamelMimePart *mime_part, GString *content_type)
+{
+ g_assert (content_type);
+ gmime_content_field_construct_from_string (mime_part->content_type, content_type);
+}
+
+void
+camel_mime_part_set_mime_type (CamelMimePart *mime_part, GString *content_type)
+{
+ CMP_CLASS(mime_part)->set_content_type (mime_part, content_type);
+}
+
+static GString *
+_get_content_type (CamelMimePart *mime_part)
+{
+ GString *mime_type;
+
+ mime_type = gmime_content_field_get_mime_type (mime_part->content_type);
+ return mime_type;
+}
+
+static GString *
+camel_mime_part_get_content_type (CamelMimePart *mime_part)
+{
+ return CMP_CLASS(mime_part)->get_content_type (mime_part);
+}
+/*********/
+
static CamelDataWrapper *
_get_content_object(CamelMimePart *mime_part)
@@ -554,7 +589,7 @@ _write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
write_header_table_to_stream (stream, mp->headers);
CAMEL_LOG (FULL_DEBUG, "CamelMimePart::write_to_stream writing content-type\n");
- gmime_content_field_write_to_stream(data_wrapper->content_type, stream);
+ gmime_content_field_write_to_stream(mp->content_type, stream);
camel_stream_write_string(stream,"\n");
if (mp->content) camel_data_wrapper_write_to_stream (mp->content, stream);
@@ -621,12 +656,12 @@ _parse_header_pair (CamelMimePart *mime_part, GString *header_name, GString *hea
header_handled = TRUE;
break;
- case HEADER_CONTENT_TYPE: /**** * WARNING THIS IS BROKEN * *****/
+ case HEADER_CONTENT_TYPE:
CAMEL_LOG (FULL_DEBUG,
"CamelMimePart::parse_header_pair found HEADER_CONTENT_TYPE: %s\n",
header_value->str );
- gmime_content_field_construct_from_string (CAMEL_DATA_WRAPPER(mime_part)->content_type, header_value);
+ gmime_content_field_construct_from_string (mime_part->content_type, header_value);
header_handled = TRUE;
break;
diff --git a/camel/camel-mime-part.h b/camel/camel-mime-part.h
index eadf65ce68..ad3ce17d2f 100644
--- a/camel/camel-mime-part.h
+++ b/camel/camel-mime-part.h
@@ -58,7 +58,8 @@ typedef struct
GString *encoding;
GString *filename;
GList *header_lines;
-
+
+ GMimeContentField *content_type;
CamelDataWrapper *content; /* part real content */
} CamelMimePart;
@@ -88,6 +89,8 @@ typedef struct {
GList * (*get_content_languages) (CamelMimePart *mime_part);
void (*set_header_lines) (CamelMimePart *mime_part, GList *header_lines);
GList * (*get_header_lines) (CamelMimePart *mime_part);
+ void (*set_content_type) (CamelMimePart *mime_part, GString *content_type);
+ GString * (*get_content_type) (CamelMimePart *mime_part);
gboolean (*parse_header_pair) (CamelMimePart *mime_part, GString *header_name, GString *header_value);