diff options
| author | Maxime Coste <mawww@kakoune.org> | 2019-06-12 22:58:01 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2019-06-23 12:05:09 +1000 |
| commit | 469818c6f920ea710a2af62a79c70270ad95cdf2 (patch) | |
| tree | f9c313367b180e0b5e78789fdf0234798e5d587b /src/normal.cc | |
| parent | e613292568e9f66628135b5a1f468cc9ae85106d (diff) | |
Tweak history restoring behaviour
Diffstat (limited to 'src/normal.cc')
| -rw-r--r-- | src/normal.cc | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/src/normal.cc b/src/normal.cc index 51308e7c..0c739f61 100644 --- a/src/normal.cc +++ b/src/normal.cc @@ -884,11 +884,9 @@ void search(Context& context, NormalParams params) regex_prompt<regex_mode>(context, prompt.str(), reg, [reg, count, saved_reg = RegisterManager::instance()[reg].save(context)] (const Regex& regex, PromptEvent event, Context& context) { + RegisterManager::instance()[reg].restore(context, saved_reg); if (event == PromptEvent::Abort) - { - RegisterManager::instance()[reg].restore(context, saved_reg); return; - } RegisterManager::instance()[reg].set(context, regex.str()); if (regex.empty() or regex.str().empty()) @@ -970,13 +968,11 @@ void select_regex(Context& context, NormalParams params) regex_prompt(context, std::move(prompt), reg, [reg, capture, saved_reg = RegisterManager::instance()[reg].save(context)] (Regex ex, PromptEvent event, Context& context) { - if (event == PromptEvent::Abort) - { - RegisterManager::instance()[reg].restore(context, saved_reg); - return; - } - - RegisterManager::instance()[reg].set(context, ex.str()); + RegisterManager::instance()[reg].restore(context, saved_reg); + if (event == PromptEvent::Abort) + return; + if (not context.history_disabled()) + RegisterManager::instance()[reg].set(context, ex.str()); auto& selections = context.selections(); auto& buffer = selections.buffer(); @@ -994,13 +990,11 @@ void split_regex(Context& context, NormalParams params) regex_prompt(context, std::move(prompt), reg, [reg, capture, saved_reg = RegisterManager::instance()[reg].save(context)] (Regex ex, PromptEvent event, Context& context) { - if (event == PromptEvent::Abort) - { - RegisterManager::instance()[reg].restore(context, saved_reg); - return; - } - - RegisterManager::instance()[reg].set(context, ex.str()); + RegisterManager::instance()[reg].restore(context, saved_reg); + if (event == PromptEvent::Abort) + return; + if (not context.history_disabled()) + RegisterManager::instance()[reg].set(context, ex.str()); auto& selections = context.selections(); auto& buffer = selections.buffer(); @@ -1094,11 +1088,9 @@ void keep(Context& context, NormalParams params) regex_prompt(context, prompt.str(), reg, [reg, saved_reg = RegisterManager::instance()[reg].save(context)] (const Regex& regex, PromptEvent event, Context& context) { + RegisterManager::instance()[reg].restore(context, saved_reg); if (event == PromptEvent::Abort) - { - RegisterManager::instance()[reg].restore(context, saved_reg); return; - } if (not context.history_disabled()) RegisterManager::instance()[reg].set(context, regex.str()); |
