Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package readline for openSUSE:Factory checked in at 2025-08-13 16:23:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/readline (Old) and /work/SRC/openSUSE:Factory/.readline.new.1085 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "readline" Wed Aug 13 16:23:36 2025 rev:18 rq:1294140 version:8.3.MACRO Changes: -------- --- /work/SRC/openSUSE:Factory/readline/readline.changes 2024-08-20 16:12:19.063480697 +0200 +++ /work/SRC/openSUSE:Factory/.readline.new.1085/readline.changes 2025-08-13 16:30:10.075540295 +0200 @@ -1,0 +2,58 @@ +Wed Jul 16 14:13:26 UTC 2025 - Dr. Werner Fink <wer...@suse.de> + +- Update to final readline-8.3 + a. Output a newline if there is no prompt and readline reads an empty line. + b. The history library falls back to stdio when writing the history list if + mmap fails. + c. New bindable variable `search-ignore-case', causes readline to perform + case-insensitive incremental and non-incremental history searches. + d. rl_full_quoting_desired: new application-settable variable, causes all + completions to be quoted as if they were filenames. + e. rl_macro_display_hook: new application-settable function pointer, used if + the application wants to print macro values itself instead of letting + readline do it + f. rl_reparse_colors: new application-callable function, reparses $LS_COLORS + (presumably after the user changes it) + g. rl_completion_rewrite_hook: new application-settable function pointer, + called to modify the word being completed before comparing it against + pathnames from the file system. + h. execute-named-command: a new bindable command that reads the name of a + readline command from the standard input and executes it. Bound to M-x + in emacs mode by default. + i. Incremental and non-incremental searches now allow ^V/^Q (or, in the former + case, anything bound to quoted-insert) to quote characters in the search + string. + j. Documentation has been significantly updated. + k. New `force-meta-prefix' bindable variable, which forces the use of ESC as + the meta prefix when using "\M-" in key bindings instead of overloading + convert-meta. + l. The default value for `readline-colored-completion-prefix' no longer has a + leading `.'; the original report was based on a misunderstanding. + m. There is a new bindable command, `export-completions', which writes the + possible completions for a word to the standard output in a defined format. + n. Readline can reset its idea of the screen dimensions when executing after + a SIGCONT. +- Remove upstream patches of former readline-8.2 + * readline82-001 + * readline82-002 + * readline82-003 + * readline82-004 + * readline82-005 + * readline82-006 + * readline82-007 + * readline82-008 + * readline82-009 + * readline82-010 + * readline82-011 + * readline82-012 + * readline82-013 +- Add upstream patch + * readline83-001 + 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. +- Port readline-8.2.dif and rename it to readline-8.3.dif + +------------------------------------------------------------------- Old: ---- readline-8.2.dif readline-8.2.tar.gz readline-8.2.tar.gz.sig readline82-001 readline82-001.sig readline82-002 readline82-002.sig readline82-003 readline82-003.sig readline82-004 readline82-004.sig readline82-005 readline82-005.sig readline82-006 readline82-006.sig readline82-007 readline82-007.sig readline82-008 readline82-008.sig readline82-009 readline82-009.sig readline82-010 readline82-010.sig readline82-011 readline82-011.sig readline82-012 readline82-012.sig readline82-013 readline82-013.sig New: ---- readline-8.3.dif readline-8.3.tar.gz readline-8.3.tar.gz.sig readline83-001 readline83-001.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ readline.spec ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.355718252 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.359718418 +0200 @@ -1,7 +1,7 @@ # # spec file for package readline # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define rl_major 8 %define rextend %{nil} -%define rversion 8.2 +%define rversion 8.3 %define rpatchlvl %(bash %{_sourcedir}/get_version_number.sh %{_sourcedir}) Name: readline @@ -34,34 +34,10 @@ Source2: baselibs.conf Source3: get_version_number.sh Source4: https://tiswww.case.edu/php/chet/gpgkey.asc#/%{name}.keyring -# signatures for official patches # official patches -Patch101: readline82-001 -Patch102: readline82-002 -Patch103: readline82-003 -Patch104: readline82-004 -Patch105: readline82-005 -Patch106: readline82-006 -Patch107: readline82-007 -Patch108: readline82-008 -Patch109: readline82-009 -Patch110: readline82-010 -Patch111: readline82-011 -Patch112: readline82-012 -Patch113: readline82-013 -Source101: readline82-001.sig -Source102: readline82-002.sig -Source103: readline82-003.sig -Source104: readline82-004.sig -Source105: readline82-005.sig -Source106: readline82-006.sig -Source107: readline82-007.sig -Source108: readline82-008.sig -Source109: readline82-009.sig -Source110: readline82-010.sig -Source111: readline82-011.sig -Source112: readline82-012.sig -Source113: readline82-013.sig +Patch101: readline83-001 +# signatures for official patches +Source101: readline83-001.sig # local patches Patch200: readline-%{rversion}.dif Patch201: readline-6.3-input.dif @@ -135,18 +111,6 @@ %setup -q -n readline-%{rversion}%{rextend} # official patches %patch -P101 -p0 -%patch -P102 -p0 -%patch -P103 -p0 -%patch -P104 -p0 -%patch -P105 -p0 -%patch -P106 -p0 -%patch -P107 -p0 -%patch -P108 -p0 -%patch -P109 -p0 -%patch -P110 -p0 -%patch -P111 -p0 -%patch -P112 -p0 -%patch -P113 -p0 # local patches %patch -P201 -p2 -b .zerotty %patch -P202 -p2 -b .conf ++++++ baselibs.conf ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.395719915 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.395719915 +0200 @@ -2,9 +2,10 @@ obsoletes "readline-<targettype> <= <version>" provides "readline-<targettype> = <version>" readline-devel - requires -readline-<targettype> - requires "libreadline8-<targettype> = <version>" - conflicts "readline5-devel-<targettype>" - conflicts "readline6-devel-<targettype>" - conflicts "readline7-devel-<targettype>" + requires -readline-<targettype> + requires "libreadline8-<targettype> = <version>" + provides "pkgconfig(readline) = <version>" + conflicts "readline5-devel-<targettype>" + conflicts "readline6-devel-<targettype>" + conflicts "readline7-devel-<targettype>" ++++++ get_version_number.sh ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.415720746 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.419720913 +0200 @@ -5,10 +5,13 @@ test -n "${sourcedir}" || sourcedir=$PWD test -e ${sourcedir}/readline.spec || exit 1 version=$(sed -rn '/^%define[[:space:]]+rversion/{s/^%define[[:space:]]+rversion[[:space:]]+([0-9]+\.[0-9]+)(\.[^\.]+)?/\1/p}' ${sourcedir}/readline.spec) || exit 1 +beta=$(sed -rn '/^%define[[:space:]]+rextend/{s/^%define[[:space:]]+rextend[[:space:]]+([^[:space:]])?/\1/p}' ${sourcedir}/readline.spec) || exit 1 +test "$beta" = "%{nil}" && beta="" || version=${version}${beta} test -e ${sourcedir}/readline-${version}.tar.gz || exit 1 last=($(tar Oxf ${sourcedir}/readline-${version}.tar.gz readline-${version}/configure.ac | sed -rn '/^LIBVERSION/{s/LIBVERSION=//p}')) || exit 1 for p in ${sourcedir}/readline${last//\./}-*[0-9] do + test -e "$p" || { echo 0 ; break; } level=${p##*-} done shopt -s extglob ++++++ readline-5.2-conf.patch ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.435721578 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.439721744 +0200 @@ -5,8 +5,8 @@ 3 files changed, 47 insertions(+), 13 deletions(-) --- lib/readline/bind.c -+++ lib/readline/bind.c 2022-04-28 12:11:29.254618915 +0000 -@@ -962,6 +962,9 @@ rl_trim_arg_from_keyseq (const char *key ++++ lib/readline/bind.c 2025-01-31 11:58:03.693425455 +0000 +@@ -951,6 +951,9 @@ rl_trim_arg_from_keyseq (const char *key /* The last key bindings file read. */ static char *last_readline_init_file = (char *)NULL; @@ -16,7 +16,7 @@ /* The file we're currently reading key bindings from. */ static const char *current_readline_init_file; static int current_readline_init_include_level; -@@ -1029,11 +1032,14 @@ rl_re_read_init_file (int count, int ign +@@ -1030,11 +1033,14 @@ rl_re_read_init_file (int count, int ign return r; } @@ -32,7 +32,7 @@ 4. /etc/inputrc If the file existed and could be opened and read, 0 is returned, otherwise errno is returned. */ -@@ -1042,18 +1048,39 @@ rl_read_init_file (const char *filename) +@@ -1043,18 +1049,39 @@ rl_read_init_file (const char *filename) { /* Default the filename. */ if (filename == 0) @@ -80,7 +80,7 @@ #if defined (__MSDOS__) if (_rl_read_init_file (filename, 0) == 0) return 0; -@@ -1809,7 +1836,14 @@ rl_parse_and_bind (char *string) +@@ -1795,7 +1822,14 @@ rl_parse_and_bind (char *string) rl_macro_bind (seq, &funname[1], _rl_keymap); } else @@ -96,7 +96,7 @@ xfree (seq); return 0; -@@ -1983,7 +2017,6 @@ typedef int _rl_sv_func_t (const char *) +@@ -1972,7 +2006,6 @@ typedef int _rl_sv_func_t (const char *) /* Forward declarations */ static int sv_region_start_color (const char *); static int sv_region_end_color (const char *); @@ -105,11 +105,11 @@ static int sv_dispprefix (const char *); static int sv_compquery (const char *); --- lib/readline/doc/rluser.texi -+++ lib/readline/doc/rluser.texi 2022-04-28 12:10:02.600171100 +0000 -@@ -350,7 +350,8 @@ file is taken from the value of the envi ++++ lib/readline/doc/rluser.texi 2025-01-31 12:00:17.694970362 +0000 +@@ -382,7 +382,8 @@ environment variable @env{INPUTRC}. @end ifclear - that variable is unset, the default is @file{~/.inputrc}. If that - file does not exist or cannot be read, the ultimate default is + If that variable is unset, the default is @file{~/.inputrc}. + If that file does not exist or cannot be read, Readline looks for -@file{/etc/inputrc}. +@file{/etc/inputrc}. If both @file{~/.inputrc} and @file{/etc/inputrc} +exist Readline will read first @file{/etc/inputrc} and then @file{~/.inputrc}. @@ -117,7 +117,7 @@ The @w{@code{bind}} builtin command can also be used to set Readline keybindings and variables. --- lib/readline/rlconf.h -+++ lib/readline/rlconf.h 2022-04-28 12:10:02.600171100 +0000 ++++ lib/readline/rlconf.h 2025-01-31 11:58:03.693425455 +0000 @@ -37,7 +37,7 @@ #define HANDLE_SIGNALS ++++++ readline-6.2-metamode.patch ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.455722410 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.459722576 +0200 @@ -4,7 +4,7 @@ --- lib/readline/bind.c +++ lib/readline/bind.c 2018-09-20 06:40:06.799183658 +0000 -@@ -1956,6 +1956,7 @@ static const struct { +@@ -1945,6 +1945,7 @@ static const struct { #if defined (VISIBLE_STATS) { "visible-stats", &rl_visible_stats, 0 }, #endif /* VISIBLE_STATS */ ++++++ readline-6.2-xmalloc.dif ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.479723408 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.487723740 +0200 @@ -1,11 +1,11 @@ --- xfree.c | 3 +++ xmalloc.c | 5 +++++ - xmalloc.h | 8 ++++++++ - 3 files changed, 16 insertions(+) + xmalloc.h | 9 +++++++++ + 3 files changed, 17 insertions(+) --- xfree.c -+++ xfree.c 2018-09-20 06:41:57.485165699 +0000 ++++ xfree.c 2025-01-31 12:02:53.116122738 +0000 @@ -47,3 +47,6 @@ xfree (PTR_T string) if (string) free (string); @@ -14,7 +14,7 @@ +#undef xfree +extern void xfree PARAMS((void *)) __attribute__ ((weak, alias ("_rl_xfree"))); --- xmalloc.c -+++ xmalloc.c 2018-09-20 06:41:57.485165699 +0000 ++++ xmalloc.c 2025-01-31 12:02:53.116122738 +0000 @@ -73,3 +73,8 @@ xrealloc (PTR_T pointer, size_t bytes) memory_error_and_abort ("xrealloc"); return (temp); @@ -25,9 +25,9 @@ +extern PTR_T xmalloc PARAMS((size_t)) __attribute__ ((weak, alias ("_rl_xmalloc"))); +extern PTR_T xrealloc PARAMS((void *, size_t)) __attribute__ ((weak, alias ("_rl_xrealloc"))); --- xmalloc.h -+++ xmalloc.h 2018-09-20 06:41:57.485165699 +0000 -@@ -38,6 +38,14 @@ - ++++ xmalloc.h 2025-01-31 12:03:55.810973202 +0000 +@@ -32,6 +32,15 @@ + # define PTR_T void * #endif /* !PTR_T */ +#undef xmalloc @@ -38,6 +38,7 @@ +#define xrealloc _rl_xrealloc +#define xfree _rl_xfree + ++ extern PTR_T xmalloc (size_t); extern PTR_T xrealloc (void *, size_t); extern void xfree (void *); ++++++ readline-6.3-destdir.patch ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.503724405 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.507724572 +0200 @@ -5,7 +5,7 @@ --- shlib/Makefile.in +++ shlib/Makefile.in 2020-10-12 15:18:05.027444750 +0000 -@@ -59,6 +59,7 @@ bindir = @bindir@ +@@ -61,6 +61,7 @@ bindir = @bindir@ libdir = @libdir@ datadir = @datadir@ localedir = @localedir@ @@ -13,7 +13,7 @@ # Support an alternate destination root directory for package building DESTDIR = -@@ -192,8 +193,8 @@ installdirs: $(topdir)/support/mkdirs +@@ -194,8 +195,8 @@ installdirs: $(topdir)/support/mkdirs -$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(bindir) install-supported: installdirs $(SHLIB_STATUS) @@ -24,7 +24,7 @@ @echo install: you may need to run ldconfig install-unsupported: -@@ -202,8 +203,8 @@ install-unsupported: +@@ -204,8 +205,8 @@ install-unsupported: install: install-$(SHLIB_STATUS) uninstall-supported: ++++++ readline-6.3-input.dif ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.523725237 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.527725403 +0200 @@ -5,7 +5,7 @@ --- lib/readline/input.c +++ lib/readline/input.c 2018-11-29 08:29:58.432878428 +0000 -@@ -801,6 +801,8 @@ rl_read_key (void) +@@ -833,6 +833,8 @@ rl_read_key (void) return (c); } @@ -14,7 +14,7 @@ int rl_getc (FILE *stream) { -@@ -862,7 +864,10 @@ rl_getc (FILE *stream) +@@ -894,7 +896,10 @@ rl_getc (FILE *stream) /* If zero characters are returned, then the file that we are reading from is empty! Return EOF in that case. */ if (result == 0) @@ -28,7 +28,7 @@ if (errno == EINTR) --- lib/readline/readline.c +++ lib/readline/readline.c 2018-11-29 08:29:58.432878428 +0000 -@@ -557,6 +557,9 @@ _rl_internal_char_cleanup (void) +@@ -567,6 +567,9 @@ _rl_internal_char_cleanup (void) _rl_erase_entire_line (); } @@ -38,7 +38,7 @@ STATIC_CALLBACK int #if defined (READLINE_CALLBACKS) readline_internal_char (void) -@@ -614,6 +617,10 @@ readline_internal_charloop (void) +@@ -629,6 +632,10 @@ readline_internal_charloop (void) c = rl_read_key (); RL_UNSETSTATE(RL_STATE_READCMD); ++++++ readline-6.3-rltrace.patch ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.543726068 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.551726401 +0200 @@ -7,7 +7,7 @@ --- lib/readline/util.c +++ lib/readline/util.c 2018-09-20 06:47:51.238715688 +0000 -@@ -489,10 +489,12 @@ _rl_trace (va_alist) +@@ -471,10 +471,12 @@ _rl_trace (va_alist) if (_rl_tracefp == 0) _rl_tropen (); @@ -21,7 +21,7 @@ va_end (args); } -@@ -512,7 +514,7 @@ _rl_tropen (void) +@@ -494,7 +496,7 @@ _rl_tropen (void) #endif snprintf (fnbuf, sizeof (fnbuf), "%s/rltrace.%ld", x, (long)getpid()); unlink(fnbuf); @@ -30,7 +30,7 @@ return _rl_tracefp != 0; } -@@ -521,7 +523,8 @@ _rl_trclose (void) +@@ -503,7 +505,8 @@ _rl_trclose (void) { int r; ++++++ readline-7.0-screen.patch ++++++ --- /var/tmp/diff_new_pack.Dt8hvU/_old 2025-08-13 16:30:14.567727066 +0200 +++ /var/tmp/diff_new_pack.Dt8hvU/_new 2025-08-13 16:30:14.571727233 +0200 @@ -10,7 +10,7 @@ --- lib/readline/bind.c +++ lib/readline/bind.c 2019-08-16 08:26:42.327029248 +0000 -@@ -1311,19 +1311,34 @@ parser_if (char *args) +@@ -1298,19 +1298,34 @@ parser_if (char *args) word in ARGS is the same as the value stored in rl_readline_name. */ if (rl_terminal_name && _rl_strnicmp (args, "term=", 5) == 0) { ++++++ readline-8.2.dif -> readline-8.3.dif ++++++ --- /work/SRC/openSUSE:Factory/readline/readline-8.2.dif 2024-08-20 16:12:18.931475214 +0200 +++ /work/SRC/openSUSE:Factory/.readline.new.1085/readline-8.3.dif 2025-08-13 16:30:09.087499215 +0200 @@ -1,5 +1,5 @@ --- - Makefile.in | 4 +--- + Makefile.in | 2 -- complete.c | 6 +++--- doc/Makefile.in | 2 +- doc/readline.3 | 11 +++++++++++ @@ -7,11 +7,11 @@ history.h | 1 + readline.h | 3 ++- support/shobj-conf | 5 +++-- - 8 files changed, 23 insertions(+), 11 deletions(-) + 8 files changed, 22 insertions(+), 10 deletions(-) --- Makefile.in -+++ Makefile.in 2022-04-28 12:16:56.148759888 +0000 -@@ -252,10 +252,8 @@ uninstall-pc: ++++ Makefile.in 2025-01-31 12:07:47.226717382 +0000 +@@ -258,10 +258,8 @@ uninstall-pc: maybe-uninstall-pc: uninstall-pc install-static: installdirs $(STATIC_LIBS) install-headers install-doc ${install_examples} install-pc @@ -22,18 +22,9 @@ $(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a -@@ -286,7 +284,7 @@ install-doc: installdirs - $(INSTALL_DATA) $(OTHER_DOCS) $(DESTDIR)$(docdir) - -( if test -d doc ; then \ - cd doc && \ -- ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \ -+ ${MAKE} infodir=$(infodir) DESTDIR=${DESTDIR} install; \ - fi ) - - uninstall-doc: --- complete.c -+++ complete.c 2022-04-28 12:16:56.148759888 +0000 -@@ -1148,7 +1148,7 @@ _rl_find_completion_word (int *fp, int * ++++ complete.c 2025-01-31 12:15:33.358146338 +0000 +@@ -1206,7 +1206,7 @@ _rl_find_completion_word (int *fp, int * /* We didn't find an unclosed quoted substring upon which to do completion, so use the word break characters to find the substring on which to complete. */ @@ -42,7 +33,7 @@ { scan = rl_line_buffer[rl_point]; -@@ -2232,7 +2232,7 @@ rl_completion_matches (const char *text, +@@ -2327,7 +2327,7 @@ rl_completion_matches (const char *text, match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *)); match_list[1] = (char *)NULL; @@ -51,31 +42,31 @@ { if (RL_SIG_RECEIVED ()) { -@@ -2304,7 +2304,7 @@ rl_username_completion_function (const c +@@ -2396,7 +2396,7 @@ rl_username_completion_function (const c + setpwent (); } - #if defined (HAVE_GETPWENT) - while (entry = getpwent ()) + while ((entry = getpwent ())) { /* Null usernames should result in all users as possible completions. */ if (namelen == 0 || (STREQN (username, entry->pw_name, namelen))) --- doc/Makefile.in -+++ doc/Makefile.in 2022-04-28 12:16:56.148759888 +0000 -@@ -107,7 +107,7 @@ DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ ++++ doc/Makefile.in 2025-01-31 12:16:13.733404009 +0000 +@@ -115,7 +115,7 @@ DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ # $(RM) $@ # -${TEXI2PDF} $< --all: info dvi html ps text pdf +-all: info html text pdf dvi +all: info html nodvi: info html text + everything: all ps - xdist: $(DIST_DOCS) --- doc/readline.3 -+++ doc/readline.3 2022-04-28 12:16:56.148759888 +0000 -@@ -119,6 +119,14 @@ environment variable. If that variable - .IR ~/.inputrc . - If that file does not exist or cannot be read, the ultimate default is ++++ doc/readline.3 2025-01-31 12:18:24.554998839 +0000 +@@ -181,6 +181,14 @@ If that variable is unset, the default i + .IR \*~/.inputrc . + If that file does not exist or cannot be read, \fBreadline\fP looks for .IR /etc/inputrc . +If both files +.I ~/.inputrc @@ -85,12 +76,12 @@ +.I /etc/inputrc +and then +.IR ~/.inputrc . - When a program which uses the readline library starts up, the - init file is read, and the key bindings and variables are set. - There are only a few basic constructs allowed in the -@@ -1564,6 +1572,9 @@ VI Command Mode functions + When a program that uses the \fBreadline\fP library starts up, + \fBreadline\fP reads the initialization file + and sets the key bindings and variables found there, +@@ -1852,6 +1860,9 @@ VI Command Mode functions .TP - .FN ~/.inputrc + .FN \*~/.inputrc Individual \fBreadline\fP initialization file +.TP +.FN /etc/inputrc @@ -99,8 +90,8 @@ .SH AUTHORS Brian Fox, Free Software Foundation --- examples/fileman.c -+++ examples/fileman.c 2022-04-28 12:26:35.022374539 +0000 -@@ -377,7 +377,7 @@ com_stat (arg) ++++ examples/fileman.c 2025-01-31 12:07:47.230717309 +0000 +@@ -333,7 +333,7 @@ com_stat (char *arg) printf ("Statistics for `%s':\n", arg); @@ -110,7 +101,7 @@ finfo.st_nlink, (finfo.st_nlink == 1) ? "" : "s", --- history.h -+++ history.h 2022-04-28 12:16:56.152759816 +0000 ++++ history.h 2025-01-31 12:07:47.230717309 +0000 @@ -32,6 +32,7 @@ extern "C" { # include "rlstdc.h" # include "rltypedefs.h" @@ -120,7 +111,7 @@ # include <readline/rltypedefs.h> #endif --- readline.h -+++ readline.h 2022-04-28 12:17:48.115828027 +0000 ++++ readline.h 2025-01-31 12:07:47.230717309 +0000 @@ -32,6 +32,7 @@ extern "C" { # include "keymaps.h" # include "tilde.h" @@ -129,7 +120,7 @@ # include <readline/rlstdc.h> # include <readline/rltypedefs.h> # include <readline/keymaps.h> -@@ -496,7 +497,7 @@ extern char *rl_filename_completion_func +@@ -498,7 +499,7 @@ extern char *rl_filename_completion_func extern int rl_completion_mode (rl_command_func_t *); @@ -139,7 +130,7 @@ extern void free_undo_list (void); extern int maybe_save_line (void); --- support/shobj-conf -+++ support/shobj-conf 2022-04-28 12:18:35.078985803 +0000 ++++ support/shobj-conf 2025-01-31 12:07:47.230717309 +0000 @@ -126,10 +126,11 @@ sunos5*|solaris2*) linux*-*|gnu*-*|k*bsd*-gnu-*|midnightbsd*|freebsd*|dragonfly*) SHOBJ_CFLAGS=-fPIC ++++++ readline-8.2.tar.gz -> readline-8.3.tar.gz ++++++ ++++ 89258 lines of diff (skipped) ++++++ readline-8.2.dif -> readline83-001 ++++++ --- /work/SRC/openSUSE:Factory/readline/readline-8.2.dif 2024-08-20 16:12:18.931475214 +0200 +++ /work/SRC/openSUSE:Factory/.readline.new.1085/readline83-001 2025-08-13 16:30:10.103541459 +0200 @@ -1,156 +1,64 @@ ---- - Makefile.in | 4 +--- - complete.c | 6 +++--- - doc/Makefile.in | 2 +- - doc/readline.3 | 11 +++++++++++ - examples/fileman.c | 2 +- - history.h | 1 + - readline.h | 3 ++- - support/shobj-conf | 5 +++-- - 8 files changed, 23 insertions(+), 11 deletions(-) - ---- Makefile.in -+++ Makefile.in 2022-04-28 12:16:56.148759888 +0000 -@@ -252,10 +252,8 @@ uninstall-pc: - maybe-uninstall-pc: uninstall-pc - - install-static: installdirs $(STATIC_LIBS) install-headers install-doc ${install_examples} install-pc -- -$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old - $(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a - -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libreadline.a -- -$(MV) $(DESTDIR)$(libdir)/libhistory.a $(DESTDIR)$(libdir)/libhistory.old - $(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a - -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a - -@@ -286,7 +284,7 @@ install-doc: installdirs - $(INSTALL_DATA) $(OTHER_DOCS) $(DESTDIR)$(docdir) - -( if test -d doc ; then \ - cd doc && \ -- ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \ -+ ${MAKE} infodir=$(infodir) DESTDIR=${DESTDIR} install; \ - fi ) - - uninstall-doc: ---- complete.c -+++ complete.c 2022-04-28 12:16:56.148759888 +0000 -@@ -1148,7 +1148,7 @@ _rl_find_completion_word (int *fp, int * - /* We didn't find an unclosed quoted substring upon which to do - completion, so use the word break characters to find the - substring on which to complete. */ -- while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY)) -+ while ((rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))) - { - scan = rl_line_buffer[rl_point]; - -@@ -2232,7 +2232,7 @@ rl_completion_matches (const char *text, - match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *)); - match_list[1] = (char *)NULL; - -- while (string = (*entry_function) (text, matches)) -+ while ((string = (*entry_function) (text, matches))) - { - if (RL_SIG_RECEIVED ()) - { -@@ -2304,7 +2304,7 @@ rl_username_completion_function (const c - } - - #if defined (HAVE_GETPWENT) -- while (entry = getpwent ()) -+ while ((entry = getpwent ())) - { - /* Null usernames should result in all users as possible completions. */ - if (namelen == 0 || (STREQN (username, entry->pw_name, namelen))) ---- doc/Makefile.in -+++ doc/Makefile.in 2022-04-28 12:16:56.148759888 +0000 -@@ -107,7 +107,7 @@ DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ - # $(RM) $@ - # -${TEXI2PDF} $< - --all: info dvi html ps text pdf -+all: info html - nodvi: info html text - - xdist: $(DIST_DOCS) ---- doc/readline.3 -+++ doc/readline.3 2022-04-28 12:16:56.148759888 +0000 -@@ -119,6 +119,14 @@ environment variable. If that variable - .IR ~/.inputrc . - If that file does not exist or cannot be read, the ultimate default is - .IR /etc/inputrc . -+If both files -+.I ~/.inputrc -+and -+.I /etc/inputrc -+exist readline will read first -+.I /etc/inputrc -+and then -+.IR ~/.inputrc . - When a program which uses the readline library starts up, the - init file is read, and the key bindings and variables are set. - There are only a few basic constructs allowed in the -@@ -1564,6 +1572,9 @@ VI Command Mode functions - .TP - .FN ~/.inputrc - Individual \fBreadline\fP initialization file -+.TP -+.FN /etc/inputrc -+System \fBreadline\fP initialization file - .PD - .SH AUTHORS - Brian Fox, Free Software Foundation ---- examples/fileman.c -+++ examples/fileman.c 2022-04-28 12:26:35.022374539 +0000 -@@ -377,7 +377,7 @@ com_stat (arg) - - printf ("Statistics for `%s':\n", arg); - -- printf ("%s has %d link%s, and is %lu byte%s in length.\n", -+ printf ("%s has %lu link%s, and is %lu byte%s in length.\n", - arg, - finfo.st_nlink, - (finfo.st_nlink == 1) ? "" : "s", ---- history.h -+++ history.h 2022-04-28 12:16:56.152759816 +0000 -@@ -32,6 +32,7 @@ extern "C" { - # include "rlstdc.h" - # include "rltypedefs.h" - #else -+# include <stdio.h> - # include <readline/rlstdc.h> - # include <readline/rltypedefs.h> - #endif ---- readline.h -+++ readline.h 2022-04-28 12:17:48.115828027 +0000 -@@ -32,6 +32,7 @@ extern "C" { - # include "keymaps.h" - # include "tilde.h" - #else -+# include <stdio.h> - # include <readline/rlstdc.h> - # include <readline/rltypedefs.h> - # include <readline/keymaps.h> -@@ -496,7 +497,7 @@ extern char *rl_filename_completion_func - - extern int rl_completion_mode (rl_command_func_t *); - --#if 0 -+#ifdef OLD_READLINE - /* Backwards compatibility (compat.c). These will go away sometime. */ - extern void free_undo_list (void); - extern int maybe_save_line (void); ---- support/shobj-conf -+++ support/shobj-conf 2022-04-28 12:18:35.078985803 +0000 -@@ -126,10 +126,11 @@ sunos5*|solaris2*) - linux*-*|gnu*-*|k*bsd*-gnu-*|midnightbsd*|freebsd*|dragonfly*) - SHOBJ_CFLAGS=-fPIC - SHOBJ_LD='${CC}' -- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' -+ SHOBJ_LDFLAGS='-shared' - -- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' -+ SHLIB_XLDFLAGS='-Wl,-rpath-link,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' - SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' -+ echo 'int main () { return 0; }' | gcc -ltinfo -o /dev/null -xc - > /dev/null 2>&1 && SHLIB_LIBS=-ltinfo || SHLIB_LIBS=-lncurses - ;; - - # Darwin/MacOS X + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.3 +Patch-ID: readline83-001 + +Bug-Reported-by: Dmitri A. Sergatskov <dasergats...@gmail.com> +Bug-Reference-ID: <CAO+XyQ+ipUzFiXvRrDbTstfm1heZrerjvZGVaC60y=txmgy...@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