bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bash-4.0 Official Patch 10


From: Chet Ramey
Subject: Bash-4.0 Official Patch 10
Date: Tue, 10 Mar 2009 09:20:28 -0400

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

Bash-Release: 4.0
Patch-ID: bash40-010

Bug-Reported-by:        Mike Frysinger <vapier@gentoo.org>
Bug-Reference-ID:       <200903030122.56206.vapier@gentoo.org>
Bug-Reference-URL:      
http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00023.html

Bug-Description:

Bash has problems parsing comments in case statements when they appear in
$(...) subshells.

Patch:

*** ../bash-4.0/parse.y 2009-03-07 15:18:35.000000000 -0500
--- parse.y     2009-03-07 14:16:32.000000000 -0500
***************
*** 3413,3419 ****
              tflags &= ~LEX_RESWDOK;
            }
!         else if (shellbreak (ch) == 0)
  {
!             tflags &= ~LEX_RESWDOK;
  /*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, 
ch);*/
  }
--- 3415,3433 ----
              tflags &= ~LEX_RESWDOK;
            }
!         else if MBTEST((tflags & LEX_CKCOMMENT) && ch == '#' && (lex_rwlen == 
0 || ((tflags & LEX_INWORD) && lex_wlen == 0)))
!           ;   /* don't modify LEX_RESWDOK if we're starting a comment */
!         else if MBTEST((tflags & LEX_INCASE) && ch != '\n')
!           /* If we can read a reserved word and we're in case, we're at the
!              point where we can read a new pattern list or an esac.  We
!              handle the esac case above.  If we read a newline, we want to
!              leave LEX_RESWDOK alone.  If we read anything else, we want to
!              turn off LEX_RESWDOK, since we're going to read a pattern list. 
*/
  {
!           tflags &= ~LEX_RESWDOK;
! /*itrace("parse_comsub:%d: lex_incase == 1 found `%c', lex_reswordok -> 0", 
line_number, ch);*/
! }
!         else if MBTEST(shellbreak (ch) == 0)
! {
!           tflags &= ~LEX_RESWDOK;
  /*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, 
ch);*/
  }
*** ../bash-4.0/patchlevel.h    2009-01-04 14:32:40.000000000 -0500
--- patchlevel.h        2009-02-22 16:11:31.000000000 -0500
***************
*** 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_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer

Chet Ramey, ITS, CWRU    chet@case.edu    http://tiswww.tis.case.edu/~chet/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]