Util: Fix parsing for exit on first error setting
This commit is contained in:
+2
-17
@@ -76,8 +76,7 @@ bool ArgParser::parseShortOption(std::string_view option, std::string_view next)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (foundOption->requiresArgument == Required::No) {
|
||||||
if (foundOption->requiresArgument == Required::No) {
|
|
||||||
// FIXME: Figure out why providing a nullptr breaks the lambda here.
|
// FIXME: Figure out why providing a nullptr breaks the lambda here.
|
||||||
result = foundOption->acceptValue("");
|
result = foundOption->acceptValue("");
|
||||||
}
|
}
|
||||||
@@ -144,24 +143,16 @@ bool ArgParser::parseLongOption(std::string_view option, std::string_view next)
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (foundOption == m_options.cend()) {
|
if (foundOption == m_options.cend()) {
|
||||||
foundOption->error = Error::UnrecognizedOption;
|
|
||||||
printOptionError(name.data(), Error::UnrecognizedOption);
|
printOptionError(name.data(), Error::UnrecognizedOption);
|
||||||
|
|
||||||
result = false;
|
result = false;
|
||||||
if (m_exitOnFirstError) {
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
}
|
else if (argumentProvided) {
|
||||||
|
|
||||||
if (argumentProvided) {
|
|
||||||
if (foundOption->requiresArgument == Required::No) {
|
if (foundOption->requiresArgument == Required::No) {
|
||||||
foundOption->error = Error::DoesntAllowArgument;
|
foundOption->error = Error::DoesntAllowArgument;
|
||||||
printOptionError(name.data(), Error::DoesntAllowArgument);
|
printOptionError(name.data(), Error::DoesntAllowArgument);
|
||||||
|
|
||||||
result = false;
|
result = false;
|
||||||
if (m_exitOnFirstError) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (foundOption->requiresArgument == Required::Yes) {
|
else if (foundOption->requiresArgument == Required::Yes) {
|
||||||
result = foundOption->acceptValue(value.data());
|
result = foundOption->acceptValue(value.data());
|
||||||
@@ -176,9 +167,6 @@ bool ArgParser::parseLongOption(std::string_view option, std::string_view next)
|
|||||||
printOptionError(name.data(), Error::RequiresArgument);
|
printOptionError(name.data(), Error::RequiresArgument);
|
||||||
|
|
||||||
result = false;
|
result = false;
|
||||||
if (m_exitOnFirstError) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result = foundOption->acceptValue(next.data());
|
result = foundOption->acceptValue(next.data());
|
||||||
@@ -190,9 +178,6 @@ bool ArgParser::parseLongOption(std::string_view option, std::string_view next)
|
|||||||
printOptionError(name.data(), Error::RequiresArgument);
|
printOptionError(name.data(), Error::RequiresArgument);
|
||||||
|
|
||||||
result = false;
|
result = false;
|
||||||
if (m_exitOnFirstError) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// FIXME: Figure out why providing a nullptr breaks the lambda here.
|
// FIXME: Figure out why providing a nullptr breaks the lambda here.
|
||||||
|
|||||||
Reference in New Issue
Block a user