summary refs log tree commit diff
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2016-08-06 19:30:45 +0200
committerChristian Neukirchen <chneukirchen@gmail.com>2016-08-06 19:30:45 +0200
commit2776c838fe43e56260f44f63b12536bd41787d8c (patch)
tree775dbbe44fc66faec7b9cf056103d659b2dad041
parent5eb7837aa8706b0050dee2fd6a2eb5d41510d18d (diff)
downloadmblaze-2776c838fe43e56260f44f63b12536bd41787d8c.tar.gz
mblaze-2776c838fe43e56260f44f63b12536bd41787d8c.tar.xz
mblaze-2776c838fe43e56260f44f63b12536bd41787d8c.zip
mshow: extract headers with -H -O
-rw-r--r--man/mshow.15
-rw-r--r--mshow.c12
2 files changed, 16 insertions, 1 deletions
diff --git a/man/mshow.1 b/man/mshow.1
index f079217..21c82f5 100644
--- a/man/mshow.1
+++ b/man/mshow.1
@@ -74,7 +74,10 @@ pattern.
 .It Fl O Ar msg
 Like
 .Fl x
-but extract to standard output.
+but write to standard output.
+When used together with
+.Fl H ,
+print the headers of the MIME part too.
 .It Fl t
 Switch to list mode: list all MIME parts
 of each
diff --git a/mshow.c b/mshow.c
index c7bb43d..c24f31f 100644
--- a/mshow.c
+++ b/mshow.c
@@ -443,6 +443,12 @@ extract_mime(int depth, struct message *msg, char *body, size_t bodylen)
 			if (errno == 0 && !*b && d == mimecount) {
 				// extract by id
 				if (extract_stdout) {
+					if (Hflag) {
+						fwrite(blaze822_orig_header(msg),
+						    1, blaze822_headerlen(msg),
+						    stdout);
+						printf("\n\n");
+					}
 					fwrite(body, 1, bodylen, stdout);
 				} else {
 					char buf[255];
@@ -461,6 +467,12 @@ extract_mime(int depth, struct message *msg, char *body, size_t bodylen)
 				   fnmatch(a, filename, FNM_PATHNAME) == 0) {
 				// extract by name
 				if (extract_stdout) {
+					if (Hflag) {
+						fwrite(blaze822_orig_header(msg),
+						    1, blaze822_headerlen(msg),
+						    stdout);
+						printf("\n\n");
+					}
 					fwrite(body, 1, bodylen, stdout);
 				} else {
 					printf("%s\n", filename);