static void textview_write_body (TextView *textview,
MimeInfo *mimeinfo,
FILE *fp,
- CodeConverter *conv);
+ const gchar *charset);
static void textview_show_html (TextView *textview,
FILE *fp,
CodeConverter *conv);
gint boundary_len = 0;
const gchar *charset = NULL;
GPtrArray *headers = NULL;
- CodeConverter *conv;
g_return_if_fail(mimeinfo != NULL);
g_return_if_fail(fp != NULL);
textview->body_pos = gtk_stext_get_length(text);
}
- conv = conv_code_converter_new(charset);
- textview_write_body(textview, mimeinfo, fp, conv);
- conv_code_converter_destroy(conv);
+ textview_write_body(textview, mimeinfo, fp, charset);
gtk_stext_thaw(text);
}
gint boundary_len = 0;
const gchar *charset = NULL;
GPtrArray *headers = NULL;
- CodeConverter *conv;
g_return_if_fail(mimeinfo != NULL);
g_return_if_fail(fp != NULL);
if (mimeinfo->mime_type == MIME_MULTIPART) return;
+ if (!mimeinfo->parent &&
+ mimeinfo->mime_type != MIME_TEXT &&
+ mimeinfo->mime_type != MIME_TEXT_HTML &&
+ mimeinfo->mime_type != MIME_TEXT_ENRICHED)
+ return;
+
if (fseek(fp, mimeinfo->fpos, SEEK_SET) < 0) {
perror("fseek");
return;
charset = prefs_common.force_charset;
else if (mimeinfo->charset)
charset = mimeinfo->charset;
- conv = conv_code_converter_new(charset);
- textview_write_body(textview, mimeinfo, fp, conv);
- conv_code_converter_destroy(conv);
+ textview_write_body(textview, mimeinfo, fp, charset);
}
gtk_stext_thaw(text);
#undef TEXT_INSERT
static void textview_write_body(TextView *textview, MimeInfo *mimeinfo,
- FILE *fp, CodeConverter *conv)
+ FILE *fp, const gchar *charset)
{
FILE *tmpfp;
gchar buf[BUFFSIZE];
+ CodeConverter *conv;
+
+ conv = conv_code_converter_new(charset);
tmpfp = procmime_decode_content(NULL, fp, mimeinfo);
if (tmpfp) {
textview_write_line(textview, buf, conv);
fclose(tmpfp);
}
+
+ conv_code_converter_destroy(conv);
}
static void textview_show_html(TextView *textview, FILE *fp,