X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=lib%2Fargs.h;h=551623ece799f6a88f6d431bd7b5fdac0d233342;hb=f9916185439191347c40f4fc41ace0a20ac70018;hp=cc9a58d3f300142bbb7f738126de510171f77b61;hpb=9d85e6224fa9ac5b4c54e7af8ea3b7c9271c2680;p=swftools.git diff --git a/lib/args.h b/lib/args.h index cc9a58d..551623e 100644 --- a/lib/args.h +++ b/lib/args.h @@ -15,8 +15,8 @@ extern int args_callback_longoption(char*,char*); extern int args_callback_command(char*,char*); extern void args_callback_usage(char*name); -int argn; -char**argv; +//int argn; +//char**argv; void processargs(int argn2,char**argv2) { @@ -50,7 +50,28 @@ void processargs(int argn2,char**argv2) args_callback_usage(argv2[0]); exit(1); } - t+=args_callback_option(&argv2[t][1],next); + 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 @@ -81,6 +102,9 @@ int args_long2shortoption(struct options_t*options, char*name, char*val) 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);