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