			     BASH PATCH REPORT
			     =================

Bash-Release:	4.2
Patch-ID:	bash42-010

Bug-Reported-by:	Mike Frysinger <vapier@gentoo.org>
Bug-Reference-ID:	<201104122356.20160.vapier@gentoo.org>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00058.html

Bug-Description:

Bash did not correctly print/reproduce here documents attached to commands
inside compound commands such as arithmetic for loops and user-specified
subshells.  This affected the execution of such commands inside a shell
function when the function definition is saved and later restored using
`.' or `eval'.

Patch (apply with `patch -p0'):

*** ../bash-4.2-patched/print_cmd.c	2010-05-30 18:34:08.000000000 -0400
--- ./print_cmd.c	2011-04-14 10:43:18.000000000 -0400
***************
*** 316,319 ****
--- 317,321 ----
  	  skip_this_indent++;
  	  make_command_string_internal (command->value.Subshell->command);
+ 	  PRINT_DEFERRED_HEREDOCS ("");
  	  cprintf (" )");
  	  break;
***************
*** 593,596 ****
--- 606,610 ----
    indentation += indentation_amount;
    make_command_string_internal (arith_for_command->action);
+   PRINT_DEFERRED_HEREDOCS ("");
    semicolon ();
    indentation -= indentation_amount;
***************
*** 654,657 ****
--- 668,672 ----
  
    make_command_string_internal (group_command->command);
+   PRINT_DEFERRED_HEREDOCS ("");
  
    if (inside_function_def)
*** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
--- ./patchlevel.h	Thu Feb 24 21:41:34 2011
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 9
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 10
  
  #endif /* _PATCHLEVEL_H_ */
