summaryrefslogtreecommitdiff
path: root/src/cam/options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cam/options.cpp')
-rw-r--r--src/cam/options.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/cam/options.cpp b/src/cam/options.cpp
index 77b3cc1f..417c3ab4 100644
--- a/src/cam/options.cpp
+++ b/src/cam/options.cpp
@@ -61,7 +61,12 @@ bool OptionsBase<T>::isSet(const T &opt) const
template<typename T>
const OptionValue &OptionsBase<T>::operator[](const T &opt) const
{
- return values_.find(opt)->second;
+ static const OptionValue empty;
+
+ auto it = values_.find(opt);
+ if (it != values_.end())
+ return it->second;
+ return empty;
}
template<typename T>
@@ -72,7 +77,7 @@ void OptionsBase<T>::invalidate()
template<typename T>
bool OptionsBase<T>::parseValue(const T &opt, const Option &option,
- const char *optarg)
+ const char *arg)
{
OptionValue value;
@@ -83,9 +88,9 @@ bool OptionsBase<T>::parseValue(const T &opt, const Option &option,
case OptionInteger:
unsigned int integer;
- if (optarg) {
+ if (arg) {
char *endptr;
- integer = strtoul(optarg, &endptr, 0);
+ integer = strtoul(arg, &endptr, 0);
if (*endptr != '\0')
return false;
} else {
@@ -96,12 +101,12 @@ bool OptionsBase<T>::parseValue(const T &opt, const Option &option,
break;
case OptionString:
- value = OptionValue(optarg ? optarg : "");
+ value = OptionValue(arg ? arg : "");
break;
case OptionKeyValue:
KeyValueParser *kvParser = option.keyValueParser;
- KeyValueParser::Options keyValues = kvParser->parse(optarg);
+ KeyValueParser::Options keyValues = kvParser->parse(arg);
if (!keyValues.valid())
return false;