commit | author | age
|
6ca8c2
|
1 |
READLINE PATCH REPORT |
TW |
2 |
===================== |
|
3 |
|
|
4 |
Readline-Release: 8.2 |
|
5 |
Patch-ID: readline82-005 |
|
6 |
|
|
7 |
Bug-Reported-by: Simon Marchi <simon.marchi@polymtl.ca> |
|
8 |
Bug-Reference-ID: |
|
9 |
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-09/msg00005.html |
|
10 |
|
|
11 |
Bug-Description: |
|
12 |
|
|
13 |
If an application is using readline in callback mode, and a signal arrives |
|
14 |
after readline checks for it in rl_callback_read_char() but before it |
|
15 |
restores the application's signal handlers, it won't get processed until the |
|
16 |
next time the application calls rl_callback_read_char(). Readline needs to |
|
17 |
check for and resend any pending signals after restoring the application's |
|
18 |
signal handlers. |
|
19 |
|
|
20 |
Patch (apply with `patch -p0'): |
|
21 |
|
|
22 |
*** ../readline-8.2-patched/callback.c 2022-04-29 12:02:56.000000000 -0400 |
|
23 |
--- a/callback.c 2022-10-11 10:59:06.000000000 -0400 |
|
24 |
*************** |
|
25 |
*** 116,120 **** |
|
26 |
do { \ |
|
27 |
if (rl_persistent_signal_handlers == 0) \ |
|
28 |
! rl_clear_signals (); \ |
|
29 |
return; \ |
|
30 |
} while (0) |
|
31 |
--- 116,123 ---- |
|
32 |
do { \ |
|
33 |
if (rl_persistent_signal_handlers == 0) \ |
|
34 |
! { \ |
|
35 |
! rl_clear_signals (); \ |
|
36 |
! if (_rl_caught_signal) _rl_signal_handler (_rl_caught_signal); \ |
|
37 |
! } \ |
|
38 |
return; \ |
|
39 |
} while (0) |
|
40 |
*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 |
|
41 |
--- a/patchlevel 2014-03-21 08:28:40.000000000 -0400 |
|
42 |
*************** |
|
43 |
*** 1,3 **** |
|
44 |
# Do not edit -- exists only for use by patch |
|
45 |
|
|
46 |
! 4 |
|
47 |
--- 1,3 ---- |
|
48 |
# Do not edit -- exists only for use by patch |
|
49 |
|
|
50 |
! 5 |