rename optind and optarg to avoid some gcc warnings
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10906 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2002 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -317,16 +317,17 @@ add_string(getarg_strings *s, char *value)
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
arg_match_long(struct getargs *args, size_t num_args,
|
arg_match_long(struct getargs *args, size_t num_args,
|
||||||
char *argv, int argc, char **rargv, int *optind)
|
char *argv, int argc, char **rargv, int *goptind)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char *optarg = NULL;
|
char *goptarg = NULL;
|
||||||
int negate = 0;
|
int negate = 0;
|
||||||
int partial_match = 0;
|
int partial_match = 0;
|
||||||
struct getargs *partial = NULL;
|
struct getargs *partial = NULL;
|
||||||
struct getargs *current = NULL;
|
struct getargs *current = NULL;
|
||||||
int argv_len;
|
int argv_len;
|
||||||
char *p;
|
char *p;
|
||||||
|
int p_len;
|
||||||
|
|
||||||
argv_len = strlen(argv);
|
argv_len = strlen(argv);
|
||||||
p = strchr (argv, '=');
|
p = strchr (argv, '=');
|
||||||
@@ -336,8 +337,8 @@ arg_match_long(struct getargs *args, size_t num_args,
|
|||||||
for (i = 0; i < num_args; ++i) {
|
for (i = 0; i < num_args; ++i) {
|
||||||
if(args[i].long_name) {
|
if(args[i].long_name) {
|
||||||
int len = strlen(args[i].long_name);
|
int len = strlen(args[i].long_name);
|
||||||
char *p = argv;
|
p = argv;
|
||||||
int p_len = argv_len;
|
p_len = argv_len;
|
||||||
negate = 0;
|
negate = 0;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@@ -348,7 +349,7 @@ arg_match_long(struct getargs *args, size_t num_args,
|
|||||||
++partial_match;
|
++partial_match;
|
||||||
partial = &args[i];
|
partial = &args[i];
|
||||||
}
|
}
|
||||||
optarg = p + p_len;
|
goptarg = p + p_len;
|
||||||
} else if (ISFLAG(args[i]) && strncmp (p, "no-", 3) == 0) {
|
} else if (ISFLAG(args[i]) && strncmp (p, "no-", 3) == 0) {
|
||||||
negate = !negate;
|
negate = !negate;
|
||||||
p += 3;
|
p += 3;
|
||||||
@@ -368,7 +369,7 @@ arg_match_long(struct getargs *args, size_t num_args,
|
|||||||
return ARG_ERR_NO_MATCH;
|
return ARG_ERR_NO_MATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(*optarg == '\0'
|
if(*goptarg == '\0'
|
||||||
&& !ISFLAG(*current)
|
&& !ISFLAG(*current)
|
||||||
&& current->type != arg_collect
|
&& current->type != arg_collect
|
||||||
&& current->type != arg_counter)
|
&& current->type != arg_counter)
|
||||||
@@ -377,31 +378,31 @@ arg_match_long(struct getargs *args, size_t num_args,
|
|||||||
case arg_integer:
|
case arg_integer:
|
||||||
{
|
{
|
||||||
int tmp;
|
int tmp;
|
||||||
if(sscanf(optarg + 1, "%d", &tmp) != 1)
|
if(sscanf(goptarg + 1, "%d", &tmp) != 1)
|
||||||
return ARG_ERR_BAD_ARG;
|
return ARG_ERR_BAD_ARG;
|
||||||
*(int*)current->value = tmp;
|
*(int*)current->value = tmp;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case arg_string:
|
case arg_string:
|
||||||
{
|
{
|
||||||
*(char**)current->value = optarg + 1;
|
*(char**)current->value = goptarg + 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case arg_strings:
|
case arg_strings:
|
||||||
{
|
{
|
||||||
add_string((getarg_strings*)current->value, optarg + 1);
|
add_string((getarg_strings*)current->value, goptarg + 1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case arg_flag:
|
case arg_flag:
|
||||||
case arg_negative_flag:
|
case arg_negative_flag:
|
||||||
{
|
{
|
||||||
int *flag = current->value;
|
int *flag = current->value;
|
||||||
if(*optarg == '\0' ||
|
if(*goptarg == '\0' ||
|
||||||
strcmp(optarg + 1, "yes") == 0 ||
|
strcmp(goptarg + 1, "yes") == 0 ||
|
||||||
strcmp(optarg + 1, "true") == 0){
|
strcmp(goptarg + 1, "true") == 0){
|
||||||
*flag = !negate;
|
*flag = !negate;
|
||||||
return 0;
|
return 0;
|
||||||
} else if (*optarg && strcmp(optarg + 1, "maybe") == 0) {
|
} else if (*goptarg && strcmp(goptarg + 1, "maybe") == 0) {
|
||||||
#ifdef HAVE_RANDOM
|
#ifdef HAVE_RANDOM
|
||||||
*flag = random() & 1;
|
*flag = random() & 1;
|
||||||
#else
|
#else
|
||||||
@@ -417,9 +418,9 @@ arg_match_long(struct getargs *args, size_t num_args,
|
|||||||
{
|
{
|
||||||
int val;
|
int val;
|
||||||
|
|
||||||
if (*optarg == '\0')
|
if (*goptarg == '\0')
|
||||||
val = 1;
|
val = 1;
|
||||||
else if(sscanf(optarg + 1, "%d", &val) != 1)
|
else if(sscanf(goptarg + 1, "%d", &val) != 1)
|
||||||
return ARG_ERR_BAD_ARG;
|
return ARG_ERR_BAD_ARG;
|
||||||
*(int *)current->value += val;
|
*(int *)current->value += val;
|
||||||
return 0;
|
return 0;
|
||||||
@@ -427,15 +428,15 @@ arg_match_long(struct getargs *args, size_t num_args,
|
|||||||
case arg_double:
|
case arg_double:
|
||||||
{
|
{
|
||||||
double tmp;
|
double tmp;
|
||||||
if(sscanf(optarg + 1, "%lf", &tmp) != 1)
|
if(sscanf(goptarg + 1, "%lf", &tmp) != 1)
|
||||||
return ARG_ERR_BAD_ARG;
|
return ARG_ERR_BAD_ARG;
|
||||||
*(double*)current->value = tmp;
|
*(double*)current->value = tmp;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case arg_collect:{
|
case arg_collect:{
|
||||||
struct getarg_collect_info *c = current->value;
|
struct getarg_collect_info *c = current->value;
|
||||||
int o = argv - rargv[*optind];
|
int o = argv - rargv[*goptind];
|
||||||
return (*c->func)(FALSE, argc, rargv, optind, &o, c->data);
|
return (*c->func)(FALSE, argc, rargv, goptind, &o, c->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -445,13 +446,13 @@ arg_match_long(struct getargs *args, size_t num_args,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
arg_match_short (struct getargs *args, size_t num_args,
|
arg_match_short (struct getargs *args, size_t num_args,
|
||||||
char *argv, int argc, char **rargv, int *optind)
|
char *argv, int argc, char **rargv, int *goptind)
|
||||||
{
|
{
|
||||||
int j, k;
|
int j, k;
|
||||||
|
|
||||||
for(j = 1; j > 0 && j < strlen(rargv[*optind]); j++) {
|
for(j = 1; j > 0 && j < strlen(rargv[*goptind]); j++) {
|
||||||
for(k = 0; k < num_args; k++) {
|
for(k = 0; k < num_args; k++) {
|
||||||
char *optarg;
|
char *goptarg;
|
||||||
|
|
||||||
if(args[k].short_name == 0)
|
if(args[k].short_name == 0)
|
||||||
continue;
|
continue;
|
||||||
@@ -471,36 +472,36 @@ arg_match_short (struct getargs *args, size_t num_args,
|
|||||||
if(args[k].type == arg_collect) {
|
if(args[k].type == arg_collect) {
|
||||||
struct getarg_collect_info *c = args[k].value;
|
struct getarg_collect_info *c = args[k].value;
|
||||||
|
|
||||||
if((*c->func)(TRUE, argc, rargv, optind, &j, c->data))
|
if((*c->func)(TRUE, argc, rargv, goptind, &j, c->data))
|
||||||
return ARG_ERR_BAD_ARG;
|
return ARG_ERR_BAD_ARG;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(argv[j + 1])
|
if(argv[j + 1])
|
||||||
optarg = &argv[j + 1];
|
goptarg = &argv[j + 1];
|
||||||
else {
|
else {
|
||||||
++*optind;
|
++*goptind;
|
||||||
optarg = rargv[*optind];
|
goptarg = rargv[*goptind];
|
||||||
}
|
}
|
||||||
if(optarg == NULL) {
|
if(goptarg == NULL) {
|
||||||
--*optind;
|
--*goptind;
|
||||||
return ARG_ERR_NO_ARG;
|
return ARG_ERR_NO_ARG;
|
||||||
}
|
}
|
||||||
if(args[k].type == arg_integer) {
|
if(args[k].type == arg_integer) {
|
||||||
int tmp;
|
int tmp;
|
||||||
if(sscanf(optarg, "%d", &tmp) != 1)
|
if(sscanf(goptarg, "%d", &tmp) != 1)
|
||||||
return ARG_ERR_BAD_ARG;
|
return ARG_ERR_BAD_ARG;
|
||||||
*(int*)args[k].value = tmp;
|
*(int*)args[k].value = tmp;
|
||||||
return 0;
|
return 0;
|
||||||
} else if(args[k].type == arg_string) {
|
} else if(args[k].type == arg_string) {
|
||||||
*(char**)args[k].value = optarg;
|
*(char**)args[k].value = goptarg;
|
||||||
return 0;
|
return 0;
|
||||||
} else if(args[k].type == arg_strings) {
|
} else if(args[k].type == arg_strings) {
|
||||||
add_string((getarg_strings*)args[k].value, optarg);
|
add_string((getarg_strings*)args[k].value, goptarg);
|
||||||
return 0;
|
return 0;
|
||||||
} else if(args[k].type == arg_double) {
|
} else if(args[k].type == arg_double) {
|
||||||
double tmp;
|
double tmp;
|
||||||
if(sscanf(optarg, "%lf", &tmp) != 1)
|
if(sscanf(goptarg, "%lf", &tmp) != 1)
|
||||||
return ARG_ERR_BAD_ARG;
|
return ARG_ERR_BAD_ARG;
|
||||||
*(double*)args[k].value = tmp;
|
*(double*)args[k].value = tmp;
|
||||||
return 0;
|
return 0;
|
||||||
@@ -516,7 +517,7 @@ arg_match_short (struct getargs *args, size_t num_args,
|
|||||||
|
|
||||||
int
|
int
|
||||||
getarg(struct getargs *args, size_t num_args,
|
getarg(struct getargs *args, size_t num_args,
|
||||||
int argc, char **argv, int *optind)
|
int argc, char **argv, int *goptind)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@@ -528,8 +529,8 @@ getarg(struct getargs *args, size_t num_args,
|
|||||||
#else
|
#else
|
||||||
srand (time(NULL));
|
srand (time(NULL));
|
||||||
#endif
|
#endif
|
||||||
(*optind)++;
|
(*goptind)++;
|
||||||
for(i = *optind; i < argc; i++) {
|
for(i = *goptind; i < argc; i++) {
|
||||||
if(argv[i][0] != '-')
|
if(argv[i][0] != '-')
|
||||||
break;
|
break;
|
||||||
if(argv[i][1] == '-'){
|
if(argv[i][1] == '-'){
|
||||||
@@ -546,7 +547,7 @@ getarg(struct getargs *args, size_t num_args,
|
|||||||
if(ret)
|
if(ret)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*optind = i;
|
*goptind = i;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -573,9 +574,9 @@ struct getargs args[] = {
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int optind = 0;
|
int goptind = 0;
|
||||||
while(getarg(args, 5, argc, argv, &optind))
|
while(getarg(args, 5, argc, argv, &goptind))
|
||||||
printf("Bad arg: %s\n", argv[optind]);
|
printf("Bad arg: %s\n", argv[goptind]);
|
||||||
printf("flag1 = %d\n", flag1);
|
printf("flag1 = %d\n", flag1);
|
||||||
printf("flag2 = %d\n", flag2);
|
printf("flag2 = %d\n", flag2);
|
||||||
printf("foo_flag = %d\n", foo_flag);
|
printf("foo_flag = %d\n", foo_flag);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2002 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -69,8 +69,8 @@ typedef struct getarg_strings {
|
|||||||
typedef int (*getarg_collect_func)(int short_opt,
|
typedef int (*getarg_collect_func)(int short_opt,
|
||||||
int argc,
|
int argc,
|
||||||
char **argv,
|
char **argv,
|
||||||
int *optind,
|
int *goptind,
|
||||||
int *optarg,
|
int *goptarg,
|
||||||
void *data);
|
void *data);
|
||||||
|
|
||||||
typedef struct getarg_collect_info {
|
typedef struct getarg_collect_info {
|
||||||
@@ -79,7 +79,7 @@ typedef struct getarg_collect_info {
|
|||||||
} getarg_collect_info;
|
} getarg_collect_info;
|
||||||
|
|
||||||
int getarg(struct getargs *args, size_t num_args,
|
int getarg(struct getargs *args, size_t num_args,
|
||||||
int argc, char **argv, int *optind);
|
int argc, char **argv, int *goptind);
|
||||||
|
|
||||||
void arg_printusage (struct getargs *args,
|
void arg_printusage (struct getargs *args,
|
||||||
size_t num_args,
|
size_t num_args,
|
||||||
|
Reference in New Issue
Block a user