about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2020-08-08 17:01:26 +0200
committerLeah Neukirchen <leah@vuxu.org>2020-08-08 17:01:26 +0200
commit04ed2d439a00a3caf53a21536fab7894e9d9c000 (patch)
tree15ef4a9b39a0b9c112e5ab88c119a0e6a8a5001c
parenta02c7e451bbaab8ef497d302447e99756b037baf (diff)
downloadmblaze-04ed2d439a00a3caf53a21536fab7894e9d9c000.tar.gz
mblaze-04ed2d439a00a3caf53a21536fab7894e9d9c000.tar.xz
mblaze-04ed2d439a00a3caf53a21536fab7894e9d9c000.zip
mshow: refactor, use charset logic in reply_mime too
-rw-r--r--mshow.c25
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);