diff options
author | Dan Winship <danw@src.gnome.org> | 2001-04-12 07:30:33 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-04-12 07:30:33 +0800 |
commit | 9763978157519cb0f3878fde23bcf7987698ed1e (patch) | |
tree | 28b3455dd145ce052c41c309be72f3ae64472be4 /mail/mail-format.c | |
parent | ac31cddc109d23041bcf536bfba2b25a9e95e8b6 (diff) | |
download | gsoc2013-evolution-9763978157519cb0f3878fde23bcf7987698ed1e.tar.gz gsoc2013-evolution-9763978157519cb0f3878fde23bcf7987698ed1e.tar.zst gsoc2013-evolution-9763978157519cb0f3878fde23bcf7987698ed1e.zip |
Only look for special pseudo-multipart-isms (binhex, uucode, old pgp, etc)
* mail-format.c (handle_text_plain): Only look for special
pseudo-multipart-isms (binhex, uucode, old pgp, etc) if the MIME
type is really text/plain. Otherwise, since there's no handler for
applciation/mac-binhex40, it gets sent to mail-identify.c, which
thinks it's text/plain because it starts with English words, and
so it gets sent back to the text/plain handler, which finds an
embedded binhex part...
svn path=/trunk/; revision=9260
Diffstat (limited to 'mail/mail-format.c')
-rw-r--r-- | mail/mail-format.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/mail/mail-format.c b/mail/mail-format.c index 53ba0dd57d..3ff74238f0 100644 --- a/mail/mail-format.c +++ b/mail/mail-format.c @@ -860,6 +860,7 @@ handle_text_plain (CamelMimePart *part, const char *mime_type, camel_medium_get_content_object (CAMEL_MEDIUM (part)); char *text, *p, *start; CamelContentType *type; + gboolean check_specials; const char *format; int i; @@ -875,8 +876,15 @@ handle_text_plain (CamelMimePart *part, const char *mime_type, mail_html_write (md->html, md->stream, "\n<!-- text/plain -->\n<font size=\"-3\"> </font><br>\n"); + /* Only look for binhex and stuff if this is real text/plain. + * (and not, say, application/mac-binhex40 that mail-identify + * has decided to call text/plain because it starts with English + * text...) + */ + check_specials = g_strcasecmp (mime_type, "text/plain") != 0; + p = text; - while (p) { + while (p && check_specials) { /* Look for special cases. */ for (i = 0; i < NSPECIALS; i++) { start = strstr (p, text_specials[i].start); |