Allow spaces in option specification. (#58)

Fixes #57.

Allows spaces after the comma between the short and long option
specification.
This commit is contained in:
Shivakar Vulli 2017-07-16 15:11:03 +10:00 committed by Jarryd Beck
parent 11faadeba7
commit f931fd4279
3 changed files with 8 additions and 3 deletions

View File

@ -884,7 +884,7 @@ namespace cxxopts
("--([[:alnum:]][-_[:alnum:]]+)(=(.*))?|-([[:alnum:]]+)");
std::basic_regex<char> option_specifier
("(([[:alnum:]]),)?([[:alnum:]][-_[:alnum:]]*)?");
("(([[:alnum:]]),)?[ ]*([[:alnum:]][-_[:alnum:]]*)?");
String
format_option

View File

@ -52,6 +52,7 @@ TEST_CASE("Basic options", "[options]")
("value", "an option with a value", cxxopts::value<std::string>())
("a,av", "a short option with a value", cxxopts::value<std::string>())
("6,six", "a short number option")
("p, space", "an option with space between short and long")
;
Argv argv({
@ -62,7 +63,9 @@ TEST_CASE("Basic options", "[options]")
"value",
"-a",
"b",
"-6"
"-6",
"-p",
"--space",
});
char** actual_argv = argv.argv();
@ -77,6 +80,8 @@ TEST_CASE("Basic options", "[options]")
CHECK(options["value"].as<std::string>() == "value");
CHECK(options["a"].as<std::string>() == "b");
CHECK(options.count("6") == 1);
CHECK(options.count("p") == 2);
CHECK(options.count("space") == 2);
}
TEST_CASE("Short options", "[options]")