svn commit: r227335 - head/usr.bin/du

Ed Schouten ed at FreeBSD.org
Tue Nov 8 11:36:47 UTC 2011


Author: ed
Date: Tue Nov  8 11:36:46 2011
New Revision: 227335
URL: http://svn.freebsd.org/changeset/base/227335

Log:
  Simplify getopt switch parsing.
  
  Only one of these flags can be set. Just add them together and check the
  value. Also, get rid of the listall variable. The code is already filled
  with direct *flag-comparisons.
  
  Obtained from:	Alexander Best (though modified)

Modified:
  head/usr.bin/du/du.c

Modified: head/usr.bin/du/du.c
==============================================================================
--- head/usr.bin/du/du.c	Tue Nov  8 11:08:40 2011	(r227334)
+++ head/usr.bin/du/du.c	Tue Nov  8 11:36:46 2011	(r227335)
@@ -88,7 +88,6 @@ main(int argc, char *argv[])
 	off_t		savednumber, curblocks;
 	off_t		threshold, threshold_sign;
 	int		ftsoptions;
-	int		listall;
 	int		depth;
 	int		Hflag, Lflag, Pflag, aflag, sflag, dflag, cflag;
 	int		hflag, lflag, ch, notused, rval;
@@ -229,17 +228,10 @@ main(int argc, char *argv[])
 	if (!Aflag && (cblocksize % DEV_BSIZE) != 0)
 		cblocksize = howmany(cblocksize, DEV_BSIZE) * DEV_BSIZE;
 
-	listall = 0;
-
-	if (aflag) {
-		if (sflag || dflag)
-			usage();
-		listall = 1;
-	} else if (sflag) {
-		if (dflag)
-			usage();
+	if (aflag + dflag + sflag > 1)
+		usage();
+	if (sflag)
 		depth = 0;
-	}
 
 	if (!*argv) {
 		argv = save;
@@ -320,7 +312,7 @@ main(int argc, char *argv[])
 			    howmany(p->fts_statp->st_size, cblocksize) :
 			    howmany(p->fts_statp->st_blocks, cblocksize);
 
-			if (listall || p->fts_level == 0) {
+			if (aflag || p->fts_level == 0) {
 				if (hflag) {
 					prthumanval(curblocks);
 					(void)printf("\t%s\n", p->fts_path);


More information about the svn-src-all mailing list