diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-04-15 02:24:59 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-04-15 02:24:59 +0000 |
commit | 607633f50a273f03bc140f7c5b7c22ba639743cb (patch) | |
tree | 5bf39ad91f1a7a3f78262b317fc507a05338952c /package/bash/bash31-017 | |
parent | 6d008e61f2bf0543f443f458334926e7794e3758 (diff) | |
download | buildroot-novena-607633f50a273f03bc140f7c5b7c22ba639743cb.tar.gz buildroot-novena-607633f50a273f03bc140f7c5b7c22ba639743cb.zip |
some more upstream patches
Diffstat (limited to 'package/bash/bash31-017')
-rw-r--r-- | package/bash/bash31-017 | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/package/bash/bash31-017 b/package/bash/bash31-017 new file mode 100644 index 000000000..60e4acdfa --- /dev/null +++ b/package/bash/bash31-017 @@ -0,0 +1,131 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-017 + +Bug-Reported-by: syphir@syphir.sytes.net +Bug-Reference-ID: <442421F5.3010105@syphir.sytes.net> +Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=358831 + +Bug-Description: + +Array expansion fails with an arithmetic syntax error when the subscript +appears within double quotes. For example: ${a["4"]}. + +Patch: + +*** bash-3.1/subst.c Wed Apr 12 08:47:08 2006 +--- bash-3.1/subst.c Wed Apr 12 08:49:02 2006 +*************** +*** 2576,2579 **** +--- 2576,2586 ---- + } + ++ char * ++ expand_arith_string (string, quoted) ++ char *string; ++ { ++ return (expand_string_if_necessary (string, quoted, expand_string)); ++ } ++ + #if defined (COND_COMMAND) + /* Just remove backslashes in STRING. Returns a new string. */ +*************** +*** 5249,5253 **** + t = (char *)0; + +! temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string); + *e1p = evalexp (temp1, &expok); + free (temp1); +--- 5256,5260 ---- + t = (char *)0; + +! temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES); + *e1p = evalexp (temp1, &expok); + free (temp1); +*************** +*** 5294,5298 **** + t++; + temp2 = savestring (t); +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + t[-1] = ':'; +--- 5301,5305 ---- + t++; + temp2 = savestring (t); +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + t[-1] = ':'; +*************** +*** 6436,6440 **** + + /* Expand variables found inside the expression. */ +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + +--- 6443,6447 ---- + + /* Expand variables found inside the expression. */ +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + +*************** +*** 6478,6482 **** + + /* Do initial variable expansion. */ +! temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string); + + goto arithsub; +--- 6485,6489 ---- + + /* Do initial variable expansion. */ +! temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES); + + goto arithsub; +*** bash-3.1/subst.h Sun Nov 7 15:12:28 2004 +--- bash-3.1/subst.h Mon Mar 27 09:10:38 2006 +*************** +*** 152,155 **** +--- 152,158 ---- + extern char *expand_assignment_string_to_string __P((char *, int)); + ++ /* Expand an arithmetic expression string */ ++ extern char *expand_arith_string __P((char *, int)); ++ + /* De-quoted quoted characters in STRING. */ + extern char *dequote_string __P((char *)); +*** ../bash-3.1-patched/arrayfunc.c Mon Jul 4 20:25:58 2005 +--- arrayfunc.c Mon Mar 27 09:10:47 2006 +*************** +*** 593,601 **** + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! #if 0 +! t = expand_string_to_string (exp, 0); +! #else +! t = expand_string_to_string (exp, Q_DOUBLE_QUOTES); +! #endif + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +--- 591,595 ---- + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! t = expand_arith_string (exp, 0); + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ |