Pete Graner 726964
			     BASH PATCH REPORT
Pete Graner 726964
			     =================
Pete Graner 726964
Pete Graner 726964
Bash-Release: 3.2
Pete Graner 726964
Patch-ID: bash32-021
Pete Graner 726964
Pete Graner 726964
Bug-Reported-by:	BAGSHAW Paul RD-TECH-REN <paul.bagshaw@orange-ftgroup.com>
Pete Graner 726964
Bug-Reference-ID:	<941BA0BF46DB8F4983FF7C8AFE800BC205EA7D4B@ftrdmel3.rd.francetelecom.fr>
Pete Graner 726964
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00065.html
Pete Graner 726964
Pete Graner 726964
Bug-Description:
Pete Graner 726964
Pete Graner 726964
When the parser read a backslash-escaped character that would be treated
Pete Graner 726964
internally as an escape, it would double the number of escape characters.
Pete Graner 726964
Pete Graner 726964
Patch:
Pete Graner 726964
Pete Graner 726964
*** ../bash-3.2-patched/parse.y	Mon Oct 30 17:22:00 2006
Pete Graner 726964
--- parse.y	Sat Mar 24 17:13:20 2007
Pete Graner 726964
***************
Pete Graner 726964
*** 3377,3381 ****
Pete Graner 726964
  	{
Pete Graner 726964
  	  pass_next_character = 0;
Pete Graner 726964
! 	  goto got_character;
Pete Graner 726964
  	}
Pete Graner 726964
  
Pete Graner 726964
--- 3377,3381 ----
Pete Graner 726964
  	{
Pete Graner 726964
  	  pass_next_character = 0;
Pete Graner 726964
! 	  goto got_escaped_character;
Pete Graner 726964
  	}
Pete Graner 726964
  
Pete Graner 726964
***************
Pete Graner 726964
*** 3651,3660 ****
Pete Graner 726964
      got_character:
Pete Graner 726964
  
Pete Graner 726964
-       all_digit_token &= DIGIT (character);
Pete Graner 726964
-       dollar_present |= character == '$';
Pete Graner 726964
- 
Pete Graner 726964
        if (character == CTLESC || character == CTLNUL)
Pete Graner 726964
  	token[token_index++] = CTLESC;
Pete Graner 726964
  
Pete Graner 726964
        token[token_index++] = character;
Pete Graner 726964
  
Pete Graner 726964
--- 3651,3662 ----
Pete Graner 726964
      got_character:
Pete Graner 726964
  
Pete Graner 726964
        if (character == CTLESC || character == CTLNUL)
Pete Graner 726964
  	token[token_index++] = CTLESC;
Pete Graner 726964
  
Pete Graner 726964
+     got_escaped_character:
Pete Graner 726964
+ 
Pete Graner 726964
+       all_digit_token &= DIGIT (character);
Pete Graner 726964
+       dollar_present |= character == '$';
Pete Graner 726964
+ 
Pete Graner 726964
        token[token_index++] = character;
Pete Graner 726964
  
Pete Graner 726964
*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
Pete Graner 726964
--- patchlevel.h	Mon Oct 16 14:22:54 2006
Pete Graner 726964
***************
Pete Graner 726964
*** 26,30 ****
Pete Graner 726964
     looks for to find the patch level (for the sccs version string). */
Pete Graner 726964
  
Pete Graner 726964
! #define PATCHLEVEL 20
Pete Graner 726964
  
Pete Graner 726964
  #endif /* _PATCHLEVEL_H_ */
Pete Graner 726964
--- 26,30 ----
Pete Graner 726964
     looks for to find the patch level (for the sccs version string). */
Pete Graner 726964
  
Pete Graner 726964
! #define PATCHLEVEL 21
Pete Graner 726964
  
Pete Graner 726964
  #endif /* _PATCHLEVEL_H_ */