diff --git a/src/normal.cc b/src/normal.cc index 019ed58a..03e7895c 100644 --- a/src/normal.cc +++ b/src/normal.cc @@ -866,7 +866,8 @@ void regex_prompt(Context& context, String prompt, char reg, T func) RegisterManager::instance()[reg].set(context, str.str()); break; case PromptEvent::Validate: - RegisterManager::instance()[reg].set(context, str.str()); + if (not str.empty()) + RegisterManager::instance()[reg].set(context, str.str()); context.push_jump(); break; } diff --git a/test/regression/5076-empty-text-should-not-change-prompt-history/cmd b/test/regression/5076-empty-text-should-not-change-prompt-history/cmd new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/test/regression/5076-empty-text-should-not-change-prompt-history/cmd @@ -0,0 +1 @@ + diff --git a/test/regression/5076-empty-text-should-not-change-prompt-history/in b/test/regression/5076-empty-text-should-not-change-prompt-history/in new file mode 100644 index 00000000..1790c8d8 --- /dev/null +++ b/test/regression/5076-empty-text-should-not-change-prompt-history/in @@ -0,0 +1 @@ +abab diff --git a/test/regression/5076-empty-text-should-not-change-prompt-history/kak_selections b/test/regression/5076-empty-text-should-not-change-prompt-history/kak_selections new file mode 100644 index 00000000..a4c6917f --- /dev/null +++ b/test/regression/5076-empty-text-should-not-change-prompt-history/kak_selections @@ -0,0 +1 @@ +a a diff --git a/test/regression/5076-empty-text-should-not-change-prompt-history/script b/test/regression/5076-empty-text-should-not-change-prompt-history/script new file mode 100644 index 00000000..8c2457f1 --- /dev/null +++ b/test/regression/5076-empty-text-should-not-change-prompt-history/script @@ -0,0 +1,7 @@ +ui_out -ignore 7 +ui_in '{ "jsonrpc": "2.0", "method": "keys", "params": [ "xsa" ] }' +ui_out -ignore 6 +ui_in '{ "jsonrpc": "2.0", "method": "keys", "params": [ "xs" ] }' +ui_out -ignore 5 +ui_in '{ "jsonrpc": "2.0", "method": "keys", "params": [ "xs" ] }' +ui_out -ignore 5