diff options
| author | Gustavo Zacarias <gustavo@zacarias.com.ar> | 2010-06-09 10:36:26 -0300 | 
|---|---|---|
| committer | Peter Korsgaard <jacmet@sunsite.dk> | 2010-07-01 21:42:32 +0200 | 
| commit | 3404ad7c4fd5997ba7becf239ab8bc5b919393aa (patch) | |
| tree | bf4a1d787f51f7f8aac70693f86a4a1446356a52 /package/bash/bash32-014 | |
| parent | da32c7ca2d488ffdd2e37a1cc533338741342a3c (diff) | |
| download | buildroot-novena-3404ad7c4fd5997ba7becf239ab8bc5b919393aa.tar.gz buildroot-novena-3404ad7c4fd5997ba7becf239ab8bc5b919393aa.zip  | |
bash: bump to 4.1.7(1) and migrate to autotargets
Closes #1993
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/bash/bash32-014')
| -rw-r--r-- | package/bash/bash32-014 | 307 | 
1 files changed, 0 insertions, 307 deletions
diff --git a/package/bash/bash32-014 b/package/bash/bash32-014 deleted file mode 100644 index 3da7bbc31..000000000 --- a/package/bash/bash32-014 +++ /dev/null @@ -1,307 +0,0 @@ -			     BASH PATCH REPORT -			     ================= - -Bash-Release: 3.2 -Patch-ID: bash32-014 - -Bug-Reported-by: Brett Stahlman <brettstahlman@comcast.net> -Bug-Reference-ID: <000701c72d29$a227e0e0$5ec7cf47@computerroom> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00065.html - -Bug-Description: - -Bash mishandles word splitting under certain circumstances when IFS is -null (IFS=).  Constructs affected include ${param/pat/sub} and others -when expanding arrays (array[@]). - -Patch: - -*** ../bash-3.2-patched/array.c	Wed Jun  1 16:39:22 2005 ---- bash-3.2/array.c	Mon Jan 15 22:58:00 2007 -*************** -*** 121,125 **** -  } -   -- #ifdef INCLUDE_UNUSED -  /* -   * Make and return a new array composed of the elements in array A from ---- 121,124 ---- -*************** -*** 142,146 **** -  		n = array_create_element (element_index(p), element_value(p)); -  		ADD_BEFORE(a->head, n); -! 		mi = element_index(ae); -  	} -  	a->num_elements = i; ---- 141,145 ---- -  		n = array_create_element (element_index(p), element_value(p)); -  		ADD_BEFORE(a->head, n); -! 		mi = element_index(n); -  	} -  	a->num_elements = i; -*************** -*** 148,152 **** -  	return a; -  } -- #endif -   -  /* ---- 147,150 ---- -*************** -*** 301,304 **** ---- 299,319 ---- -  } -   -+ ARRAY	* -+ array_quote_escapes(array) -+ ARRAY	*array; -+ { -+ 	ARRAY_ELEMENT	*a; -+ 	char	*t; -+  -+ 	if (array == 0 || array_head(array) == 0 || array_empty(array)) -+ 		return (ARRAY *)NULL; -+ 	for (a = element_forw(array->head); a != array->head; a = element_forw(a)) { -+ 		t = quote_escapes (a->value); -+ 		FREE(a->value); -+ 		a->value = t; -+ 	} -+ 	return array; -+ } -+  -  /* -   * Return a string whose elements are the members of array A beginning at -*************** -*** 312,318 **** -  int	starsub, quoted; -  { -  	ARRAY_ELEMENT	*h, *p; -  	arrayind_t	i; -! 	char		*ifs, sep[2]; -   -  	p = a ? array_head (a) : 0; ---- 327,334 ---- -  int	starsub, quoted; -  { -+ 	ARRAY		*a2; -  	ARRAY_ELEMENT	*h, *p; -  	arrayind_t	i; -! 	char		*ifs, sep[2], *t; -   -  	p = a ? array_head (a) : 0; -*************** -*** 337,340 **** ---- 353,363 ---- -  		; -   -+ 	a2 = array_slice(a, h, p); -+  -+ 	if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) -+ 		array_quote(a2); -+ 	else -+ 		array_quote_escapes(a2); -+  -  	if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) { -  		ifs = getifs(); -*************** -*** 344,348 **** -  	sep[1] = '\0'; -   -! 	return (array_to_string_internal (h, p, sep, quoted)); -  } -   ---- 367,374 ---- -  	sep[1] = '\0'; -   -! 	t = array_to_string (a2, sep, 0); -! 	array_dispose(a2); -!  -! 	return t; -  } -   -*************** -*** 368,372 **** -   -  	if (mflags & MATCH_QUOTED) -! 		array_quote (a2); -  	if (mflags & MATCH_STARSUB) { -  		ifs = getifs(); ---- 394,400 ---- -   -  	if (mflags & MATCH_QUOTED) -! 		array_quote(a2); -! 	else -! 		array_quote_escapes(a2); -  	if (mflags & MATCH_STARSUB) { -  		ifs = getifs(); -*** ../bash-3.2-patched/array.h	Sun Jun  1 15:50:30 2003 ---- bash-3.2/array.h	Mon Jan 15 22:35:35 2007 -*************** -*** 56,59 **** ---- 56,60 ---- -  extern int	array_shift_element __P((ARRAY *, char *)); -  extern ARRAY	*array_quote __P((ARRAY *)); -+ extern ARRAY	*array_quote_escapes __P((ARRAY *)); -   -  extern char	*array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int)); -*** ../bash-3.2-patched/subst.c	Fri Mar  2 16:20:50 2007 ---- bash-3.2/subst.c	Tue Mar  6 11:40:55 2007 -*************** -*** 1888,1892 **** ---- 1889,1899 ---- -  #endif -   -+   /* XXX -- why call quote_list if ifs == 0?  we can get away without doing -+      it now that quote_escapes quotes spaces */ -+ #if 0 -    tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0)) -+ #else -+   tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) -+ #endif -  		? quote_list (list) -  		: list_quote_escapes (list); -*************** -*** 2922,2926 **** -  /* Quote escape characters in string s, but no other characters.  This is -     used to protect CTLESC and CTLNUL in variable values from the rest of -!    the word expansion process after the variable is expanded. */ -  char * -  quote_escapes (string) ---- 2935,2944 ---- -  /* Quote escape characters in string s, but no other characters.  This is -     used to protect CTLESC and CTLNUL in variable values from the rest of -!    the word expansion process after the variable is expanded.  If IFS is -!    null, we quote spaces as well, just in case we split on spaces later -!    (in the case of unquoted $@, we will eventually attempt to split the -!    entire word on spaces).  Corresponding code exists in dequote_escapes. -!    Even if we don't end up splitting on spaces, quoting spaces is not a -!    problem. */ -  char * -  quote_escapes (string) -*************** -*** 2930,2933 **** ---- 2948,2952 ---- -    size_t slen; -    char *result, *send; -+   int quote_spaces; -    DECLARE_MBSTATE;  -   -*************** -*** 2935,2938 **** ---- 2954,2958 ---- -    send = string + slen; -   -+   quote_spaces = (ifs_value && *ifs_value == 0); -    t = result = (char *)xmalloc ((slen * 2) + 1); -    s = string; -*************** -*** 2940,2944 **** -    while (*s) -      { -!       if (*s == CTLESC || *s == CTLNUL) -  	*t++ = CTLESC; -        COPY_CHAR_P (t, s, send); ---- 2960,2964 ---- -    while (*s) -      { -!       if (*s == CTLESC || *s == CTLNUL || (quote_spaces && *s == ' ')) -  	*t++ = CTLESC; -        COPY_CHAR_P (t, s, send); -*************** -*** 2982,2985 **** ---- 3002,3006 ---- -    size_t slen; -    char *result, *send; -+   int quote_spaces; -    DECLARE_MBSTATE; -   -*************** -*** 2996,3002 **** -      return (strcpy (result, s)); -   -    while (*s) -      { -!       if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL)) -  	{ -  	  s++; ---- 3017,3024 ---- -      return (strcpy (result, s)); -   -+   quote_spaces = (ifs_value && *ifs_value == 0); -    while (*s) -      { -!       if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' '))) -  	{ -  	  s++; -*************** -*** 4462,4466 **** -        RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE); -   -!       if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || c == CTLESC || c == CTLNUL) -  	istring[istring_index++] = CTLESC; -   ---- 4498,4510 ---- -        RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE); -   -!       /* This is essentially quote_string inline */ -!       if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */) -! 	istring[istring_index++] = CTLESC; -!       /* Escape CTLESC and CTLNUL in the output to protect those characters -! 	 from the rest of the word expansions (word splitting and globbing.) -! 	 This is essentially quote_escapes inline. */ -!       else if (c == CTLESC) -! 	istring[istring_index++] = CTLESC; -!       else if (c == CTLNUL || (c == ' ' && (ifs_value && *ifs_value == 0))) -  	istring[istring_index++] = CTLESC; -   -*************** -*** 5552,5555 **** ---- 5610,5616 ---- -  	 rely on array_subrange to understand how to deal with them). */ -        tt = array_subrange (array_cell (v), e1, e2, starsub, quoted); -+ #if 0 -+       /* array_subrange now calls array_quote_escapes as appropriate, so the -+ 	 caller no longer needs to. */ -        if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0) -  	{ -*************** -*** 5558,5561 **** ---- 5619,5623 ---- -  	} -        else -+ #endif -  	temp = tt; -        break; -*************** -*** 5808,5811 **** ---- 5870,5876 ---- -      case VT_ARRAYVAR: -        temp = array_patsub (array_cell (v), p, rep, mflags); -+ #if 0 -+       /* Don't need to do this anymore; array_patsub calls array_quote_escapes -+ 	 as appropriate before adding the space separators. */ -        if (temp && (mflags & MATCH_QUOTED) == 0) -  	{ -*************** -*** 5814,5817 **** ---- 5879,5883 ---- -  	  temp = tt; -  	} -+ #endif -        break; -  #endif -*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006 ---- bash-3.2/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 13 -   -  #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- -     looks for to find the patch level (for the sccs version string). */ -   -! #define PATCHLEVEL 14 -   -  #endif /* _PATCHLEVEL_H_ */  | 
