int t;
if(argn2==1)
{
- args_callback_usage(argv2[0]);
- exit(1);
+ args_callback_usage(argv2[0]);
+ exit(1);
}
for(t=1;t<argn2;t++)
{
- char*next;
- if(t<argn2-1) next=argv2[t+1];
- else next=0;
+ char*next;
+ if(t<argn2-1) next=argv2[t+1];
+ else next=0;
- if(argv2[t][0]=='-')
- {
- if(argv2[t][1]=='-')
- {
- if(!strcmp(&argv2[t][2],"help"))
- {
- args_callback_usage(argv2[0]);
- exit(1);
- }
- t+=args_callback_longoption(&argv2[t][2],next);
- }
- else
- {
- if(strchr("?h",argv2[t][1]))
- {
- args_callback_usage(argv2[0]);
- exit(1);
- }
- if(argv2[t][1]) // this might be something like e.g. -xvf
- {
- char buf[2];
- buf[1]=0;
- int s=1;
- int ret;
- do{
- if(argv2[t][s+1]) {
- buf[0] = argv2[t][s];
- ret = args_callback_option(buf,&argv2[t][s+1]);
- }
- else {
- t+= args_callback_option(&argv2[t][s], next);
- break;
- }
- s++;
- } while(!ret);
- }
- else // - usually means "read stdout"
- {
- t+=args_callback_option(&argv2[t][1],next);
- }
- }
- }
- else
- {
- t+=args_callback_command(argv2[t],next);
- }
+ if(argv2[t][0]=='-')
+ {
+ if(argv2[t][1]=='-')
+ {
+ if(!strcmp(&argv2[t][2],"help"))
+ {
+ args_callback_usage(argv2[0]);
+ exit(1);
+ }
+ t+=args_callback_longoption(&argv2[t][2],next);
+ }
+ else
+ {
+ if(strchr("?h",argv2[t][1]))
+ {
+ args_callback_usage(argv2[0]);
+ exit(1);
+ }
+ if(argv2[t][1]) // this might be something like e.g. -xvf
+ {
+ char buf[2];
+ int s=1;
+ int ret;
+ buf[1]=0;
+ do{
+ if(argv2[t][s+1]) {
+ buf[0] = argv2[t][s];
+ ret = args_callback_option(buf,&argv2[t][s+1]);
+ }
+ else {
+ t+= args_callback_option(&argv2[t][s], next);
+ break;
+ }
+ s++;
+ } while(!ret);
+ }
+ else // - usually means "read stdout"
+ {
+ t+=args_callback_option(&argv2[t][1],next);
+ }
+ }
+ }
+ else
+ {
+ t+=args_callback_command(argv2[t],next);
+ }
}
}
{
char*equal = strchr(name,'=');
if (equal) {
- *equal = 0;
- equal++;
+ *equal = 0;
+ equal++;
}
while(options->shortoption) {
if(!strcmp(options->longoption, name)) {
- char*tmp = (char*)malloc(strlen(options->shortoption)
- +(equal?strlen(equal)+2:2));
- strcpy(tmp, options->shortoption);
- if(equal) {
- //strcpy(&tmp[strlen(tmp)], equal);
- int ret = args_callback_option(tmp, equal);
- if(!ret) {
- fprintf(stderr, "Warning: Option --%s takes no parameter.\n", name);
- }
- return 0;
- }
- return args_callback_option(tmp,val);
- }
- options++;
+ char*tmp = (char*)malloc(strlen(options->shortoption)
+ +(equal?strlen(equal)+2:2));
+ strcpy(tmp, options->shortoption);
+ if(equal) {
+ //strcpy(&tmp[strlen(tmp)], equal);
+ int ret = args_callback_option(tmp, equal);
+ if(!ret) {
+ fprintf(stderr, "Warning: Option --%s takes no parameter.\n", name);
+ }
+ return 0;
+ }
+ return args_callback_option(tmp,val);
+ }
+ options++;
}
fprintf(stderr, "Unknown option: --%s\n", name);
exit(1);