Fix broken implicit_value when given empty
Fixes #46. When an option had an implicit value, and an empty string was passed on the command line, the implicit value would be used instead.
This commit is contained in:
parent
cca5472def
commit
9db62cb338
@ -482,14 +482,7 @@ namespace cxxopts
|
|||||||
void
|
void
|
||||||
parse(const std::string& text) const
|
parse(const std::string& text) const
|
||||||
{
|
{
|
||||||
if (m_implicit && text.empty())
|
parse_value(text, *m_store);
|
||||||
{
|
|
||||||
parse_value(m_implicit_value, *m_store);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
parse_value(text, *m_store);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -1028,7 +1021,7 @@ Options::checked_parse_arg
|
|||||||
{
|
{
|
||||||
if (value->value().has_implicit())
|
if (value->value().has_implicit())
|
||||||
{
|
{
|
||||||
parse_option(value, name, "");
|
parse_option(value, name, value->value().get_implicit_value());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1039,7 +1032,7 @@ Options::checked_parse_arg
|
|||||||
{
|
{
|
||||||
if (argv[current + 1][0] == '-' && value->value().has_implicit())
|
if (argv[current + 1][0] == '-' && value->value().has_implicit())
|
||||||
{
|
{
|
||||||
parse_option(value, name, "");
|
parse_option(value, name, value->value().get_implicit_value());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1181,7 +1174,7 @@ Options::parse(int& argc, char**& argv)
|
|||||||
}
|
}
|
||||||
else if (value->value().has_implicit())
|
else if (value->value().has_implicit())
|
||||||
{
|
{
|
||||||
parse_option(value, name, "");
|
parse_option(value, name, value->value().get_implicit_value());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user