Re: [patch] [RFC] pathchk quiet flag

2010-04-27 Thread Jilles Tjoelker
On Mon, Apr 26, 2010 at 08:57:31PM +0300, Eitan Adler wrote:
 This path adds a -q flag to stop pathchk from outputting error
 messages but still return an error code.

Why do you need this; can't you do something like
  pathconf -- $pathname 2/dev/null

-- 
Jilles Tjoelker
___
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


Re: [patch] [RFC] pathchk quiet flag

2010-04-27 Thread Eitan Adler
 Why do you need this; can't you do something like
  pathconf -- $pathname 2/dev/null
Not much but I thought it goes along with other quiet flags (make -Q;
grep -q; gzip -q; gunzip -q; etc)
___
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


[patch] [RFC] pathchk quiet flag

2010-04-26 Thread Eitan Adler
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