about summary refs log tree commit diff
path: root/mshow.c
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2017-06-18 17:31:19 +0200
committerLeah Neukirchen <leah@vuxu.org>2017-06-18 17:32:42 +0200
commit01ad9ec927a6ec1b4acbce2a7e3b48135fa794e4 (patch)
tree005cbb0a6e62666b9382dd67628c0aee07a7e9b2 /mshow.c
parentd37aa2bac54db46f1d0add6ee7a07e13578aaf0a (diff)
downloadmblaze-01ad9ec927a6ec1b4acbce2a7e3b48135fa794e4.tar.gz
mblaze-01ad9ec927a6ec1b4acbce2a7e3b48135fa794e4.tar.xz
mblaze-01ad9ec927a6ec1b4acbce2a7e3b48135fa794e4.zip
mshow: add -N to not show MIME structure markers.
Diffstat (limited to 'mshow.c')
-rw-r--r--mshow.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/mshow.c b/mshow.c
index 2811f65..e8773a7 100644
--- a/mshow.c
+++ b/mshow.c
@@ -20,6 +20,7 @@ static int Rflag;
 static int qflag;
 static int Hflag;
 static int Lflag;
+static int Nflag;
 static int tflag;
 static int nflag;
 static char defaulthflags[] = "from:subject:to:cc:date:";
@@ -187,11 +188,13 @@ render_mime(int depth, struct message *msg, char *body, size_t bodylen)
 
 	mimecount++;
 
-	int i;
-	for (i = 0; i < depth+1; i++)
-		printf("--- ");
-	printf("%d: %s size=%zd", mimecount, mt, bodylen);
-	print_filename(filename);
+	if (!Nflag) {
+		int i;
+		for (i = 0; i < depth+1; i++)
+			printf("--- ");
+		printf("%d: %s size=%zd", mimecount, mt, bodylen);
+		print_filename(filename);
+	}
 
 	char *cmd;
 	blaze822_mime_action r = MIME_CONTINUE;
@@ -213,7 +216,8 @@ render_mime(int depth, struct message *msg, char *body, size_t bodylen)
 		int e = filter(body, bodylen, cmd, &output, &outlen);
 
 		if (e == 0) { // replace output
-			printf(" render=\"%s\" ---\n", cmd);
+			if (!Nflag)
+				printf(" render=\"%s\" ---\n", cmd);
 			if (outlen) {
 				print_ascii(output, outlen);
 				if (output[outlen-1] != '\n')
@@ -223,7 +227,8 @@ render_mime(int depth, struct message *msg, char *body, size_t bodylen)
 			free(output);
 			goto nofilter;
 		} else if (e == 64) { // decode output again
-			printf(" filter=\"%s\" ---\n", cmd);
+			if (!Nflag)
+				printf(" filter=\"%s\" ---\n", cmd);
 			struct message *imsg = blaze822_mem(output, outlen);
 			if (imsg)
 				blaze822_walk_mime(imsg, depth+1, render_mime);
@@ -248,7 +253,8 @@ render_mime(int depth, struct message *msg, char *body, size_t bodylen)
 		r = MIME_PRUNE;
 	} else {
 nofilter:
-		printf(" ---\n");
+		if (!Nflag)
+			printf(" ---\n");
 
 		if (strncmp(ct, "text/", 5) == 0) {
 			char *charset = 0, *cs, *cse;
@@ -711,7 +717,7 @@ main(int argc, char *argv[])
 	pid_t pid1 = -1, pid2 = -1;
 
 	int c;
-	while ((c = getopt(argc, argv, "h:A:qrtHLx:O:Rn")) != -1)
+	while ((c = getopt(argc, argv, "h:A:qrtHLNx:O:Rn")) != -1)
 		switch(c) {
 		case 'h': hflag = optarg; break;
 		case 'A': Aflag = optarg; break;
@@ -719,6 +725,7 @@ main(int argc, char *argv[])
 		case 'r': rflag = 1; break;
 		case 'H': Hflag = 1; break;
 		case 'L': Lflag = 1; break;
+		case 'N': Nflag = 1; break;
 		case 't': tflag = 1; break;
 		case 'x': xflag = optarg; break;
 		case 'O': Oflag = optarg; break;
@@ -726,7 +733,7 @@ main(int argc, char *argv[])
 		case 'n': nflag = 1; break;
 		default:
 			fprintf(stderr,
-			    "Usage: mshow [-h headers] [-A mimetypes] [-nqrHL] [msgs...]\n"
+			    "Usage: mshow [-h headers] [-A mimetypes] [-nqrHLN] [msgs...]\n"
 			    "	    mshow -x msg parts...\n"
 			    "	    mshow -O msg parts...\n"
 			    "	    mshow -t msgs...\n"