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