51 lines
1.5 KiB
Diff
51 lines
1.5 KiB
Diff
|
READLINE PATCH REPORT
|
||
|
=====================
|
||
|
|
||
|
Readline-Release: 8.2
|
||
|
Patch-ID: readline82-005
|
||
|
|
||
|
Bug-Reported-by: Simon Marchi <simon.marchi@polymtl.ca>
|
||
|
Bug-Reference-ID:
|
||
|
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-09/msg00005.html
|
||
|
|
||
|
Bug-Description:
|
||
|
|
||
|
If an application is using readline in callback mode, and a signal arrives
|
||
|
after readline checks for it in rl_callback_read_char() but before it
|
||
|
restores the application's signal handlers, it won't get processed until the
|
||
|
next time the application calls rl_callback_read_char(). Readline needs to
|
||
|
check for and resend any pending signals after restoring the application's
|
||
|
signal handlers.
|
||
|
|
||
|
Patch (apply with `patch -p0'):
|
||
|
|
||
|
*** ../readline-8.2-patched/callback.c 2022-04-29 12:02:56.000000000 -0400
|
||
|
--- callback.c 2022-10-11 10:59:06.000000000 -0400
|
||
|
***************
|
||
|
*** 116,120 ****
|
||
|
do { \
|
||
|
if (rl_persistent_signal_handlers == 0) \
|
||
|
! rl_clear_signals (); \
|
||
|
return; \
|
||
|
} while (0)
|
||
|
--- 116,123 ----
|
||
|
do { \
|
||
|
if (rl_persistent_signal_handlers == 0) \
|
||
|
! { \
|
||
|
! rl_clear_signals (); \
|
||
|
! if (_rl_caught_signal) _rl_signal_handler (_rl_caught_signal); \
|
||
|
! } \
|
||
|
return; \
|
||
|
} while (0)
|
||
|
*** ../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
|
||
|
|
||
|
! 4
|
||
|
--- 1,3 ----
|
||
|
# Do not edit -- exists only for use by patch
|
||
|
|
||
|
! 5
|