Commit 96cc6184 authored by Pavel Rojtberg's avatar Pavel Rojtberg

has() should only test for the presence of the argument

and not consider its value. treat arguments with a set default value as
present.
parent 08dd126f
...@@ -607,6 +607,10 @@ For example: ...@@ -607,6 +607,10 @@ For example:
} }
@endcode @endcode
Note that there are no default values for `help` and `timestamp` so we can check their presence using the `has()` method.
Arguments with default values are considered to be always present. Use the `get()` method in these cases to check their
actual value instead.
### Usage ### Usage
For the described keys: For the described keys:
......
...@@ -334,9 +334,9 @@ bool CommandLineParser::has(const String& name) const ...@@ -334,9 +334,9 @@ bool CommandLineParser::has(const String& name) const
{ {
for (size_t j = 0; j < impl->data[i].keys.size(); j++) for (size_t j = 0; j < impl->data[i].keys.size(); j++)
{ {
if (name.compare(impl->data[i].keys[j]) == 0 && String("true").compare(impl->data[i].def_value) == 0) if (name == impl->data[i].keys[j])
{ {
return true; return !impl->cat_string(impl->data[i].def_value).empty();
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment