version 1.19, 2014/12/28 16:10:33 |
version 1.20, 2014/12/28 16:22:37 |
|
|
struct option *opt; |
struct option *opt; |
long long val; |
long long val; |
char *arg, *p; |
char *arg, *p; |
|
int fmt, used; |
int ord = 0; |
int ord = 0; |
int i, j; |
int i, j; |
int fmt; |
|
|
|
if (unnamed != NULL) |
if (unnamed != NULL) |
*unnamed = NULL; |
*unnamed = NULL; |
|
|
goto unknown; |
goto unknown; |
} |
} |
|
|
|
/* See if there is a matching option... */ |
for (j = 0; opts[j].name != NULL; j++) { |
for (j = 0; opts[j].name != NULL; j++) { |
opt = &opts[j]; |
opt = &opts[j]; |
if (strcmp(p, opt->name) == 0) |
if (strcmp(p, opt->name) == 0) |
|
|
switch (opt->type) { |
switch (opt->type) { |
case OPTION_ARG: |
case OPTION_ARG: |
*opt->opt.arg = argv[i]; |
*opt->opt.arg = argv[i]; |
|
break; |
|
|
|
case OPTION_ARGV_FUNC: |
|
if (opt->opt.argvfunc(argc - i, &argv[i], &used) != 0) |
|
return (1); |
|
i += used - 1; |
break; |
break; |
|
|
case OPTION_ARG_FORMAT: |
case OPTION_ARG_FORMAT: |