components/bash/patches/bash43-033.patch
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--
24710648 puppet resource LDAP lookup fails when querying users
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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_ */