From: Thomas Roessler Date: Mon, 7 Feb 2000 14:17:01 +0000 (+0000) Subject: Fix bug#22. X-Git-Tag: mutt-1-1-3-rel~8 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=13c794c6c5800a90b79129505f486e436f45dc72;p=mutt Fix bug#22. --- diff --git a/muttlib.c b/muttlib.c index 5dc82bad..2bc5b132 100644 --- a/muttlib.c +++ b/muttlib.c @@ -1025,3 +1025,13 @@ int state_printf(STATE *s, const char *fmt, ...) return rv; } + +void mutt_display_sanitize (char *s) +{ + for (; *s; s++) + { + if (!IsPrint (*s)) + *s = '?'; + } +} + diff --git a/protos.h b/protos.h index cc672746..94519d71 100644 --- a/protos.h +++ b/protos.h @@ -138,6 +138,7 @@ void mutt_create_alias (ENVELOPE *, ADDRESS *); void mutt_decode_attachment (BODY *, STATE *); void mutt_default_save (char *, size_t, HEADER *); void mutt_display_address (ENVELOPE *); +void mutt_display_sanitize (char *); void mutt_edit_content_type (HEADER *, BODY *); void mutt_edit_file (const char *, const char *); void mutt_edit_headers (const char *, const char *, HEADER *, char *, size_t); diff --git a/rfc2047.c b/rfc2047.c index 89cd09ae..c3ea0457 100644 --- a/rfc2047.c +++ b/rfc2047.c @@ -290,11 +290,8 @@ static int rfc2047_decode_word (char *d, const char *s, size_t len) /* ignore language specification a la RFC 2231 */ if ((t = strchr (pp, '*'))) *t = '\0'; - if (mutt_strcasecmp (pp, Charset) != 0) - { - filter = 1; - charset = pp; - } + charset = pp; + filter = 1; break; case 3: if (toupper (*pp) == 'Q') @@ -373,14 +370,10 @@ static int rfc2047_decode_word (char *d, const char *s, size_t len) CHARSET *chs = mutt_get_charset(Charset); mutt_decode_utf8_string(d, chs); } - else if (mutt_display_string(d, mutt_get_translation(charset, Charset)) == -1) - { - for(pd = d; *pd; pd++) - { - if (!IsPrint (*pd)) - *pd = '?'; - } - } + else + mutt_display_string(d, mutt_get_translation(charset, Charset)); + + mutt_display_sanitize (d); } safe_free ((void **) &p); return (0); diff --git a/rfc2231.c b/rfc2231.c index 248f50f0..209042c0 100644 --- a/rfc2231.c +++ b/rfc2231.c @@ -224,6 +224,8 @@ static void rfc2231_decode_one (char *dest, char *src, char *chs) mutt_decode_utf8_string (dest, mutt_get_charset (Charset)); else mutt_display_string (dest, mutt_get_translation (chs, Charset)); + + mutt_display_sanitize (dest); } }