aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2016-08-08 14:23:20 +0200
committerChristian Neukirchen <chneukirchen@gmail.com>2016-08-08 14:23:20 +0200
commit914b78a58f5dc668bbe6106e366a3bb18813cfbb (patch)
tree5c597dc7f12f26f541666503353971d74bc549d5
parent21d353f91e9cb3869334a9118173d86b3fa8c6da (diff)
downloadmblaze-914b78a58f5dc668bbe6106e366a3bb18813cfbb.tar.gz
mhdr: set exit status to 1 when no header was found
-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;
}