X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-formatter.c;h=39f0448a7f570d5c7f3afc4a32e0985c96242d57;hb=8eb87055216f549c737d2126f33d1fc913f2632d;hp=5a3ced8485e29415debb3f41582b52d87c35f146;hpb=bdfbed899b92bcc8d79ad0a0687e902695d4c017;p=modest diff --git a/src/modest-formatter.c b/src/modest-formatter.c index 5a3ced8..39f0448 100644 --- a/src/modest-formatter.c +++ b/src/modest-formatter.c @@ -55,9 +55,12 @@ typedef gchar* FormatterFunc (ModestFormatter *self, const gchar *text, TnyHeade static TnyMsg *modest_formatter_do (ModestFormatter *self, TnyMimePart *body, TnyHeader *header, FormatterFunc func, GList *attachments); -static gchar* modest_formatter_wrapper_cite (ModestFormatter *self, const gchar *text, TnyHeader *header, GList *attachments); -static gchar* modest_formatter_wrapper_quote (ModestFormatter *self, const gchar *text, TnyHeader *header, GList *attachments); -static gchar* modest_formatter_wrapper_inline (ModestFormatter *self, const gchar *text, TnyHeader *header, GList *attachments); +static gchar* modest_formatter_wrapper_cite (ModestFormatter *self, const gchar *text, + TnyHeader *header, GList *attachments); +static gchar* modest_formatter_wrapper_quote (ModestFormatter *self, const gchar *text, + TnyHeader *header, GList *attachments); +static gchar* modest_formatter_wrapper_inline (ModestFormatter *self, const gchar *text, + TnyHeader *header, GList *attachments); static gchar * extract_text (ModestFormatter *self, TnyMimePart *body) @@ -117,7 +120,8 @@ construct_from_text (TnyMimePart *part, } static TnyMsg * -modest_formatter_do (ModestFormatter *self, TnyMimePart *body, TnyHeader *header, FormatterFunc func, GList *attachments) +modest_formatter_do (ModestFormatter *self, TnyMimePart *body, TnyHeader *header, FormatterFunc func, + GList *attachments) { TnyMsg *new_msg = NULL; gchar *body_text = NULL, *txt = NULL; @@ -141,7 +145,7 @@ modest_formatter_do (ModestFormatter *self, TnyMimePart *body, TnyHeader *header priv = MODEST_FORMATTER_GET_PRIVATE (self); construct_from_text (TNY_MIME_PART (body_part), (const gchar*) txt, priv->content_type); g_object_unref (body_part); - + /* Clean */ g_free (body_text); g_free (txt); @@ -168,12 +172,10 @@ modest_formatter_inline (ModestFormatter *self, TnyMimePart *body, TnyHeader *he } TnyMsg * -modest_formatter_attach (ModestFormatter *self, TnyMimePart *body, TnyHeader *header) +modest_formatter_attach (ModestFormatter *self, TnyMsg *msg, TnyHeader *header) { TnyMsg *new_msg = NULL; - gchar *attach_text = NULL; - const gchar *subject; - TnyMimePart *body_part = NULL, *attach_part = NULL; + TnyMimePart *body_part = NULL; ModestFormatterPrivate *priv; TnyPlatformFactory *fact; @@ -181,23 +183,14 @@ modest_formatter_attach (ModestFormatter *self, TnyMimePart *body, TnyHeader *he /* Build new part */ new_msg = modest_formatter_create_message (self, TRUE, TRUE); body_part = modest_formatter_create_body_part (self, new_msg); - attach_part = tny_platform_factory_new_mime_part (fact); /* Create the two parts */ priv = MODEST_FORMATTER_GET_PRIVATE (self); - attach_text = extract_text (self, body); construct_from_text (body_part, "", priv->content_type); g_object_unref (body_part); - construct_from_text (attach_part, (const gchar*) attach_text, priv->content_type); - subject = tny_header_get_subject (header); - tny_mime_part_set_filename (attach_part, subject ? subject : _("No subject")); /* Add parts */ - tny_mime_part_add_part (TNY_MIME_PART (new_msg), attach_part); - g_object_unref (attach_part); - - /* Clean */ - g_free (attach_text); + tny_mime_part_add_part (TNY_MIME_PART (new_msg), TNY_MIME_PART (msg)); return new_msg; } @@ -282,10 +275,11 @@ modest_formatter_get_type (void) /****************/ static gchar * -modest_formatter_wrapper_cite (ModestFormatter *self, const gchar *text, TnyHeader *header, GList *attachments) +modest_formatter_wrapper_cite (ModestFormatter *self, const gchar *text, TnyHeader *header, + GList *attachments) { ModestFormatterPrivate *priv = MODEST_FORMATTER_GET_PRIVATE (self); - + return modest_text_utils_cite (text, priv->content_type, priv->signature, @@ -294,7 +288,8 @@ modest_formatter_wrapper_cite (ModestFormatter *self, const gchar *text, TnyHead } static gchar * -modest_formatter_wrapper_inline (ModestFormatter *self, const gchar *text, TnyHeader *header, GList *attachments) +modest_formatter_wrapper_inline (ModestFormatter *self, const gchar *text, TnyHeader *header, + GList *attachments) { ModestFormatterPrivate *priv = MODEST_FORMATTER_GET_PRIVATE (self); @@ -308,7 +303,8 @@ modest_formatter_wrapper_inline (ModestFormatter *self, const gchar *text, TnyHe } static gchar * -modest_formatter_wrapper_quote (ModestFormatter *self, const gchar *text, TnyHeader *header, GList *attachments) +modest_formatter_wrapper_quote (ModestFormatter *self, const gchar *text, TnyHeader *header, + GList *attachments) { ModestFormatterPrivate *priv = MODEST_FORMATTER_GET_PRIVATE (self); GList *filenames = NULL; @@ -393,17 +389,20 @@ modest_formatter_create_body_part (ModestFormatter *self, TnyMsg *msg) TnyList *parts = NULL; TnyIterator *iter = NULL; TnyMimePart *alternative_part = NULL; - + parts = TNY_LIST (tny_simple_list_new ()); tny_mime_part_get_parts (TNY_MIME_PART (msg), parts); iter = tny_list_create_iterator (parts); while (!tny_iterator_is_done (iter)) { TnyMimePart *part = TNY_MIME_PART (tny_iterator_get_current (iter)); - if (!g_strcasecmp(tny_mime_part_get_content_type (part), "multipart/alternative")) { + if (part && !g_strcasecmp(tny_mime_part_get_content_type (part), "multipart/alternative")) { alternative_part = part; break; } - g_object_unref (part); + + if (part) + g_object_unref (part); + tny_iterator_next (iter); } result = tny_platform_factory_new_mime_part (fact);