From db244e0492db4f4e6c5b0865a1cd591ba9104ce7 Mon Sep 17 00:00:00 2001 From: Fabian Boehm Date: Wed, 5 Feb 2025 22:04:48 +0100 Subject: [PATCH] reader: Only maintain cursor position in non-empty prefix search Otherwise this would always move the cursor to the beginning. Fixes #11133 --- src/reader.rs | 2 +- tests/pexpects/bind.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/reader.rs b/src/reader.rs index ee9f2fe11..b2f5fb78a 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -1671,7 +1671,7 @@ impl ReaderData { 0..self.command_line.len(), new_text, ); - if self.history_search.by_prefix() { + if self.history_search.by_prefix() && !self.history_search.search_string().is_empty() { self.command_line .set_position(self.history_search.search_string().len()); } diff --git a/tests/pexpects/bind.py b/tests/pexpects/bind.py index e9c939239..fdbe9b629 100644 --- a/tests/pexpects/bind.py +++ b/tests/pexpects/bind.py @@ -364,6 +364,14 @@ send('\x02\x02\x02') # ctrl-b, backward-char sendline('\x1bu') # alt+u, upcase word expect_prompt("fooBAR") +sendline('bind ctrl-z history-prefix-search-backward') +expect_prompt() +sendline("echo this continues") +expect_prompt() +send("\x1A") +sendline(" with this text") +expect_prompt("this continues with this text") + sendline(""" bind ctrl-g " commandline --insert 'echo foo ar'