cam: options: Return whether addOption() succeeds or not
To later extend the options handling to cover subparsing of arguments it will be needed to know if the addition of the option itself was successful or not. The information is already present in addOption() this change just makes it available. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
committed by
Laurent Pinchart
parent
c6468e45d1
commit
69be770715
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user