From 1c4f38749ee5608bca776ef3f1e7d5b65184049c Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Sat, 16 May 2020 01:50:46 +0430 Subject: [PATCH] LibCore: Allow ArgsParser::parse() to not exit on failure This allows its use in places where multiple calls to ArgsParser::parse() are needed, such as Shell builtins. --- Libraries/LibCore/ArgsParser.cpp | 22 +++++++++++++++++----- Libraries/LibCore/ArgsParser.h | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Libraries/LibCore/ArgsParser.cpp b/Libraries/LibCore/ArgsParser.cpp index 3ebd6c2e53..e4e2ee09b1 100644 --- a/Libraries/LibCore/ArgsParser.cpp +++ b/Libraries/LibCore/ArgsParser.cpp @@ -38,12 +38,14 @@ ArgsParser::ArgsParser() add_option(m_show_help, "Display this message", "help", 0); } -void ArgsParser::parse(int argc, char** argv) +bool ArgsParser::parse(int argc, char** argv, bool exit_on_failure) { - auto print_usage_and_exit = [this, argv] { + auto print_usage_and_exit = [this, argv, exit_on_failure] { print_usage(stderr, argv[0]); - exit(1); + if (exit_on_failure) + exit(1); }; + Vector