diff options
| author | Thiago Macieira <thiago@cassini.local.lan> | 2007-12-23 20:18:08 -0200 | 
|---|---|---|
| committer | Thiago Macieira <thiago@cassini.local.lan> | 2007-12-23 20:18:08 -0200 | 
| commit | c7d45e66be31b72663e3a5a13a60eef31d458e0a (patch) | |
| tree | db51b9435acf10adf8437eb474d48edba4e7aaea /src | |
| parent | add9aaf41b158d65dc7a5d51771392918eff5b87 (diff) | |
| download | svn2git-c7d45e66be31b72663e3a5a13a60eef31d458e0a.tar svn2git-c7d45e66be31b72663e3a5a13a60eef31d458e0a.tar.gz svn2git-c7d45e66be31b72663e3a5a13a60eef31d458e0a.tar.bz2 svn2git-c7d45e66be31b72663e3a5a13a60eef31d458e0a.tar.xz svn2git-c7d45e66be31b72663e3a5a13a60eef31d458e0a.zip | |
Fix rule parsing again: cap(0) is the entire match
Diffstat (limited to 'src')
| -rw-r--r-- | src/ruleparser.cpp | 36 | 
1 files changed, 18 insertions, 18 deletions
| diff --git a/src/ruleparser.cpp b/src/ruleparser.cpp index f116ce4..c214440 100644 --- a/src/ruleparser.cpp +++ b/src/ruleparser.cpp @@ -60,58 +60,58 @@ void Rules::load()      Match match;      while (!s.atEnd()) {          QString origLine = s.readLine(); -        QString line = origLine.trimmed(); +        QString line = origLine;          int hash = line.indexOf('#'); -        if (hash != -1) { +        if (hash != -1)              line.truncate(hash); -            line = line.trimmed(); -        } +        line = line.trimmed();          if (line.isEmpty())              continue;          if (state == ReadingRepository) {              if (repoBranchLine.exactMatch(line)) {                  Repository::Branch branch; -                branch.name = repoBranchLine.cap(0); -                branch.branchFrom = repoBranchLine.cap(1); +                branch.name = repoBranchLine.cap(1); +                branch.branchFrom = repoBranchLine.cap(2);                  repo.branches += branch;                  continue; +            } else if (line == "end repository") { +                m_repositories += repo; +                state = ReadingNone; +                continue;              }          } else if (state == ReadingMatch) {              if (matchRepoLine.exactMatch(line)) { -                match.repository = matchRepoLine.cap(0); +                match.repository = matchRepoLine.cap(1);                  continue;              } else if (matchBranchLine.exactMatch(line)) { -                match.branch = matchBranchLine.cap(0); +                match.branch = matchBranchLine.cap(1);                  continue;              } else if (matchPathLine.exactMatch(line)) { -                match.path = matchPathLine.cap(0); +                match.path = matchPathLine.cap(1); +                continue; +            } else if (line == "end match") { +                m_matchRules += match; +                state = ReadingNone;                  continue;              }          }          bool isRepositoryRule = repoLine.exactMatch(line);          bool isMatchRule = matchLine.exactMatch(line); -        if (isRepositoryRule || isMatchRule) { -            // save the current rule -            if (state == ReadingRepository) -                m_repositories += repo; -            else if (state == ReadingMatch) -                m_matchRules += match; -        }          if (isRepositoryRule) {              // repository rule              state = ReadingRepository;              repo = Repository(); // clear -            repo.name = repoLine.cap(0); +            repo.name = repoLine.cap(1);          } else if (isMatchRule) {              // match rule              state = ReadingMatch;              match = Match(); -            match.rx = QRegExp(matchLine.cap(0), Qt::CaseSensitive, QRegExp::RegExp2); +            match.rx = QRegExp(matchLine.cap(1), Qt::CaseSensitive, QRegExp::RegExp2);          } else {              qWarning() << "Malformed line in configure file:" << origLine;              state = ReadingNone; | 
