diff options
author | Leah Neukirchen <leah@vuxu.org> | 2020-08-08 17:01:26 +0200 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2020-08-08 17:01:26 +0200 |
commit | 04ed2d439a00a3caf53a21536fab7894e9d9c000 (patch) | |
tree | 15ef4a9b39a0b9c112e5ab88c119a0e6a8a5001c | |
parent | a02c7e451bbaab8ef497d302447e99756b037baf (diff) | |
download | mblaze-04ed2d439a00a3caf53a21536fab7894e9d9c000.tar.gz mblaze-04ed2d439a00a3caf53a21536fab7894e9d9c000.tar.xz mblaze-04ed2d439a00a3caf53a21536fab7894e9d9c000.zip |
mshow: refactor, use charset logic in reply_mime too
-rw-r--r-- | mshow.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/mshow.c b/mshow.c index 1d3b267..8ecf157 100644 --- a/mshow.c +++ b/mshow.c @@ -189,6 +189,18 @@ print_filename(char *filename) } } +static int +probably_utf8(char *charset) +{ + return !charset || + strcasecmp(charset, "utf-8") == 0 || + strcasecmp(charset, "utf8") == 0 || + strcasecmp(charset, "us-ascii") == 0 || + /* best guess for: */ + strcasecmp(charset, "unknown-8bit") == 0 || + strcasecmp(charset, "x-unknown") == 0; +} + blaze822_mime_action render_mime(int depth, struct message *msg, char *body, size_t bodylen) { @@ -285,13 +297,7 @@ nofilter: char *charset = 0, *cs, *cse; if (blaze822_mime_parameter(ct, "charset", &cs, &cse)) charset = strndup(cs, cse-cs); - if (!charset || - strcasecmp(charset, "utf-8") == 0 || - strcasecmp(charset, "utf8") == 0 || - strcasecmp(charset, "us-ascii") == 0 || - /* best guess for: */ - strcasecmp(charset, "unknown-8bit") == 0 || - strcasecmp(charset, "x-unknown") == 0) { + if (probably_utf8(charset)) { print_ascii(body, bodylen); if (bodylen > 0 && body[bodylen-1] != '\n') putchar('\n'); @@ -375,10 +381,7 @@ reply_mime(int depth, struct message *msg, char *body, size_t bodylen) char *charset = 0, *cs, *cse; if (blaze822_mime_parameter(ct, "charset", &cs, &cse)) charset = strndup(cs, cse-cs); - if (!charset || - strcasecmp(charset, "utf-8") == 0 || - strcasecmp(charset, "utf8") == 0 || - strcasecmp(charset, "us-ascii") == 0) + if (probably_utf8(charset)) print_ascii(body, bodylen); else print_u8recode(body, bodylen, charset); |