Branch: Tag:

2008-05-03

2008-05-03 17:14:50 by Martin Nilsson <mani@lysator.liu.se>

Casting the option parser to array gives the non-options of the arguments. Some fixes for the help system.

Rev: lib/modules/Arg.pmod:1.5

1:   //   // Argument parser   // By Martin Nilsson - // $Id: Arg.pmod,v 1.4 2008/05/03 14:18:53 nilsson Exp $ + // $Id: Arg.pmod,v 1.5 2008/05/03 17:14:50 nilsson Exp $   //      #pike __REAL_VERSION__
32:    //! ::get_opts()@}.    array(string) get_opts()    { +  if(!next) return ({});    return next->get_opts();    }   
353:    static mapping(string:Opt) opts = ([]);    static mapping(string:int(1..1)|string) values = ([]);    static array(string) argv; +  static string application;       static void create(array(string) _argv, void|mapping(string:string) env)    {
366:    if(objectp(val) && val->is_opt) opts[index]=val;    }    +  application = _argv[0];    argv = _argv[1..];    mapping(string:Opt) unset = opts+([]);   
419:       static mixed cast(string to)    { -  if( to=="mapping" ) +  switch( to )    { -  +  case "mapping":    return values + ([ REST : argv ]); -  +  case "array": +  return argv;    }    return UNDEFINED;    }
453:       foreach(opts; string i; Opt opt)    { -  // FIXME: Make a list of the attibutes parsed by arg. -  +  write( opt->get_opts()*", " + "\n");    s = index(i+"_help");    if( s )    write( s ); // FIXME: Format