summaryrefslogtreecommitdiff
path: root/src/lintmanager.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-06-02 12:11:13 +0300
committerAndrei Karas <akaras@inbox.ru>2014-06-02 12:11:13 +0300
commita942b438a5742d87f84f5f09711abde3daebea1e (patch)
tree9a592d10db61f5a8686b1cda134990072fd62868 /src/lintmanager.cpp
parent70d884a705e5f116e9f3f04315cebebfefc96957 (diff)
downloadmplint-a942b438a5742d87f84f5f09711abde3daebea1e.tar.gz
mplint-a942b438a5742d87f84f5f09711abde3daebea1e.tar.bz2
mplint-a942b438a5742d87f84f5f09711abde3daebea1e.tar.xz
mplint-a942b438a5742d87f84f5f09711abde3daebea1e.zip
Add src dir detection.
Diffstat (limited to 'src/lintmanager.cpp')
-rw-r--r--src/lintmanager.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/lintmanager.cpp b/src/lintmanager.cpp
index bba2926..f595a38 100644
--- a/src/lintmanager.cpp
+++ b/src/lintmanager.cpp
@@ -21,6 +21,7 @@
#include "lintmanager.h"
#include "rulebase.h"
+#include "stringutils.h"
#include <dirent.h>
#include <fstream>
@@ -32,15 +33,31 @@
LintManager lint;
-LintManager::LintManager()
+LintManager::LintManager() :
+ mFileName(),
+ mRootPath()
{
}
void LintManager::run(std::string path)
{
+ mRootPath = path;
+ size_t idx = path.rfind("src/");
+ if (idx != std::string::npos)
+ mRootPath = mRootPath.substr(0, idx);
+ if (!strEndWith(mRootPath, "/"))
+ mRootPath.append("/");
+
+ updateRules();
enumFiles(path);
}
+void LintManager::updateRules()
+{
+ FOR_EACH (std::vector<RuleBase*>::iterator, it, mRules)
+ (*it)->setRootDir(mRootPath);
+}
+
void LintManager::addRule(RuleBase *const rule)
{
mRules.push_back(rule);