aboutsummaryrefslogtreecommitdiff
path: root/src/procmime.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-02-25 10:00:41 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-02-25 10:00:41 +0000
commit2a47b946a59bdfe4bfefb136fe0f7475add03bb2 (patch)
treeb61928ab31b3c6c6578f13f6d46fe73a9df5e83e /src/procmime.c
parent19a51bbe411d98970bcebcec1e559d60b02899b0 (diff)
output printing text with locale encoding, and removed broken locale specific HTML entity reference conversion.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@129 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/procmime.c')
-rw-r--r--src/procmime.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/procmime.c b/src/procmime.c
index eabeb853..2dd27c7d 100644
--- a/src/procmime.c
+++ b/src/procmime.c
@@ -678,10 +678,11 @@ gint procmime_get_part_fp(const gchar *outfile, FILE *infp, MimeInfo *mimeinfo)
return 0;
}
-FILE *procmime_get_text_content(MimeInfo *mimeinfo, FILE *infp)
+FILE *procmime_get_text_content(MimeInfo *mimeinfo, FILE *infp,
+ const gchar *encoding)
{
FILE *tmpfp, *outfp;
- gchar *src_codeset;
+ const gchar *src_encoding;
gboolean conv_fail = FALSE;
gchar buf[BUFFSIZE];
gchar *str;
@@ -709,12 +710,12 @@ FILE *procmime_get_text_content(MimeInfo *mimeinfo, FILE *infp)
return NULL;
}
- src_codeset = prefs_common.force_charset
+ src_encoding = prefs_common.force_charset
? prefs_common.force_charset : mimeinfo->charset;
if (mimeinfo->mime_type == MIME_TEXT) {
while (fgets(buf, sizeof(buf), tmpfp) != NULL) {
- str = conv_codeset_strdup(buf, src_codeset, NULL);
+ str = conv_codeset_strdup(buf, src_encoding, encoding);
if (str) {
fputs(str, outfp);
g_free(str);
@@ -727,7 +728,7 @@ FILE *procmime_get_text_content(MimeInfo *mimeinfo, FILE *infp)
HTMLParser *parser;
CodeConverter *conv;
- conv = conv_code_converter_new(src_codeset);
+ conv = conv_code_converter_new(src_encoding, encoding);
parser = html_parser_new(tmpfp, conv);
while ((str = html_parse(parser)) != NULL) {
fputs(str, outfp);
@@ -747,7 +748,7 @@ FILE *procmime_get_text_content(MimeInfo *mimeinfo, FILE *infp)
/* search the first text part of (multipart) MIME message,
decode, convert it and output to outfp. */
-FILE *procmime_get_first_text_content(MsgInfo *msginfo)
+FILE *procmime_get_first_text_content(MsgInfo *msginfo, const gchar *encoding)
{
FILE *infp, *outfp = NULL;
MimeInfo *mimeinfo, *partinfo;
@@ -772,7 +773,7 @@ FILE *procmime_get_first_text_content(MsgInfo *msginfo)
}
if (partinfo)
- outfp = procmime_get_text_content(partinfo, infp);
+ outfp = procmime_get_text_content(partinfo, infp, encoding);
fclose(infp);
procmime_mimeinfo_free_all(mimeinfo);
@@ -798,7 +799,7 @@ gboolean procmime_find_string_part(MimeInfo *mimeinfo, const gchar *filename,
return FALSE;
}
- outfp = procmime_get_text_content(mimeinfo, infp);
+ outfp = procmime_get_text_content(mimeinfo, infp, NULL);
fclose(infp);
if (!outfp)