Changeset 1465


Ignore:
Timestamp:
Sep 2, 2008, 5:17:32 AM (13 years ago)
Author:
Peter
Message:

fixes #418

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEWS

    r1437 r1465  
    55Version 0.5 (released DATE)
    66
     7  - Option::parse and OptionArg::do_parse takes references (ticket:418)
    78  - yat now requires GSL 1.8 or later
    89  - yat now requires Boost 1.33 or later
  • trunk/test/commandline_test.cc

    r1437 r1465  
    155155  OptionArg<std::string> input(cmd, "i,input", "input file");
    156156  OptionArg<unsigned int> n(cmd, "n", "number of lines");
    157   OptionArg<double> x(cmd, "x", "a float number");
     157  OptionArg<double> x(cmd, "x,extra", "a float number");
    158158
    159159  suite.err() << "Testing OptionArg existence -i file...";
     
    264264  }
    265265  catch (std::runtime_error& e) {
     266    ok = false;
    266267    suite.err() << "failed\nexception thrown with what(): " << e.what() << "\n";
    267     suite.err() << "Error: this is an expected error; see ticket:418\n";
    268   }
    269 
     268  }
     269
     270  suite.err() << "Testing OptionArg double value --extra -6...";
     271  try {
     272    int ac = 3;
     273    char* av[] = { "test_prog", "--extra", "-6" };
     274    cmd.parse(ac,av);
     275    if (x.value()==-6)
     276      suite.err() << "ok\n";
     277    else {
     278      suite.err() << "failed\n";
     279      ok =false;
     280    }
     281  }
     282  catch (std::runtime_error& e) {
     283    ok=false;
     284    suite.err() << "failed\nexception thrown with what(): " << e.what() << "\n";
     285  }
    270286
    271287  return ok;
  • trunk/yat/utility/CommandLine.cc

    r1437 r1465  
    138138            iter->second->parse(arg, arguments.end());
    139139        }
    140        
    141         if (is_short_option(*arg)) {
    142           for (size_t i=1; i<arg->size(); ++i){
     140        else if (is_short_option(*arg)) {
     141          size_t size=arg->size();
     142          for (size_t i=1; i<size; ++i){
    143143            std::map<char, Option*>::const_iterator
    144144              iter(short_options_.find((*arg)[i]));
  • trunk/yat/utility/Option.cc

    r1437 r1465  
    8080
    8181
    82   void Option::parse(std::vector<std::string>::iterator first,
    83                      std::vector<std::string>::iterator last)
     82  void Option::parse(std::vector<std::string>::iterator& first,
     83                     const std::vector<std::string>::iterator& last)
    8484  {
    8585    present_=true;
  • trunk/yat/utility/Option.h

    r1437 r1465  
    6969       \brief parsing the commandline
    7070     */
    71     void parse(std::vector<std::string>::iterator,
    72                std::vector<std::string>::iterator);
     71    void parse(std::vector<std::string>::iterator&,
     72               const std::vector<std::string>::iterator&);
    7373
    7474    /**
     
    118118
    119119  private:
    120     virtual void do_parse(std::vector<std::string>::iterator,
    121                           std::vector<std::string>::iterator)=0;
     120    virtual void do_parse(std::vector<std::string>::iterator&,
     121                          const std::vector<std::string>::iterator&)=0;
    122122
    123123    /**
  • trunk/yat/utility/OptionArg.h

    r1437 r1465  
    8181    T value_;
    8282
    83     void do_parse(std::vector<std::string>::iterator first,
    84                   std::vector<std::string>::iterator last)
     83    void do_parse(std::vector<std::string>::iterator& first,
     84                  const std::vector<std::string>::iterator& last)
    8585    {
    8686      if ( first->size()>2 && (*first)[0]=='-' && (*first)[1]!='-'){
  • trunk/yat/utility/OptionSwitch.cc

    r1437 r1465  
    3939
    4040
    41   void OptionSwitch::do_parse(std::vector<std::string>::iterator first,
    42                               std::vector<std::string>::iterator last)
     41  void OptionSwitch::do_parse(std::vector<std::string>::iterator& first,
     42                              const std::vector<std::string>::iterator& last)
    4343  {   
    4444    if (long_name().size()>3 && long_name().substr(0,3)=="no-")
  • trunk/yat/utility/OptionSwitch.h

    r1437 r1465  
    6161    /**
    6262     */
    63     void do_parse(std::vector<std::string>::iterator,
    64                   std::vector<std::string>::iterator);
     63    void do_parse(std::vector<std::string>::iterator&,
     64                  const std::vector<std::string>::iterator&);
    6565
    6666    /**
Note: See TracChangeset for help on using the changeset viewer.