about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--mshow.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/mshow.c b/mshow.c
index e73d457..c7bb43d 100644
--- a/mshow.c
+++ b/mshow.c
@@ -601,7 +601,7 @@ show(char *file)
 	}
 	newcur = strdup(file);
 
-	if (qflag)
+	if (qflag && !Hflag)
 		msg = blaze822(file);
 	else
 		msg = blaze822_file(file);
@@ -611,17 +611,8 @@ show(char *file)
 	}
 
 	if (Hflag) {  // raw headers
-		size_t hl = blaze822_headerlen(msg);
-		char *header = malloc(hl);
-		if (!header)
-			return;
-		int fd = open(file, O_RDONLY);
-		if (fd == -1) {
-			free(header);
-			return;
-		}
-		hl = read(fd, header, hl);
-		fwrite(header, 1, hl, stdout);
+		fwrite(blaze822_orig_header(msg), 1, blaze822_headerlen(msg),
+		    stdout);
 		printf("\n");
 	} else if (Lflag) {  // all headers
 		char *h = 0;