reader: Only maintain cursor position in non-empty prefix search

Otherwise this would always move the cursor to the beginning.

Fixes #11133

(cherry picked from commit db244e0492)
This commit is contained in:
Fabian Boehm
2025-02-05 22:04:48 +01:00
parent 9490c74746
commit 8ddb078db8
2 changed files with 11 additions and 1 deletions

View File

@@ -1909,7 +1909,9 @@ fn update_command_line_from_history_search(&mut self) {
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());
}

View File

@@ -372,6 +372,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'