From 914b78a58f5dc668bbe6106e366a3bb18813cfbb Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Mon, 8 Aug 2016 14:23:20 +0200 Subject: [PATCH] mhdr: set exit status to 1 when no header was found --- man/mhdr.1 | 6 +++++- mhdr.c | 12 ++++++++++-- 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; }