diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2012-12-08 01:44:32 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2012-12-08 03:01:05 +0800 |
commit | c10235e6dd09d93fc6bbdeb8ef4d800be7c6f6d5 (patch) | |
tree | 458a2e3b37312d69627c7385eed5562da013f4a5 /em-format | |
parent | cab6eac8f14974ea1c2fedaf9143e98cf630c489 (diff) | |
download | gsoc2013-evolution-c10235e6dd09d93fc6bbdeb8ef4d800be7c6f6d5.tar gsoc2013-evolution-c10235e6dd09d93fc6bbdeb8ef4d800be7c6f6d5.tar.gz gsoc2013-evolution-c10235e6dd09d93fc6bbdeb8ef4d800be7c6f6d5.tar.bz2 gsoc2013-evolution-c10235e6dd09d93fc6bbdeb8ef4d800be7c6f6d5.tar.lz gsoc2013-evolution-c10235e6dd09d93fc6bbdeb8ef4d800be7c6f6d5.tar.xz gsoc2013-evolution-c10235e6dd09d93fc6bbdeb8ef4d800be7c6f6d5.tar.zst gsoc2013-evolution-c10235e6dd09d93fc6bbdeb8ef4d800be7c6f6d5.zip |
EMailParserExtension: Convert get_flags() to an enum field.
Of the parser extensions that override get_flags(), they all return a
fixed set of flags. So we don't need an instance of the extension to
obtain its flags. Just make it an EMailParserExtensionFlags field in
the class structure.
Diffstat (limited to 'em-format')
-rw-r--r-- | em-format/e-mail-parser-application-mbox.c | 11 | ||||
-rw-r--r-- | em-format/e-mail-parser-application-smime.c | 8 | ||||
-rw-r--r-- | em-format/e-mail-parser-extension.c | 19 | ||||
-rw-r--r-- | em-format/e-mail-parser-extension.h | 6 | ||||
-rw-r--r-- | em-format/e-mail-parser-message-rfc822.c | 11 | ||||
-rw-r--r-- | em-format/e-mail-parser-multipart-digest.c | 8 | ||||
-rw-r--r-- | em-format/e-mail-parser-multipart-mixed.c | 8 | ||||
-rw-r--r-- | em-format/e-mail-part-utils.c | 9 |
8 files changed, 17 insertions, 63 deletions
diff --git a/em-format/e-mail-parser-application-mbox.c b/em-format/e-mail-parser-application-mbox.c index d4ff6b11bf..36fa6d5f01 100644 --- a/em-format/e-mail-parser-application-mbox.c +++ b/em-format/e-mail-parser-application-mbox.c @@ -160,19 +160,14 @@ empe_app_mbox_parse (EMailParserExtension *extension, return TRUE; } -static guint32 -empe_app_mbox_get_flags (EMailParserExtension *extension) -{ - return E_MAIL_PARSER_EXTENSION_INLINE | - E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE; -} - static void e_mail_parser_application_mbox_class_init (EMailParserExtensionClass *class) { class->mime_types = parser_mime_types; + class->flags = + E_MAIL_PARSER_EXTENSION_INLINE | + E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE; class->parse = empe_app_mbox_parse; - class->get_flags = empe_app_mbox_get_flags; } static void diff --git a/em-format/e-mail-parser-application-smime.c b/em-format/e-mail-parser-application-smime.c index 29e623b52c..21593d326e 100644 --- a/em-format/e-mail-parser-application-smime.c +++ b/em-format/e-mail-parser-application-smime.c @@ -150,18 +150,12 @@ empe_app_smime_parse (EMailParserExtension *extension, return TRUE; } -static guint32 -empe_app_smime_get_flags (EMailParserExtension *extension) -{ - return E_MAIL_PARSER_EXTENSION_INLINE; -} - static void e_mail_parser_application_smime_class_init (EMailParserExtensionClass *class) { class->mime_types = parser_mime_types; + class->flags = E_MAIL_PARSER_EXTENSION_INLINE; class->parse = empe_app_smime_parse; - class->get_flags = empe_app_smime_get_flags; } static void diff --git a/em-format/e-mail-parser-extension.c b/em-format/e-mail-parser-extension.c index b20ae90e32..05fd952fe6 100644 --- a/em-format/e-mail-parser-extension.c +++ b/em-format/e-mail-parser-extension.c @@ -25,16 +25,9 @@ G_DEFINE_ABSTRACT_TYPE ( e_mail_parser_extension, G_TYPE_OBJECT) -static guint32 -mail_parser_extension_get_flags (EMailParserExtension *extension) -{ - return 0; -} - static void e_mail_parser_extension_class_init (EMailParserExtensionClass *class) { - class->get_flags = mail_parser_extension_get_flags; } static void @@ -100,15 +93,3 @@ e_mail_parser_extension_parse (EMailParserExtension *extension, cancellable, out_mail_parts); } -guint32 -e_mail_parser_extension_get_flags (EMailParserExtension *extension) -{ - EMailParserExtensionClass *class; - - g_return_val_if_fail (E_IS_MAIL_PARSER_EXTENSION (extension), 0); - - class = E_MAIL_PARSER_EXTENSION_GET_CLASS (extension); - g_return_val_if_fail (class->get_flags != NULL, 0); - - return class->get_flags (extension); -} diff --git a/em-format/e-mail-parser-extension.h b/em-format/e-mail-parser-extension.h index e510a15591..fdd48bf617 100644 --- a/em-format/e-mail-parser-extension.h +++ b/em-format/e-mail-parser-extension.h @@ -84,13 +84,15 @@ struct _EMailParserExtensionClass { * wildcard (e.g. "text/ *"). */ const gchar **mime_types; + /* See the flag descriptions above. */ + EMailParserExtensionFlags flags; + gboolean (*parse) (EMailParserExtension *extension, EMailParser *parser, CamelMimePart *mime_part, GString *part_id, GCancellable *cancellable, GQueue *out_mail_parts); - guint32 (*get_flags) (EMailParserExtension *extension); }; GType e_mail_parser_extension_get_type @@ -101,8 +103,6 @@ gboolean e_mail_parser_extension_parse (EMailParserExtension *extension, GString *part_id, GCancellable *cancellable, GQueue *out_mail_parts); -guint32 e_mail_parser_extension_get_flags - (EMailParserExtension *extension); G_END_DECLS diff --git a/em-format/e-mail-parser-message-rfc822.c b/em-format/e-mail-parser-message-rfc822.c index d2cd7ee7fe..5239c3c743 100644 --- a/em-format/e-mail-parser-message-rfc822.c +++ b/em-format/e-mail-parser-message-rfc822.c @@ -123,19 +123,14 @@ empe_msg_rfc822_parse (EMailParserExtension *extension, return TRUE; } -static guint32 -empe_msg_rfc822_get_flags (EMailParserExtension *extension) -{ - return E_MAIL_PARSER_EXTENSION_INLINE | - E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE; -} - static void e_mail_parser_message_rfc822_class_init (EMailParserExtensionClass *class) { class->mime_types = parser_mime_types; + class->flags = + E_MAIL_PARSER_EXTENSION_INLINE | + E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE; class->parse = empe_msg_rfc822_parse; - class->get_flags = empe_msg_rfc822_get_flags; } static void diff --git a/em-format/e-mail-parser-multipart-digest.c b/em-format/e-mail-parser-multipart-digest.c index 2097b0cab8..6f22a44572 100644 --- a/em-format/e-mail-parser-multipart-digest.c +++ b/em-format/e-mail-parser-multipart-digest.c @@ -117,18 +117,12 @@ empe_mp_digest_parse (EMailParserExtension *extension, return TRUE; } -static guint32 -empe_mp_digest_get_flags (EMailParserExtension *extension) -{ - return E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE; -} - static void e_mail_parser_multipart_digest_class_init (EMailParserExtensionClass *class) { class->mime_types = parser_mime_types; + class->flags = E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE; class->parse = empe_mp_digest_parse; - class->get_flags = empe_mp_digest_get_flags; } static void diff --git a/em-format/e-mail-parser-multipart-mixed.c b/em-format/e-mail-parser-multipart-mixed.c index 67671afc1d..6a202bd889 100644 --- a/em-format/e-mail-parser-multipart-mixed.c +++ b/em-format/e-mail-parser-multipart-mixed.c @@ -115,18 +115,12 @@ empe_mp_mixed_parse (EMailParserExtension *extension, return TRUE; } -static guint32 -empe_mp_mixed_get_flags (EMailParserExtension *extension) -{ - return E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE; -} - static void e_mail_parser_multipart_mixed_class_init (EMailParserExtensionClass *class) { class->mime_types = parser_mime_types; + class->flags = E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE; class->parse = empe_mp_mixed_parse; - class->get_flags = empe_mp_mixed_get_flags; } static void diff --git a/em-format/e-mail-part-utils.c b/em-format/e-mail-part-utils.c index 6f8013d7a8..665a7b5996 100644 --- a/em-format/e-mail-part-utils.c +++ b/em-format/e-mail-part-utils.c @@ -533,15 +533,17 @@ e_mail_part_is_inline (CamelMimePart *mime_part, { const gchar *disposition; EMailParserExtension *extension; + EMailParserExtensionClass *class; if ((extensions == NULL) || g_queue_is_empty (extensions)) return FALSE; extension = g_queue_peek_head (extensions); + class = E_MAIL_PARSER_EXTENSION_GET_CLASS (extension); + /* Some types need to override the disposition. * e.g. application/x-pkcs7-mime */ - if (e_mail_parser_extension_get_flags (extension) & - E_MAIL_PARSER_EXTENSION_INLINE_DISPOSITION) + if (class->flags & E_MAIL_PARSER_EXTENSION_INLINE_DISPOSITION) return TRUE; disposition = camel_mime_part_get_disposition (mime_part); @@ -549,6 +551,5 @@ e_mail_part_is_inline (CamelMimePart *mime_part, return g_ascii_strcasecmp (disposition, "inline") == 0; /* Otherwise, use the default for this handler type. */ - return (e_mail_parser_extension_get_flags (extension) & - E_MAIL_PARSER_EXTENSION_INLINE) != 0; + return (class->flags & E_MAIL_PARSER_EXTENSION_INLINE) != 0; } |