aboutsummaryrefslogtreecommitdiffstats
path: root/src/ruleparser.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago@cassini.local.lan>2007-12-23 20:18:08 -0200
committerThiago Macieira <thiago@cassini.local.lan>2007-12-23 20:18:08 -0200
commitc7d45e66be31b72663e3a5a13a60eef31d458e0a (patch)
treedb51b9435acf10adf8437eb474d48edba4e7aaea /src/ruleparser.cpp
parentadd9aaf41b158d65dc7a5d51771392918eff5b87 (diff)
downloadsvn2git-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/ruleparser.cpp')
-rw-r--r--src/ruleparser.cpp36
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;