annotate src/readline-0-006-fix-for-callback-signal-handlin.patch @ 7220:d3087afece14 default tip @

* src/gdal.mk, src/xcb.mk: disable doxygen docs
author John Donoghue <john.donoghue@ieee.org>
date Wed, 22 May 2024 10:31:54 -0400
parents 142471155843
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6989
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1 From 93a6afa50f953246f7c0f93b219a1e4010ba704b Mon Sep 17 00:00:00 2001
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2 From: Chet Ramey <chet.ramey@case.edu>
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3 Date: Fri, 17 Nov 2023 16:05:13 -0500
7042
142471155843 readline: update to 8.2 patch level 10
Markus Mützel <markus.muetzel@gmx.de>
parents: 6989
diff changeset
4 Subject: [PATCH 06/10] Readline-8.2 patch 6: fix for callback signal handling
6989
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5 when a signal arrives before readline calls rl_getc and handling it changes
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6 callback state
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8 ---
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9 input.c | 28 +++++++++++++++++++++++++++-
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10 patchlevel | 2 +-
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
11 2 files changed, 28 insertions(+), 2 deletions(-)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
12
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
13 diff --git a/input.c b/input.c
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
14 index 68d418c..f68fcac 100644
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
15 --- a/input.c
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
16 +++ b/input.c
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
17 @@ -804,7 +804,7 @@ rl_read_key (void)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
18 int
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
19 rl_getc (FILE *stream)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
20 {
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
21 - int result;
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
22 + int result, ostate, osig;
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
23 unsigned char c;
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
24 int fd;
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
25 #if defined (HAVE_PSELECT) || defined (HAVE_SELECT)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
26 @@ -815,8 +815,22 @@ rl_getc (FILE *stream)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
27 fd = fileno (stream);
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
28 while (1)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
29 {
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
30 + osig = _rl_caught_signal;
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
31 + ostate = rl_readline_state;
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
32 +
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
33 RL_CHECK_SIGNALS ();
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
34
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
35 +#if defined (READLINE_CALLBACKS)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
36 + /* Do signal handling post-processing here, but just in callback mode
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
37 + for right now because the signal cleanup can change some of the
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
38 + callback state, and we need to either let the application have a
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
39 + chance to react or abort some current operation that gets cleaned
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
40 + up by rl_callback_sigcleanup(). If not, we'll just run through the
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
41 + loop again. */
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
42 + if (osig != 0 && (ostate & RL_STATE_CALLBACK))
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
43 + goto postproc_signal;
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
44 +#endif
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
45 +
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
46 /* We know at this point that _rl_caught_signal == 0 */
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
47
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
48 #if defined (__MINGW32__)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
49 @@ -880,6 +894,9 @@ rl_getc (FILE *stream)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
50 /* fprintf(stderr, "rl_getc: result = %d errno = %d\n", result, errno); */
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
51
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
52 handle_error:
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
53 + osig = _rl_caught_signal;
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
54 + ostate = rl_readline_state;
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
55 +
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
56 /* If the error that we received was EINTR, then try again,
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
57 this is simply an interrupted system call to read (). We allow
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
58 the read to be interrupted if we caught SIGHUP, SIGTERM, or any
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
59 @@ -920,8 +937,17 @@ handle_error:
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
60 RL_CHECK_SIGNALS ();
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
61 #endif /* SIGALRM */
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
62
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
63 +postproc_signal:
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
64 + /* POSIX says read(2)/pselect(2)/select(2) don't return EINTR for any
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
65 + reason other than being interrupted by a signal, so we can safely
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
66 + call the application's signal event hook. */
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
67 if (rl_signal_event_hook)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
68 (*rl_signal_event_hook) ();
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
69 +#if defined (READLINE_CALLBACKS)
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
70 + else if (osig == SIGINT && (ostate & RL_STATE_CALLBACK) && (ostate & (RL_STATE_ISEARCH|RL_STATE_NSEARCH|RL_STATE_NUMERICARG)))
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
71 + /* just these cases for now */
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
72 + _rl_abort_internal ();
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
73 +#endif
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
74 }
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
75 }
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
76
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
77 diff --git a/patchlevel b/patchlevel
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
78 index e0ba09d..6ebd6a5 100644
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
79 --- a/patchlevel
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
80 +++ b/patchlevel
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
81 @@ -1,3 +1,3 @@
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
82 # Do not edit -- exists only for use by patch
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
83
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
84 -5
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
85 +6
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
86 --
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
87 2.38.0.windows.1
5f2c92da4d9c readline: update to 8.1 patch level 7
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
88