From 04482fb10d496cde2249003ab1d4ba1b5cf13155 Mon Sep 17 00:00:00 2001 From: Riyyi Date: Sun, 5 Sep 2021 22:56:34 +0200 Subject: [PATCH] Util: Return the result of the option parsing --- src/util/argparser.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/util/argparser.cpp b/src/util/argparser.cpp index 283f2bf..f77adfe 100644 --- a/src/util/argparser.cpp +++ b/src/util/argparser.cpp @@ -202,6 +202,8 @@ bool ArgParser::parseLongOption(std::string_view option, std::string_view next) bool ArgParser::parse(int argc, const char* argv[]) { + bool result = true; + // Get program name m_name = argv[0] + std::string_view(argv[0]).find_last_of('/') + 1; @@ -223,12 +225,16 @@ bool ArgParser::parse(int argc, const char* argv[]) // Long Option if (argument[0] == '-' && argument[1] == '-') { argument = argument.substr(argument.find_first_not_of('-')); - parseLongOption(argument, next); + if (!parseLongOption(argument, next)) { + result = false; + } } // Short Option else if (argument[0] == '-') { argument = argument.substr(argument.find_first_not_of('-')); - parseShortOption(argument, next); + if (!parseShortOption(argument, next)) { + result = false; + } } // Argument else { @@ -236,7 +242,7 @@ bool ArgParser::parse(int argc, const char* argv[]) } } - return true; + return result; } void ArgParser::addOption(Option&& option)