Add user-specified directories to the beginning of the search path

This way, users are able to override the defaults.
This commit is contained in:
Ray Speth 2014-09-23 02:20:45 +00:00
parent 83ae446142
commit 8bb65e4cee

View file

@ -468,20 +468,20 @@ void Application::setDefaultDirectories()
void Application::addDataDirectory(const std::string& dir) void Application::addDataDirectory(const std::string& dir)
{ {
ScopedLock dirLock(dir_mutex); ScopedLock dirLock(dir_mutex);
if (inputDirs.size() == 0) { if (inputDirs.empty()) {
setDefaultDirectories(); setDefaultDirectories();
} }
string d = stripnonprint(dir); string d = stripnonprint(dir);
size_t m, n = inputDirs.size();
// don't add if already present // Remove any existing entry for this directory
for (m = 0; m < n; m++) { std::vector<string>::iterator iter = std::find(inputDirs.begin(),
if (d == inputDirs[m]) { inputDirs.end(), d);
return; if (iter != inputDirs.end()) {
} inputDirs.erase(iter);
} }
inputDirs.push_back(d); // Insert this directory at the beginning of the search path
inputDirs.insert(inputDirs.begin(), d);
} }
std::string Application::findInputFile(const std::string& name) std::string Application::findInputFile(const std::string& name)