diff --git a/Userland/Libraries/LibCore/ArgsParser.cpp b/Userland/Libraries/LibCore/ArgsParser.cpp index 6a450b4161..a1b4c1704e 100644 --- a/Userland/Libraries/LibCore/ArgsParser.cpp +++ b/Userland/Libraries/LibCore/ArgsParser.cpp @@ -569,6 +569,25 @@ void ArgsParser::add_option(Vector& values, char const* help_string, cha add_option(move(option)); } +void ArgsParser::add_option(Vector& values, char const* help_string, char const* long_name, char short_name, char const* value_name, OptionHideMode hide_mode) +{ + Option option { + OptionArgumentMode::Optional, + help_string, + long_name, + short_name, + value_name, + [&values](char const* s) { + String value = s; + values.append(value); + return true; + }, + hide_mode + }; + + add_option(move(option)); +} + void ArgsParser::add_positional_argument(Arg&& arg) { m_positional_args.append(move(arg)); diff --git a/Userland/Libraries/LibCore/ArgsParser.h b/Userland/Libraries/LibCore/ArgsParser.h index 7ad4ce053a..c3764f5d16 100644 --- a/Userland/Libraries/LibCore/ArgsParser.h +++ b/Userland/Libraries/LibCore/ArgsParser.h @@ -95,6 +95,9 @@ public: void add_option(Optional& value, char const* help_string, char const* long_name, char short_name, char const* value_name, OptionHideMode hide_mode = OptionHideMode::None); void add_option(Optional& value, char const* help_string, char const* long_name, char short_name, char const* value_name, OptionHideMode hide_mode = OptionHideMode::None); void add_option(Vector& values, char const* help_string, char const* long_name, char short_name, char const* value_name, char separator = ',', OptionHideMode hide_mode = OptionHideMode::None); + // Note: This option is being used when we expect the user to use the same option + // multiple times (e.g. "program --option=example --option=anotherexample ..."). + void add_option(Vector& values, char const* help_string, char const* long_name, char short_name, char const* value_name, OptionHideMode hide_mode = OptionHideMode::None); void add_positional_argument(Arg&&); void add_positional_argument(char const*& value, char const* help_string, char const* name, Required required = Required::Yes);