1
0
mirror of https://github.com/CLIUtils/CLI11.git synced 2025-05-05 22:53:52 +00:00

Adding check for -2 opts

This commit is contained in:
Henry Fredrick Schreiner 2017-11-26 14:20:48 -05:00 committed by Henry Schreiner
parent 1b3a4b63c8
commit 6638549adb
2 changed files with 4 additions and 5 deletions

View File

@ -1370,7 +1370,6 @@ class App {
int num = op->get_expected();
/// ONE ///////////////////////////////////////////////////////////////
if(!value.empty()) {
if(num != -1)
num--;
@ -1409,8 +1408,8 @@ class App {
args.pop_back();
collected++;
}
// if(collected < -num)
// throw ArgumentMismatch(op->single_name() + ": At least " + std::to_string(-num) + " required");
if(op->results_.size() < static_cast<size_t>(-num))
throw ArgumentMismatch(op->single_name() + ": At least " + std::to_string(-num) + " required");
} else {
while(num > 0 && !args.empty()) {

View File

@ -338,7 +338,7 @@ TEST_F(TApp, RequiredOptsUnlimited) {
app.add_option("--str", strs)->required();
args = {"--str"};
EXPECT_THROW(run(), CLI::RequiredError);
EXPECT_THROW(run(), CLI::ArgumentMismatch);
app.reset();
args = {"--str", "one", "--str", "two"};
@ -372,7 +372,7 @@ TEST_F(TApp, RequiredOptsUnlimitedShort) {
app.add_option("-s", strs)->required();
args = {"-s"};
EXPECT_THROW(run(), CLI::RequiredError);
EXPECT_THROW(run(), CLI::ArgumentMismatch);
app.reset();
args = {"-s", "one", "-s", "two"};