summaryrefslogtreecommitdiff
path: root/src/normal.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/normal.cc')
-rw-r--r--src/normal.cc23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/normal.cc b/src/normal.cc
index c93c4760..1ce53158 100644
--- a/src/normal.cc
+++ b/src/normal.cc
@@ -853,23 +853,22 @@ void regex_prompt(Context& context, String prompt, char reg, T func)
context.window().set_position(position);
context.input_handler().set_prompt_face(context.faces()["Prompt"]);
+ RegisterManager::instance()[reg].restore(context, saved_reg);
}
+
switch (event)
{
- case PromptEvent::Change:
- if (not incsearch or str.empty())
- return;
+ case PromptEvent::Abort: return;
+ case PromptEvent::Change:
+ if (incsearch and not str.empty())
RegisterManager::instance()[reg].set(context, str.str());
- func(Regex{str, direction_flags(mode)}, event, context);
- return;
- case PromptEvent::Abort:
- RegisterManager::instance()[reg].restore(context, saved_reg);
- return;
- case PromptEvent::Validate:
- context.push_jump();
- func(Regex{str.empty() ? default_regex : str, direction_flags(mode)}, event, context);
- return;
+ break;
+ case PromptEvent::Validate:
+ RegisterManager::instance()[reg].set(context, str.str());
+ context.push_jump();
+ break;
}
+ func(Regex{str.empty() ? default_regex : str, direction_flags(mode)}, event, context);
}
catch (regex_error& err)
{