diff --git a/Userland/Libraries/LibCore/ArgsParser.cpp b/Userland/Libraries/LibCore/ArgsParser.cpp index 4f1f6f4a0c..30eb89bccb 100644 --- a/Userland/Libraries/LibCore/ArgsParser.cpp +++ b/Userland/Libraries/LibCore/ArgsParser.cpp @@ -27,13 +27,20 @@ ArgsParser::ArgsParser() bool ArgsParser::parse(Span arguments, FailureBehavior failure_behavior) { - auto fail = [this, name = arguments[0], failure_behavior] { + auto fail_impl = [this, failure_behavior](StringView name) { if (failure_behavior == FailureBehavior::PrintUsage || failure_behavior == FailureBehavior::PrintUsageAndExit) print_usage(stderr, name); if (failure_behavior == FailureBehavior::Exit || failure_behavior == FailureBehavior::PrintUsageAndExit) exit(1); }; + if (arguments.is_empty()) { + fail_impl(""sv); + return false; + } + + auto fail = [name = arguments[0], &fail_impl] { fail_impl(name); }; + OptionParser parser; Vector long_options;