summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--man/mhdr.16
-rw-r--r--mhdr.c12
2 files changed, 15 insertions, 3 deletions
diff --git a/man/mhdr.1 b/man/mhdr.1
index 48672fe..b7a064e 100644
--- a/man/mhdr.1
+++ b/man/mhdr.1
@@ -41,7 +41,11 @@ Scan for RFC 5322 addresses in the headers and print them line by line.
 Assume header contains RFC 5322 date and print as Unix timestamp.
 .El
 .Sh EXIT STATUS
-.Ex -std
+The
+.Nm
+utility exits 0 on success,
+1 when no header was printed,
+and >1 if an error occurs.
 .Sh SEE ALSO
 .Xr mmsg 7
 .Rs
diff --git a/mhdr.c b/mhdr.c
index 97b99e1..955c0f2 100644
--- a/mhdr.c
+++ b/mhdr.c
@@ -17,6 +17,8 @@ static int Dflag;
 static int Mflag;
 static int dflag;
 
+static int status;
+
 static void
 printhdr(char *hdr)
 {
@@ -29,6 +31,8 @@ printhdr(char *hdr)
 	}
 	fputs(hdr, stdout);
 	fputc('\n', stdout);
+
+	status = 0;
 }
 
 void
@@ -88,6 +92,8 @@ print_decode_header(char *s)
 void
 print_header(char *v)
 {
+	status = 0;
+
 	if (Aflag)
 		print_addresses(v);
 	else if (Dflag)
@@ -179,13 +185,15 @@ main(int argc, char *argv[])
 		default:
 			fprintf(stderr,
 "Usage: mhdr [-h header] [-d] [-M] [-A|-D] [msgs...]\n");
-			exit(1);
+			exit(2);
 		}
 
+	status = 1;
+
 	if (argc == optind && isatty(0))
 		blaze822_loop1(".", header);
 	else
 		blaze822_loop(argc-optind, argv+optind, header);
 	
-	return 0;
+	return status;
 }