summaryrefslogtreecommitdiff
path: root/src/OptionParser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/OptionParser.cc')
-rw-r--r--src/OptionParser.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/OptionParser.cc b/src/OptionParser.cc
index 8aed0259..efa01514 100644
--- a/src/OptionParser.cc
+++ b/src/OptionParser.cc
@@ -245,6 +245,21 @@ void OptionParser::parse(Option& option, std::istream& is) const
}
}
+void OptionParser::parse(Option& option, const KeyVals& options) const
+{
+ std::string line;
+ for(KeyVals::const_iterator i = options.begin(), eoi = options.end();
+ i != eoi; ++i) {
+ const Pref* pref = option::k2p((*i).first);
+ const OptionHandler* handler = find(pref);
+ if(handler) {
+ handler->parse(option, (*i).second);
+ } else {
+ A2_LOG_WARN(fmt("Unknown option: %s", line.c_str()));
+ }
+ }
+}
+
void OptionParser::setOptionHandlers
(const std::vector<OptionHandler*>& handlers)
{