forked from pool/readline
Accepting request 821348 from home:AndreasStieger:branches:Base:System
- add upstream keyring and verify source signature - change custom handling of official upstream patches to standard, and verify signatures on official patches OBS-URL: https://build.opensuse.org/request/show/821348 OBS-URL: https://build.opensuse.org/package/show/Base:System/readline?expand=0&rev=21
This commit is contained in:
parent
783fe2a80b
commit
8583adf1cc
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:aedc170e9734144597d14354a861c72d2288a20a8f96179b6a821066d828082a
|
|
||||||
size 2426
|
|
BIN
readline-8.0.tar.gz.sig
Normal file
BIN
readline-8.0.tar.gz.sig
Normal file
Binary file not shown.
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jul 16 19:13:54 UTC 2020 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||||
|
|
||||||
|
- add upstream keyring and verify source signature
|
||||||
|
- change custom handling of official upstream patches to standard,
|
||||||
|
and verify signatures on official patches
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Feb 13 11:10:31 UTC 2020 - Dr. Werner Fink <werner@suse.de>
|
Thu Feb 13 11:10:31 UTC 2020 - Dr. Werner Fink <werner@suse.de>
|
||||||
|
|
||||||
|
24
readline.keyring
Normal file
24
readline.keyring
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: GnuPG v1.2.4 (Darwin)
|
||||||
|
|
||||||
|
mQGiBEEOsGwRBACFa0A1oa71HSZLWxAx0svXzhOZNQZOzqHmSuGOG92jIpQpr8Dp
|
||||||
|
vgRh40YpAwdcXb8QG1J5yGAKeevNE1zCFaA725vGSdHUyypHouV0xoWwukYO6qly
|
||||||
|
yX+2BZU+okBUqoWQkoWxiYaCSfzB2Ln7pmdys1fJhcgBKf3VjWCjd2XJTwCgoFJO
|
||||||
|
wyBFJdugjfwjSoRSwDOIMf0D/iQKqlWhIO1LGpMrGX0il0/x4zj0NAcSwAk7LaPZ
|
||||||
|
bN4UPjn5pqGEHBlf1+xDDQCkAoZ/VqESGZragl4VqJfxBr29Ag0UDvNbUbXoxQsA
|
||||||
|
Rdero1M8GiAIRc50hj7HXFoERwenbNDJL86GPLAQOTGOCa4W2o29nFfFjQrsrrYH
|
||||||
|
zVtyA/9oyKvTeEMJ7NA3VJdWcmn7gOu0FxEmSNhSoV1T4vP21Wf7f5niCCRKQLNy
|
||||||
|
Uy0wEApQi4tSysdz+AbgAc0b/bHYVzIf2uO2lIEZQNNt+3g2bmXgloWmW5fsm/di
|
||||||
|
50Gm1l1Na63d3RZ00SeFQos6WEwLUHEB0yp6KXluXLLIZitEJLQaQ2hldCBSYW1l
|
||||||
|
eSA8Y2hldEBjd3J1LmVkdT6IXgQTEQIAHgUCQQ6wbAIbAwYLCQgHAwIDFQIDAxYC
|
||||||
|
AQIeAQIXgAAKCRC7WGnwZOp0q87NAJ99FEzFvDdYzqCczXF6KKXi7YN5OACfacDY
|
||||||
|
soZcnnsy7EjBZL0zwGwb/sG5AQ0EQQ6wbxAEAJCukwDigRDPhAuI+lf+6P64lWan
|
||||||
|
IFOXIndqhvU13cDbQ/Wt5LwPzm2QTvd7F+fcHOgZ8KOFScbDpjJaRqwIybMTcIN0
|
||||||
|
B2pBLX/C10W1aY+cUrXZgXUGVISEMmpaP9v02auToo7XXVEHC+XLO9IU7/xaU98F
|
||||||
|
L69l6/K4xeNSBRM/AAMHA/wNAmRBpcyK0+VggZ5esQaIP/LyolAm2qwcmrd3dZi+
|
||||||
|
g24s7yjV0EUwvRP7xHRDQFgkAo6++QbuecU/J90lxrVnQwucZmfz9zgWDkT/MpfB
|
||||||
|
/CNRSKLFjhYq2yHmHWT6vEjw9Ry/hF6Pc0oh1a62USdfaKAiim0nVxxQmPmiRvtC
|
||||||
|
mYhJBBgRAgAJBQJBDrBvAhsMAAoJELtYafBk6nSr43AAn2ZZFQg8Gs/zUzvXMt7e
|
||||||
|
vaFqVTzcAJ0cHtKpP1i/4H4R9+OsYeQdxxWxTQ==
|
||||||
|
=2MjR
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
126
readline.spec
126
readline.spec
@ -16,51 +16,61 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define rl_major 8
|
||||||
Name: readline
|
Name: readline
|
||||||
BuildRequires: autoconf
|
|
||||||
BuildRequires: fdupes
|
|
||||||
%if %suse_version > 1220
|
|
||||||
BuildRequires: makeinfo
|
|
||||||
%endif
|
|
||||||
BuildRequires: ncurses-devel
|
|
||||||
BuildRequires: patchutils
|
|
||||||
BuildRequires: pkg-config
|
|
||||||
BuildRequires: sed
|
|
||||||
%define rextend %nil
|
|
||||||
Version: 8.0
|
Version: 8.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: The readline library
|
Summary: The readline library
|
||||||
License: GPL-3.0-or-later
|
License: GPL-3.0-or-later
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
URL: http://www.gnu.org/software/readline/
|
URL: https://www.gnu.org/software/readline/
|
||||||
# Git: http://git.savannah.gnu.org/cgit/bash.git
|
# Git: http://git.savannah.gnu.org/cgit/bash.git
|
||||||
Source0: ftp://ftp.gnu.org/gnu/readline/readline-%{version}%{rextend}.tar.gz
|
Source0: ftp://ftp.gnu.org/gnu/readline/readline-%{version}.tar.gz
|
||||||
Source1: readline-%{version}-patches.tar.bz2
|
Source1: ftp://ftp.gnu.org/gnu/readline/readline-%{version}.tar.gz.sig
|
||||||
Source2: baselibs.conf
|
Source2: baselibs.conf
|
||||||
Patch0: readline-%{version}.dif
|
Source4: https://tiswww.case.edu/php/chet/gpgkey.asc#/%{name}.keyring
|
||||||
Patch1: readline-6.3-input.dif
|
# signatures for official patches
|
||||||
Patch2: readline-5.2-conf.patch
|
Source101: ftp://ftp.gnu.org/gnu/readline/readline-%{version}-patches/readline80-001.sig
|
||||||
Patch3: readline-6.2-metamode.patch
|
Source102: ftp://ftp.gnu.org/gnu/readline/readline-%{version}-patches/readline80-002.sig
|
||||||
Patch5: readline-6.2-xmalloc.dif
|
Source103: ftp://ftp.gnu.org/gnu/readline/readline-%{version}-patches/readline80-003.sig
|
||||||
Patch6: readline-6.3-destdir.patch
|
Source104: ftp://ftp.gnu.org/gnu/readline/readline-%{version}-patches/readline80-004.sig
|
||||||
Patch7: readline-6.3-rltrace.patch
|
# official patches
|
||||||
Patch8: readline-7.0-screen.patch
|
Patch101: ftp://ftp.gnu.org/gnu/readline/readline-%{version}-patches/readline80-001
|
||||||
%{expand: %%global rl_major %(echo %{version} | sed -r 's/.[0-9]+//g')}
|
Patch102: ftp://ftp.gnu.org/gnu/readline/readline-%{version}-patches/readline80-002
|
||||||
|
Patch103: ftp://ftp.gnu.org/gnu/readline/readline-%{version}-patches/readline80-003
|
||||||
|
Patch104: ftp://ftp.gnu.org/gnu/readline/readline-%{version}-patches/readline80-004
|
||||||
|
# local patches
|
||||||
|
Patch200: readline-%{version}.dif
|
||||||
|
Patch201: readline-6.3-input.dif
|
||||||
|
Patch202: readline-5.2-conf.patch
|
||||||
|
Patch203: readline-6.2-metamode.patch
|
||||||
|
Patch205: readline-6.2-xmalloc.dif
|
||||||
|
Patch206: readline-6.3-destdir.patch
|
||||||
|
Patch207: readline-6.3-rltrace.patch
|
||||||
|
Patch208: readline-7.0-screen.patch
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: ncurses-devel
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
#
|
||||||
|
%if 0%{?suse_version} > 1220
|
||||||
|
BuildRequires: makeinfo
|
||||||
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The readline library is used by the Bourne Again Shell (bash, the
|
The readline library is used by the Bourne Again Shell (bash, the
|
||||||
standard command interpreter) for easy editing of command lines. This
|
standard command interpreter) for easy editing of command lines. This
|
||||||
includes history and search functionality.
|
includes history and search functionality.
|
||||||
|
|
||||||
%package -n libreadline8
|
%package -n libreadline%{rl_major}
|
||||||
Summary: The Readline Library
|
Summary: The Readline Library
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
Provides: bash:/%{_lib}/libreadline.so.%{rl_major}
|
|
||||||
Suggests: readline-doc = %{version}
|
Suggests: readline-doc = %{version}
|
||||||
|
Provides: bash:/%{_lib}/libreadline.so.%{rl_major}
|
||||||
Provides: readline = %{version}
|
Provides: readline = %{version}
|
||||||
Obsoletes: readline <= 6.3
|
Obsoletes: readline <= 6.3
|
||||||
|
|
||||||
%description -n libreadline8
|
%description -n libreadline%{rl_major}
|
||||||
The readline library is used by the Bourne Again Shell (bash, the
|
The readline library is used by the Bourne Again Shell (bash, the
|
||||||
standard command interpreter) for easy editing of command lines. This
|
standard command interpreter) for easy editing of command lines. This
|
||||||
includes history and search functionality.
|
includes history and search functionality.
|
||||||
@ -68,7 +78,7 @@ includes history and search functionality.
|
|||||||
%package devel
|
%package devel
|
||||||
Summary: Development files for readline
|
Summary: Development files for readline
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: libreadline8 = %{version}
|
Requires: libreadline%{rl_major} = %{version}
|
||||||
Requires: ncurses-devel
|
Requires: ncurses-devel
|
||||||
Recommends: readline-doc = %{version}
|
Recommends: readline-doc = %{version}
|
||||||
|
|
||||||
@ -88,9 +98,10 @@ This package contains the static library for the readline library.
|
|||||||
%package doc
|
%package doc
|
||||||
Summary: Documentation how to Use and Program with the Readline Library
|
Summary: Documentation how to Use and Program with the Readline Library
|
||||||
Group: Documentation/Other
|
Group: Documentation/Other
|
||||||
|
Requires(post): %{install_info_prereq}
|
||||||
|
Requires(preun): %{install_info_prereq}
|
||||||
|
Supplements: (libreadline%{rl_major} and patterns-base-documentation)
|
||||||
Provides: readline:%{_infodir}/readline.info.gz
|
Provides: readline:%{_infodir}/readline.info.gz
|
||||||
Supplements: packageand(libreadline8:patterns-base-documentation)
|
|
||||||
PreReq: %install_info_prereq
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
%description doc
|
%description doc
|
||||||
@ -98,27 +109,21 @@ This package contains the documentation for using the readline library
|
|||||||
as well as programming with the interface of the readline library.
|
as well as programming with the interface of the readline library.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n readline-%{version}%{rextend} -b1
|
%setup -q
|
||||||
for patch in ../readline-%{version}-patches/*; do
|
# official patches
|
||||||
test -e $patch || break
|
%patch101 -b .001
|
||||||
let level=0 || true
|
%patch102 -b .002
|
||||||
file=$(lsdiff --files=1 $patch)
|
%patch103 -b .003
|
||||||
if test ! -e $file ; then
|
%patch104 -b .004
|
||||||
file=${file#*/}
|
# local patches
|
||||||
let level++ || true
|
%patch201 -p2 -b .zerotty
|
||||||
fi
|
%patch202 -p2 -b .conf
|
||||||
sed -ri '/^\*\*\* \.\./{ s@\.\./readline-%{version}[^/]*/@@ }' $patch
|
%patch203 -p2 -b .metamode
|
||||||
echo Patch $patch
|
%patch205 -b .xm
|
||||||
patch -s -p$level < $patch
|
%patch206 -b .destdir
|
||||||
done
|
%patch207 -p2 -b .tmp
|
||||||
%patch1 -p2 -b .zerotty
|
%patch208 -p2 -b .screen
|
||||||
%patch2 -p2 -b .conf
|
%patch200 -b .0
|
||||||
%patch3 -p2 -b .metamode
|
|
||||||
%patch5 -p0 -b .xm
|
|
||||||
%patch6 -p0 -b .destdir
|
|
||||||
%patch7 -p2 -b .tmp
|
|
||||||
%patch8 -p2 -b .screen
|
|
||||||
%patch0 -p0 -b .0
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
||||||
@ -193,6 +198,7 @@ CC_FOR_BUILD="$CC"
|
|||||||
CFLAGS_FOR_BUILD="$CFLAGS"
|
CFLAGS_FOR_BUILD="$CFLAGS"
|
||||||
LDFLAGS_FOR_BUILD="$LDFLAGS"
|
LDFLAGS_FOR_BUILD="$LDFLAGS"
|
||||||
export CC_FOR_BUILD CFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD CFLAGS LDFLAGS CC
|
export CC_FOR_BUILD CFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD CFLAGS LDFLAGS CC
|
||||||
|
# FIXME: you should use the %%configure macro
|
||||||
./configure --build=%{_target_cpu}-suse-linux \
|
./configure --build=%{_target_cpu}-suse-linux \
|
||||||
--enable-static \
|
--enable-static \
|
||||||
--enable-shared \
|
--enable-shared \
|
||||||
@ -203,8 +209,8 @@ export CC_FOR_BUILD CFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD CFLAGS LDFLAGS CC
|
|||||||
--infodir=%{_infodir} \
|
--infodir=%{_infodir} \
|
||||||
--docdir=%{_docdir}/%{name} \
|
--docdir=%{_docdir}/%{name} \
|
||||||
--libdir=%{_libdir}
|
--libdir=%{_libdir}
|
||||||
make
|
%make_build
|
||||||
make documentation
|
%make_build documentation
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install htmldir=%{_docdir}/%{name} installdir=%{_docdir}/%{name}/examples \
|
%make_install htmldir=%{_docdir}/%{name} installdir=%{_docdir}/%{name}/examples \
|
||||||
@ -224,10 +230,8 @@ mv -vf %{buildroot}/%{_lib}/pkgconfig/readline.pc \
|
|||||||
%{buildroot}/%{_libdir}/pkgconfig/readline.pc
|
%{buildroot}/%{_libdir}/pkgconfig/readline.pc
|
||||||
rm -vrf %{buildroot}%{_datadir}/readline/
|
rm -vrf %{buildroot}%{_datadir}/readline/
|
||||||
|
|
||||||
%post -n libreadline8 -p /sbin/ldconfig
|
%post -n libreadline%{rl_major} -p /sbin/ldconfig
|
||||||
|
%postun -n libreadline%{rl_major} -p /sbin/ldconfig
|
||||||
%postun -n libreadline8 -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%post doc
|
%post doc
|
||||||
%install_info --info-dir=%{_infodir} %{_infodir}/history.info.gz
|
%install_info --info-dir=%{_infodir} %{_infodir}/history.info.gz
|
||||||
%install_info --info-dir=%{_infodir} %{_infodir}/readline.info.gz
|
%install_info --info-dir=%{_infodir} %{_infodir}/readline.info.gz
|
||||||
@ -238,7 +242,7 @@ rm -vrf %{buildroot}%{_datadir}/readline/
|
|||||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/readline.info.gz
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/readline.info.gz
|
||||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/rluserman.info.gz
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/rluserman.info.gz
|
||||||
|
|
||||||
%files -n libreadline8
|
%files -n libreadline%{rl_major}
|
||||||
%license COPYING
|
%license COPYING
|
||||||
/%{_lib}/libhistory.so.%{rl_major}
|
/%{_lib}/libhistory.so.%{rl_major}
|
||||||
/%{_lib}/libhistory.so.%{version}
|
/%{_lib}/libhistory.so.%{version}
|
||||||
@ -256,11 +260,11 @@ rm -vrf %{buildroot}%{_datadir}/readline/
|
|||||||
%{_libdir}/libreadline.a
|
%{_libdir}/libreadline.a
|
||||||
|
|
||||||
%files doc
|
%files doc
|
||||||
%doc %{_infodir}/history.info*
|
%{_infodir}/history.info%{?ext_info}
|
||||||
%doc %{_infodir}/readline.info*
|
%{_infodir}/readline.info%{?ext_info}
|
||||||
%doc %{_infodir}/rluserman.info*
|
%{_infodir}/rluserman.info%{?ext_info}
|
||||||
%doc %{_mandir}/man3/history.3*
|
%{_mandir}/man3/history.3%{?ext_man}
|
||||||
%doc %{_mandir}/man3/readline.3*
|
%{_mandir}/man3/readline.3%{?ext_man}
|
||||||
%doc %{_docdir}/%{name}/
|
%doc %{_docdir}/%{name}/
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
38
readline80-001
Normal file
38
readline80-001
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
READLINE PATCH REPORT
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Readline-Release: 8.0
|
||||||
|
Patch-ID: readline80-001
|
||||||
|
|
||||||
|
Bug-Reported-by: chet.ramey@case.edu
|
||||||
|
Bug-Reference-ID:
|
||||||
|
Bug-Reference-URL:
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
The history file reading code doesn't close the file descriptor open to
|
||||||
|
the history file when it encounters a zero-length file.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
|
||||||
|
*** ../readline-8.0-patched/histfile.c 2018-06-11 09:14:52.000000000 -0400
|
||||||
|
--- histfile.c 2019-05-16 15:55:57.000000000 -0400
|
||||||
|
***************
|
||||||
|
*** 306,309 ****
|
||||||
|
--- 312,316 ----
|
||||||
|
{
|
||||||
|
free (input);
|
||||||
|
+ close (file);
|
||||||
|
return 0; /* don't waste time if we don't have to */
|
||||||
|
}
|
||||||
|
*** ../readline-8.0/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
|
BIN
readline80-001.sig
Normal file
BIN
readline80-001.sig
Normal file
Binary file not shown.
60
readline80-002
Normal file
60
readline80-002
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
READLINE PATCH REPORT
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Readline-Release: 8.0
|
||||||
|
Patch-ID: readline80-002
|
||||||
|
|
||||||
|
Bug-Reported-by: lessbug@qq.com
|
||||||
|
Bug-Reference-ID: <tencent_6AA531D9A5CC4121D86BD5CDA2E0DA98C605@qq.com>
|
||||||
|
Bug-Reference-URL:
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
When using previous-history to go back beyond the beginning of the history list,
|
||||||
|
it's possible to move to an incorrect partial line.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
|
||||||
|
*** ../readline-8.0-patched/misc.c 2017-07-07 17:30:12.000000000 -0400
|
||||||
|
--- misc.c 2019-05-16 11:43:46.000000000 -0400
|
||||||
|
***************
|
||||||
|
*** 577,580 ****
|
||||||
|
--- 590,594 ----
|
||||||
|
{
|
||||||
|
HIST_ENTRY *old_temp, *temp;
|
||||||
|
+ int had_saved_line;
|
||||||
|
|
||||||
|
if (count < 0)
|
||||||
|
***************
|
||||||
|
*** 589,592 ****
|
||||||
|
--- 603,607 ----
|
||||||
|
|
||||||
|
/* If we don't have a line saved, then save this one. */
|
||||||
|
+ had_saved_line = _rl_saved_line_for_history != 0;
|
||||||
|
rl_maybe_save_line ();
|
||||||
|
|
||||||
|
***************
|
||||||
|
*** 612,616 ****
|
||||||
|
if (temp == 0)
|
||||||
|
{
|
||||||
|
! rl_maybe_unsave_line ();
|
||||||
|
rl_ding ();
|
||||||
|
}
|
||||||
|
--- 627,632 ----
|
||||||
|
if (temp == 0)
|
||||||
|
{
|
||||||
|
! if (had_saved_line == 0)
|
||||||
|
! _rl_free_saved_history_line ();
|
||||||
|
rl_ding ();
|
||||||
|
}
|
||||||
|
*** ../readline-8.0/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
|
BIN
readline80-002.sig
Normal file
BIN
readline80-002.sig
Normal file
Binary file not shown.
69
readline80-003
Normal file
69
readline80-003
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
READLINE PATCH REPORT
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Readline-Release: 8.0
|
||||||
|
Patch-ID: readline80-003
|
||||||
|
|
||||||
|
Bug-Reported-by: HIROSE Masaaki <hirose31@gmail.com>
|
||||||
|
Bug-Reference-ID: <CAGSOfA-RqiTe=+GsXsDKyZrrMWH4bDbXgMVVegMa6OjqC5xbnQ@mail.gmail.com>
|
||||||
|
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-05/msg00038.html
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
Reading history entries with timestamps can result in history entries joined
|
||||||
|
by linefeeds.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
|
||||||
|
*** ../readline-8.0-patched/histfile.c 2018-06-11 09:14:52.000000000 -0400
|
||||||
|
--- histfile.c 2019-05-16 15:55:57.000000000 -0400
|
||||||
|
***************
|
||||||
|
*** 370,376 ****
|
||||||
|
|
||||||
|
has_timestamps = HIST_TIMESTAMP_START (buffer);
|
||||||
|
! history_multiline_entries += has_timestamps && history_write_timestamps;
|
||||||
|
|
||||||
|
/* Skip lines until we are at FROM. */
|
||||||
|
for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
|
||||||
|
if (*line_end == '\n')
|
||||||
|
--- 370,378 ----
|
||||||
|
|
||||||
|
has_timestamps = HIST_TIMESTAMP_START (buffer);
|
||||||
|
! history_multiline_entries += has_timestamps && history_write_timestamps;
|
||||||
|
|
||||||
|
/* Skip lines until we are at FROM. */
|
||||||
|
+ if (has_timestamps)
|
||||||
|
+ last_ts = buffer;
|
||||||
|
for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
|
||||||
|
if (*line_end == '\n')
|
||||||
|
***************
|
||||||
|
*** 381,385 ****
|
||||||
|
--- 383,398 ----
|
||||||
|
if (HIST_TIMESTAMP_START(p) == 0)
|
||||||
|
current_line++;
|
||||||
|
+ else
|
||||||
|
+ last_ts = p;
|
||||||
|
line_start = p;
|
||||||
|
+ /* If we are at the last line (current_line == from) but we have
|
||||||
|
+ timestamps (has_timestamps), then line_start points to the
|
||||||
|
+ text of the last command, and we need to skip to its end. */
|
||||||
|
+ if (current_line >= from && has_timestamps)
|
||||||
|
+ {
|
||||||
|
+ for (line_end = p; line_end < bufend && *line_end != '\n'; line_end++)
|
||||||
|
+ ;
|
||||||
|
+ line_start = (*line_end == '\n') ? line_end + 1 : line_end;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
*** ../readline-8.0/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
|
||||||
|
|
||||||
|
! 2
|
||||||
|
--- 1,3 ----
|
||||||
|
# Do not edit -- exists only for use by patch
|
||||||
|
|
||||||
|
! 3
|
BIN
readline80-003.sig
Normal file
BIN
readline80-003.sig
Normal file
Binary file not shown.
47
readline80-004
Normal file
47
readline80-004
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
READLINE PATCH REPORT
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Readline-Release: 8.0
|
||||||
|
Patch-ID: readline80-004
|
||||||
|
|
||||||
|
Bug-Reported-by: auroralanes@protonmail.ch
|
||||||
|
Bug-Reference-ID: <WikEDKluAyoha9IDLp83rbN7_Uinr2rrpvSV_z4wmt9qur9piN-FNOn17P0cAizEVah1Fvc9d641vIIWX_7SC6EUTz0CatnOH-C-UK3rPYc=@protonmail.ch>
|
||||||
|
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2020-01/msg00008.html
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
If writing the history file fails, and renaming the backup history file fails,
|
||||||
|
it's possible for readline's history code to return the wrong error to its
|
||||||
|
caller.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
|
||||||
|
*** ../bash-20200124/lib/readline/histfile.c 2019-11-19 10:31:58.000000000 -0500
|
||||||
|
--- histfile.c 2020-02-01 16:28:29.000000000 -0500
|
||||||
|
***************
|
||||||
|
*** 621,624 ****
|
||||||
|
--- 621,625 ----
|
||||||
|
if (rv != 0)
|
||||||
|
{
|
||||||
|
+ rv = errno;
|
||||||
|
if (tempname)
|
||||||
|
unlink (tempname);
|
||||||
|
***************
|
||||||
|
*** 768,771 ****
|
||||||
|
--- 769,773 ----
|
||||||
|
if (rv != 0)
|
||||||
|
{
|
||||||
|
+ rv = errno;
|
||||||
|
if (tempname)
|
||||||
|
unlink (tempname);
|
||||||
|
*** ../readline-8.0/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
|
||||||
|
|
||||||
|
! 3
|
||||||
|
--- 1,3 ----
|
||||||
|
# Do not edit -- exists only for use by patch
|
||||||
|
|
||||||
|
! 4
|
BIN
readline80-004.sig
Normal file
BIN
readline80-004.sig
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user