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

Bash-Release:	4.3
Patch-ID:	bash43-042

Bug-Reported-by:	Nathan Neulinger <nneul@neulinger.org>
Bug-Reference-ID:	<558EFDF2.7060402@neulinger.org>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00096.html

Bug-Description:

There is a problem when parsing command substitutions containing `case'
commands within pipelines that causes the parser to not correctly identify
the end of the command substitution.

Patch (apply with `patch -p0'):

--- a/parse.y
+++ b/parse.y
@@ -3708,6 +3708,8 @@ eof_error:
 /*itrace("parse_comsub:%d: lex_inword -> 1 ch = `%c' (%d)", line_number, ch, __LINE__);*/
 	      tflags |= LEX_INWORD;
 	      lex_wlen = 0;
+	      if (tflags & LEX_RESWDOK)
+		lex_rwlen = 0;
 	    }
 	}
 
--- a/y.tab.c
+++ b/y.tab.c
@@ -6020,6 +6020,8 @@ eof_error:
 /*itrace("parse_comsub:%d: lex_inword -> 1 ch = `%c' (%d)", line_number, ch, __LINE__);*/
 	      tflags |= LEX_INWORD;
 	      lex_wlen = 0;
+	      if (tflags & LEX_RESWDOK)
+		lex_rwlen = 0;
 	    }
 	}
 
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -25,6 +25,6 @@
    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
    looks for to find the patch level (for the sccs version string). */
 
-#define PATCHLEVEL 41
+#define PATCHLEVEL 42
 
 #endif /* _PATCHLEVEL_H_ */
