Accepting request 1139151 from Base:System
- Add upstream patch readline82-008 * Add missing prototypes for several function declarations - Add upstream patch readline82-009 * Fix issue where the directory name portion of the word to be completed (the part that is passed to opendir()) requires both tilde expansion and dequoting. Readline only performed tilde expansion in this case, so filename completion would fail. - Add upstream patch readline82-010 * Fix the case where text to be completed from the line buffer (quoted) is compared to the common prefix of the possible matches (unquoted) and the quoting makes the former appear to be longer than the latter. Readline assumes the match doesn't add any characters to the word and doesn't display multiple matches. - Port patches * readline-5.2-conf.patch * readline-6.2-metamode.patch * readline-7.0-screen.patch * readline-8.2.dif OBS-URL: https://build.opensuse.org/request/show/1139151 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/readline?expand=0&rev=16
This commit is contained in:
commit
f49e7d59fd
15
get_version_number.sh
Normal file
15
get_version_number.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# Note: this file is used in the spec file, do not remove it
|
||||
# Print the highest version number of the patches from the archive
|
||||
sourcedir=$1
|
||||
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
|
||||
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
|
||||
level=${p##*-}
|
||||
done
|
||||
shopt -s extglob
|
||||
echo ${level##+(0)}
|
@ -80,7 +80,7 @@
|
||||
#if defined (__MSDOS__)
|
||||
if (_rl_read_init_file (filename, 0) == 0)
|
||||
return 0;
|
||||
@@ -1811,7 +1838,14 @@ rl_parse_and_bind (char *string)
|
||||
@@ -1809,7 +1836,14 @@ rl_parse_and_bind (char *string)
|
||||
rl_macro_bind (seq, &funname[1], _rl_keymap);
|
||||
}
|
||||
else
|
||||
@ -96,7 +96,7 @@
|
||||
|
||||
xfree (seq);
|
||||
return 0;
|
||||
@@ -1985,7 +2019,6 @@ typedef int _rl_sv_func_t (const char *)
|
||||
@@ -1983,7 +2017,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 *);
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
--- lib/readline/bind.c
|
||||
+++ lib/readline/bind.c 2018-09-20 06:40:06.799183658 +0000
|
||||
@@ -1958,6 +1958,7 @@ static const struct {
|
||||
@@ -1956,6 +1956,7 @@ static const struct {
|
||||
#if defined (VISIBLE_STATS)
|
||||
{ "visible-stats", &rl_visible_stats, 0 },
|
||||
#endif /* VISIBLE_STATS */
|
||||
|
@ -10,7 +10,7 @@ This helps to get /etc/inputrc work for most users.
|
||||
|
||||
--- lib/readline/bind.c
|
||||
+++ lib/readline/bind.c 2019-08-16 08:26:42.327029248 +0000
|
||||
@@ -1313,19 +1313,34 @@ parser_if (char *args)
|
||||
@@ -1311,19 +1311,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)
|
||||
{
|
||||
|
@ -43,7 +43,7 @@
|
||||
{
|
||||
scan = rl_line_buffer[rl_point];
|
||||
|
||||
@@ -2216,7 +2216,7 @@ rl_completion_matches (const char *text,
|
||||
@@ -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;
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
{
|
||||
if (RL_SIG_RECEIVED ())
|
||||
{
|
||||
@@ -2288,7 +2288,7 @@ rl_username_completion_function (const c
|
||||
@@ -2304,7 +2304,7 @@ rl_username_completion_function (const c
|
||||
}
|
||||
|
||||
#if defined (HAVE_GETPWENT)
|
||||
|
@ -1,3 +1,25 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 16 07:49:48 UTC 2024 - Dr. Werner Fink <werner@suse.de>
|
||||
|
||||
- Add upstream patch readline82-008
|
||||
* Add missing prototypes for several function declarations
|
||||
- Add upstream patch readline82-009
|
||||
* Fix issue where the directory name portion of the word to be
|
||||
completed (the part that is passed to opendir()) requires both
|
||||
tilde expansion and dequoting. Readline only performed tilde
|
||||
expansion in this case, so filename completion would fail.
|
||||
- Add upstream patch readline82-010
|
||||
* Fix the case where text to be completed from the line buffer
|
||||
(quoted) is compared to the common prefix of the possible
|
||||
matches (unquoted) and the quoting makes the former appear to
|
||||
be longer than the latter. Readline assumes the match doesn't
|
||||
add any characters to the word and doesn't display multiple matches.
|
||||
- Port patches
|
||||
* readline-5.2-conf.patch
|
||||
* readline-6.2-metamode.patch
|
||||
* readline-7.0-screen.patch
|
||||
* readline-8.2.dif
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 21 07:04:06 UTC 2023 - Dr. Werner Fink <werner@suse.de>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package readline
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -18,18 +18,21 @@
|
||||
|
||||
%define rl_major 8
|
||||
%define rextend %{nil}
|
||||
%define rversion 8.2
|
||||
%define rpatchlvl %(bash %{_sourcedir}/get_version_number.sh %{_sourcedir})
|
||||
|
||||
Name: readline
|
||||
Version: 8.2
|
||||
Version: %{rversion}.%{rpatchlvl}
|
||||
Release: 0
|
||||
Summary: The readline library
|
||||
License: GPL-3.0-or-later
|
||||
Group: Development/Libraries/C and C++
|
||||
URL: https://www.gnu.org/software/readline/
|
||||
# Git: http://git.savannah.gnu.org/cgit/bash.git
|
||||
Source0: https://ftp.gnu.org/gnu/readline/readline-%{version}%{rextend}.tar.gz
|
||||
Source1: https://ftp.gnu.org/gnu/readline/readline-%{version}%{rextend}.tar.gz.sig
|
||||
Source0: https://ftp.gnu.org/gnu/readline/readline-%{rversion}%{rextend}.tar.gz
|
||||
Source1: https://ftp.gnu.org/gnu/readline/readline-%{rversion}%{rextend}.tar.gz.sig
|
||||
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
|
||||
@ -40,6 +43,9 @@ Patch104: readline82-004
|
||||
Patch105: readline82-005
|
||||
Patch106: readline82-006
|
||||
Patch107: readline82-007
|
||||
Patch108: readline82-008
|
||||
Patch109: readline82-009
|
||||
Patch110: readline82-010
|
||||
Source101: readline82-001.sig
|
||||
Source102: readline82-002.sig
|
||||
Source103: readline82-003.sig
|
||||
@ -47,8 +53,11 @@ 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
|
||||
# local patches
|
||||
Patch200: readline-%{version}.dif
|
||||
Patch200: readline-%{rversion}.dif
|
||||
Patch201: readline-6.3-input.dif
|
||||
Patch202: readline-5.2-conf.patch
|
||||
Patch203: readline-6.2-metamode.patch
|
||||
@ -75,7 +84,8 @@ Summary: The Readline Library
|
||||
Group: System/Libraries
|
||||
Suggests: readline-doc = %{version}
|
||||
Provides: bash:/%{_lib}/libreadline.so.%{rl_major}
|
||||
Provides: readline = %{version}
|
||||
Provides: libreadline%{rl_major} = %{rversion}
|
||||
Provides: readline = %{rversion}
|
||||
Obsoletes: readline <= 6.3
|
||||
|
||||
%description -n libreadline%{rl_major}
|
||||
@ -86,7 +96,8 @@ includes history and search functionality.
|
||||
%package devel
|
||||
Summary: Development files for readline
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libreadline%{rl_major} = %{version}
|
||||
Provides: pkgconfig(readline) = %{rversion}
|
||||
Requires: libreadline%{rl_major} >= %{rversion}
|
||||
Requires: ncurses-devel
|
||||
Recommends: readline-doc = %{version}
|
||||
|
||||
@ -115,7 +126,7 @@ This package contains the documentation for using the readline library
|
||||
as well as programming with the interface of the readline library.
|
||||
|
||||
%prep
|
||||
%setup -q -n readline-%{version}%{rextend}
|
||||
%setup -q -n readline-%{rversion}%{rextend}
|
||||
# official patches
|
||||
%patch -P101 -p0
|
||||
%patch -P102 -p0
|
||||
@ -124,6 +135,9 @@ as well as programming with the interface of the readline library.
|
||||
%patch -P105 -p0
|
||||
%patch -P106 -p0
|
||||
%patch -P107 -p0
|
||||
%patch -P108 -p0
|
||||
%patch -P109 -p0
|
||||
%patch -P110 -p0
|
||||
# local patches
|
||||
%patch -P201 -p2 -b .zerotty
|
||||
%patch -P202 -p2 -b .conf
|
||||
@ -240,7 +254,7 @@ LARGEFILE="$(getconf LFS_CFLAGS)"
|
||||
found=0
|
||||
for rl in %{_libdir}/libreadline.so.*.*
|
||||
do
|
||||
test READLINE_${rl##/*.so.} = READLINE_%{version} && found=1
|
||||
test READLINE_${rl##/*.so.} = READLINE_%{rversion} && found=1
|
||||
done
|
||||
if test $found = 0
|
||||
then
|
||||
@ -292,9 +306,9 @@ export CC_FOR_BUILD CFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD CFLAGS LDFLAGS CC
|
||||
%files -n libreadline%{rl_major}
|
||||
%license COPYING
|
||||
%{_libdir}/libhistory.so.%{rl_major}
|
||||
%{_libdir}/libhistory.so.%{version}
|
||||
%{_libdir}/libhistory.so.%{rversion}
|
||||
%{_libdir}/libreadline.so.%{rl_major}
|
||||
%{_libdir}/libreadline.so.%{version}
|
||||
%{_libdir}/libreadline.so.%{rversion}
|
||||
|
||||
%files devel
|
||||
%{_includedir}/readline/
|
||||
|
77
readline82-008
Normal file
77
readline82-008
Normal file
@ -0,0 +1,77 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.2
|
||||
Patch-ID: readline82-008
|
||||
|
||||
Bug-Reported-by:
|
||||
Bug-Reference-ID:
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Add missing prototypes for several function declarations.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../readline-8.2-patched/text.c Wed Oct 27 11:03:59 2021
|
||||
--- text.c Thu Nov 16 16:24:58 2023
|
||||
***************
|
||||
*** 1765,1770 ****
|
||||
#if defined (READLINE_CALLBACKS)
|
||||
static int
|
||||
! _rl_char_search_callback (data)
|
||||
! _rl_callback_generic_arg *data;
|
||||
{
|
||||
_rl_callback_func = 0;
|
||||
--- 1765,1769 ----
|
||||
#if defined (READLINE_CALLBACKS)
|
||||
static int
|
||||
! _rl_char_search_callback (_rl_callback_generic_arg *data)
|
||||
{
|
||||
_rl_callback_func = 0;
|
||||
*** ../readline-8.2-patched/bind.c Wed Feb 9 11:02:22 2022
|
||||
--- bind.c Thu Nov 16 16:25:17 2023
|
||||
***************
|
||||
*** 1168,1174 ****
|
||||
|
||||
static int
|
||||
! parse_comparison_op (s, indp)
|
||||
! const char *s;
|
||||
! int *indp;
|
||||
{
|
||||
int i, peekc, op;
|
||||
--- 1168,1172 ----
|
||||
|
||||
static int
|
||||
! parse_comparison_op (const char *s, int *indp)
|
||||
{
|
||||
int i, peekc, op;
|
||||
*** ../readline-8.2-patched/rltty.c Fri Feb 18 11:14:22 2022
|
||||
--- rltty.c Thu Nov 16 16:25:36 2023
|
||||
***************
|
||||
*** 81,86 ****
|
||||
to get the tty settings. */
|
||||
static void
|
||||
! set_winsize (tty)
|
||||
! int tty;
|
||||
{
|
||||
#if defined (TIOCGWINSZ)
|
||||
--- 81,85 ----
|
||||
to get the tty settings. */
|
||||
static void
|
||||
! set_winsize (int tty)
|
||||
{
|
||||
#if defined (TIOCGWINSZ)
|
||||
|
||||
*** ../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
|
||||
|
||||
! 7
|
||||
--- 1,3 ----
|
||||
# Do not edit -- exists only for use by patch
|
||||
|
||||
! 8
|
BIN
readline82-008.sig
Normal file
BIN
readline82-008.sig
Normal file
Binary file not shown.
73
readline82-009
Normal file
73
readline82-009
Normal file
@ -0,0 +1,73 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.2
|
||||
Patch-ID: readline82-009
|
||||
|
||||
Bug-Reported-by: Stefan H. Holek <stefan@epy.co.at>
|
||||
Bug-Reference-ID: <50F8DA45-B7F3-4DE1-AB94-19AE42649CDC@epy.co.at>
|
||||
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00021.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Fix issue where the directory name portion of the word to be completed (the
|
||||
part that is passed to opendir()) requires both tilde expansion and dequoting.
|
||||
Readline only performed tilde expansion in this case, so filename completion
|
||||
would fail.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../readline-8.2-patched/complete.c 2022-04-05 10:47:06.000000000 -0400
|
||||
--- complete.c 2022-10-26 15:08:51.000000000 -0400
|
||||
***************
|
||||
*** 2527,2531 ****
|
||||
xfree (dirname);
|
||||
dirname = temp;
|
||||
! tilde_dirname = 1;
|
||||
}
|
||||
|
||||
--- 2527,2532 ----
|
||||
xfree (dirname);
|
||||
dirname = temp;
|
||||
! if (*dirname != '~')
|
||||
! tilde_dirname = 1; /* indicate successful tilde expansion */
|
||||
}
|
||||
|
||||
***************
|
||||
*** 2546,2554 ****
|
||||
users_dirname = savestring (dirname);
|
||||
}
|
||||
! else if (tilde_dirname == 0 && rl_completion_found_quote && rl_filename_dequoting_function)
|
||||
{
|
||||
! /* delete single and double quotes */
|
||||
xfree (dirname);
|
||||
! dirname = savestring (users_dirname);
|
||||
}
|
||||
directory = opendir (dirname);
|
||||
--- 2547,2560 ----
|
||||
users_dirname = savestring (dirname);
|
||||
}
|
||||
! else if (rl_completion_found_quote && rl_filename_dequoting_function)
|
||||
{
|
||||
! /* We already ran users_dirname through the dequoting function.
|
||||
! If tilde_dirname == 1, we successfully performed tilde expansion
|
||||
! on dirname. Now we need to reconcile those results. We either
|
||||
! just copy the already-dequoted users_dirname or tilde expand it
|
||||
! if we tilde-expanded dirname. */
|
||||
! temp = tilde_dirname ? tilde_expand (users_dirname) : savestring (users_dirname);
|
||||
xfree (dirname);
|
||||
! dirname = temp;
|
||||
}
|
||||
directory = opendir (dirname);
|
||||
|
||||
*** ../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
|
||||
|
||||
! 8
|
||||
--- 1,3 ----
|
||||
# Do not edit -- exists only for use by patch
|
||||
|
||||
! 9
|
BIN
readline82-009.sig
Normal file
BIN
readline82-009.sig
Normal file
Binary file not shown.
67
readline82-010
Normal file
67
readline82-010
Normal file
@ -0,0 +1,67 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.2
|
||||
Patch-ID: readline82-010
|
||||
|
||||
Bug-Reported-by: Martin Castillo <castilma@uni-bremen.de>
|
||||
Bug-Reference-ID: <2d42153b-cf65-caba-dff1-cd3bc6268c7e@uni-bremen.de>
|
||||
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2023-01/msg00000.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Fix the case where text to be completed from the line buffer (quoted) is
|
||||
compared to the common prefix of the possible matches (unquoted) and the
|
||||
quoting makes the former appear to be longer than the latter. Readline
|
||||
assumes the match doesn't add any characters to the word and doesn't display
|
||||
multiple matches.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../readline-8.2-patched/complete.c Tue Apr 5 10:47:06 2022
|
||||
--- complete.c Sat Jan 7 14:19:45 2023
|
||||
***************
|
||||
*** 2032,2038 ****
|
||||
text = rl_copy_text (start, end);
|
||||
matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
|
||||
/* nontrivial_lcd is set if the common prefix adds something to the word
|
||||
being completed. */
|
||||
! nontrivial_lcd = matches && compare_match (text, matches[0]) != 0;
|
||||
if (what_to_do == '!' || what_to_do == '@')
|
||||
tlen = strlen (text);
|
||||
--- 2038,2060 ----
|
||||
text = rl_copy_text (start, end);
|
||||
matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
|
||||
+ /* If TEXT contains quote characters, it will be dequoted as part of
|
||||
+ generating the matches, and the matches will not contain any quote
|
||||
+ characters. We need to dequote TEXT before performing the comparison.
|
||||
+ Since compare_match performs the dequoting, and we only want to do it
|
||||
+ once, we don't call compare_matches after dequoting TEXT; we call
|
||||
+ strcmp directly. */
|
||||
/* nontrivial_lcd is set if the common prefix adds something to the word
|
||||
being completed. */
|
||||
! if (rl_filename_completion_desired && rl_filename_quoting_desired &&
|
||||
! rl_completion_found_quote && rl_filename_dequoting_function)
|
||||
! {
|
||||
! char *t;
|
||||
! t = (*rl_filename_dequoting_function) (text, rl_completion_quote_character);
|
||||
! xfree (text);
|
||||
! text = t;
|
||||
! nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
|
||||
! }
|
||||
! else
|
||||
! nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
|
||||
if (what_to_do == '!' || what_to_do == '@')
|
||||
tlen = strlen (text);
|
||||
|
||||
*** ../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
|
||||
|
||||
! 9
|
||||
--- 1,3 ----
|
||||
# Do not edit -- exists only for use by patch
|
||||
|
||||
! 10
|
BIN
readline82-010.sig
Normal file
BIN
readline82-010.sig
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user