about summary refs log tree commit diff
path: root/mhdr.c
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2017-09-06 17:46:20 +0200
committerLeah Neukirchen <leah@vuxu.org>2017-09-06 17:46:20 +0200
commit98924a7fa1cae390f30d6daf4fcfd05cbfd80ffe (patch)
tree2e641b3937d375b8de4bd7972233c19a279d08dd /mhdr.c
parent3a67663a5da60756159461ec976dee8b71308330 (diff)
downloadmblaze-98924a7fa1cae390f30d6daf4fcfd05cbfd80ffe.tar.gz
mblaze-98924a7fa1cae390f30d6daf4fcfd05cbfd80ffe.tar.xz
mblaze-98924a7fa1cae390f30d6daf4fcfd05cbfd80ffe.zip
mhdr: add -p to extract MIME parameters
Diffstat (limited to 'mhdr.c')
-rw-r--r--mhdr.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/mhdr.c b/mhdr.c
index cc49c22..73d76f9 100644
--- a/mhdr.c
+++ b/mhdr.c
@@ -12,6 +12,7 @@
 #include "blaze822.h"
 
 static char *hflag;
+static char *pflag;
 static int Aflag;
 static int Dflag;
 static int Hflag;
@@ -100,6 +101,16 @@ print_decode_header(char *s)
 void
 print_header(char *v)
 {
+	if (pflag) {
+		char *s, *se;
+		if (blaze822_mime_parameter(v, pflag, &s, &se)) {
+			*se = 0;
+			v = s;
+		} else {
+			return;
+		}
+	}
+
 	status = 0;
 
 	if (Hflag && !Aflag)
@@ -188,9 +199,10 @@ int
 main(int argc, char *argv[])
 {
 	int c;
-	while ((c = getopt(argc, argv, "h:ADHMd")) != -1)
+	while ((c = getopt(argc, argv, "h:p:ADHMd")) != -1)
 		switch (c) {
 		case 'h': hflag = optarg; break;
+		case 'p': pflag = optarg; break;
 		case 'A': Aflag = 1; break;
 		case 'D': Dflag = 1; break;
 		case 'H': Hflag = 1; break;
@@ -198,7 +210,7 @@ main(int argc, char *argv[])
 		case 'd': dflag = 1; break;
 		default:
 			fprintf(stderr,
-"Usage: mhdr [-h header] [-d] [-H] [-M] [-A|-D] [msgs...]\n");
+"Usage: mhdr [-h header [-p parameter]] [-d] [-H] [-M] [-A|-D] [msgs...]\n");
 			exit(2);
 		}