summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Altmanninger <aclopte@gmail.com>2024-01-13 16:52:55 +0100
committerJohannes Altmanninger <aclopte@gmail.com>2024-01-15 15:08:10 +0100
commit20b0eadfc8f9e6ead962bb0230b8ebfe32d8a2fa (patch)
treea0c3797e1846859b028559c5725f82b7bb059bb4
parent9d8c9777a46a37818a6c4a336f0ff5c4d79f5f18 (diff)
Don't modify prompt history when validating empty input
Fixes #5076
-rw-r--r--src/normal.cc3
-rw-r--r--test/regression/5076-empty-text-should-not-change-prompt-history/cmd1
-rw-r--r--test/regression/5076-empty-text-should-not-change-prompt-history/in1
-rw-r--r--test/regression/5076-empty-text-should-not-change-prompt-history/kak_selections1
-rw-r--r--test/regression/5076-empty-text-should-not-change-prompt-history/script7
5 files changed, 12 insertions, 1 deletions
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<ret>" ] }'
+ui_out -ignore 6
+ui_in '{ "jsonrpc": "2.0", "method": "keys", "params": [ "xs<ret>" ] }'
+ui_out -ignore 5
+ui_in '{ "jsonrpc": "2.0", "method": "keys", "params": [ "xs<ret>" ] }'
+ui_out -ignore 5