summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2011-11-08 11:36:46 +0000
committered <ed@FreeBSD.org>2011-11-08 11:36:46 +0000
commitc2950f3c9ceda28fc6ac670023806066c9b2af75 (patch)
tree2e4e166ef147029cdd9df2cf07f8e69f4333f102 /usr.bin
parent8e918ec4392cb32837f42437c386d9dfb54b257c (diff)
downloadFreeBSD-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)
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/du/du.c16
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);
OpenPOWER on IntegriCloud