config: trim only surrounding whitespace
#include "config.h"
#include "overlay_params.h"
#include "file_utils.h"
+#include "string_utils.h"
std::unordered_map<std::string,std::string> options;
void parseConfigLine(std::string line) {
+ std::string param, value;
+
if (line.find("#") != std::string::npos)
- {
line = line.erase(line.find("#"), std::string::npos);
- }
- size_t space = line.find(" ");
- while(space!=std::string::npos)
- {
- line = line.erase(space,1);
- space = line.find(" ");
- }
- space = line.find("\t");
- while(space!=std::string::npos)
- {
- line = line.erase(space,1);
- space = line.find("\t");
- }
+
size_t equal = line.find("=");
if (equal == std::string::npos)
- {
- if (!line.empty())
- options[line] = "1";
- return;
- }
+ value = "1";
+ else
+ value = line.substr(equal+1);
- options[line.substr(0, equal)] = line.substr(equal+1);
+ param = line.substr(0, equal);
+ trim(param);
+ trim(value);
+ if (!param.empty())
+ options[param] = value;
}
void parseConfigFile() {
