			   READLINE PATCH REPORT
			   =====================

Readline-Release: 8.2
Patch-ID: readline82-004

Bug-Reported-by:	Henry Bent <henry.r.bent@gmail.com>
Bug-Reference-ID:
Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-bash/2022-11/msg00044.html

Bug-Description:

Patch (apply with `patch -p0'):

There are systems that supply one of select or pselect, but not both.

Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
Signed-off-by: Khem Raj <raj.khem@gmail.com>

*** ../readline-8.2-patched/input.c	2022-04-08 15:43:24.000000000 -0400
--- input.c	2022-11-28 09:41:08.000000000 -0500
***************
*** 152,156 ****
--- 152,158 ----
  int _rl_timeout_init (void);
  int _rl_timeout_sigalrm_handler (void);
+ #if defined (RL_TIMEOUT_USE_SELECT)
  int _rl_timeout_select (int, fd_set *, fd_set *, fd_set *, const struct timeval *, const sigset_t *);
+ #endif
  
  static void _rl_timeout_handle (void);
***************
*** 249,253 ****
    int chars_avail, k;
    char input;
! #if defined(HAVE_SELECT)
    fd_set readfds, exceptfds;
    struct timeval timeout;
--- 251,255 ----
    int chars_avail, k;
    char input;
! #if defined (HAVE_PSELECT) || defined (HAVE_SELECT)
    fd_set readfds, exceptfds;
    struct timeval timeout;
***************
*** 806,810 ****
    unsigned char c;
    int fd;
! #if defined (HAVE_PSELECT)
    sigset_t empty_set;
    fd_set readfds;
--- 815,819 ----
    unsigned char c;
    int fd;
! #if defined (HAVE_PSELECT) || defined (HAVE_SELECT)
    sigset_t empty_set;
    fd_set readfds;
*** ../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
  
! 3
--- 1,3 ----
  # Do not edit -- exists only for use by patch
  
! 4
