summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreutils/du.c32
-rw-r--r--du.c32
2 files changed, 22 insertions, 42 deletions
diff --git a/coreutils/du.c b/coreutils/du.c
index b1ca954..f1a4442 100644
--- a/coreutils/du.c
+++ b/coreutils/du.c
@@ -137,42 +137,32 @@ static long du(char *filename)
int du_main(int argc, char **argv)
{
int i;
- char opt;
+ char c;
/* default behaviour */
print = print_normal;
/* parse argv[] */
- for (i = 1; i < argc; i++) {
- if (argv[i][0] == '-') {
- opt = argv[i][1];
- switch (opt) {
+ while ((c = getopt(argc, argv, "sl")) != EOF) {
+ switch (c) {
case 's':
- print = print_summary;
- break;
+ print = print_summary;
+ break;
case 'l':
- count_hardlinks = 1;
- break;
- case 'h':
- case '-':
- usage(du_usage);
- break;
+ count_hardlinks = 1;
+ break;
default:
- errorMsg("invalid option -- %c\n", opt);
- usage(du_usage);
+ usage(du_usage);
}
- } else {
- break;
- }
}
/* go through remaining args (if any) */
- if (i >= argc) {
+ if (optind >= argc) {
du(".");
} else {
long sum;
- for (; i < argc; i++) {
+ for (i=optind; i < argc; i++) {
sum = du(argv[i]);
if (sum && isDirectory(argv[i], FALSE, NULL)) {
print_normal(sum, argv[i]);
@@ -184,7 +174,7 @@ int du_main(int argc, char **argv)
return(0);
}
-/* $Id: du.c,v 1.21 2000/07/14 01:51:25 kraai Exp $ */
+/* $Id: du.c,v 1.22 2000/07/14 18:38:26 andersen Exp $ */
/*
Local Variables:
c-file-style: "linux"
diff --git a/du.c b/du.c
index b1ca954..f1a4442 100644
--- a/du.c
+++ b/du.c
@@ -137,42 +137,32 @@ static long du(char *filename)
int du_main(int argc, char **argv)
{
int i;
- char opt;
+ char c;
/* default behaviour */
print = print_normal;
/* parse argv[] */
- for (i = 1; i < argc; i++) {
- if (argv[i][0] == '-') {
- opt = argv[i][1];
- switch (opt) {
+ while ((c = getopt(argc, argv, "sl")) != EOF) {
+ switch (c) {
case 's':
- print = print_summary;
- break;
+ print = print_summary;
+ break;
case 'l':
- count_hardlinks = 1;
- break;
- case 'h':
- case '-':
- usage(du_usage);
- break;
+ count_hardlinks = 1;
+ break;
default:
- errorMsg("invalid option -- %c\n", opt);
- usage(du_usage);
+ usage(du_usage);
}
- } else {
- break;
- }
}
/* go through remaining args (if any) */
- if (i >= argc) {
+ if (optind >= argc) {
du(".");
} else {
long sum;
- for (; i < argc; i++) {
+ for (i=optind; i < argc; i++) {
sum = du(argv[i]);
if (sum && isDirectory(argv[i], FALSE, NULL)) {
print_normal(sum, argv[i]);
@@ -184,7 +174,7 @@ int du_main(int argc, char **argv)
return(0);
}
-/* $Id: du.c,v 1.21 2000/07/14 01:51:25 kraai Exp $ */
+/* $Id: du.c,v 1.22 2000/07/14 18:38:26 andersen Exp $ */
/*
Local Variables:
c-file-style: "linux"