According to asa(1)'s man page, it should return a value >0 if it 
encounters an error. Currently asa doesn't return a value greater
than 0 if a file is missing that has been passed to it as an 
argument. For example:

$ asa MISSINGFILE

...returns 0. However, FreeBSD returns 1 but NetBSD returns 0.

Adding this diff (from FreeBSD) makes it return 1.

Any opinions?

-mark

Index: asa.c
===================================================================
RCS file: /cvs/src/usr.bin/asa/asa.c,v
retrieving revision 1.9
diff -u -p -r1.9 asa.c
--- asa.c       27 Oct 2009 23:59:35 -0000      1.9
+++ asa.c       30 Apr 2011 09:52:14 -0000
@@ -43,7 +43,7 @@ __dead void usage(void);
 int
 main(int argc, char *argv[])
 {
-       int ch;
+       int ch, exval;
        FILE *fp;
 
        while ((ch = getopt(argc, argv, "")) != -1) {
@@ -62,13 +62,14 @@ main(int argc, char *argv[])
                for (; *argv != NULL; argv++) {
                        if ((fp = fopen(*argv, "r")) == NULL) {
                                warn("%s", *argv);
+                               exval = 1;
                                continue;
                        }
                        asa(fp);
                        fclose(fp);
                }
 
-       exit(0);
+       exit(exval);
 }
 
 void

Reply via email to