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);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to