summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2016-12-27 22:00:32 +0000
committerMaxime Coste <mawww@kakoune.org>2016-12-27 22:00:32 +0000
commit84c2ca1cdce50e2be9c82e2e6ed339766a25f193 (patch)
tree672b5343ad15e6fe417c7cd8f1285fb044e23038 /src
parent923665fab4e2072cf54c79e6938441c4de6d42a0 (diff)
parentf79018cffd82e369a8e634be6d7140b8fdd50b9c (diff)
Merge remote-tracking branch 'leira/empty_param_crash'
Diffstat (limited to 'src')
-rw-r--r--src/command_manager.cc2
-rw-r--r--src/parameters_parser.cc4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc
index e8d1158a..8927c361 100644
--- a/src/command_manager.cc
+++ b/src/command_manager.cc
@@ -421,7 +421,7 @@ void CommandManager::execute_single_command(CommandParameters params,
if (params.empty())
return;
- ConstArrayView<String> param_view(params.begin()+1, params.end());
+ ParameterList param_view(params.begin()+1, params.end());
auto command_it = find_command(context, params[0]);
if (command_it == m_commands.end())
throw command_not_found(params[0]);
diff --git a/src/parameters_parser.cc b/src/parameters_parser.cc
index 1633aa6b..697f1407 100644
--- a/src/parameters_parser.cc
+++ b/src/parameters_parser.cc
@@ -23,7 +23,7 @@ ParametersParser::ParametersParser(ParameterList params,
{
if (not only_pos and params[i] == "--")
only_pos = true;
- else if (not only_pos and params[i][0_byte] == '-')
+ else if (not only_pos and params[i].length() > 0 and params[i][0_byte] == '-')
{
auto it = m_desc.switches.find(params[i].substr(1_byte));
if (it == m_desc.switches.end())
@@ -36,7 +36,7 @@ ParametersParser::ParametersParser(ParameterList params,
throw missing_option_value(it->key);
}
}
- else
+ else // positional
{
if (desc.flags & ParameterDesc::Flags::SwitchesOnlyAtStart)
only_pos = true;