state = ReadingRepository;
repo = Repository(); // clear
repo.name = repoLine.cap(1);
+ repo.lineNumber = lineNumber;
} else if (isMatchRule) {
// match rule
state = ReadingMatch;
match = Match();
match.rx = QRegExp(matchLine.cap(1), Qt::CaseSensitive, QRegExp::RegExp2);
+ match.lineNumber = lineNumber;
} else {
qFatal("Malformed line in rules file: line %d: %s",
lineNumber, qPrintable(origLine));
QString name;
QList<Branch> branches;
+ int lineNumber;
+
+ Repository() : lineNumber(0) { }
};
struct Match
QString path;
int minRevision;
int maxRevision;
+ int lineNumber;
- Match() : minRevision(-1), maxRevision(-1) { }
+ Match() : minRevision(-1), maxRevision(-1), lineNumber(0) { }
};
Rules(const QString &filename);
if (!txn) {
Repository *repo = repositories.value(repository, 0);
if (!repo) {
- qCritical() << "Rule" << rule.rx.pattern()
+ qCritical() << "Rule" << rule.rx.pattern() << "line" << rule.lineNumber
<< "references unknown repository" << repository;
return EXIT_FAILURE;
}