Ignore:
Timestamp:
Dec 9, 2007, 12:12:43 AM (14 years ago)
Author:
Peter Johansson
Message:

adding reading of codons from config file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Configuration.cc

    r509 r510  
    6262
    6363
     64  const std::vector<std::pair<std::string, std::string> >*
     65  Configuration::codon(std::string file_name) const
     66  {
     67    for (String2Codons::const_iterator i(string2codons_.begin());
     68         i!=string2codons_.end(); ++i) {
     69      if (svndigest::equal(file_name.begin(), file_name.end(),
     70                           i->first.begin(), i->first.end()) ) {
     71        return &i->second;
     72      }
     73    }
     74    return NULL;
     75  }
     76
     77
    6478  const std::map<std::string,Alias>& Configuration::copyright_alias(void) const
    6579  {
     
    93107    set_default();
    94108
    95     //bool parsing_found=false;
     109    bool parsing_found=false;
    96110    std::string line;
    97111    std::string section;
     
    140154        }
    141155      }
    142       else if (section == "copyright")
     156      else if (section == "copyright") {
    143157        if (lhs=="missing-copyright-warning")
    144158          if (equal_false(rhs))
     
    152166            throw std::runtime_error(mess.str());
    153167          }
     168      }
     169      else if (section == "parsing-codons") {
     170        if (!parsing_found) {
     171          parsing_found=true;
     172          string2codons_.clear();
     173          std::cout << "clear" << std::endl;
     174        }
     175       
     176        if (codon(lhs)) {
     177          std::stringstream mess;
     178          mess << "svndigest: invalid config file\n"
     179               << "line: `" << line << "' is invalid.\n"
     180               << "clashes with previous given file-name-pattern: ";
     181          // find previous file-name-pattern
     182          for (String2Codons::const_iterator i(string2codons_.begin());
     183               i!=string2codons_.end(); ++i) {
     184            if (svndigest::equal(lhs.begin(), lhs.end(),
     185                                 i->first.begin(), i->first.end()) ) {
     186              mess << "`" << i->first << "'";
     187              break;
     188            }
     189          }
     190          throw std::runtime_error(mess.str());
     191        }
     192        std::cout << "lhs:" << lhs << "   " << "rhs:" << rhs << std::endl;
     193        std::stringstream ss(rhs);
     194        std::string start;
     195        while (getline(ss, start, ':')) {
     196          trim(start);
     197          std::string end;
     198          getline(ss, end, ';');
     199          trim(end);
     200          if (!start.empty() && !end.empty())
     201            add_codon(lhs, start, end);
     202          else if (!start.empty() || !end.empty()) {
     203            std::stringstream mess;
     204            mess << "svndigest: invalid config file\n"
     205                 << "line: `" << line << "' is invalid.\n";
     206            throw std::runtime_error(mess.str());
     207          }
     208        }
     209      }
    154210    }
    155211  }
     
    167223  {
    168224    return missing_copyright_warning_;
    169   }
    170 
    171 
    172   const std::vector<std::pair<std::string, std::string> >*
    173   Configuration::parse_codon(std::string file_name) const
    174   {
    175     for (String2Codons::const_iterator i(string2codons_.begin());
    176          i!=string2codons_.end(); ++i) {
    177       if (svndigest::equal(file_name.begin(), file_name.end(),
    178                            i->first.begin(), i->first.end()) ) {
    179         return &i->second;
    180       }
    181     }
    182     return NULL;
    183225  }
    184226
Note: See TracChangeset for help on using the changeset viewer.