aboutsummaryrefslogtreecommitdiffstats
path: root/CAN-binder/libs/ini-config
diff options
context:
space:
mode:
Diffstat (limited to 'CAN-binder/libs/ini-config')
-rw-r--r--CAN-binder/libs/ini-config/ini-config.cpp11
-rw-r--r--CAN-binder/libs/ini-config/ini-config.hpp2
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 631a020..ef3ab25 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 3a15454..4c8cc11 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(); }