From 898704e4260e2d42c75e123938470dab581a8d80 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 24 Dec 2007 19:36:19 -0200 Subject: Refactor and add the ability to recurse into certain subdirs --- src/ruleparser.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/ruleparser.cpp') diff --git a/src/ruleparser.cpp b/src/ruleparser.cpp index e9a1192..b17bb96 100644 --- a/src/ruleparser.cpp +++ b/src/ruleparser.cpp @@ -51,6 +51,7 @@ void Rules::load() QRegExp repoBranchLine("branch\\s+(\\S+)", Qt::CaseInsensitive); QRegExp matchLine("match\\s+(.*)", Qt::CaseInsensitive); + QRegExp matchActionLine("action\\s+(\\w+)", Qt::CaseInsensitive); QRegExp matchRepoLine("repository\\s+(\\S+)", Qt::CaseInsensitive); QRegExp matchBranchLine("branch\\s+(\\S+)", Qt::CaseInsensitive); QRegExp matchRevLine("(min|max) revision (\\d+)", Qt::CaseInsensitive); @@ -97,7 +98,20 @@ void Rules::load() else // must be max match.maxRevision = matchRevLine.cap(2).toInt(); continue; + } else if (matchActionLine.exactMatch(line)) { + QString action = matchActionLine.cap(1); + if (action == "export") + match.action = Match::Export; + else if (action == "ignore") + match.action = Match::Ignore; + else if (action == "recurse") + match.action = Match::Recurse; + else + qFatal("Invalid action \"%s\" on line %d", qPrintable(action), lineNumber); + continue; } else if (line == "end match") { + if (!match.repository.isEmpty()) + match.action = Match::Export; m_matchRules += match; state = ReadingNone; continue; -- cgit v1.2.1