Ignore:
Timestamp:
Apr 18, 2010, 4:39:57 AM (13 years ago)
Author:
Peter Johansson
Message:

refs #450. using fnmatch in codon fil name pattern match.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Configuration.cc

    r1038 r1052  
    8383  Configuration::codon(std::string file_name) const
    8484  {
     85    std::cout << "file_name: " << file_name << std::endl;
    8586    if (const std::pair<std::string,std::string>* dict=dictionary(file_name))
    8687      file_name = translate(file_name, *dict);
    8788    for (String2Codons::const_iterator i(string2codons_.begin());
    8889         i!=string2codons_.end(); ++i) {
    89       if (svndigest::equal(file_name.begin(), file_name.end(),
    90                            i->first.begin(), i->first.end()) ) {
     90      if (fnmatch(i->first.c_str(), file_name.c_str()))
    9191        return &i->second;
    92       }
    9392    }
    9493    return NULL;
     
    106105  {
    107106    for (size_t i=0; i<dictionary_.size(); ++i)
    108       if (svndigest::equal(lhs.begin(), lhs.end(),
    109                            dictionary_[i].first.begin(),
    110                            dictionary_[i].first.end()))
     107      if (fnmatch(lhs.c_str(), dictionary_[i].first.c_str()))
    111108        return &dictionary_[i];
    112109    return NULL;
     
    230227          for (String2Codons::const_iterator i(string2codons_.begin());
    231228               i!=string2codons_.end(); ++i) {
    232             if (svndigest::equal(lhs.begin(), lhs.end(),
    233                                  i->first.begin(), i->first.end()) ) {
     229            if (fnmatch(lhs.c_str(), i->first.c_str())) {
    234230              mess << "`" << i->first << "'";
    235231              break;
     
    370366                           const std::pair<std::string, std::string>& dic) const
    371367  {
    372     assert(svndigest::equal(str.begin(), str.end(),
    373                             dic.first.begin(), dic.first.end()));
    374368    std::string res;
    375369    std::vector<std::string> vec;
    376     regexp(str.begin(), str.end(), dic.first.begin(), dic.first.end(), vec);
     370    if (!regexp(str.begin(), str.end(), dic.first.begin(),dic.first.end(),vec)){
     371      std::stringstream mess;
     372      mess << "svndigest: invalid config file: "
     373           << "expression " << dic.first << " is invalid";
     374      throw std::runtime_error(mess.str());       
     375    }
    377376    for (std::string::const_iterator i(dic.second.begin());
    378377         i!=dic.second.end(); ++i) {
     
    387386          if (n)
    388387            mess << "because " << n << " is a too large.";
    389           throw std::runtime_error("");       
     388          throw std::runtime_error(mess.str());       
    390389        }
    391390        res += vec[n-1];
Note: See TracChangeset for help on using the changeset viewer.