This path adds a -q flag to stop pathchk from outputting error messages but still return an error code.
Index: pathchk.c =================================================================== --- pathchk.c (revision 207232) +++ pathchk.c (working copy) @@ -51,18 +51,20 @@ static void usage(void); static int pflag; /* Perform portability checks */ - -int +static int qflag = 0; /* stop pathchk from talking */ main(int argc, char *argv[]) { int ch, rval; const char *arg; - while ((ch = getopt(argc, argv, "p")) > 0) { + while ((ch = getopt(argc, argv, "pq")) > 0) { switch (ch) { case 'p': pflag = 1; break; + case 'q': + qflag = 1; + break; default: usage(); /*NOTREACHED*/ @@ -85,7 +87,7 @@ usage(void) { - fprintf(stderr, "usage: pathchk [-p] pathname ...\n"); + fprintf(stderr, "usage: pathchk [-qp] pathname ...\n"); exit(1); } @@ -118,20 +120,29 @@ *end = '\0'; if (namemax != -1 && complen > namemax) { - warnx("%s: %s: component too long (limit %ld)", path, - p, namemax); + if (!qflag) + { + warnx("%s: %s: component too long (limit %ld)", path, + p, namemax); + } goto bad; } if (!pflag && stat(pathd, &sb) == -1 && errno != ENOENT) { - warn("%s: %.*s", path, (int)(strlen(pathd) - - complen - 1), pathd); + if (!qflag) + { + warn("%s: %.*s", path, (int)(strlen(pathd) - + complen - 1), pathd); + } goto bad; } if (pflag && (badch = portable(p)) >= 0) { - warnx("%s: %s: component contains non-portable " - "character `%c'", path, p, badch); + if (!qflag) + { + warnx("%s: %s: component contains non-portable " + "character `%c'", path, p, badch); + } goto bad; } @@ -158,7 +169,10 @@ } else pathmax = _POSIX_PATH_MAX; if (pathmax != -1 && strlen(path) >= (size_t)pathmax) { - warnx("%s: path too long (limit %ld)", path, pathmax - 1); + if (!qflag) + { + warnx("%s: path too long (limit %ld)", path, pathmax - 1); + } goto bad; } _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"