version 1.18, 2003/06/19 16:34:53 |
version 1.19, 2005/04/04 13:46:06 |
|
|
void |
void |
getargs(int argc, char *argv[]) |
getargs(int argc, char *argv[]) |
{ |
{ |
int i; |
int ch; |
char *s; |
|
|
|
for (i = 1; i < argc; ++i) |
while ((ch = getopt(argc, argv, "b:dlo:p:rtv")) != -1) |
{ |
{ |
s = argv[i]; |
switch (ch) |
if (*s != '-') break; |
|
switch (*++s) |
|
{ |
{ |
case '\0': |
|
input_file = stdin; |
|
if (i + 1 < argc) usage(); |
|
return; |
|
|
|
case '-': |
|
++i; |
|
goto no_more_options; |
|
|
|
case 'b': |
case 'b': |
if (*++s) |
file_prefix = optarg; |
file_prefix = s; |
break; |
else if (++i < argc) |
|
file_prefix = argv[i]; |
|
else |
|
usage(); |
|
continue; |
|
|
|
case 'd': |
case 'd': |
dflag = 1; |
dflag = 1; |
break; |
break; |
|
|
break; |
break; |
|
|
case 'o': |
case 'o': |
if (*++s) |
output_file_name = optarg; |
output_file_name = s; |
explicit_file_name = 1; |
else if (++i < argc) |
break; |
output_file_name = argv[i]; |
|
else |
|
usage(); |
|
explicit_file_name = 1; |
|
continue; |
|
|
|
case 'p': |
case 'p': |
if (*++s) |
symbol_prefix = optarg; |
symbol_prefix = s; |
break; |
else if (++i < argc) |
|
symbol_prefix = argv[i]; |
|
else |
|
usage(); |
|
continue; |
|
|
|
case 'r': |
case 'r': |
rflag = 1; |
rflag = 1; |
break; |
break; |
|
|
default: |
default: |
usage(); |
usage(); |
} |
} |
|
|
for (;;) |
|
{ |
|
switch (*++s) |
|
{ |
|
case '\0': |
|
goto end_of_option; |
|
|
|
case 'd': |
|
dflag = 1; |
|
break; |
|
|
|
case 'l': |
|
lflag = 1; |
|
break; |
|
|
|
case 'r': |
|
rflag = 1; |
|
break; |
|
|
|
case 't': |
|
tflag = 1; |
|
break; |
|
|
|
case 'v': |
|
vflag = 1; |
|
break; |
|
|
|
default: |
|
usage(); |
|
} |
|
} |
|
end_of_option:; |
|
} |
} |
|
argc -= optind; |
|
argv += optind; |
|
|
no_more_options:; |
if (argc != 1) |
if (i + 1 != argc) usage(); |
usage(); |
input_file_name = argv[i]; |
if (strcmp(*argv, "-") == 0) |
|
input_file = stdin; |
|
else |
|
input_file_name = *argv; |
} |
} |
|
|
|
|