| 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'): |
| |
| 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/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 |