summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mailnews/mime/src/mimeleaf.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/mailnews/mime/src/mimeleaf.cpp b/mailnews/mime/src/mimeleaf.cpp
index 5d35ead37..b76d0ce3b 100644
--- a/mailnews/mime/src/mimeleaf.cpp
+++ b/mailnews/mime/src/mimeleaf.cpp
@@ -96,15 +96,14 @@ MimeLeaf_parse_begin (MimeObject *obj)
// don't decode text parts of message types. Other output formats,
// like "display" (nsMimeMessageBodyDisplay), need decoding.
(obj->options->format_out == nsMimeOutput::nsMimeMessageRaw &&
- obj->parent &&
+ obj->parent && obj->parent->output_p &&
(!PL_strcasecmp(obj->parent->content_type, MESSAGE_NEWS) ||
- !PL_strcasecmp(obj->parent->content_type, MESSAGE_RFC822)) &&
- !PL_strncasecmp(obj->content_type, "text/", 5)))
+ !PL_strcasecmp(obj->parent->content_type, MESSAGE_RFC822))))
/* no-op */ ;
else if (!PL_strcasecmp(obj->encoding, ENCODING_BASE64))
fn = &MimeB64DecoderInit;
else if (!PL_strcasecmp(obj->encoding, ENCODING_QUOTED_PRINTABLE))
- leaf->decoder_data =
+ leaf->decoder_data =
MimeQPDecoderInit(((MimeConverterOutputCallback)
((MimeLeafClass *)obj->clazz)->parse_decoded_buffer),
obj, obj);
@@ -153,7 +152,7 @@ MimeLeaf_parse_buffer (const char *buffer, int32_t size, MimeObject *obj)
leaf->sizeSoFar = 0;
if (leaf->decoder_data &&
- obj->options &&
+ obj->options &&
obj->options->format_out != nsMimeOutput::nsMimeMessageDecrypt
&& obj->options->format_out != nsMimeOutput::nsMimeMessageAttach) {
int outSize = 0;