Getopt'ed by Marc Nijdam <marc_nijdam@hp.com>
-Erik
This commit is contained in:
parent
17ad45aace
commit
add09fd558
@ -159,7 +159,7 @@ int date_main(int argc, char **argv)
|
||||
char *date_str = NULL;
|
||||
char *date_fmt = NULL;
|
||||
char *t_buff;
|
||||
int i;
|
||||
char c;
|
||||
int set_time = 0;
|
||||
int rfc822 = 0;
|
||||
int utc = 0;
|
||||
@ -168,20 +168,15 @@ int date_main(int argc, char **argv)
|
||||
struct tm tm_time;
|
||||
|
||||
/* Interpret command line args */
|
||||
i = --argc;
|
||||
argv++;
|
||||
while (i > 0 && **argv) {
|
||||
if (**argv == '-') {
|
||||
while (i > 0 && *++(*argv))
|
||||
switch (**argv) {
|
||||
while ((c = getopt(argc, argv, "Rs:ud:")) != EOF) {
|
||||
switch (c) {
|
||||
case 'R':
|
||||
rfc822 = 1;
|
||||
break;
|
||||
case 's':
|
||||
set_time = 1;
|
||||
if (date_str != NULL)
|
||||
if ((date_str != NULL) || ((date_str = optarg) == NULL))
|
||||
usage(date_usage);
|
||||
date_str = *argv;
|
||||
break;
|
||||
case 'u':
|
||||
utc = 1;
|
||||
@ -190,27 +185,22 @@ int date_main(int argc, char **argv)
|
||||
break;
|
||||
case 'd':
|
||||
use_arg = 1;
|
||||
if (date_str != NULL)
|
||||
if ((date_str != NULL) || ((date_str = optarg) == NULL))
|
||||
usage(date_usage);
|
||||
date_str = *argv;
|
||||
break;
|
||||
case '-':
|
||||
default:
|
||||
usage(date_usage);
|
||||
}
|
||||
} else {
|
||||
if ((date_fmt == NULL) && (**argv == '+'))
|
||||
date_fmt = *argv + 1; /* Skip over the '+' */
|
||||
else if (date_str == NULL) {
|
||||
set_time = 1;
|
||||
date_str = *argv;
|
||||
} else {
|
||||
usage(date_usage);
|
||||
}
|
||||
}
|
||||
i--;
|
||||
argv++;
|
||||
}
|
||||
|
||||
if ((date_fmt == NULL) && (optind < argc) && (argv[optind][0] == '+'))
|
||||
date_fmt = &argv[optind][1]; /* Skip over the '+' */
|
||||
else if (date_str == NULL) {
|
||||
set_time = 1;
|
||||
date_str = argv[optind];
|
||||
} else {
|
||||
usage(date_usage);
|
||||
}
|
||||
|
||||
/* Now we have parsed all the information except the date format
|
||||
which depends on whether the clock is being set or read */
|
||||
|
@ -45,23 +45,24 @@ echo_main(int argc, char** argv)
|
||||
int nflag = 0;
|
||||
int eflag = 0;
|
||||
|
||||
ap = argv;
|
||||
if (argc)
|
||||
ap++;
|
||||
while ((p = *ap) != NULL && *p == '-') {
|
||||
if (strcmp(p, "-n")==0) {
|
||||
|
||||
while ((c = getopt(argc, argv, "neE")) != EOF) {
|
||||
switch (c) {
|
||||
case 'n':
|
||||
nflag = 1;
|
||||
} else if (strcmp(p, "-e")==0) {
|
||||
break;
|
||||
case 'e':
|
||||
eflag = 1;
|
||||
} else if (strcmp(p, "-E")==0) {
|
||||
break;
|
||||
case 'E':
|
||||
eflag = 0;
|
||||
}
|
||||
else if (strncmp(p, "--", 2)==0) {
|
||||
break;
|
||||
default:
|
||||
usage(uname_usage);
|
||||
}
|
||||
else break;
|
||||
ap++;
|
||||
}
|
||||
|
||||
ap = &argv[optind];
|
||||
while ((p = *ap++) != NULL) {
|
||||
while ((c = *p++) != '\0') {
|
||||
if (c == '\\' && eflag) {
|
||||
|
38
date.c
38
date.c
@ -159,7 +159,7 @@ int date_main(int argc, char **argv)
|
||||
char *date_str = NULL;
|
||||
char *date_fmt = NULL;
|
||||
char *t_buff;
|
||||
int i;
|
||||
char c;
|
||||
int set_time = 0;
|
||||
int rfc822 = 0;
|
||||
int utc = 0;
|
||||
@ -168,20 +168,15 @@ int date_main(int argc, char **argv)
|
||||
struct tm tm_time;
|
||||
|
||||
/* Interpret command line args */
|
||||
i = --argc;
|
||||
argv++;
|
||||
while (i > 0 && **argv) {
|
||||
if (**argv == '-') {
|
||||
while (i > 0 && *++(*argv))
|
||||
switch (**argv) {
|
||||
while ((c = getopt(argc, argv, "Rs:ud:")) != EOF) {
|
||||
switch (c) {
|
||||
case 'R':
|
||||
rfc822 = 1;
|
||||
break;
|
||||
case 's':
|
||||
set_time = 1;
|
||||
if (date_str != NULL)
|
||||
if ((date_str != NULL) || ((date_str = optarg) == NULL))
|
||||
usage(date_usage);
|
||||
date_str = *argv;
|
||||
break;
|
||||
case 'u':
|
||||
utc = 1;
|
||||
@ -190,27 +185,22 @@ int date_main(int argc, char **argv)
|
||||
break;
|
||||
case 'd':
|
||||
use_arg = 1;
|
||||
if (date_str != NULL)
|
||||
if ((date_str != NULL) || ((date_str = optarg) == NULL))
|
||||
usage(date_usage);
|
||||
date_str = *argv;
|
||||
break;
|
||||
case '-':
|
||||
default:
|
||||
usage(date_usage);
|
||||
}
|
||||
} else {
|
||||
if ((date_fmt == NULL) && (**argv == '+'))
|
||||
date_fmt = *argv + 1; /* Skip over the '+' */
|
||||
else if (date_str == NULL) {
|
||||
set_time = 1;
|
||||
date_str = *argv;
|
||||
} else {
|
||||
usage(date_usage);
|
||||
}
|
||||
}
|
||||
i--;
|
||||
argv++;
|
||||
}
|
||||
|
||||
if ((date_fmt == NULL) && (optind < argc) && (argv[optind][0] == '+'))
|
||||
date_fmt = &argv[optind][1]; /* Skip over the '+' */
|
||||
else if (date_str == NULL) {
|
||||
set_time = 1;
|
||||
date_str = argv[optind];
|
||||
} else {
|
||||
usage(date_usage);
|
||||
}
|
||||
|
||||
/* Now we have parsed all the information except the date format
|
||||
which depends on whether the clock is being set or read */
|
||||
|
36
dmesg.c
36
dmesg.c
@ -44,50 +44,36 @@ static const char dmesg_usage[] = "dmesg [-c] [-n LEVEL] [-s SIZE]\n"
|
||||
|
||||
int dmesg_main(int argc, char **argv)
|
||||
{
|
||||
char *buf;
|
||||
char *buf, c;
|
||||
int bufsize = 8196;
|
||||
int i;
|
||||
int n;
|
||||
int level = 0;
|
||||
int lastc;
|
||||
int cmd = 3;
|
||||
int stopDoingThat;
|
||||
|
||||
argc--;
|
||||
argv++;
|
||||
|
||||
/* Parse any options */
|
||||
while (argc && **argv == '-') {
|
||||
stopDoingThat = FALSE;
|
||||
while (stopDoingThat == FALSE && *++(*argv)) {
|
||||
switch (**argv) {
|
||||
while ((c = getopt(argc, argv, "cn:s:")) != EOF) {
|
||||
switch (c) {
|
||||
case 'c':
|
||||
cmd = 4;
|
||||
break;
|
||||
case 'n':
|
||||
cmd = 8;
|
||||
if (--argc == 0)
|
||||
goto end;
|
||||
level = atoi(*(++argv));
|
||||
if (--argc > 0)
|
||||
++argv;
|
||||
stopDoingThat = TRUE;
|
||||
if (optarg == NULL)
|
||||
usage(dmesg_usage);
|
||||
level = atoi(optarg);
|
||||
break;
|
||||
case 's':
|
||||
if (--argc == 0)
|
||||
goto end;
|
||||
bufsize = atoi(*(++argv));
|
||||
if (--argc > 0)
|
||||
++argv;
|
||||
stopDoingThat = TRUE;
|
||||
if (optarg == NULL)
|
||||
usage(dmesg_usage);
|
||||
bufsize = atoi(optarg);
|
||||
break;
|
||||
default:
|
||||
goto end;
|
||||
}
|
||||
usage(dmesg_usage);
|
||||
}
|
||||
}
|
||||
|
||||
if (argc > 1) {
|
||||
if (optind < argc) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
|
23
echo.c
23
echo.c
@ -45,23 +45,24 @@ echo_main(int argc, char** argv)
|
||||
int nflag = 0;
|
||||
int eflag = 0;
|
||||
|
||||
ap = argv;
|
||||
if (argc)
|
||||
ap++;
|
||||
while ((p = *ap) != NULL && *p == '-') {
|
||||
if (strcmp(p, "-n")==0) {
|
||||
|
||||
while ((c = getopt(argc, argv, "neE")) != EOF) {
|
||||
switch (c) {
|
||||
case 'n':
|
||||
nflag = 1;
|
||||
} else if (strcmp(p, "-e")==0) {
|
||||
break;
|
||||
case 'e':
|
||||
eflag = 1;
|
||||
} else if (strcmp(p, "-E")==0) {
|
||||
break;
|
||||
case 'E':
|
||||
eflag = 0;
|
||||
}
|
||||
else if (strncmp(p, "--", 2)==0) {
|
||||
break;
|
||||
default:
|
||||
usage(uname_usage);
|
||||
}
|
||||
else break;
|
||||
ap++;
|
||||
}
|
||||
|
||||
ap = &argv[optind];
|
||||
while ((p = *ap++) != NULL) {
|
||||
while ((c = *p++) != '\0') {
|
||||
if (c == '\\' && eflag) {
|
||||
|
@ -44,50 +44,36 @@ static const char dmesg_usage[] = "dmesg [-c] [-n LEVEL] [-s SIZE]\n"
|
||||
|
||||
int dmesg_main(int argc, char **argv)
|
||||
{
|
||||
char *buf;
|
||||
char *buf, c;
|
||||
int bufsize = 8196;
|
||||
int i;
|
||||
int n;
|
||||
int level = 0;
|
||||
int lastc;
|
||||
int cmd = 3;
|
||||
int stopDoingThat;
|
||||
|
||||
argc--;
|
||||
argv++;
|
||||
|
||||
/* Parse any options */
|
||||
while (argc && **argv == '-') {
|
||||
stopDoingThat = FALSE;
|
||||
while (stopDoingThat == FALSE && *++(*argv)) {
|
||||
switch (**argv) {
|
||||
while ((c = getopt(argc, argv, "cn:s:")) != EOF) {
|
||||
switch (c) {
|
||||
case 'c':
|
||||
cmd = 4;
|
||||
break;
|
||||
case 'n':
|
||||
cmd = 8;
|
||||
if (--argc == 0)
|
||||
goto end;
|
||||
level = atoi(*(++argv));
|
||||
if (--argc > 0)
|
||||
++argv;
|
||||
stopDoingThat = TRUE;
|
||||
if (optarg == NULL)
|
||||
usage(dmesg_usage);
|
||||
level = atoi(optarg);
|
||||
break;
|
||||
case 's':
|
||||
if (--argc == 0)
|
||||
goto end;
|
||||
bufsize = atoi(*(++argv));
|
||||
if (--argc > 0)
|
||||
++argv;
|
||||
stopDoingThat = TRUE;
|
||||
if (optarg == NULL)
|
||||
usage(dmesg_usage);
|
||||
bufsize = atoi(optarg);
|
||||
break;
|
||||
default:
|
||||
goto end;
|
||||
}
|
||||
usage(dmesg_usage);
|
||||
}
|
||||
}
|
||||
|
||||
if (argc > 1) {
|
||||
if (optind < argc) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user