diff options
Diffstat (limited to 'CAN-binder/libs/ini-config')
-rw-r--r-- | CAN-binder/libs/ini-config/ini-config.cpp | 11 | ||||
-rw-r--r-- | CAN-binder/libs/ini-config/ini-config.hpp | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/CAN-binder/libs/ini-config/ini-config.cpp b/CAN-binder/libs/ini-config/ini-config.cpp index 631a0201..ef3ab25c 100644 --- a/CAN-binder/libs/ini-config/ini-config.cpp +++ b/CAN-binder/libs/ini-config/ini-config.cpp @@ -58,9 +58,10 @@ void ini_config::read_file(const std::string& filename) } } -std::map<std::string, std::string> ini_config::get_keys(const std::string& section) +ini_config::map ini_config::get_keys(const std::string& section, bool wo_prefix) { - std::map<std::string, std::string> ret; + map ret; + std::string key; std::string prefix = section + '/'; for(auto i = config_.begin(); @@ -69,7 +70,11 @@ std::map<std::string, std::string> ini_config::get_keys(const std::string& secti { if (starts_with(i->first, prefix)) { - ret[i->first] = i->second; + if(wo_prefix) + key = i->first.substr(section.size()+1); + else + key = i->first; + ret[key] = i->second; } } return ret; diff --git a/CAN-binder/libs/ini-config/ini-config.hpp b/CAN-binder/libs/ini-config/ini-config.hpp index 3a154547..4c8cc118 100644 --- a/CAN-binder/libs/ini-config/ini-config.hpp +++ b/CAN-binder/libs/ini-config/ini-config.hpp @@ -32,7 +32,7 @@ public: void read_file(const std::string& filename); - map get_keys(const std::string& section); + map get_keys(const std::string& section, bool wo_prefix=true); std::string get_value(const std::string& section, const std::string& key); typename map::size_type size() const { return config_.size(); } |