Bash-5.3 patch 17: Modify the readline redisplay code to use a buffer offset instead of the physical prompt length in a multibyte locale to determine whether to reprint the prompt from column 0 because the cursor is before the last invisible character in the prompt string.

This commit is contained in:
Chet Ramey
2026-09-15 11:14:33 -04:00
parent a5f4367d2a
commit ee9a3cee01
2 changed files with 2 additions and 7 deletions
+1 -6
View File
@@ -1497,7 +1497,6 @@ rl_redisplay (void)
the characters from the current cursor position. But we
only need to reprint it if the cursor is before the last
invisible character in the prompt string. */
/* XXX - why not use local_prompt_len? */
nleft = prompt_visible_length + wrap_offset;
if (cursor_linenum == prompt_last_screen_line)
{
@@ -1509,11 +1508,7 @@ rl_redisplay (void)
on the current screen line begins in the buffer. It is a
buffer position, an index into curline
(local_prompt + pmt_offset) */
cursor_bufpos = pmt_offset;
if (mb_cur_max == 1 || rl_byte_oriented)
cursor_bufpos += _rl_last_c_pos;
else
cursor_bufpos += _rl_last_c_pos + curline_invchars;
cursor_bufpos = pmt_offset + local_prompt_len;
if (local_prompt && local_prompt_invis_chars[cursor_linenum] &&
_rl_last_c_pos > 0 &&