summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cam/options.cpp11
-rw-r--r--src/cam/options.h2
2 files changed, 7 insertions, 6 deletions
diff --git a/src/cam/options.cpp b/src/cam/options.cpp
index f48bd1fc..c13022ce 100644
--- a/src/cam/options.cpp
+++ b/src/cam/options.cpp
@@ -38,7 +38,7 @@ void OptionsBase<T>::clear()
template class OptionsBase<int>;
-void OptionsParser::addOption(int opt, const char *help, const char *name,
+bool OptionsParser::addOption(int opt, const char *help, const char *name,
OptionArgument argument, const char *argumentName)
{
/*
@@ -46,18 +46,19 @@ void OptionsParser::addOption(int opt, const char *help, const char *name,
* If an argument is accepted, it must be described by argumentName.
*/
if (!isalnum(opt) && !name)
- return;
+ return false;
if (!help || help[0] == '\0')
- return;
+ return false;
if (argument != ArgumentNone && !argumentName)
- return;
+ return false;
/* Reject duplicate options. */
if (optionsMap_.find(opt) != optionsMap_.end())
- return;
+ return false;
options_.push_back(Option({ opt, name, argument, argumentName, help }));
optionsMap_[opt] = &options_.back();
+ return true;
}
OptionsParser::Options OptionsParser::parse(int argc, char **argv)
diff --git a/src/cam/options.h b/src/cam/options.h
index 2bf1f160..2272385a 100644
--- a/src/cam/options.h
+++ b/src/cam/options.h
@@ -49,7 +49,7 @@ public:
{
};
- void addOption(int opt, const char *help, const char *name = nullptr,
+ bool addOption(int opt, const char *help, const char *name = nullptr,
OptionArgument argument = ArgumentNone,
const char *argumentName = nullptr);