--- /dev/null
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.0
+Patch-ID: bash30-014
+
+Bug-Reported-by: agriffis@gentoo.org
+Bug-Reference-ID: <20040929024759.A437FEB1E0@piment.flatmonk.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-09/msg00250.html
+
+Bug-Description:
+
+ #
+ # BROKEN case: variable with braces inside quotes
+ #
+
+ $ D=W
+ $ echo "${D}"{illy,onka} => W{illy,onka}
+
+Patch:
+
+*** ../bash-3.0-patched/braces.c Wed Sep 8 11:07:53 2004
+--- braces.c Fri Sep 17 18:42:36 2004
+***************
+*** 403,407 ****
+ pass_next = 1;
+ i++;
+! level++;
+ continue;
+ }
+--- 403,408 ----
+ pass_next = 1;
+ i++;
+! if (quoted == 0)
+! level++;
+ continue;
+ }
+*** ../bash-3.0-patched/patchlevel.h Wed Aug 22 08:05:39 2001
+--- patchlevel.h Thu Sep 2 15:04:32 2004
+***************
+*** 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_ */
--- /dev/null
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.0
+Patch-ID: bash30-015
+
+Bug-Reported-by: opengeometry@yahoo.ca
+Bug-Reference-ID: <200410202012.i9KKCTEB001860@node1.opengeometry.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-10/msg00297.html
+
+Bug-Description:
+
+ Shell variable can start with number and can even be printed with
+ 'declare', as in
+ 1=aaa
+ 1a=bbb
+ declare -p 1 1a
+
+ But, they can't be removed, as in
+ unset 1 1a --> ...: not a valid identifier
+
+ Bash-2.05b correctly gives me error, however.
+
+Patch:
+
+*** ../bash-3.0-patched/general.c Wed Apr 14 23:20:13 2004
+--- general.c Wed Oct 20 16:59:59 2004
+***************
+*** 268,272 ****
+
+ #if defined (ARRAY_VARS)
+! if ((legal_variable_starter (c) == 0) && (flags && c != '[')) /* ] */
+ #else
+ if (legal_variable_starter (c) == 0)
+--- 268,272 ----
+
+ #if defined (ARRAY_VARS)
+! if ((legal_variable_starter (c) == 0) && (flags == 0 || c != '[')) /* ] */
+ #else
+ if (legal_variable_starter (c) == 0)
+
+*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001
+--- patchlevel.h Thu Sep 2 15:04:32 2004
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 14
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 15
+
+ #endif /* _PATCHLEVEL_H_ */
--- /dev/null
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.0
+Patch-ID: bash30-016
+
+Bug-Reported-by: William Park <opengeometry@yahoo.ca>
+Bug-Reference-ID: <200411012217.iA1MHxL7031818@node1.opengeometry.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-11/msg00017.html
+
+Bug-Description:
+
+ Offset from the end of array in ${var: -n} is still off by 1. Eg.
+ x=( {0..9} )
+ echo ${x[*]: -1} --> 8 9
+
+Patch:
+
+*** ../bash-3.0-patched/subst.c Wed Sep 8 11:07:55 2004
+--- subst.c Tue Nov 9 16:26:59 2004
+***************
+*** 4900,4905 ****
+ case VT_ARRAYVAR:
+ a = (ARRAY *)value;
+! /* For arrays, the first value deals with array indices. */
+! len = array_max_index (a); /* arrays index from 0 to n - 1 */
+ break;
+ #endif
+--- 4900,4906 ----
+ case VT_ARRAYVAR:
+ a = (ARRAY *)value;
+! /* For arrays, the first value deals with array indices. Negative
+! offsets count from one past the array's maximum index. */
+! len = array_max_index (a) + (*e1p < 0); /* arrays index from 0 to n - 1 */
+ break;
+ #endif
+*** ../bash-3.0-patched/tests/array.tests Sat Oct 4 23:25:00 2003
+--- tests/array.tests Tue Nov 9 16:36:29 2004
+***************
+*** 323,327 ****
+ echo positive offset - expect five seven
+ echo ${av[@]:5:2}
+! echo negative offset - expect five seven
+ echo ${av[@]: -2:2}
+
+--- 323,327 ----
+ echo positive offset - expect five seven
+ echo ${av[@]:5:2}
+! echo negative offset to unset element - expect seven
+ echo ${av[@]: -2:2}
+
+*** ../bash-3.0-patched/tests/array.right Sat Oct 4 23:25:10 2003
+--- tests/array.right Tue Nov 9 16:37:25 2004
+***************
+*** 171,176 ****
+ positive offset - expect five seven
+ five seven
+! negative offset - expect five seven
+! five seven
+ positive offset 2 - expect seven
+ seven
+--- 171,176 ----
+ positive offset - expect five seven
+ five seven
+! negative offset to unset element - expect seven
+! seven
+ positive offset 2 - expect seven
+ seven
+*** ../bash-3.0-patched/patchlevel.h Tue Oct 26 17:13:29 2004
+--- patchlevel.h Tue Nov 9 16:31:24 2004
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 15
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 16
+
+ #endif /* _PATCHLEVEL_H_ */
+