diff options
author | ed <ed@FreeBSD.org> | 2011-11-08 11:36:46 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2011-11-08 11:36:46 +0000 |
commit | c2950f3c9ceda28fc6ac670023806066c9b2af75 (patch) | |
tree | 2e4e166ef147029cdd9df2cf07f8e69f4333f102 | |
parent | 8e918ec4392cb32837f42437c386d9dfb54b257c (diff) | |
download | FreeBSD-src-c2950f3c9ceda28fc6ac670023806066c9b2af75.zip FreeBSD-src-c2950f3c9ceda28fc6ac670023806066c9b2af75.tar.gz |
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)
-rw-r--r-- | usr.bin/du/du.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/usr.bin/du/du.c b/usr.bin/du/du.c index 86d8863..5c670d4 100644 --- a/usr.bin/du/du.c +++ b/usr.bin/du/du.c @@ -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); |