diff options
Diffstat (limited to 'core/readline/readline83-005')
| -rw-r--r-- | core/readline/readline83-005 | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/core/readline/readline83-005 b/core/readline/readline83-005 new file mode 100644 index 0000000..e0f1004 --- /dev/null +++ b/core/readline/readline83-005 @@ -0,0 +1,67 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.3 +Patch-ID: readline83-005 + +Bug-Reported-by: Ben Kallus <benjamin.p.kallus.gr@dartmouth.edu> + Derek Schrock <dereks@lifeofadishwasher.com> +Bug-Reference-ID: <CAB6pCSaUPimkEbQwTTkxD5vV14ZJRGCeK2W1ur8RqT1rPrd+Gw@mail.gmail.com> + <ajC1pZAV_95J3vsJ@ircbsd.lifeofadishwasher.com> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2026-06/msg00005.html + https://lists.gnu.org/archive/html/bug-readline/2026-06/msg00002.html + +Bug-Description: + +This patch fixes two problems with the redisplay code. The first is a +crash that results if the initial prompt contains more than 256 wrapped +lines. The second is a fix to the redisplay code when the first several +characters of the prompt string are identical, but the prompt has changed +and needs to be redrawn. If these first few characters are part of an escape +sequence, the entire sequence needs to be redrawn. + +Patch (apply with `patch -p0'): + +*** ../readline-8.3-patched/display.c Fri May 22 14:55:01 2026 +--- display.c Fri Jun 26 11:08:53 2026 +*************** +*** 1025,1028 **** +--- 1025,1029 ---- + { + temp = local_prompt_newlines[newlines+1]; ++ CHECK_INV_LBREAKS (); + inv_lbreaks[++newlines] = temp; + } +*************** +*** 2262,2270 **** + nd = nfd - new; /* nd, od are buffer indexes */ + if (current_line == 0 && !_rl_horizontal_scroll_mode && +! _rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 && + (((od > 0 || nd > 0) && (od <= prompt_last_invisible || nd <= prompt_last_invisible)) || + ((od >= lendiff) && _rl_last_c_pos < PROMPT_ENDING_INDEX))) + { +! _rl_cr (); + if (modmark) + _rl_output_some_chars ("*", 1); +--- 2266,2275 ---- + nd = nfd - new; /* nd, od are buffer indexes */ + if (current_line == 0 && !_rl_horizontal_scroll_mode && +! _rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos >= 0 && + (((od > 0 || nd > 0) && (od <= prompt_last_invisible || nd <= prompt_last_invisible)) || + ((od >= lendiff) && _rl_last_c_pos < PROMPT_ENDING_INDEX))) + { +! if (_rl_last_c_pos > 0) +! _rl_cr (); + if (modmark) + _rl_output_some_chars ("*", 1); +*** ../readline-8.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2024-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 4 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 5 |
