			   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
