diff --git a/Userland/Libraries/LibCore/ArgsParser.cpp b/Userland/Libraries/LibCore/ArgsParser.cpp index d3f13432f5..ec94fd0f36 100644 --- a/Userland/Libraries/LibCore/ArgsParser.cpp +++ b/Userland/Libraries/LibCore/ArgsParser.cpp @@ -743,6 +743,21 @@ void ArgsParser::add_positional_argument(Vector& values, char const* add_positional_argument(move(arg)); } +void ArgsParser::add_positional_argument(Vector& values, char const* help_string, char const* name, Required required) +{ + Arg arg { + help_string, + name, + required == Required::Yes ? 1 : 0, + INT_MAX, + [&values](StringView s) -> ErrorOr { + TRY_OR_ERROR_IF_NOT_OOM(values.try_append(TRY(String::from_utf8(s))), s); + return true; + } + }; + add_positional_argument(move(arg)); +} + void ArgsParser::autocomplete(FILE* file, StringView program_name, ReadonlySpan remaining_arguments) { // We expect the full invocation of the program to be available as positional args, diff --git a/Userland/Libraries/LibCore/ArgsParser.h b/Userland/Libraries/LibCore/ArgsParser.h index af3e17971f..9b42e94375 100644 --- a/Userland/Libraries/LibCore/ArgsParser.h +++ b/Userland/Libraries/LibCore/ArgsParser.h @@ -123,6 +123,7 @@ public: void add_positional_argument(double& value, char const* help_string, char const* name, Required required = Required::Yes); void add_positional_argument(Vector& value, char const* help_string, char const* name, Required required = Required::Yes); void add_positional_argument(Vector& value, char const* help_string, char const* name, Required required = Required::Yes); + void add_positional_argument(Vector& value, char const* help_string, char const* name, Required required = Required::Yes); private: void autocomplete(FILE*, StringView program_name, ReadonlySpan remaining_arguments);