Commit 6638549adbe908481d031479dde00eb99b4f5825

Authored by Henry Fredrick Schreiner
Committed by Henry Schreiner
1 parent 1b3a4b63

Adding check for -2 opts

include/CLI/App.hpp
@@ -1370,7 +1370,6 @@ class App { @@ -1370,7 +1370,6 @@ class App {
1370 1370
1371 int num = op->get_expected(); 1371 int num = op->get_expected();
1372 1372
1373 - /// ONE ///////////////////////////////////////////////////////////////  
1374 if(!value.empty()) { 1373 if(!value.empty()) {
1375 if(num != -1) 1374 if(num != -1)
1376 num--; 1375 num--;
@@ -1409,8 +1408,8 @@ class App { @@ -1409,8 +1408,8 @@ class App {
1409 args.pop_back(); 1408 args.pop_back();
1410 collected++; 1409 collected++;
1411 } 1410 }
1412 - // if(collected < -num)  
1413 - // throw ArgumentMismatch(op->single_name() + ": At least " + std::to_string(-num) + " required"); 1411 + if(op->results_.size() < static_cast<size_t>(-num))
  1412 + throw ArgumentMismatch(op->single_name() + ": At least " + std::to_string(-num) + " required");
1414 1413
1415 } else { 1414 } else {
1416 while(num > 0 && !args.empty()) { 1415 while(num > 0 && !args.empty()) {
tests/AppTest.cpp
@@ -338,7 +338,7 @@ TEST_F(TApp, RequiredOptsUnlimited) { @@ -338,7 +338,7 @@ TEST_F(TApp, RequiredOptsUnlimited) {
338 app.add_option("--str", strs)->required(); 338 app.add_option("--str", strs)->required();
339 339
340 args = {"--str"}; 340 args = {"--str"};
341 - EXPECT_THROW(run(), CLI::RequiredError); 341 + EXPECT_THROW(run(), CLI::ArgumentMismatch);
342 342
343 app.reset(); 343 app.reset();
344 args = {"--str", "one", "--str", "two"}; 344 args = {"--str", "one", "--str", "two"};
@@ -372,7 +372,7 @@ TEST_F(TApp, RequiredOptsUnlimitedShort) { @@ -372,7 +372,7 @@ TEST_F(TApp, RequiredOptsUnlimitedShort) {
372 app.add_option("-s", strs)->required(); 372 app.add_option("-s", strs)->required();
373 373
374 args = {"-s"}; 374 args = {"-s"};
375 - EXPECT_THROW(run(), CLI::RequiredError); 375 + EXPECT_THROW(run(), CLI::ArgumentMismatch);
376 376
377 app.reset(); 377 app.reset();
378 args = {"-s", "one", "-s", "two"}; 378 args = {"-s", "one", "-s", "two"};