summaryrefslogtreecommitdiff
path: root/src/parameters_parser.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-03-27 14:27:12 +0100
committerMaxime Coste <frrrwww@gmail.com>2013-03-27 14:27:12 +0100
commit29f79346c3297dc64045458ca2294cf68ad687da (patch)
tree0b22ffe692d0d288f4a944491b64e4af6da67d9c /src/parameters_parser.cc
parent3b059bafe523c7d777eb5f11d508d9fa30472fb3 (diff)
Move parameter count validation to the ParameterParser
Diffstat (limited to 'src/parameters_parser.cc')
-rw-r--r--src/parameters_parser.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/parameters_parser.cc b/src/parameters_parser.cc
index 233f6a3f..162ba0ad 100644
--- a/src/parameters_parser.cc
+++ b/src/parameters_parser.cc
@@ -4,7 +4,9 @@ namespace Kakoune
{
ParametersParser::ParametersParser(const ParameterList& params,
- std::unordered_map<String, bool> options)
+ std::unordered_map<String, bool> options,
+ size_t min_positionals,
+ size_t max_positionals)
: m_params(params),
m_options(std::move(options))
{
@@ -29,6 +31,9 @@ ParametersParser::ParametersParser(const ParameterList& params,
else
m_positional_indices.push_back(i);
}
+ size_t count = m_positional_indices.size();
+ if (count > max_positionals or count < min_positionals)
+ throw wrong_argument_count();
}
bool ParametersParser::has_option(const String& name) const