pike.git / lib / modules / Arg.pmod

version» Context lines:

pike.git/lib/modules/Arg.pmod:176:       //! Parses an option without parameter, such as --help, -x or "x"    //! from -axb.    //!    //! @example    //! Opt verbose = NoOpt("-v")|NoOpt("--verbose");    class NoOpt    {    inherit Opt;    protected string opt; -  protected int double; +        protected void create(string _opt)    { -  if( sizeof(_opt)>2 && has_prefix(_opt, "--") ) -  double = 1; -  else if( sizeof(_opt)!=2 || _opt[0]!='-' || _opt=="--" ) +  switch (sizeof(_opt)) +  { +  default: +  if (has_prefix(_opt, "--")) +  break; +  case 2: +  if (_opt[0]=='-' && _opt[1]!='-') +  break; +  case 1: +  case 0:    error("%O not a valid option.\n", _opt); -  +  }    opt = _opt;    }       mixed get_value(array(string) argv, mapping(string:string) env,    mixed previous)    {    if( !sizeof(argv) ) return previous || ::get_value(argv, env, previous);    -  if( double ) -  { +     if( argv[0]==opt )    {    argv[0] = 0;    return (int)previous+1;    } -  return previous || ::get_value(argv, env, previous); -  } +     -  if( sizeof(argv[0])>1 && argv[0][0]=='-' && argv[0][1]!='-' ) +  if (sizeof(opt) == 2 && sizeof(argv[0])>2 +  && argv[0][0]=='-' && argv[0][1]!='-' +  && has_value(argv[0], opt[1..1]))    { -  array parts = argv[0]/"="; -  if( has_value(parts[0], opt[1..1]) ) -  { -  parts[0] -= opt[1..1]; -  argv[0] = parts*"="; -  if(argv[0]=="-") argv[0] = 0; +  argv[0] -= opt[1..1];    return (int)previous+1;    } -  } +        return previous || ::get_value(argv, env, previous);    }       array(string) get_opts()    {    return ({ opt }) + ::get_opts();    }       protected string __sprintf()
pike.git/lib/modules/Arg.pmod:298:    //! Opt debug = MaybeOpt("--debug");    class MaybeOpt    {    inherit NoOpt;       mixed get_value(array(string) argv, mapping(string:string) env,    mixed previous)    {    if( !sizeof(argv) ) return previous || ::get_value(argv, env, previous);    -  if( double ) +  if( sizeof(opt) > 2 )    {    // --foo    if( argv[0]==opt )    {    argv[0] = 0;    return (int)previous+1;    }       // --foo=bar    if( sscanf(argv[0], opt+"=%s", string ret)==1 )
pike.git/lib/modules/Arg.pmod:370:    //! Opt user = HasOpt("--user")|HasOpt("-u");    class HasOpt    {    inherit NoOpt;       mixed get_value(array(string) argv, mapping(string:string) env,    mixed previous)    {    if( !sizeof(argv) ) return previous || ::get_value(argv, env, previous);    -  if( double ) +  if( sizeof(opt) > 2 )    {    // --foo bar    if( argv[0]==opt )    {    if( sizeof(argv)>1 )    {    argv[0] = 0;    string ret = argv[1];    argv[1] = 0;    return ret;