Changeset 626


Ignore:
Timestamp:
Apr 24, 2008, 1:05:09 AM (13 years ago)
Author:
Peter Johansson
Message:

fixed #266

Location:
trunk/bin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/bin/Parameter.cc

    r625 r626  
    4747  {
    4848    for (int i=1; i<argc; ++i) {
    49       bool ok=false;
    5049      std::stringstream ss(argv[i]);
    5150      std::string myargv("");
     
    5756        if (value.size()) {
    5857          config_file_.value()= value;
    59           ok=true;
    6058        }
    6159        else if (++i<argc){
    6260          config_file_.value()= std::string(argv[i]);
    63           ok=true;
     61        }
     62        else {
     63          missing_argument(myargv);
    6464        }
    6565      }
    6666      else if (myargv=="--copyright"){
    6767          copyright_.value()=true;
    68           ok=true;
    6968      }
    7069      else if (myargv=="-f" || myargv=="--force"){
    7170          force_.value()=true;
    72           ok=true;
    7371      }
    7472      else if (myargv=="-g" || myargv=="--generate-config"){
    7573          generate_config_.value()=true;
    76           ok=true;
    7774      }
    7875      else if (myargv=="-h" || myargv=="--help"){
     
    8279      else if (myargv=="--ignore-cache"){
    8380          ignore_cache_.value()=true;
    84           ok=true;
    8581      }
    8682      else if (myargv=="-r" || myargv=="--root"){
    8783        if (value.size()) {
    8884          root_.value()= value;
    89           ok=true;
    9085        }
    9186        else if (++i<argc){
    9287          root_.value()= std::string(argv[i]);
    93           ok=true;
     88        }
     89        else {
     90          missing_argument(myargv);
    9491        }
    9592      }
    9693      else if (myargv=="--report") {
    9794          report_.value()=true;
    98           ok=true;
    9995      }
    10096      else if (myargv=="--no-report") {
    10197          report_.value()=false;
    102           ok=true;
    10398      }
    10499      else if (myargv=="--revisions") {
    105100          revisions_.value()=true;
    106           ok=true;
    107101      }
    108102      else if (myargv=="-t" || myargv=="--target"){
    109103        if (value.size()) {
    110104          targetdir_.value()= value;
    111           ok=true;
    112105        }
    113106        else if (++i<argc){
    114107          targetdir_.value()= std::string(argv[i]);
    115           ok=true;
     108        }
     109        else {
     110          missing_argument(myargv);
    116111        }
    117112      }
    118113      else if (myargv=="-v" || myargv=="--verbose"){
    119114          verbose_.value()=true;
    120           ok=true;
    121115      }
    122116      else if (myargv=="--version"){
     
    127121          verbose_.value()=true;
    128122          force_.value()=true;
    129           ok=true;
    130       }
    131 
    132       if (!ok)
     123      }
     124      else {
    133125        throw std::runtime_error("svndigest: invalid option: " + myargv +
    134126                                 "\nTry `svndigest --help' for usage.");
    135     }
     127      }
     128  }
    136129
    137130    analyse();
     
    241234
    242235
     236  void Parameter::missing_argument(std::string opt) const
     237  {
     238    if (opt.size()>0 && opt[0]=='-')
     239      opt = opt.substr(1);
     240    if (opt.size()>0 && opt[0]=='-')
     241      opt = opt.substr(1);
     242    std::stringstream ss;
     243    ss << "svndigest: option requires an argument -- " << opt << "\n"
     244       << "Try `svndigest --help' for usage.";
     245    throw std::runtime_error(ss.str());
     246  }
     247
    243248  void Parameter::version(bool verbose) const
    244249  {
  • trunk/bin/Parameter.h

    r625 r626  
    5656    void analyse(void);
    5757    void help(void) const;
     58    void missing_argument(std::string opt) const;
    5859    void version(bool=false) const;
    5960
Note: See TracChangeset for help on using the changeset viewer.