summaryrefslogtreecommitdiffstats
path: root/handler.c
diff options
context:
space:
mode:
authorTAKIZAWA Takashi <taki@luna.email.ne.jp>2007-02-24 07:01:24 +0000
committerTAKIZAWA Takashi <taki@luna.email.ne.jp>2007-02-24 07:01:24 +0000
commitf2899f953c4ef0fcba4fd88d454276965364b77a (patch)
tree3006a3ccbb0cd6846aa724f007b67409321a2eac /handler.c
parent9b2c2b8e53b624b86de29be021a7d126868dff61 (diff)
Add $assumed_charset, $file_charset and $strict_mime.
Diffstat (limited to 'handler.c')
-rw-r--r--handler.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/handler.c b/handler.c
index 51266904..46163116 100644
--- a/handler.c
+++ b/handler.c
@@ -1743,11 +1743,21 @@ void mutt_decode_attachment (BODY *b, STATE *s)
int istext = mutt_is_text_part (b);
iconv_t cd = (iconv_t)(-1);
- if (istext && s->flags & M_CHARCONV)
+ if (istext)
{
- char *charset = mutt_get_parameter ("charset", b->parameter);
- if (charset && Charset)
- cd = mutt_iconv_open (Charset, charset, M_ICONV_HOOK_FROM);
+ if(s->flags & M_CHARCONV)
+ {
+ char *charset = mutt_get_parameter ("charset", b->parameter);
+ if (!option (OPTSTRICTMIME) && !charset)
+ charset = mutt_get_first_charset (AssumedCharset);
+ if (charset && Charset)
+ cd = mutt_iconv_open (Charset, charset, M_ICONV_HOOK_FROM);
+ }
+ else
+ {
+ if (b->file_charset)
+ cd = mutt_iconv_open (Charset, b->file_charset, M_ICONV_HOOK_FROM);
+ }
}
fseeko (s->fpin, b->offset, 0);