about summary refs log tree commit diff
path: root/mshow.c
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2018-04-17 15:26:19 +0200
committerLeah Neukirchen <leah@vuxu.org>2018-04-17 15:26:19 +0200
commitd261b0cdcf4c16060630f4f1d1bb9c674f8caf65 (patch)
tree319ee63e610f12bc9890afc878a8ee2492f78fc6 /mshow.c
parent5d43ad24048698ba89858648389e7e8479801746 (diff)
downloadmblaze-d261b0cdcf4c16060630f4f1d1bb9c674f8caf65.tar.gz
mblaze-d261b0cdcf4c16060630f4f1d1bb9c674f8caf65.tar.xz
mblaze-d261b0cdcf4c16060630f4f1d1bb9c674f8caf65.zip
mshow: add -B to decode MIME parameters in broken mails
Diffstat (limited to 'mshow.c')
-rw-r--r--mshow.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/mshow.c b/mshow.c
index edb110b..d4b1ba8 100644
--- a/mshow.c
+++ b/mshow.c
@@ -15,6 +15,7 @@
 
 #include "blaze822.h"
 
+static int Bflag;
 static int rflag;
 static int Rflag;
 static int qflag;
@@ -166,6 +167,12 @@ mime_filename(struct message *msg)
 			filename = buf;
 	}
 
+	if (Bflag && filename) {
+		static char buf2[512];
+		blaze822_decode_rfc2047(buf2, filename, sizeof buf2, "UTF-8");
+		filename = buf2;
+	}
+
 	return filename;
 }
 
@@ -743,10 +750,11 @@ main(int argc, char *argv[])
 	pid_t pid1 = -1, pid2 = -1;
 
 	int c;
-	while ((c = getopt(argc, argv, "h:A:qrtFHLNx:O:Rn")) != -1)
+	while ((c = getopt(argc, argv, "h:A:BqrtFHLNx:O:Rn")) != -1)
 		switch (c) {
 		case 'h': hflag = optarg; break;
 		case 'A': Aflag = optarg; break;
+		case 'B': Bflag = 1; break;
 		case 'q': qflag = 1; break;
 		case 'r': rflag = 1; break;
 		case 'F': Fflag = 1; break;