diff --git a/src/drivers/common/configSys.cpp b/src/drivers/common/configSys.cpp index 1a1c6a3e..36abf7d1 100644 --- a/src/drivers/common/configSys.cpp +++ b/src/drivers/common/configSys.cpp @@ -578,13 +578,30 @@ char* Config::getConfigDirectory() int Config::_load() +{ + std::string configFile = _dir + "/" + cfgFile; + bool success = Config::_loadFile(configFile.c_str()); + + return success; +} + +int +Config::_loadFile(const char* fname) { signed int pos, eqPos; std::fstream config; std::map::iterator int_i; std::map::iterator dbl_i; std::map::iterator str_i; - std::string configFile = _dir + "/" + cfgFile; + std::string configFile; + // if no filename argument was passed, parse the default configuration file + if(fname == NULL) + { + configFile = _dir + "/" + cfgFile; + } else + { + configFile = fname; + } std::string line, name, value; char buf[1024]; diff --git a/src/drivers/common/configSys.h b/src/drivers/common/configSys.h index dc275b1d..56b792bf 100644 --- a/src/drivers/common/configSys.h +++ b/src/drivers/common/configSys.h @@ -20,6 +20,7 @@ private: int _addOption(char, const std::string &, const std::string &, int); int _addOption(const std::string &, const std::string &, int); int _load(void); + int _loadFile(const char* fname); int _parseArgs(int, char **); public: