rpms/bash/devel bash32-001, NONE, 1.1 bash32-002, NONE, 1.1 bash32-003, NONE, 1.1 bash32-004, NONE, 1.1 bash32-005, NONE, 1.1 bash32-006, NONE, 1.1 bash32-007, NONE, 1.1 bash32-008, NONE, 1.1 bash32-009, NONE, 1.1 .cvsignore, 1.8, 1.9 bash-2.05a-interpreter.patch, 1.4, 1.5 bash.spec, 1.123, 1.124 sources, 1.12, 1.13 bash-aq.patch, 1.1, NONE bash-login.patch, 1.1, NONE bash-read-memleak.patch, 1.1, NONE bash-sighandler.patch, 1.10, NONE bash-ulimit.patch, 1.7, NONE bash31-001, 1.1, NONE bash31-002, 1.1, NONE bash31-003, 1.1, NONE bash31-004, 1.1, NONE bash31-005, 1.1, NONE bash31-006, 1.1, NONE bash31-007, 1.1, NONE bash31-008, 1.1, NONE bash31-009, 1.1, NONE bash31-010, 1.2, NONE bash31-011, 1.1, NONE bash31-012, 1.1, NONE bash31-013, 1.1, NONE bash31-014, 1.1, NONE bash31-015, 1.1, NONE bash31-016, 1.1, NONE bash31-017, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Dec 15 18:02:34 UTC 2006


Author: twaugh

Update of /cvs/dist/rpms/bash/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv314

Modified Files:
	.cvsignore bash-2.05a-interpreter.patch bash.spec sources 
Added Files:
	bash32-001 bash32-002 bash32-003 bash32-004 bash32-005 
	bash32-006 bash32-007 bash32-008 bash32-009 
Removed Files:
	bash-aq.patch bash-login.patch bash-read-memleak.patch 
	bash-sighandler.patch bash-ulimit.patch bash31-001 bash31-002 
	bash31-003 bash31-004 bash31-005 bash31-006 bash31-007 
	bash31-008 bash31-009 bash31-010 bash31-011 bash31-012 
	bash31-013 bash31-014 bash31-015 bash31-016 bash31-017 
Log Message:
Update to 3.2.


--- NEW FILE bash32-001 ---
			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-001

Bug-Reported-by:	Greg Schafer <gschafer at zip.com.au>
Bug-Reference-ID:	<20061012084940.GA15768 at tigers.local>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html

Bug-Description:

When using historical ``-style command substitution, bash incorrectly attempts
to interpret shell comments while scanning for the closing backquote.

Patch:

*** ../bash-3.2/parse.y	Tue Sep 19 16:37:21 2006
--- parse.y	Thu Oct 12 10:30:57 2006
***************
*** 2736,2740 ****
    count = 1;
    pass_next_character = backq_backslash = was_dollar = in_comment = 0;
!   check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
  
    /* RFLAGS is the set of flags we want to pass to recursive calls. */
--- 2736,2740 ----
    count = 1;
    pass_next_character = backq_backslash = was_dollar = in_comment = 0;
!   check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
  
    /* RFLAGS is the set of flags we want to pass to recursive calls. */
*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 0
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 1
  
  #endif /* _PATCHLEVEL_H_ */


--- NEW FILE bash32-002 ---
			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-002

Bug-Reported-by:	Jim Gifford <jim at jg555.com>
Bug-Reference-ID:	<12j2pc3aq35mb04 at corp.supernews.com>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html

Bug-Description:

An incorrect encoding specification in the Content-Type header causes msgfmt
to fail, which causes `make install' to fail.

Patch:

*** ../bash-3.2/po/ru.po        Tue Jan 10 17:51:03 2006
--- po/ru.po    Mon Oct 16 15:13:23 2006
***************
*** 13,17 ****
  "Language-Team: Russian <ru at li.org>\n"
  "MIME-Version: 1.0\n"
! "Content-Type: text/plain; charset=UTF-8\n"
  "Content-Transfer-Encoding: 8bit\n"
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
--- 13,17 ----
  "Language-Team: Russian <ru at li.org>\n"
  "MIME-Version: 1.0\n"
! "Content-Type: text/plain; charset=KOI8-R\n"
  "Content-Transfer-Encoding: 8bit\n"
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"

*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 1
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 2
  
  #endif /* _PATCHLEVEL_H_ */


--- NEW FILE bash32-003 ---
			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-003

Bug-Reported-by:	John Gatewood Ham <zappaman at buraphalinux.org>
Bug-Reference-ID:	<Pine.LNX.4.64.0610121334140.15558 at www.buraphalinux.org>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html

Bug-Description:

When using the conditional command's `=~' operator to match regular
expressions, the parser did not skip over shell metacharacters in the
regular expression, leading to syntax errors.

Patch:

*** ../bash-3.2-patched/parse.y	Tue Oct 17 11:45:20 2006
--- parse.y	Sat Oct 14 14:56:16 2006
***************
*** 1029,1034 ****
--- 1029,1035 ----
  #define PST_CMDTOKEN	0x1000		/* command token OK - unused */
  #define PST_COMPASSIGN	0x2000		/* parsing x=(...) compound assignment */
  #define PST_ASSIGNOK	0x4000		/* assignment statement ok in this context */
+ #define PST_REGEXP	0x8000		/* parsing an ERE/BRE as a single word */
  
  /* Initial size to allocate for tokens, and the
     amount to grow them by. */
***************
*** 2591,2596 ****
--- 2592,2600 ----
        return (character);
      }
  
+   if (parser_state & PST_REGEXP)
+     goto tokword;
+ 
    /* Shell meta-characters. */
    if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0))
      {
***************
*** 2698,2703 ****
--- 2702,2708 ----
    if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
      return (character);
  
+ tokword:
    /* Okay, if we got this far, we have to read a word.  Read one,
       and then check it against the known ones. */
    result = read_token_word (character);
***************
*** 3202,3209 ****
        if (tok == WORD && test_binop (yylval.word->word))
  	op = yylval.word;
  #if defined (COND_REGEXP)
!       else if (tok == WORD && STREQ (yylval.word->word,"=~"))
! 	op = yylval.word;
  #endif
        else if (tok == '<' || tok == '>')
  	op = make_word_from_token (tok);  /* ( */
--- 3207,3217 ----
        if (tok == WORD && test_binop (yylval.word->word))
  	op = yylval.word;
  #if defined (COND_REGEXP)
!       else if (tok == WORD && STREQ (yylval.word->word, "=~"))
! 	{
! 	  op = yylval.word;
! 	  parser_state |= PST_REGEXP;
! 	}
  #endif
        else if (tok == '<' || tok == '>')
  	op = make_word_from_token (tok);  /* ( */
***************
*** 3234,3239 ****
--- 3242,3248 ----
  
        /* rhs */
        tok = read_token (READ);
+       parser_state &= ~PST_REGEXP;
        if (tok == WORD)
  	{
  	  tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
***************
*** 3419,3427 ****
  	  goto next_character;
  	}
  
  #ifdef EXTENDED_GLOB
        /* Parse a ksh-style extended pattern matching specification. */
!       if (extended_glob && PATTERN_CHAR (character))
  	{
  	  peek_char = shell_getc (1);
  	  if MBTEST(peek_char == '(')		/* ) */
--- 3428,3461 ----
  	  goto next_character;
  	}
  
+ #ifdef COND_REGEXP
+       /* When parsing a regexp as a single word inside a conditional command,
+ 	 we need to special-case characters special to both the shell and
+ 	 regular expressions.  Right now, that is only '(' and '|'. */ /*)*/
+       if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|'))		/*)*/
+         {
+           if (character == '|')
+             goto got_character;
+ 
+ 	  push_delimiter (dstack, character);
+ 	  ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
+ 	  pop_delimiter (dstack);
+ 	  if (ttok == &matched_pair_error)
+ 	    return -1;		/* Bail immediately. */
+ 	  RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+ 				  token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
+ 	  token[token_index++] = character;
+ 	  strcpy (token + token_index, ttok);
+ 	  token_index += ttoklen;
+ 	  FREE (ttok);
+ 	  dollar_present = all_digit_token = 0;
+ 	  goto next_character;
+         }
+ #endif /* COND_REGEXP */
+ 
  #ifdef EXTENDED_GLOB
        /* Parse a ksh-style extended pattern matching specification. */
!       if MBTEST(extended_glob && PATTERN_CHAR (character))
  	{
  	  peek_char = shell_getc (1);
  	  if MBTEST(peek_char == '(')		/* ) */

*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 2
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 3
  
  #endif /* _PATCHLEVEL_H_ */



--- NEW FILE bash32-004 ---
			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-004

Bug-Reported-by:	Stuart Shelton <srcshelton at gmail.com>
Bug-Reference-ID:	<619141e40610261203y6cda5aa6i23cb24c7aeba996e at mail.gmail.com>
Bug-Reference-URL:	

Bug-Description:

A bug in the parameter pattern substitution implementation treated a pattern
whose first character was `/' (after expansion) as specifying global
replacement.

Patch:

*** ../bash-3.2/subst.c	Tue Sep 19 08:35:09 2006
--- subst.c	Thu Oct 26 09:17:50 2006
***************
*** 5707,5712 ****
--- 5707,5717 ----
    vtype &= ~VT_STARSUB;
  
    mflags = 0;
+   if (patsub && *patsub == '/')
+     {
+       mflags |= MATCH_GLOBREP;
+       patsub++;
+     }
  
    /* Malloc this because expand_string_if_necessary or one of the expansion
       functions in its call chain may free it on a substitution error. */
***************
*** 5741,5753 ****
      }
  
    /* ksh93 doesn't allow the match specifier to be a part of the expanded
!      pattern.  This is an extension. */
    p = pat;
!   if (pat && pat[0] == '/')
!     {
!       mflags |= MATCH_GLOBREP|MATCH_ANY;
!       p++;
!     }
    else if (pat && pat[0] == '#')
      {
        mflags |= MATCH_BEG;
--- 5746,5757 ----
      }
  
    /* ksh93 doesn't allow the match specifier to be a part of the expanded
!      pattern.  This is an extension.  Make sure we don't anchor the pattern
!      at the beginning or end of the string if we're doing global replacement,
!      though. */
    p = pat;
!   if (mflags & MATCH_GLOBREP)
!     mflags |= MATCH_ANY;
    else if (pat && pat[0] == '#')
      {
        mflags |= MATCH_BEG;
*** ../bash-3.2/tests/new-exp.right	Thu Aug 10 12:00:00 2006
--- tests/new-exp.right	Sun Oct 29 16:03:36 2006
***************
*** 430,436 ****
  Case06---1---A B C::---
  Case07---3---A:B:C---
  Case08---3---A:B:C---
! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution
  argv[1] = <a>
  argv[2] = <b>
  argv[3] = <c>
--- 430,436 ----
  Case06---1---A B C::---
  Case07---3---A:B:C---
  Case08---3---A:B:C---
! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution
  argv[1] = <a>
  argv[2] = <b>
  argv[3] = <c>
*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 3
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 4
  
  #endif /* _PATCHLEVEL_H_ */


--- NEW FILE bash32-005 ---
			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-005

Bug-Reported-by:	Stuart Shelton <stuart at openobjects.com>
Bug-Reference-ID:	<453F7CC8.6030907 at openobjects.com>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html

Bug-Description:

A missing extern declaration for `asprintf' caused `double' arguments to be
passed as `0', leading to incorrect results.  Additionally, a bug in the
replacement asprintf/snprintf function caused an infinite loop when passed
0 arguments to the floating point conversions under some circumstances.

Patch:

*** ../bash-3.2/builtins/printf.def	Mon Sep 18 08:48:42 2006
--- builtins/printf.def	Tue Oct 31 08:19:44 2006
***************
*** 49,54 ****
--- 49,60 ----
  #  define INT_MIN		(-2147483647-1)
  #endif
  
+ #if defined (PREFER_STDARG)
+ #  include <stdarg.h>
+ #else
+ #  include <varargs.h>
+ #endif
+ 
  #include <stdio.h>
  #include <chartypes.h>
  
***************
*** 151,156 ****
--- 157,166 ----
  #define SKIP1 "#'-+ 0"
  #define LENMODS "hjlLtz"
  
+ #ifndef HAVE_ASPRINTF
+ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3)));
+ #endif
+ 
  static void printf_erange __P((char *));
  static int printstr __P((char *, char *, int, int, int));
  static int tescape __P((char *, char *, int *));


*** ../bash-3.2/lib/sh/snprintf.c	Thu Apr  6 09:48:40 2006
--- lib/sh/snprintf.c	Sat Oct 28 00:00:13 2006
***************
*** 471,476 ****
--- 476,483 ----
  	  10^x ~= r
   * log_10(200) = 2;
   * log_10(250) = 2;
+  *
+  * NOTE: do not call this with r == 0 -- an infinite loop results.
   */
  static int
  log_10(r)
***************
*** 576,583 ****
      { 
        integral_part[0] = '0';
        integral_part[1] = '\0';
!       fraction_part[0] = '0';
!       fraction_part[1] = '\0';
        if (fract)
  	*fract = fraction_part;
        return integral_part;
--- 583,593 ----
      { 
        integral_part[0] = '0';
        integral_part[1] = '\0';
!       /* The fractional part has to take the precision into account */
!       for (ch = 0; ch < precision-1; ch++)
!  	fraction_part[ch] = '0';
!       fraction_part[ch] = '0';
!       fraction_part[ch+1] = '\0';
        if (fract)
  	*fract = fraction_part;
        return integral_part;
***************
*** 805,810 ****
--- 815,821 ----
        PUT_CHAR(*tmp, p);
        tmp++;
      }
+ 
    PAD_LEFT(p);
  }
  
***************
*** 972,982 ****
    if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
      tmp = t;
  
    /* calculate the padding. 1 for the dot */
    p->width = p->width -
  	    ((d > 0. && p->justify == RIGHT) ? 1:0) -
  	    ((p->flags & PF_SPACE) ? 1:0) -
! 	    strlen(tmp) - p->precision - 1;
    PAD_RIGHT(p);  
    PUT_PLUS(d, p, 0.);
    PUT_SPACE(d, p, 0.);
--- 983,1003 ----
    if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
      tmp = t;
  
+   if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
+     {
+       /* smash the trailing zeros unless altform */
+       for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
+         tmp2[i] = '\0'; 
+       if (tmp2[0] == '\0')
+ 	p->precision = 0;
+     }
+ 
    /* calculate the padding. 1 for the dot */
    p->width = p->width -
  	    ((d > 0. && p->justify == RIGHT) ? 1:0) -
  	    ((p->flags & PF_SPACE) ? 1:0) -
! 	    strlen(tmp) - p->precision -
! 	    ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0);	/* radix char */
    PAD_RIGHT(p);  
    PUT_PLUS(d, p, 0.);
    PUT_SPACE(d, p, 0.);
***************
*** 991,1001 ****
    if (p->precision != 0 || (p->flags & PF_ALTFORM))
      PUT_CHAR(decpoint, p);  /* put the '.' */
  
-   if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
-     /* smash the trailing zeros unless altform */
-     for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
-       tmp2[i] = '\0'; 
- 
    for (; *tmp2; tmp2++)
      PUT_CHAR(*tmp2, p); /* the fraction */
    
--- 1012,1017 ----
***************
*** 1011,1024 ****
    char *tmp, *tmp2;
    int j, i;
  
!   if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))
      return;	/* already printed nan or inf */
  
    GETLOCALEDATA(decpoint, thoussep, grouping);
    DEF_PREC(p);
!   j = log_10(d);
!   d = d / pow_10(j);  /* get the Mantissa */
!   d = ROUND(d, p);		  
    tmp = dtoa(d, p->precision, &tmp2);
  
    /* 1 for unit, 1 for the '.', 1 for 'e|E',
--- 1027,1045 ----
    char *tmp, *tmp2;
    int j, i;
  
!   if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)))
      return;	/* already printed nan or inf */
  
    GETLOCALEDATA(decpoint, thoussep, grouping);
    DEF_PREC(p);
!   if (d == 0.)
!     j = 0;
!   else
!     {
!       j = log_10(d);
!       d = d / pow_10(j);  /* get the Mantissa */
!       d = ROUND(d, p);		  
!     }
    tmp = dtoa(d, p->precision, &tmp2);
  
    /* 1 for unit, 1 for the '.', 1 for 'e|E',
***************
*** 1076,1081 ****
--- 1097,1103 ----
         PUT_CHAR(*tmp, p);
         tmp++;
       }
+ 
     PAD_LEFT(p);
  }
  #endif
***************
*** 1358,1364 ****
  		STAR_ARGS(data);
  		DEF_PREC(data);
  		d = GETDOUBLE(data);
! 		i = log_10(d);
  		/*
  		 * for '%g|%G' ANSI: use f if exponent
  		 * is in the range or [-4,p] exclusively
--- 1380,1386 ----
  		STAR_ARGS(data);
  		DEF_PREC(data);
  		d = GETDOUBLE(data);
! 		i = (d != 0.) ? log_10(d) : -1;
  		/*
  		 * for '%g|%G' ANSI: use f if exponent
  		 * is in the range or [-4,p] exclusively
*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 4
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 5
  
  #endif /* _PATCHLEVEL_H_ */


--- NEW FILE bash32-006 ---
			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-006

Bug-Reported-by:	ebb9 at byu.net
Bug-Reference-ID:	<45540862.9030900 at byu.net>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
			http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html

Bug-Description:

In some cases, code that is intended to be used in the presence of multibyte
characters is called when no such characters are present, leading to incorrect
display position calculations and incorrect redisplay.

Patch:

*** ../bash-3.2-patched/lib/readline/display.c	Thu Sep 14 14:20:12 2006
--- lib/readline/display.c	Mon Nov 13 17:55:57 2006
***************
*** 2381,2384 ****
--- 2409,2414 ----
    if (end <= start)
      return 0;
+   if (MB_CUR_MAX == 1 || rl_byte_oriented)
+     return (end - start);
  
    memset (&ps, 0, sizeof (mbstate_t));
*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 5
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 6
  
  #endif /* _PATCHLEVEL_H_ */


--- NEW FILE bash32-007 ---
			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-007

Bug-Reported-by:	jidanni at jidanni.org
Bug-Reference-ID:	<E1Gkg12-00017D-Fm at jidanni.org>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html

Bug-Description:

When removing the current or previous job from the jobs list, bash incorrectly
resets the current job under some circumstances.

Patch:

*** ../bash-3.2-patched/jobs.c	Sat Jul 29 16:40:48 2006
--- jobs.c	Fri Nov 24 14:50:01 2006
***************
*** 985,990 ****
    if (temp == 0)
      return;
-   if (job_index == js.j_current || job_index == js.j_previous)
-     reset_current ();
  
    if ((dflags & DEL_NOBGPID) == 0)
--- 985,988 ----
***************
*** 1029,1032 ****
--- 1027,1033 ----
    else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0)
      reset_job_indices ();
+ 
+   if (job_index == js.j_current || job_index == js.j_previous)
+     reset_current ();
  }

*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 6
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 7
  
  #endif /* _PATCHLEVEL_H_ */

  


--- NEW FILE bash32-008 ---
			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-008

Bug-Reported-by:	Linda Walsh <bash at tlinx.org>
Bug-Reference-ID:	<456041FD.8000605 at tlinx.org>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html

Bug-Description:

When checking pathnames from the command hash table (e.g., when the `checkhash'
shell option is enabled), a bug causes bash to delete and re-lookup each
command.

Patch:

*** ../bash-3.2-patched/findcmd.c	Wed Aug 17 16:49:54 2005
--- findcmd.c	Fri Nov 24 10:48:37 2006
***************
*** 309,313 ****
      {
        st = file_status (hashed_file);
!       if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0)
  	{
  	  phash_remove (pathname);
--- 309,313 ----
      {
        st = file_status (hashed_file);
!       if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE))
  	{
  	  phash_remove (pathname);
*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 7
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 8
  
  #endif /* _PATCHLEVEL_H_ */


--- NEW FILE bash32-009 ---
			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-009

Bug-Reported-by:	James.M.Botte at lowes.com
Bug-Reference-ID:	<BA9FF90F7E5B424998F98EDA9F1F94BE01FA9853 at msexchdb01.lowes.com>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html

Bug-Description:

When using its built-in replacement for snprintf/asprintf, bash does not
treat the %x, %X, and %o format specifiers as unsigned numbers.

Patch:

*** ../bash-3.2-patched/lib/sh/snprintf.c	Mon Nov 13 08:58:52 2006
--- lib/sh/snprintf.c	Wed Dec  6 11:15:04 2006
***************
*** 669,673 ****
  
    sd = d;	/* signed for ' ' padding in base 10 */
!   flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
    if (*p->pf == 'X')
      flags |= FL_HEXUPPER;
--- 674,679 ----
  
    sd = d;	/* signed for ' ' padding in base 10 */
!   flags = 0;
!   flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
    if (*p->pf == 'X')
      flags |= FL_HEXUPPER;
***************
*** 739,743 ****
  
    sd = d;	/* signed for ' ' padding in base 10 */
!   flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
    if (*p->pf == 'X')
      flags |= FL_HEXUPPER;
--- 745,749 ----
  
    sd = d;	/* signed for ' ' padding in base 10 */
!   flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
    if (*p->pf == 'X')
      flags |= FL_HEXUPPER;
*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 8
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 9
  
  #endif /* _PATCHLEVEL_H_ */


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/bash/devel/.cvsignore,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- .cvsignore	9 Sep 2004 03:32:28 -0000	1.8
+++ .cvsignore	15 Dec 2006 18:02:32 -0000	1.9
@@ -1,2 +1,4 @@
 bash-3.0.tar.gz
 bash-doc-3.0.tar.gz
+bash-3.2.tar.gz
+bash-doc-3.2.tar.gz

bash-2.05a-interpreter.patch:
 config.h.in   |    6 ++
 configure.in  |    4 -
 execute_cmd.c |  144 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 151 insertions(+), 3 deletions(-)

Index: bash-2.05a-interpreter.patch
===================================================================
RCS file: /cvs/dist/rpms/bash/devel/bash-2.05a-interpreter.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- bash-2.05a-interpreter.patch	2 Jan 2006 11:02:47 -0000	1.4
+++ bash-2.05a-interpreter.patch	15 Dec 2006 18:02:32 -0000	1.5
@@ -1,28 +1,6 @@
---- bash-3.1/config.h.in.interpreter	2005-12-23 15:53:21.000000000 +0000
-+++ bash-3.1/config.h.in	2005-12-23 15:53:21.000000000 +0000
-@@ -622,6 +622,9 @@
- /* Define if you have the pathconf function. */
- #undef HAVE_PATHCONF
- 
-+/* Define if you have the pread function. */
-+#undef HAVE_PREAD
-+
- /* Define if you have the putenv function.  */
- #undef HAVE_PUTENV
- 
-@@ -783,6 +786,9 @@
- /* Define if you have the <dlfcn.h> header file.  */
- #undef HAVE_DLFCN_H
- 
-+/* Define if you have the <elf.h> header file.  */
-+#undef HAVE_ELF_H
-+
- /* Define if you have the <grp.h> header file.  */
- #undef HAVE_GRP_H
- 
---- bash-3.1/configure.in.interpreter	2005-12-01 14:36:03.000000000 +0000
-+++ bash-3.1/configure.in	2005-12-23 15:55:10.000000000 +0000
-@@ -632,7 +632,7 @@
+--- bash-3.2/configure.in.interpreter	2006-09-26 16:05:45.000000000 +0100
++++ bash-3.2/configure.in	2006-12-15 17:56:15.000000000 +0000
+@@ -634,7 +634,7 @@
  
  AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
  		 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
@@ -31,17 +9,17 @@
  AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
  		 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
  		 sys/time.h sys/times.h sys/types.h sys/wait.h)
-@@ -695,7 +695,7 @@
- AC_CHECK_FUNCS(dup2 fcntl getdtablesize getgroups gethostname getpagesize \
- 		getpeername getrlimit getrusage gettimeofday kill killpg \
- 		lstat readlink sbrk select setdtablesize tcgetpgrp uname \
--		ulimit waitpid)
-+		ulimit waitpid pread)
+@@ -698,7 +698,7 @@
+ AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
+ 		getpagesize getpeername getrlimit getrusage gettimeofday \
+ 		kill killpg lstat readlink sbrk select setdtablesize \
+-		tcgetpgrp uname ulimit waitpid)
++		tcgetpgrp uname ulimit waitpid pread)
  AC_REPLACE_FUNCS(rename)
  
  dnl checks for c library functions
---- bash-3.1/execute_cmd.c.interpreter	2005-12-23 15:53:21.000000000 +0000
-+++ bash-3.1/execute_cmd.c	2005-12-23 15:56:44.000000000 +0000
+--- bash-3.2/execute_cmd.c.interpreter	2006-12-15 17:55:53.000000000 +0000
++++ bash-3.2/execute_cmd.c	2006-12-15 17:55:53.000000000 +0000
 @@ -40,6 +40,10 @@
  #  include <unistd.h>
  #endif
@@ -53,7 +31,7 @@
  #include "posixtime.h"
  
  #if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE)
-@@ -3872,13 +3876,21 @@
+@@ -3953,13 +3957,21 @@
  	{
  	  /* The file has the execute bits set, but the kernel refuses to
  	     run it for some reason.  See why. */
@@ -76,7 +54,7 @@
  	      interp = getinterp (sample, sample_len, (int *)NULL);
  	      ilen = strlen (interp);
  	      errno = i;
-@@ -3894,6 +3906,136 @@
+@@ -3975,6 +3987,136 @@
  	      return (EX_NOEXEC);
  	    }
  #endif
@@ -213,3 +191,25 @@
  	  errno = i;
  	  file_error (command);
  	}
+--- bash-3.2/config.h.in.interpreter	2006-12-15 17:55:53.000000000 +0000
++++ bash-3.2/config.h.in	2006-12-15 17:55:53.000000000 +0000
+@@ -646,6 +646,9 @@
+ /* Define if you have the pathconf function. */
+ #undef HAVE_PATHCONF
+ 
++/* Define if you have the pread function. */
++#undef HAVE_PREAD
++
+ /* Define if you have the putenv function.  */
+ #undef HAVE_PUTENV
+ 
+@@ -823,6 +826,9 @@
+ /* Define if you have the <dlfcn.h> header file.  */
+ #undef HAVE_DLFCN_H
+ 
++/* Define if you have the <elf.h> header file.  */
++#undef HAVE_ELF_H
++
+ /* Define if you have the <grp.h> header file.  */
+ #undef HAVE_GRP_H
+ 


Index: bash.spec
===================================================================
RCS file: /cvs/dist/rpms/bash/devel/bash.spec,v
retrieving revision 1.123
retrieving revision 1.124
diff -u -r1.123 -r1.124
--- bash.spec	12 Jul 2006 13:09:55 -0000	1.123
+++ bash.spec	15 Dec 2006 18:02:32 -0000	1.124
@@ -1,7 +1,7 @@
-Version: 3.1
+Version: 3.2
 Name: bash
 Summary: The GNU Bourne Again shell (bash) version %{version}.
-Release: 16.1
+Release: 1%{?dist}
 Group: System Environment/Shells
 License: GPL
 Url: http://www.gnu.org/software/bash
@@ -11,41 +11,28 @@
 Source4: dot-bash_profile
 Source5: dot-bash_logout
 # Official upstream patches
-Patch1: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-001
-Patch2: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-002
-Patch3: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-003
-Patch4: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-004
-Patch5: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-005
-Patch6: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-006
-Patch7: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-007
-Patch8: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-008
-Patch9: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-009
-Patch10: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-010
-Patch11: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-011
-Patch12: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-012
-Patch13: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-013
-Patch14: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-014
-Patch15: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-015
-Patch16: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-016
-Patch17: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-017
+Patch1: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-001
+Patch2: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-002
+Patch3: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-003
+Patch4: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-004
+Patch5: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-005
+Patch6: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-006
+Patch7: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-007
+Patch8: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-008
+Patch9: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-009
 # Other patches
 Patch100: bash-2.03-paths.patch
 Patch101: bash-2.02-security.patch
 Patch102: bash-2.03-profile.patch
 Patch103: bash-requires.patch
-Patch105: bash-aq.patch
-Patch106: bash-login.patch
 Patch107: bash-2.05a-interpreter.patch
 Patch108: bash-2.05b-readline-oom.patch
-Patch112: bash-ulimit.patch
 Patch114: bash-2.05b-xcc.patch
 Patch115: bash-2.05b-pgrp_sync.patch
 Patch116: bash-2.05b-manso.patch
 Patch117: bash-2.05b-debuginfo.patch
 Patch118: bash-tty-tests.patch
 Patch126: bash-setlocale.patch
-Patch127: bash-sighandler.patch
-Patch129: bash-read-memleak.patch
 Patch130: bash-infotags.patch
 Prefix: %{_prefix}
 Requires: mktemp
@@ -76,33 +63,20 @@
 %patch7 -p0 -b .007
 %patch8 -p0 -b .008
 %patch9 -p0 -b .009
-%patch10 -p0 -b .010
-%patch11 -p0 -b .011
-%patch12 -p0 -b .012
-%patch13 -p0 -b .013
-%patch14 -p0 -b .014
-%patch15 -p0 -b .015
-%patch16 -p0 -b .016
-%patch17 -p0 -b .017
 
 # Other patches
 %patch100 -p1 -b .paths
 %patch101 -p1 -b .security
 %patch102 -p1 -b .profile
 %patch103 -p1 -b .requires
-%patch105 -p1 -b .aq
-%patch106 -p1 -b .login
 %patch107 -p1 -b .interpreter
 %patch108 -p1 -b .readline-oom
-%patch112 -p1 -b .ulimit
 %patch114 -p1 -b .xcc
 %patch115 -p1 -b .pgrp_sync
 %patch116 -p1 -b .manso
 %patch117 -p1 -b .debuginfo
 %patch118 -p1 -b .tty-tests
 %patch126 -p1 -b .setlocale
-%patch127 -p1 -b .sighandler
-%patch129 -p1 -b .read-memleak
 %patch130 -p1 -b .infotags
 
 echo %{version} > _distribution
@@ -236,6 +210,10 @@
 %doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
 
 %changelog
+* Fri Dec 15 2006 Tim Waugh <twaugh at redhat.com>
+- 3.2.  No longer need aq, login, ulimit, sighandler or read-memleak
+  patches.
+
 * Wed Jul 12 2006 Tim Waugh <twaugh at redhat.com> 3.1-17
 - Fixed 'tags out of date' problem with 'info bash' (bug #150118).
 


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/bash/devel/sources,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- sources	2 Jan 2006 11:04:34 -0000	1.12
+++ sources	15 Dec 2006 18:02:32 -0000	1.13
@@ -1,2 +1,2 @@
-ef5304c4b22aaa5088972c792ed45d72  bash-3.1.tar.gz
-a8c517c6a7b21b8b855190399c5935ae  bash-doc-3.1.tar.gz
+00bfa16d58e034e3c2aa27f390390d30  bash-3.2.tar.gz
+0e904cb46ca873fcfa65df19b024bec9  bash-doc-3.2.tar.gz


--- bash-aq.patch DELETED ---


--- bash-login.patch DELETED ---


--- bash-read-memleak.patch DELETED ---


--- bash-sighandler.patch DELETED ---


--- bash-ulimit.patch DELETED ---


--- bash31-001 DELETED ---


--- bash31-002 DELETED ---


--- bash31-003 DELETED ---


--- bash31-004 DELETED ---


--- bash31-005 DELETED ---


--- bash31-006 DELETED ---


--- bash31-007 DELETED ---


--- bash31-008 DELETED ---


--- bash31-009 DELETED ---


--- bash31-010 DELETED ---


--- bash31-011 DELETED ---


--- bash31-012 DELETED ---


--- bash31-013 DELETED ---


--- bash31-014 DELETED ---


--- bash31-015 DELETED ---


--- bash31-016 DELETED ---


--- bash31-017 DELETED ---




More information about the fedora-cvs-commits mailing list