From bbbb513990c070e13ceeb92fdfd9119d77be47c8 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 24 Jan 2017 19:18:29 +0000 Subject: Fix crash when clearing a regex prompt with multiple selections Fixes #1124 --- src/normal.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/normal.cc b/src/normal.cc index 1f0f6e5a..e07b2a93 100644 --- a/src/normal.cc +++ b/src/normal.cc @@ -684,7 +684,7 @@ void search(Context& context, NormalParams params) auto reg_content = RegisterManager::instance()[reg].values(context); Vector saved_reg{reg_content.begin(), reg_content.end()}; - const int main_index = context.selections().main_index(); + const int main_index = std::min(context.selections().main_index(), saved_reg.size()-1); regex_prompt(context, prompt.str(), [reg, count, saved_reg, main_index] @@ -768,7 +768,7 @@ void select_regex(Context& context, NormalParams params) auto reg_content = RegisterManager::instance()[reg].values(context); Vector saved_reg{reg_content.begin(), reg_content.end()}; - const int main_index = context.selections().main_index(); + const int main_index = std::min(context.selections().main_index(), saved_reg.size()-1); regex_prompt(context, std::move(prompt), [reg, capture, saved_reg, main_index](Regex ex, PromptEvent event, Context& context) { @@ -795,7 +795,7 @@ void split_regex(Context& context, NormalParams params) auto reg_content = RegisterManager::instance()[reg].values(context); Vector saved_reg{reg_content.begin(), reg_content.end()}; - const int main_index = context.selections().main_index(); + const int main_index = std::min(context.selections().main_index(), saved_reg.size()-1); regex_prompt(context, std::move(prompt), [reg, capture, saved_reg, main_index](Regex ex, PromptEvent event, Context& context) { -- cgit v1.2.3