summaryrefslogtreecommitdiff
path: root/core/readline
diff options
context:
space:
mode:
authorrawnix ports <ports@rawnix.org>2026-09-26 18:19:05 +0000
committerrawnix ports <ports@rawnix.org>2026-09-26 18:19:05 +0000
commitc82e88dd00d1b0b7fcfb4e5628d99611388cef6f (patch)
tree56d864b5a5c6c145edd96178ae219a8f90e191a6 /core/readline
downloadports-c82e88dd00d1b0b7fcfb4e5628d99611388cef6f.tar.gz
sync 2026-09-26 18:19 UTC
1672 files changed, 151396 insertions(+)
Diffstat (limited to 'core/readline')
-rw-r--r--core/readline/.footprint31
-rw-r--r--core/readline/.signature14
-rw-r--r--core/readline/MAKEPKG62
-rw-r--r--core/readline/display-null-prompt.patch15
-rw-r--r--core/readline/inputrc26
-rw-r--r--core/readline/readline83-00164
-rw-r--r--core/readline/readline83-00244
-rw-r--r--core/readline/readline83-00378
-rw-r--r--core/readline/readline83-00461
-rw-r--r--core/readline/readline83-00567
-rw-r--r--core/readline/readline83-00647
11 files changed, 509 insertions, 0 deletions
diff --git a/core/readline/.footprint b/core/readline/.footprint
new file mode 100644
index 0000000..3f00bf0
--- /dev/null
+++ b/core/readline/.footprint
@@ -0,0 +1,31 @@
+drwxr-xr-x root/root bin/
+drwxr-xr-x root/root etc/
+-rw-r--r-- root/root etc/inputrc
+drwxr-xr-x root/root include/
+drwxr-xr-x root/root include/readline/
+-rw-r--r-- root/root include/readline/chardefs.h
+-rw-r--r-- root/root include/readline/history.h
+-rw-r--r-- root/root include/readline/keymaps.h
+-rw-r--r-- root/root include/readline/readline.h
+-rw-r--r-- root/root include/readline/rlconf.h
+-rw-r--r-- root/root include/readline/rlstdc.h
+-rw-r--r-- root/root include/readline/rltypedefs.h
+-rw-r--r-- root/root include/readline/tilde.h
+drwxr-xr-x root/root lib/
+-rw-r--r-- root/root lib/libhistory.a
+-rwxr-xr-x root/root lib/libhistory.so.8.3
+-rw-r--r-- root/root lib/libreadline.a
+-rwxr-xr-x root/root lib/libreadline.so.8.3
+lrwxrwxrwx root/root lib/libhistory.so -> libhistory.so.8
+lrwxrwxrwx root/root lib/libhistory.so.8 -> libhistory.so.8.3
+lrwxrwxrwx root/root lib/libreadline.so -> libreadline.so.8
+lrwxrwxrwx root/root lib/libreadline.so.8 -> libreadline.so.8.3
+drwxr-xr-x root/root lib/pkgconfig/
+-rw-r--r-- root/root lib/pkgconfig/history.pc
+-rw-r--r-- root/root lib/pkgconfig/readline.pc
+drwxr-xr-x root/root usr/
+drwxr-xr-x root/root usr/share/
+drwxr-xr-x root/root usr/share/man/
+drwxr-xr-x root/root usr/share/man/man3/
+-rw-r--r-- root/root usr/share/man/man3/history.3.gz
+-rw-r--r-- root/root usr/share/man/man3/readline.3.gz
diff --git a/core/readline/.signature b/core/readline/.signature
new file mode 100644
index 0000000..aa6985f
--- /dev/null
+++ b/core/readline/.signature
@@ -0,0 +1,14 @@
+RWTZ9IduCSQ/mLqt5kcqMBjo2cCrX6OZEN7HO0BnqtMRYBAA0m51YKb7sWAbrTwHghH4Puvg98EkLo7lBxQE2IibGUaGkYv3OwI=
+
+SHA256 (MAKEPKG) = 409f47d1e25b13096fd916407e2238c38ab070c7128e89cc8d130a922810398d
+SHA256 (.footprint) = 152ef5d8011ca42daa67973731f6e5d2c20ddf0dbc325c954a55f1706981b979
+SHA256 (readline-8.3.tar.gz) = fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc
+SHA256 (readline83-001) = 21f0a03106dbe697337cd25c70eb0edbaa2bdb6d595b45f83285cdd35bac84de
+SHA256 (readline83-002) = e27364396ba9f6debf7cbaaf1a669e2b2854241ae07f7eca74ca8a8ba0c97472
+SHA256 (readline83-003) = 72dee13601ce38f6746eb15239999a7c56f8e1ff5eb1ec8153a1f213e4acdb29
+SHA256 (readline83-004) = 1f189c4566aa35950964647b9ec3be1a821e42b86048129c63eb7f9d4d2f5a74
+SHA256 (readline83-005) = 5481adbe161c9f6ba972c74db9e18c7aa351d3df3035cc4a673a1aa06247d1c6
+SHA256 (readline83-006) = 4ebd261a608287796e171af0ea9af5a1e3122e46672accda2484b6698c47c1a4
+SHA256 (inputrc) = 9119a95d4b1407e3c4ad2b6fb92e840353e65ae9d7ec77fed75cab293cb81bcb
+SHA256 (display-null-prompt.patch) = 188b99582f9d31e9c18dd3e4a903ac5fb4c8e265207cfc21fc27f32ed4ee6a78
+SHA256 (readline#8.3.p6-1.pkg.tar.gz) = 794acc10f71d72b53cf630dc18d59620a9f38bfc4011b53f8d9c8fb73da57b08
diff --git a/core/readline/MAKEPKG b/core/readline/MAKEPKG
new file mode 100644
index 0000000..9f3b9ee
--- /dev/null
+++ b/core/readline/MAKEPKG
@@ -0,0 +1,62 @@
+#!/bin/mkpkg
+# description: Lets users edit command lines as they are typed in
+# url: https://tiswww.cwru.edu/php/chet/readline/rltop.html
+
+name=readline
+version=8.3.p6
+release=1
+_version=8.3
+_short_ver=83
+depends=(ncurses)
+lockbox=(yes)
+source=(http://ftp.gnu.org/gnu/$name/$name-$_version.tar.gz
+ http://ftp.gnu.org/gnu/$name/$name-$_version-patches/$name$_short_ver-001
+ http://ftp.gnu.org/gnu/$name/$name-$_version-patches/$name$_short_ver-002
+ http://ftp.gnu.org/gnu/$name/$name-$_version-patches/$name$_short_ver-003
+ http://ftp.gnu.org/gnu/$name/$name-$_version-patches/$name$_short_ver-004
+ http://ftp.gnu.org/gnu/$name/$name-$_version-patches/$name$_short_ver-005
+ http://ftp.gnu.org/gnu/$name/$name-$_version-patches/$name$_short_ver-006
+ inputrc
+ display-null-prompt.patch)
+
+patch() {
+ cd $name-$_version
+ for p in "$SRC"/*.patch; do
+ [ -f "$p" ] && patch -p0 -i "$p"
+ done
+}
+
+sha256sums=(
+ "fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc"
+ "21f0a03106dbe697337cd25c70eb0edbaa2bdb6d595b45f83285cdd35bac84de"
+ "e27364396ba9f6debf7cbaaf1a669e2b2854241ae07f7eca74ca8a8ba0c97472"
+ "72dee13601ce38f6746eb15239999a7c56f8e1ff5eb1ec8153a1f213e4acdb29"
+ "1f189c4566aa35950964647b9ec3be1a821e42b86048129c63eb7f9d4d2f5a74"
+ "5481adbe161c9f6ba972c74db9e18c7aa351d3df3035cc4a673a1aa06247d1c6"
+ "4ebd261a608287796e171af0ea9af5a1e3122e46672accda2484b6698c47c1a4"
+ "9119a95d4b1407e3c4ad2b6fb92e840353e65ae9d7ec77fed75cab293cb81bcb"
+ "188b99582f9d31e9c18dd3e4a903ac5fb4c8e265207cfc21fc27f32ed4ee6a78"
+)
+
+build() {
+ cd $name-$_version
+
+ ./configure \
+ --prefix=/ \
+ --libdir=/lib \
+ --includedir=/include \
+ --mandir=/usr/share/man
+
+ make -j1 SHLIB_LIBS=-lncursesw
+ make -j1 DESTDIR=$PKG install
+
+ install -D -m644 $SRC/inputrc $PKG/etc/inputrc
+ rm -rf $PKG/share
+}
+
+signify() {
+ untrusted comment: public key
+ RWTZ9IduCSQ/mL8337TEUinPwT92xFEUpD92hkS7IxcOnzTt9QdpohT3
+}
+
+# vim: filetype=sh
diff --git a/core/readline/display-null-prompt.patch b/core/readline/display-null-prompt.patch
new file mode 100644
index 0000000..6566539
--- /dev/null
+++ b/core/readline/display-null-prompt.patch
@@ -0,0 +1,15 @@
+*** ../readline-8.3/display.c Fri May 2 09:20:32 2025
+--- display.c Sun Jul 6 17:16:28 2025
+***************
+*** 784,788 ****
+ /* Useful shorthand used by rl_redisplay, update_line, rl_move_cursor_relative */
+ #define INVIS_FIRST() (local_prompt_invis_chars[0])
+! #define WRAP_OFFSET(line, offset) ((line <= prompt_last_screen_line) ? local_prompt_invis_chars[line] : 0)
+
+ #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
+--- 784,788 ----
+ /* Useful shorthand used by rl_redisplay, update_line, rl_move_cursor_relative */
+ #define INVIS_FIRST() (local_prompt_invis_chars[0])
+! #define WRAP_OFFSET(line, offset) ((line <= prompt_last_screen_line && local_prompt_invis_chars) ? local_prompt_invis_chars[line] : 0)
+
+ #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
diff --git a/core/readline/inputrc b/core/readline/inputrc
new file mode 100644
index 0000000..7640ae4
--- /dev/null
+++ b/core/readline/inputrc
@@ -0,0 +1,26 @@
+#
+# /etc/inputrc - global inputrc for readline(3)
+#
+
+set input-meta on
+set output-meta on
+set convert-meta off
+
+"\e[1~": beginning-of-line
+"\e[2~": yank
+"\e[3~": delete-char
+"\e[4~": end-of-line
+"\e[5~": beginning-of-history
+"\e[6~": end-of-history
+
+"\ep": history-search-backward
+"\en": history-search-forward
+
+$if term=xterm
+"\e[7~": beginning-of-line
+"\e[8~": end-of-line
+"\e[H": beginning-of-line
+"\e[F": end-of-line
+$endif
+
+# End of file
diff --git a/core/readline/readline83-001 b/core/readline/readline83-001
new file mode 100644
index 0000000..007eb87
--- /dev/null
+++ b/core/readline/readline83-001
@@ -0,0 +1,64 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 8.3
+Patch-ID: readline83-001
+
+Bug-Reported-by: Dmitri A. Sergatskov <dasergatskov@gmail.com>
+Bug-Reference-ID: <CAO+XyQ+ipUzFiXvRrDbTstfm1heZrerjvZGVaC60y=txMgyP+g@mail.gmail.com>
+Bug-Reference-URL:
+
+Bug-Description:
+
+If an application uses readline's event hook, it is called while waiting for
+input. There is a bug in the function that waits for available input that
+causes it not to read that input under certain circumstances, resulting in
+a loop where the event hook continues to be called, but there is no input
+to stop it.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-8.3/input.c Fri May 2 09:29:05 2025
+--- input.c Tue Jul 8 15:37:13 2025
+***************
+*** 262,266 ****
+ tty = fileno (rl_instream);
+
+! /* Move this up here to give it first shot, but it can't set chars_avail */
+ /* XXX - need rl_chars_available_hook? */
+ if (rl_input_available_hook)
+--- 262,267 ----
+ tty = fileno (rl_instream);
+
+! /* Move this up here to give it first shot, but it can't set chars_avail,
+! so we assume a single character is available. */
+ /* XXX - need rl_chars_available_hook? */
+ if (rl_input_available_hook)
+***************
+*** 269,272 ****
+--- 270,275 ----
+ if (result == 0)
+ result = -1;
++ else
++ chars_avail = 1;
+ }
+
+***************
+*** 286,289 ****
+--- 289,293 ----
+ if (result <= 0)
+ return 0; /* Nothing to read. */
++ result = -1; /* there is something, so check how many chars below */
+ }
+ #endif
+*** ../readline-8.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 0
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 1
diff --git a/core/readline/readline83-002 b/core/readline/readline83-002
new file mode 100644
index 0000000..356318d
--- /dev/null
+++ b/core/readline/readline83-002
@@ -0,0 +1,44 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 8.3
+Patch-ID: readline83-002
+
+Bug-Reported-by: Tobias Powalowski <tobias.powalowski@pm.me>
+Bug-Reference-ID: <6465ed69-d2da-4277-92cf-1046bc97ca60@pm.me>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2025-07/msg00005.html
+
+Bug-Description:
+
+If an application calls rl_save_prompt, which sets rl_prompt to NULL,
+without calling rl_set_prompt to set it to a new value, readline redisplay
+can dereference a NULL pointer.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-8.3/display.c Fri May 2 09:20:32 2025
+--- display.c Sun Jul 6 17:16:28 2025
+***************
+*** 784,788 ****
+ /* Useful shorthand used by rl_redisplay, update_line, rl_move_cursor_relative */
+ #define INVIS_FIRST() (local_prompt_invis_chars[0])
+! #define WRAP_OFFSET(line, offset) ((line <= prompt_last_screen_line) ? local_prompt_invis_chars[line] : 0)
+
+ #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
+--- 784,788 ----
+ /* Useful shorthand used by rl_redisplay, update_line, rl_move_cursor_relative */
+ #define INVIS_FIRST() (local_prompt_invis_chars[0])
+! #define WRAP_OFFSET(line, offset) ((line <= prompt_last_screen_line && local_prompt_invis_chars) ? local_prompt_invis_chars[line] : 0)
+
+ #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
+*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 1
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 2
diff --git a/core/readline/readline83-003 b/core/readline/readline83-003
new file mode 100644
index 0000000..dd7fe4f
--- /dev/null
+++ b/core/readline/readline83-003
@@ -0,0 +1,78 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 8.3
+Patch-ID: readline83-003
+
+Bug-Reported-by: penguin p <tgckpg@gmail.com>
+Bug-Reference-ID: <TYYPR01MB14049C63D4635628EE867664BFA37A@TYYPR01MB14049.jpnprd01.prod.outlook.com>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00080.html
+
+Bug-Description:
+
+A SIGINT during a reverse i-search can cause a segmentation fault due to
+accessing data freed by a signal handler.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-8.3-patched/input.c Tue Jul 8 15:37:13 2025
+--- input.c Fri Aug 22 15:04:05 2025
+***************
+*** 976,984 ****
+ if (rl_signal_event_hook)
+ (*rl_signal_event_hook) ();
+! #if defined (READLINE_CALLBACKS)
+! else if (osig == SIGINT && (ostate & RL_STATE_CALLBACK) && (ostate & (RL_STATE_ISEARCH|RL_STATE_NSEARCH|RL_STATE_NUMERICARG)))
+ /* just these cases for now */
+ _rl_abort_internal ();
+- #endif
+ }
+ }
+--- 1004,1012 ----
+ if (rl_signal_event_hook)
+ (*rl_signal_event_hook) ();
+! /* If the application's SIGINT handler returns, make sure we abort out of
+! searches and numeric arguments because we've freed necessary state. */
+! if (osig == SIGINT && (ostate & (RL_STATE_ISEARCH|RL_STATE_NSEARCH|RL_STATE_NUMERICARG)))
+ /* just these cases for now */
+ _rl_abort_internal ();
+ }
+ }
+*** ../readline-8.3-patched/isearch.c Thu Jun 5 09:22:11 2025
+--- isearch.c Tue Aug 19 14:55:55 2025
+***************
+*** 890,899 ****
+ _rl_isearch_cleanup (_rl_search_cxt *cxt, int r)
+ {
+ if (r >= 0)
+ _rl_isearch_fini (cxt);
+ _rl_scxt_dispose (cxt, 0);
+- _rl_iscxt = 0;
+-
+- RL_UNSETSTATE(RL_STATE_ISEARCH);
+
+ return (r != 0);
+--- 890,901 ----
+ _rl_isearch_cleanup (_rl_search_cxt *cxt, int r)
+ {
++ RL_UNSETSTATE(RL_STATE_ISEARCH);
++ if (cxt == 0)
++ return (r != 0);
++
++ _rl_iscxt = 0;
+ if (r >= 0)
+ _rl_isearch_fini (cxt);
+ _rl_scxt_dispose (cxt, 0);
+
+ return (r != 0);
+*** ../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
+
+! 2
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 3
diff --git a/core/readline/readline83-004 b/core/readline/readline83-004
new file mode 100644
index 0000000..f743af8
--- /dev/null
+++ b/core/readline/readline83-004
@@ -0,0 +1,61 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 8.3
+Patch-ID: readline83-004
+
+Bug-Reported-by: Lennart Ackermans <lennart@ackermans.ch>
+Bug-Reference-ID: <d6f36c30-633a-4e5e-8212-806db6441bf1@ackermans.ch>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2026-05/msg00066.html
+
+Bug-Description:
+
+If readline is invoked with the cursor somewhere other than column 0, and
+the prompt contains multibyte characters, the display algorithm needs to
+use a buffer offset, instead of the physical prompt length, to determine
+whether or not to reprint the prompt from column 0 because the cursor is
+before the last invisible character in the prompt string.
+
+Patch (apply with `patch -p0'):
+
+Lennart Ackermans <lennart@ackermans.ch> 5/19/2026
+
+*** ../readline-8.3-patched/display.c Thu Sep 4 11:55:37 2025
+--- display.c Fri May 22 14:55:01 2026
+***************
+*** 1498,1502 ****
+ 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)
+--- 1498,1501 ----
+***************
+*** 1510,1518 ****
+ 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;
+
+ if (local_prompt && local_prompt_invis_chars[cursor_linenum] &&
+--- 1509,1513 ----
+ buffer position, an index into curline
+ (local_prompt + pmt_offset) */
+! cursor_bufpos = pmt_offset + local_prompt_len;
+
+ if (local_prompt && local_prompt_invis_chars[cursor_linenum] &&
+
+*** ../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
+
+! 3
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 4
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
diff --git a/core/readline/readline83-006 b/core/readline/readline83-006
new file mode 100644
index 0000000..2bbf8eb
--- /dev/null
+++ b/core/readline/readline83-006
@@ -0,0 +1,47 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 8.3
+Patch-ID: readline83-006
+
+Bug-Reported-by: Félix Bouynot <felix.bouynot@setenforce.one>
+Bug-Reference-ID: <39c9472ddcf23881693380c4b895dd3799b45cec.camel@setenforce.one>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2026-05/msg00065.html
+
+Bug-Description:
+
+If readline handles a SIGWINCH and resizes its idea of the screen
+dimensions, it needs to recompute the columns where the prompt wraps
+lines every time, not just when the screen width decreases.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-8.3-patched/display.c Thu Sep 4 11:55:37 2025
+--- display.c Fri May 22 14:55:01 2026
+***************
+*** 3526,3531 ****
+ rl_crlf ();
+
+! if (_rl_screenwidth < prompt_visible_length)
+! _rl_reset_prompt (); /* update local_prompt_newlines array */
+
+ /* Redraw only the last line of a multi-line prompt. */
+--- 3521,3527 ----
+ rl_crlf ();
+
+! /* Let expand_prompt() update local_prompt_newlines and local_prompt_invis_chars
+! arrays */
+! _rl_reset_prompt ();
+
+ /* Redraw only the last line of a multi-line prompt. */
+*** ../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
+
+! 5
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 6