components/bash/patches/bash42-008.patch
changeset 5518 c47fe0edc204
parent 5517 7758049098f4
child 5519 a02d4d12218f
equal deleted inserted replaced
5517:7758049098f4 5518:c47fe0edc204
     1 			     BASH PATCH REPORT
       
     2 			     =================
       
     3 
       
     4 Bash-Release:	4.2
       
     5 Patch-ID:	bash42-008
       
     6 
       
     7 Bug-Reported-by:	Doug McMahon <[email protected]>
       
     8 Bug-Reference-ID:	<1299441211.2535.11.camel@doug-XPS-M1330>
       
     9 Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00050.html
       
    10 
       
    11 Bug-Description:
       
    12 
       
    13 Bash-4.2 does not attempt to save the shell history on receipt of a
       
    14 terminating signal that is handled synchronously.  Unfortunately, the
       
    15 `close' button on most X11 terminal emulators sends SIGHUP, which
       
    16 kills the shell.
       
    17 
       
    18 This is a very small patch to save the history in the case that an
       
    19 interactive shell receives a SIGHUP or SIGTERM while in readline and
       
    20 reading a command.
       
    21 
       
    22 The next version of bash will do this differently.
       
    23 
       
    24 Patch (apply with `patch -p0'):
       
    25 
       
    26 *** ../bash-4.2-patched/sig.c	Tue Nov 23 08:21:22 2010
       
    27 --- sig.c	Tue Mar  8 21:28:32 2011
       
    28 ***************
       
    29 *** 47,50 ****
       
    30 --- 47,51 ----
       
    31   #if defined (READLINE)
       
    32   #  include "bashline.h"
       
    33 + #  include <readline/readline.h>
       
    34   #endif
       
    35   
       
    36 ***************
       
    37 *** 63,66 ****
       
    38 --- 64,68 ----
       
    39   extern int history_lines_this_session;
       
    40   #endif
       
    41 + extern int no_line_editing;
       
    42   
       
    43   extern void initialize_siglist ();
       
    44 ***************
       
    45 *** 506,510 ****
       
    46   #if defined (HISTORY)
       
    47         /* XXX - will inhibit history file being written */
       
    48 !       history_lines_this_session = 0;
       
    49   #endif
       
    50         terminate_immediately = 0;
       
    51 --- 508,515 ----
       
    52   #if defined (HISTORY)
       
    53         /* XXX - will inhibit history file being written */
       
    54 ! #  if defined (READLINE)
       
    55 !       if (interactive_shell == 0 || interactive == 0 || (sig != SIGHUP && sig != SIGTERM) || no_line_editing || (RL_ISSTATE (RL_STATE_READCMD) == 0))
       
    56 ! #  endif
       
    57 !         history_lines_this_session = 0;
       
    58   #endif
       
    59         terminate_immediately = 0;
       
    60 *** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
       
    61 --- patchlevel.h	Thu Feb 24 21:41:34 2011
       
    62 ***************
       
    63 *** 26,30 ****
       
    64      looks for to find the patch level (for the sccs version string). */
       
    65   
       
    66 ! #define PATCHLEVEL 7
       
    67   
       
    68   #endif /* _PATCHLEVEL_H_ */
       
    69 --- 26,30 ----
       
    70      looks for to find the patch level (for the sccs version string). */
       
    71   
       
    72 ! #define PATCHLEVEL 8
       
    73   
       
    74   #endif /* _PATCHLEVEL_H_ */