pike.git / lib / modules / Getopt.pmod

version» Context lines:

pike.git/lib/modules/Getopt.pmod:5:   // "configurations",   // "configuration-directory" }),   // ({ "ROXEN_CONFIGDIR", "CONFIGURATIONS" }),   // "../configurations");         string|int find_option(array argv,    array|string shortform,    array|string|void longform,    array|string|void envvars, -  mixed|void def) +  mixed|void def, +  int|void throw_errors)   {    mixed value;    int i,hasarg;       hasarg=query_num_arg() > 4;    if(!arrayp(longform)) longform=({longform});    if(!arrayp(shortform)) shortform=({shortform});    if(!arrayp(envvars)) envvars=({envvars});       for(i=1; i<sizeof(argv); i++)
pike.git/lib/modules/Getopt.pmod:39:       if(search(longform, tmp[2..]) != -1)    {    argv[i]=0;    if(hasarg)    {    if(!value)    {    if(i == sizeof(argv)-1)    { +  if (throw_errors) { +  throw(({ "No argument to option "+tmp+".\n", +  backtrace() })); +  } else {    werror("No argument to option "+tmp+".\n");    exit(1);    } -  +  }    value=argv[i+1];    argv[i+1]=0;    }    return value;    } else {    return value || 1;    }    }    } else {    int j;
pike.git/lib/modules/Getopt.pmod:67:    {    string arg;    arg=argv[i][j+1..];       if(hasarg)    {    if(arg=="")    {    if(i == sizeof(argv)-1)    { +  if (throw_errors) { +  throw(({ "No argument to option -"+argv[i][j..j]+".\n", +  backtrace() })); +  } else {    werror("No argument to option -"+argv[i][j..j]+".\n");    exit(1);    } -  +  }       value=argv[i+1];    argv[i+1] = 0;    } else {    value=arg;    arg="";    }    } else {    value=1;    }
pike.git/lib/modules/Getopt.pmod:113:   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, void|int posix_me_harder) + mixed *find_all_options(string *argv, mixed *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:155:       string arg;    sscanf(opt,"%s=%s",opt, arg);    if(mixed *option=quick[opt])    {    argv[e]=0;    if(!arg && option[TYPE]==HAS_ARG)    {    if(e==sizeof(argv)-1)    { +  if (throw_errors) { +  throw(({ "No argument to option "+opt+".\n", +  backtrace() })); +  } else {    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]/"";    for(int j=1;j<strlen(foo);j++)    {    string opt="-"+foo[j];
pike.git/lib/modules/Getopt.pmod:180:    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)    { +  if (throw_errors) { +  throw(({ "No argument to option "+opt+".\n", +  backtrace() })); +  } else {    werror("No argument to option "+opt+".\n");    exit(1);    } -  +  }    arg=argv[e+1];    argv[e+1]=0;    }else{    foo=foo[..j];    }    }       ret+=({ ({ option[0], arg || 1 }) });    }    }
pike.git/lib/modules/Getopt.pmod:233:    {    ret+=({ ({name, option[3]}) });    done[name]=1;    }    }    }    return ret;   }       - string *get_args(string *argv, void|int posix_me_harder) + string *get_args(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]=="--")    {    argv[i]=0;    break;    }else{ -  +  if (throw_errors) { +  throw(({ "Unknown option "+argv[i]+".\n", +  backtrace() })); +  } else {    werror("Unknown option "+argv[i]+".\n");    exit(1);    } -  +  }    }else{ -  if(strlen(argv[i]) == 2) +  if(strlen(argv[i]) == 2) { +  if (throw_errors) { +  throw(({ "Unknown option "+argv[i]+".\n", +  backtrace() })); +  } else {    werror("Unknown option "+argv[i]+".\n"); -  else +  } +  } else { +  if (throw_errors) { +  throw(({ "Unknown options "+argv[i]+".\n", +  backtrace() })); +  } else {    werror("Unknown options "+argv[i]+".\n"); -  +  } +  }    exit(1);    }    }else{    if(posix_me_harder || getenv("POSIX_ME_HARDER"))    break;    }    }       argv-=({0,1});       return argv;   }