From 20b0eadfc8f9e6ead962bb0230b8ebfe32d8a2fa Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Sat, 13 Jan 2024 16:52:55 +0100 Subject: [PATCH] Don't modify prompt history when validating empty input Fixes #5076 --- src/normal.cc | 3 ++- .../5076-empty-text-should-not-change-prompt-history/cmd | 1 + .../5076-empty-text-should-not-change-prompt-history/in | 1 + .../kak_selections | 1 + .../script | 7 +++++++ 5 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 test/regression/5076-empty-text-should-not-change-prompt-history/cmd create mode 100644 test/regression/5076-empty-text-should-not-change-prompt-history/in create mode 100644 test/regression/5076-empty-text-should-not-change-prompt-history/kak_selections create mode 100644 test/regression/5076-empty-text-should-not-change-prompt-history/script 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