author | Patrick Einheber <patrick.einheber@oracle.com> |
Wed, 12 Oct 2016 08:38:46 -0700 | |
changeset 7093 | a50590d00730 |
parent 5518 | c47fe0edc204 |
permissions | -rw-r--r-- |
5518
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
1 |
BASH PATCH REPORT |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
2 |
================= |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
3 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
4 |
Bash-Release: 4.3 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
5 |
Patch-ID: bash43-033 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
6 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
7 |
Bug-Reported-by: [email protected], Jan Rome <[email protected]> |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
8 |
Bug-Reference-ID: <[email protected]>, |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
9 |
<[email protected]> |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
10 |
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00029.html |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
11 |
http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00030.html |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
12 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
13 |
Bug-Description: |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
14 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
15 |
Bash does not clean up the terminal state in all cases where bash or |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
16 |
readline modifies it and bash is subsequently terminated by a fatal signal. |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
17 |
This happens when the `read' builtin modifies the terminal settings, both |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
18 |
when readline is active and when it is not. It occurs most often when a script |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
19 |
installs a trap that exits on a signal without re-sending the signal to itself. |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
20 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
21 |
Patch (apply with `patch -p0'): |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
22 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
23 |
*** ../bash-4.3-patched/shell.c 2014-01-14 08:04:32.000000000 -0500 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
24 |
--- shell.c 2014-12-22 10:27:50.000000000 -0500 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
25 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
26 |
*** 74,77 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
27 |
--- 74,78 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
28 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
29 |
#if defined (READLINE) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
30 |
+ # include <readline/readline.h> |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
31 |
# include "bashline.h" |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
32 |
#endif |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
33 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
34 |
*** 910,913 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
35 |
--- 912,923 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
36 |
fflush (stderr); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
37 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
38 |
+ /* Clean up the terminal if we are in a state where it's been modified. */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
39 |
+ #if defined (READLINE) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
40 |
+ if (RL_ISSTATE (RL_STATE_TERMPREPPED) && rl_deprep_term_function) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
41 |
+ (*rl_deprep_term_function) (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
42 |
+ #endif |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
43 |
+ if (read_tty_modified ()) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
44 |
+ read_tty_cleanup (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
45 |
+ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
46 |
/* Do trap[0] if defined. Allow it to override the exit status |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
47 |
passed to us. */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
48 |
*** ../bash-4.3-patched/builtins/read.def 2014-10-01 12:57:38.000000000 -0400 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
49 |
--- builtins/read.def 2014-12-22 10:48:54.000000000 -0500 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
50 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
51 |
*** 141,148 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
52 |
int sigalrm_seen; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
53 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
54 |
! static int reading; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
55 |
static SigHandler *old_alrm; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
56 |
static unsigned char delim; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
57 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
58 |
/* In all cases, SIGALRM just sets a flag that we check periodically. This |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
59 |
avoids problems with the semi-tricky stuff we do with the xfree of |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
60 |
--- 141,150 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
61 |
int sigalrm_seen; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
62 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
63 |
! static int reading, tty_modified; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
64 |
static SigHandler *old_alrm; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
65 |
static unsigned char delim; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
66 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
67 |
+ static struct ttsave termsave; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
68 |
+ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
69 |
/* In all cases, SIGALRM just sets a flag that we check periodically. This |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
70 |
avoids problems with the semi-tricky stuff we do with the xfree of |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
71 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
72 |
*** 189,193 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
73 |
SHELL_VAR *var; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
74 |
TTYSTRUCT ttattrs, ttset; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
75 |
- struct ttsave termsave; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
76 |
#if defined (ARRAY_VARS) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
77 |
WORD_LIST *alist; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
78 |
--- 191,194 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
79 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
80 |
*** 222,226 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
81 |
USE_VAR(lastsig); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
82 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
83 |
! sigalrm_seen = reading = 0; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
84 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
85 |
i = 0; /* Index into the string that we are reading. */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
86 |
--- 223,227 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
87 |
USE_VAR(lastsig); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
88 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
89 |
! sigalrm_seen = reading = tty_modified = 0; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
90 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
91 |
i = 0; /* Index into the string that we are reading. */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
92 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
93 |
*** 439,442 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
94 |
--- 440,445 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
95 |
goto assign_vars; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
96 |
} |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
97 |
+ if (interactive_shell == 0) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
98 |
+ initialize_terminating_signals (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
99 |
old_alrm = set_signal_handler (SIGALRM, sigalrm); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
100 |
add_unwind_protect (reset_alarm, (char *)NULL); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
101 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
102 |
*** 483,487 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
103 |
--- 486,493 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
104 |
if (i < 0) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
105 |
sh_ttyerror (1); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
106 |
+ tty_modified = 1; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
107 |
add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
108 |
+ if (interactive_shell == 0) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
109 |
+ initialize_terminating_signals (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
110 |
} |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
111 |
} |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
112 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
113 |
*** 498,502 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
114 |
--- 504,511 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
115 |
sh_ttyerror (1); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
116 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
117 |
+ tty_modified = 1; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
118 |
add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
119 |
+ if (interactive_shell == 0) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
120 |
+ initialize_terminating_signals (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
121 |
} |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
122 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
123 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
124 |
*** 589,592 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
125 |
--- 598,603 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
126 |
else |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
127 |
lastsig = 0; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
128 |
+ if (terminating_signal && tty_modified) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
129 |
+ ttyrestore (&termsave); /* fix terminal before exiting */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
130 |
CHECK_TERMSIG; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
131 |
eof = 1; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
132 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
133 |
*** 979,982 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
134 |
--- 990,1007 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
135 |
{ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
136 |
ttsetattr (ttp->fd, ttp->attrs); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
137 |
+ tty_modified = 0; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
138 |
+ } |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
139 |
+ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
140 |
+ void |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
141 |
+ read_tty_cleanup () |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
142 |
+ { |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
143 |
+ if (tty_modified) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
144 |
+ ttyrestore (&termsave); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
145 |
+ } |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
146 |
+ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
147 |
+ int |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
148 |
+ read_tty_modified () |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
149 |
+ { |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
150 |
+ return (tty_modified); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
151 |
} |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
152 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
153 |
*** ../bash-4.3-patched/builtins/common.h 2014-10-01 12:57:47.000000000 -0400 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
154 |
--- builtins/common.h 2014-12-22 10:10:14.000000000 -0500 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
155 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
156 |
*** 123,126 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
157 |
--- 141,148 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
158 |
extern void getopts_reset __P((int)); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
159 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
160 |
+ /* Functions from read.def */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
161 |
+ extern void read_tty_cleanup __P((void)); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
162 |
+ extern int read_tty_modified __P((void)); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
163 |
+ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
164 |
/* Functions from set.def */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
165 |
extern int minus_o_option_value __P((char *)); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
166 |
*** ../bash-4.3-patched/bashline.c 2014-05-14 09:22:39.000000000 -0400 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
167 |
--- bashline.c 2014-09-08 11:28:56.000000000 -0400 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
168 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
169 |
*** 203,206 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
170 |
--- 203,207 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
171 |
extern int array_needs_making; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
172 |
extern int posixly_correct, no_symbolic_links; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
173 |
+ extern int sigalrm_seen; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
174 |
extern char *current_prompt_string, *ps1_prompt; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
175 |
extern STRING_INT_ALIST word_token_alist[]; |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
176 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
177 |
*** 4209,4214 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
178 |
/* If we're going to longjmp to top_level, make sure we clean up readline. |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
179 |
check_signals will call QUIT, which will eventually longjmp to top_level, |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
180 |
! calling run_interrupt_trap along the way. */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
181 |
! if (interrupt_state) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
182 |
rl_cleanup_after_signal (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
183 |
bashline_reset_event_hook (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
184 |
--- 4262,4268 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
185 |
/* If we're going to longjmp to top_level, make sure we clean up readline. |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
186 |
check_signals will call QUIT, which will eventually longjmp to top_level, |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
187 |
! calling run_interrupt_trap along the way. The check for sigalrm_seen is |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
188 |
! to clean up the read builtin's state. */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
189 |
! if (terminating_signal || interrupt_state || sigalrm_seen) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
190 |
rl_cleanup_after_signal (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
191 |
bashline_reset_event_hook (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
192 |
*** ../bash-4.3-patched/sig.c 2014-01-10 15:06:06.000000000 -0500 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
193 |
--- sig.c 2014-09-08 11:26:33.000000000 -0400 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
194 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
195 |
*** 533,538 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
196 |
/* Set the event hook so readline will call it after the signal handlers |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
197 |
finish executing, so if this interrupted character input we can get |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
198 |
! quick response. */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
199 |
! if (interactive_shell && interactive && no_line_editing == 0) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
200 |
bashline_set_event_hook (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
201 |
#endif |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
202 |
--- 533,540 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
203 |
/* Set the event hook so readline will call it after the signal handlers |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
204 |
finish executing, so if this interrupted character input we can get |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
205 |
! quick response. If readline is active or has modified the terminal we |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
206 |
! need to set this no matter what the signal is, though the check for |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
207 |
! RL_STATE_TERMPREPPED is possibly redundant. */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
208 |
! if (RL_ISSTATE (RL_STATE_SIGHANDLER) || RL_ISSTATE (RL_STATE_TERMPREPPED)) |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
209 |
bashline_set_event_hook (); |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
210 |
#endif |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
211 |
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
212 |
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
213 |
*************** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
214 |
*** 26,30 **** |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
215 |
looks for to find the patch level (for the sccs version string). */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
216 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
217 |
! #define PATCHLEVEL 32 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
218 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
219 |
#endif /* _PATCHLEVEL_H_ */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
220 |
--- 26,30 ---- |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
221 |
looks for to find the patch level (for the sccs version string). */ |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
222 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
223 |
! #define PATCHLEVEL 33 |
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
224 |
|
c47fe0edc204
20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
225 |
#endif /* _PATCHLEVEL_H_ */ |