aboutsummaryrefslogtreecommitdiffstats
path: root/em-format
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-04-01 08:02:13 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-04-01 08:12:48 +0800
commit55d6580d8627a9a85df1e6b19529196d4d9ac95a (patch)
tree44ca6fbf16d4be1bace23baa9892f61560eb3fb4 /em-format
parentf91c4d78082e75b66bd394840670a88be09ec63c (diff)
downloadgsoc2013-evolution-55d6580d8627a9a85df1e6b19529196d4d9ac95a.tar
gsoc2013-evolution-55d6580d8627a9a85df1e6b19529196d4d9ac95a.tar.gz
gsoc2013-evolution-55d6580d8627a9a85df1e6b19529196d4d9ac95a.tar.bz2
gsoc2013-evolution-55d6580d8627a9a85df1e6b19529196d4d9ac95a.tar.lz
gsoc2013-evolution-55d6580d8627a9a85df1e6b19529196d4d9ac95a.tar.xz
gsoc2013-evolution-55d6580d8627a9a85df1e6b19529196d4d9ac95a.tar.zst
gsoc2013-evolution-55d6580d8627a9a85df1e6b19529196d4d9ac95a.zip
Stop relying on CamelObject meta-data.
Diffstat (limited to 'em-format')
-rw-r--r--em-format/em-format-quote.c6
-rw-r--r--em-format/em-format.c71
-rw-r--r--em-format/em-format.h2
3 files changed, 56 insertions, 23 deletions
diff --git a/em-format/em-format-quote.c b/em-format/em-format-quote.c
index 40a9f405cb..bf906530f0 100644
--- a/em-format/em-format-quote.c
+++ b/em-format/em-format-quote.c
@@ -169,10 +169,10 @@ emfq_format_clone(EMFormat *emf, CamelFolder *folder, const gchar *uid, CamelMim
g_object_unref (gconf);
handle = em_format_find_handler(emf, "x-evolution/message/prefix");
if (handle)
- handle->handler(emf, emfq->stream, (CamelMimePart *)msg, handle);
+ handle->handler(emf, emfq->stream, (CamelMimePart *)msg, handle, FALSE);
handle = em_format_find_handler(emf, "x-evolution/message/rfc822");
if (handle)
- handle->handler(emf, emfq->stream, (CamelMimePart *)msg, handle);
+ handle->handler(emf, emfq->stream, (CamelMimePart *)msg, handle, FALSE);
camel_stream_flush(emfq->stream);
@@ -474,7 +474,7 @@ emfq_format_attachment(EMFormat *emf, CamelStream *stream, CamelMimePart *part,
camel_stream_write_string(stream, "</font></td></tr></table>");
- handle->handler(emf, stream, part, handle);
+ handle->handler(emf, stream, part, handle, FALSE);
}
}
diff --git a/em-format/em-format.c b/em-format/em-format.c
index e5856a0fd1..3369819f49 100644
--- a/em-format/em-format.c
+++ b/em-format/em-format.c
@@ -670,11 +670,7 @@ em_format_part_as(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const
if (handle != NULL
&& !em_format_is_attachment(emf, part)) {
d(printf("running handler for type '%s'\n", mime_type));
- if (is_fallback)
- camel_object_meta_set (part, "EMF-Fallback", "1");
- handle->handler(emf, stream, part, handle);
- if (is_fallback)
- camel_object_meta_set (part, "EMF-Fallback", NULL);
+ handle->handler(emf, stream, part, handle, is_fallback);
goto finish;
}
d(printf("this type is an attachment? '%s'\n", mime_type));
@@ -1347,7 +1343,11 @@ add_validity_found (EMFormat *emf, CamelCipherValidity *valid)
#ifdef ENABLE_SMIME
static void
-emf_application_xpkcs7mime(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+emf_application_xpkcs7mime (EMFormat *emf,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
CamelCipherContext *context;
CamelException *ex;
@@ -1392,7 +1392,11 @@ emf_application_xpkcs7mime(EMFormat *emf, CamelStream *stream, CamelMimePart *pa
/* RFC 1740 */
static void
-emf_multipart_appledouble(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+emf_multipart_appledouble (EMFormat *emf,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
CamelMultipart *mp = (CamelMultipart *)camel_medium_get_content_object((CamelMedium *)part);
CamelMimePart *mime_part;
@@ -1417,7 +1421,11 @@ emf_multipart_appledouble(EMFormat *emf, CamelStream *stream, CamelMimePart *par
/* RFC ??? */
static void
-emf_multipart_mixed(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+emf_multipart_mixed (EMFormat *emf,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
CamelMultipart *mp = (CamelMultipart *)camel_medium_get_content_object((CamelMedium *)part);
gint i, nparts, len;
@@ -1439,7 +1447,11 @@ emf_multipart_mixed(EMFormat *emf, CamelStream *stream, CamelMimePart *part, con
/* RFC 1740 */
static void
-emf_multipart_alternative(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+emf_multipart_alternative (EMFormat *emf,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
CamelMultipart *mp = (CamelMultipart *)camel_medium_get_content_object((CamelMedium *)part);
gint i, nparts, bestid = 0;
@@ -1486,11 +1498,15 @@ emf_multipart_alternative(EMFormat *emf, CamelStream *stream, CamelMimePart *par
em_format_part(emf, stream, best);
g_string_truncate(emf->part_id, len);
} else
- emf_multipart_mixed(emf, stream, part, info);
+ emf_multipart_mixed(emf, stream, part, info, is_fallback);
}
static void
-emf_multipart_encrypted(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+emf_multipart_encrypted (EMFormat *emf,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
CamelCipherContext *context;
CamelException *ex;
@@ -1559,7 +1575,11 @@ emf_write_related(EMFormat *emf, CamelStream *stream, EMFormatPURI *puri)
/* RFC 2387 */
static void
-emf_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+emf_multipart_related (EMFormat *emf,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
CamelMultipart *mp = (CamelMultipart *)camel_medium_get_content_object((CamelMedium *)part);
CamelMimePart *body_part, *display_part = NULL;
@@ -1601,7 +1621,7 @@ emf_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
}
if (display_part == NULL) {
- emf_multipart_mixed(emf, stream, part, info);
+ emf_multipart_mixed(emf, stream, part, info, is_fallback);
return;
}
@@ -1654,7 +1674,11 @@ emf_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
}
static void
-emf_multipart_signed(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+emf_multipart_signed (EMFormat *emf,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
CamelMimePart *cpart;
CamelMultipartSigned *mps;
@@ -1728,7 +1752,8 @@ static void
emf_application_mbox (EMFormat *emf,
CamelStream *stream,
CamelMimePart *mime_part,
- const EMFormatHandler *info)
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
const EMFormatHandler *handle;
CamelMimeParser *parser;
@@ -1777,7 +1802,7 @@ emf_application_mbox (EMFormat *emf,
}
/* Render the message. */
- handle->handler (emf, stream, mime_part, handle);
+ handle->handler (emf, stream, mime_part, handle, FALSE);
camel_object_unref (message);
@@ -1791,7 +1816,11 @@ emf_application_mbox (EMFormat *emf,
}
static void
-emf_message_rfc822(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+emf_message_rfc822 (EMFormat *emf,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
CamelDataWrapper *dw = camel_medium_get_content_object((CamelMedium *)part);
const EMFormatHandler *handle;
@@ -1807,13 +1836,17 @@ emf_message_rfc822(EMFormat *emf, CamelStream *stream, CamelMimePart *part, cons
handle = em_format_find_handler(emf, "x-evolution/message/rfc822");
if (handle)
- handle->handler(emf, stream, (CamelMimePart *)dw, handle);
+ handle->handler(emf, stream, (CamelMimePart *)dw, handle, FALSE);
g_string_truncate(emf->part_id, len);
}
static void
-emf_message_deliverystatus(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+emf_message_deliverystatus (EMFormat *emf,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
em_format_format_text(emf, stream, (CamelDataWrapper *)part);
}
diff --git a/em-format/em-format.h b/em-format/em-format.h
index 4d8beaa228..39f6240b76 100644
--- a/em-format/em-format.h
+++ b/em-format/em-format.h
@@ -65,7 +65,7 @@ typedef struct _EMFormatPrivate EMFormatPrivate;
typedef struct _EMFormatHandler EMFormatHandler;
typedef struct _EMFormatHeader EMFormatHeader;
-typedef void (*EMFormatFunc) (EMFormat *md, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info);
+typedef void (*EMFormatFunc) (EMFormat *md, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info, gboolean is_fallback);
typedef enum _em_format_mode_t {
EM_FORMAT_NORMAL,