pike.git / lib / modules / Getopt.pmod

version» Context lines:

pike.git/lib/modules/Getopt.pmod:124:   constant HAS_ARG=1;   constant NO_ARG=2;   constant MAY_HAVE_ARG=3;      #define NAME 0   #define TYPE 1   #define ALIASES 2   #define ENV 3   #define DEF 4    - mixed *find_all_options(string *argv, mixed *options, + array find_all_options(array(string) argv, array options,    void|int posix_me_harder, void|int throw_errors)   {    mapping quick=([]);    foreach(options, mixed opt)    {    mixed aliases=opt[ALIASES];    if(!arrayp(aliases)) aliases=({aliases});    foreach(aliases, mixed optname)    {    if(optname[0..1]=="--")
pike.git/lib/modules/Getopt.pmod:146:    quick[optname]=opt;    }else{    foreach(optname[1..]/"",string optletter)    {    quick["-"+optletter]=opt;    }    }    }    }    -  mixed *ret=({}); +  array ret=({});    for(int e=1;e<sizeof(argv);e++)    {    if(!argv[e]) continue;       if(strlen(argv[e]) && argv[e][0]=='-')    {    if(strlen(argv[e])>1 && argv[e][1]=='-')    {    string opt=argv[e];    if(opt=="--") break;
pike.git/lib/modules/Getopt.pmod:181:    werror("No argument to option "+opt+".\n");    exit(1);    }    }    arg=argv[e+1];    argv[e+1]=0;    }    ret+=({ ({ option[0], arg || 1 }) });    }    }else{ -  string *foo=argv[e]/""; +  array(string) foo=argv[e]/"";    for(int j=1;j<strlen(foo);j++)    {    string opt="-"+foo[j]; -  if(mixed *option=quick[opt]) +  if(array option=quick[opt])    {    foo[j]=0;    string arg;    if(option[TYPE]!=NO_ARG)    {    arg=argv[e][j+1..];       if(option[TYPE]==HAS_ARG && arg=="")    {    if(e==sizeof(argv)-1)
pike.git/lib/modules/Getopt.pmod:225:    argv[e]=foo*"";    if(argv[e]=="-") argv[e]=0;    }    }else{    if(posix_me_harder || getenv("POSIX_ME_HARDER"))    break;    }    }       multiset done=mkmultiset(column(ret, 0)); -  foreach(options, string *option) +  foreach(options, array(string) option)    {    string name=option[NAME];    if(done[name]) continue;    if(sizeof(option) > ENV)    {    mixed foo=option[ENV];    if(!foo) continue;    if(stringp(foo)) foo=({foo});    foreach(foo, foo)    {
pike.git/lib/modules/Getopt.pmod:255:    {    ret+=({ ({name, option[3]}) });    done[name]=1;    }    }    }    return ret;   }       - string *get_args(string *argv, void|int posix_me_harder, void|int throw_errors) + array(string) get_args(array(string) argv, void|int posix_me_harder, +  void|int throw_errors)   {    int i;    for(i=1;i<sizeof(argv);i++)    {    if(argv[i] && strlen(argv[i])>1 && argv[i][0]=='-')    {    if(argv[i][1]=='-')    {    if(argv[i]=="--")    {