diff options
author | Mike Frysinger <vapier@gentoo.org> | 2009-02-26 22:21:51 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-02-26 22:21:51 +0000 |
commit | 924ba08905b765c1522505faa6dbb981637f0bab (patch) | |
tree | b7cbae2e2b273da60d153fad4dd14cc544e6f5c6 /app-shells | |
parent | Adding info regarding madwifi and wme_enabled (diff) | |
download | historical-924ba08905b765c1522505faa6dbb981637f0bab.tar.gz historical-924ba08905b765c1522505faa6dbb981637f0bab.tar.bz2 historical-924ba08905b765c1522505faa6dbb981637f0bab.zip |
Add upstream patch for associative array issues.
Package-Manager: portage-2.2_rc23/cvs/Linux x86_64
Diffstat (limited to 'app-shells')
-rw-r--r-- | app-shells/bash/ChangeLog | 6 | ||||
-rw-r--r-- | app-shells/bash/Manifest | 11 | ||||
-rw-r--r-- | app-shells/bash/bash-4.0.ebuild | 3 | ||||
-rw-r--r-- | app-shells/bash/files/bash-4.0-associative-array-subscripts.patch | 232 |
4 files changed, 245 insertions, 7 deletions
diff --git a/app-shells/bash/ChangeLog b/app-shells/bash/ChangeLog index 244a41ef3d3b..2dc67133dd79 100644 --- a/app-shells/bash/ChangeLog +++ b/app-shells/bash/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for app-shells/bash # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.206 2009/02/26 20:26:28 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.207 2009/02/26 22:21:51 vapier Exp $ + + 26 Feb 2009; Mike Frysinger <vapier@gentoo.org> + +files/bash-4.0-associative-array-subscripts.patch, bash-4.0.ebuild: + Add upstream patch for associative array issues. 26 Feb 2009; Mike Frysinger <vapier@gentoo.org> files/bash-4.0-declare-identifier.patch: diff --git a/app-shells/bash/Manifest b/app-shells/bash/Manifest index 1e7a1e20a3b2..e2f42d7a9fe9 100644 --- a/app-shells/bash/Manifest +++ b/app-shells/bash/Manifest @@ -20,6 +20,7 @@ AUX bash-3.2-protos.patch 1106 RMD160 c54848169ebf937486c53af2e6f7e73a6c28285c S AUX bash-3.2-redisplay-cursor.patch 685 RMD160 80fd6fc3eefb4cb589132f8b462b79c3e15d4b90 SHA1 7cb2664f7dd570f46f6302e743262e696f2555d9 SHA256 4bed8131f3ee39fccefc805dbe201eb9b8ce9671b9bc607c3d2a95ac6172d1ba AUX bash-3.2-session-leader.patch 2098 RMD160 b298743fb54162d0caa8d409bf1f7b6f796c65f5 SHA1 ff136654614731ec3252ee5f34235138f0bf381e SHA256 533861310e7cba05f315ff56af32aaca5e4bdf7c2a450d4e616bb14fdf4a1f3d AUX bash-3.2-ulimit.patch 449 RMD160 db5277031105cd4d2b7a6b92a8e74e532eb6f3db SHA1 cc634a2c188ac7661b9f4843f1b98f59d8f311a6 SHA256 d40709360f25ab355dc83e334b512d3dd80e435e241d1e69581fbc41504f8381 +AUX bash-4.0-associative-array-subscripts.patch 6078 RMD160 53190b1630bf39ef2638231f1f2fb4f55eb606e4 SHA1 f65ce1975e55419b6071abe0f0720fffd81c3e33 SHA256 ac44311956ae9aee9a221e52f105f3254f8bd3fd91f1404baa2e1dbf94443ca0 AUX bash-4.0-comsub-backslash-metacharacters.patch 750 RMD160 f297b78a482a8b3b481aa67889609d98826a4619 SHA1 eaf09f94c7745e43cdc64799ab858e9fb3a12e60 SHA256 7ab73ffde1b86d4286b180c6c968ce717908b404a46322c4d1cdb82c398eb03c AUX bash-4.0-declare-identifier.patch 1144 RMD160 192eb95635a40d434a74cc97f2eb59e93bbacac5 SHA1 7ace6f35c12a453ae88d35b2308ef4e9e9cc868d SHA256 79a705ab4c658ca84bf4ee0eb80bef639d6137e9c271eac5cb9f124372ed4c11 AUX bash-4.0-exit-checkjobs.patch 549 RMD160 11158eb2bb4cb8fb0ac53db23b2d4d4cf54f6dc6 SHA1 ff51cc138c5c174829931641a61c2f86fa96d4aa SHA256 7732484a8a014c7fa23f4aa44aeb53671c1967bf373e132de8435d0fe538024a @@ -107,13 +108,13 @@ EBUILD bash-3.1_p17.ebuild 4601 RMD160 7d674942ae8ebcb662faa45a9efacb236bd6202e EBUILD bash-3.2_p39.ebuild 5950 RMD160 22536f34ab6d2eb7d2475c1e4e4cdaacc451df4b SHA1 4cfc39d407627fd7d6d446a0e9b3ed6ce35a2b5f SHA256 c9503776590b2b117773e4000d6aa6e0c73e2b0f32589dcfddab146109e9ea7c EBUILD bash-3.2_p48-r1.ebuild 6124 RMD160 c3b16af5c8d019cb58c57a45ad5be2b9d93b4f2a SHA1 3e8e9ce6957f67abce65678f501883b4cf3b8ad4 SHA256 2895b32812a63c6208bb2a11ef60911751e09dbd42db39dae2d2acd90f9faba6 EBUILD bash-3.2_p48.ebuild 5961 RMD160 9ab905aeac020d82d8369a4853ac208afd4f7b17 SHA1 382b66ff687601decb3bbed25bf0465a2f7fbe93 SHA256 8794b417a6be993a370d2ca7a6bacfef66bb003e06ea410bdedf5b0a33666f65 -EBUILD bash-4.0.ebuild 5807 RMD160 fdd6d660576705362497029e22b1e689057aa8d4 SHA1 4f43fb78762044e18af95bd46754a46c5eec0962 SHA256 eb480383f8ce1470fcb2dec01b2bcdb1657ebeaf8c4c4e5f6278c9b185b5dba8 -MISC ChangeLog 33465 RMD160 9e5446eea78de97d31b62bebc027e4da2b77331f SHA1 495b67c5819ff2c8358be44989f8e7debbf3eb99 SHA256 9732c594263f60018cd0378cc1749e72a3ae9dd33fb7b60707206e718fa6d001 +EBUILD bash-4.0.ebuild 5870 RMD160 b3bb72d231612d951dabd8a2358f09c017289496 SHA1 5064e9cf3a3e215c6964cdac3b31626c71f16402 SHA256 8ae05302cc99a8bc72008c9433f0afd4ce893b6354500f70dd55c41898ae0473 +MISC ChangeLog 33638 RMD160 adf6cf2e5e8359a438da4c3e7732548aab9fb894 SHA1 3a04f3df445aa3c378b644f367178e83df9eebff SHA256 f493064f9e83e722c8532f1c05d117250d8e4fe6b9fe3bf8343f0d66c46e62b3 MISC metadata.xml 468 RMD160 9f720f1227381137311440f58d93250f29969786 SHA1 34bdfd1f0ed219ed79850647615a3b2603a4e079 SHA256 152d66c4d8f40627855ad3b4613e0ab88ff4bbf4333542eae52d411bdeb66e5f -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (GNU/Linux) -iEYEARECAAYFAkmm+vkACgkQn/5bYzqsSmGroACeIT/rwoEFqLTFn5Ahi4///26T -x44An24KwdZKaP2fvP2sWgKMjA3X9syG -=zaeD +iEYEARECAAYFAkmnFgUACgkQn/5bYzqsSmF/oQCfUmWJj/pUb6Xx+RPEpRwOMWWz +HoQAmwZjllF3JRWBbuMPX3XvEaWrwIWn +=31IZ -----END PGP SIGNATURE----- diff --git a/app-shells/bash/bash-4.0.ebuild b/app-shells/bash/bash-4.0.ebuild index fc516276b0cf..bb8572fd8d18 100644 --- a/app-shells/bash/bash-4.0.ebuild +++ b/app-shells/bash/bash-4.0.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.0.ebuild,v 1.10 2009/02/25 22:46:41 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.0.ebuild,v 1.11 2009/02/26 22:21:51 vapier Exp $ EAPI="1" @@ -74,6 +74,7 @@ src_unpack() { epatch "${FILESDIR}"/${P}-declare-identifier.patch epatch "${FILESDIR}"/${P}-reset-parser-current-token.patch epatch "${FILESDIR}"/${P}-pipeline-reserved-word.patch + epatch "${FILESDIR}"/${P}-associative-array-subscripts.patch epatch "${FILESDIR}"/${PN}-4.0-negative-return.patch # Log bash commands to syslog #91327 if use bashlogger ; then diff --git a/app-shells/bash/files/bash-4.0-associative-array-subscripts.patch b/app-shells/bash/files/bash-4.0-associative-array-subscripts.patch new file mode 100644 index 000000000000..6dfc7d1ad0fb --- /dev/null +++ b/app-shells/bash/files/bash-4.0-associative-array-subscripts.patch @@ -0,0 +1,232 @@ +http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00188.html + +*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500 +--- parse.y 2009-02-25 17:25:56.000000000 -0500 +*************** +*** 2916,2919 **** +--- 2919,2923 ---- + #define P_COMMAND 0x08 /* parsing a command, so look for comments */ + #define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */ ++ #define P_ARRAYSUB 0x20 /* parsing a [...] array subscript for assignment */ + + /* Lexical state while parsing a grouping construct or $(...). */ +*************** +*** 3130,3133 **** +--- 3134,3139 ---- + FREE (nestret); + } ++ else if ((flags & P_ARRAYSUB) && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ ++ goto parse_dollar_word; + } + /* Parse an old-style command substitution within double quotes as a +*************** +*** 3146,3149 **** +--- 3152,3156 ---- + /* check for $(), $[], or ${} inside quoted string. */ + { ++ parse_dollar_word: + if (open == ch) /* undo previous increment */ + count--; +*************** +*** 4249,4253 **** + (token_index == 0 && (parser_state&PST_COMPASSIGN)))) + { +! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ +--- 4256,4260 ---- + (token_index == 0 && (parser_state&PST_COMPASSIGN)))) + { +! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARRAYSUB); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ +*** ../bash-4.0/arrayfunc.c 2009-01-04 14:32:21.000000000 -0500 +--- arrayfunc.c 2009-02-25 07:58:54.000000000 -0500 +*************** +*** 605,666 **** + } + +! /* This function assumes s[i] == '['; returns with s[ret] == ']' if +! an array subscript is correctly parsed. */ +! int +! skipsubscript (s, i) +! const char *s; +! int i; +! { +! int count, c; +! #if defined (HANDLE_MULTIBYTE) +! mbstate_t state, state_bak; +! size_t slength, mblength; +! #endif +! +! #if defined (HANDLE_MULTIBYTE) +! memset (&state, '\0', sizeof (mbstate_t)); +! slength = strlen (s + i); +! #endif +! +! count = 1; +! while (count) +! { +! /* Advance one (possibly multibyte) character in S starting at I. */ +! #if defined (HANDLE_MULTIBYTE) +! if (MB_CUR_MAX > 1) +! { +! state_bak = state; +! mblength = mbrlen (s + i, slength, &state); +! +! if (MB_INVALIDCH (mblength)) +! { +! state = state_bak; +! i++; +! slength--; +! } +! else if (MB_NULLWCH (mblength)) +! return i; +! else +! { +! i += mblength; +! slength -= mblength; +! } +! } +! else +! #endif +! ++i; +! +! c = s[i]; +! +! if (c == 0) +! break; +! else if (c == '[') +! count++; +! else if (c == ']') +! count--; +! } +! +! return i; +! } + + /* This function is called with SUB pointing to just after the beginning +--- 605,609 ---- + } + +! /* skipsubscript moved to subst.c to use private functions. 2009/02/24. */ + + /* This function is called with SUB pointing to just after the beginning +*** ../bash-4.0/subst.c 2009-01-28 14:34:12.000000000 -0500 +--- subst.c 2009-02-25 09:18:33.000000000 -0500 +*************** +*** 223,226 **** +--- 223,227 ---- + static char *extract_delimited_string __P((char *, int *, char *, char *, char *, int)); + static char *extract_dollar_brace_string __P((char *, int *, int, int)); ++ static int skip_matched_pair __P((const char *, int, int, int, int)); + + static char *pos_params __P((char *, int, int, int)); +*************** +*** 1375,1378 **** +--- 1376,1480 ---- + #define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); } while (0) + ++ /* This function assumes s[i] == open; returns with s[ret] == close; used to ++ parse array subscripts. FLAGS currently unused. */ ++ static int ++ skip_matched_pair (string, start, open, close, flags) ++ const char *string; ++ int start, open, close, flags; ++ { ++ int i, pass_next, backq, si, c, count; ++ size_t slen; ++ char *temp, *ss; ++ DECLARE_MBSTATE; ++ ++ slen = strlen (string + start) + start; ++ no_longjmp_on_fatal_error = 1; ++ ++ i = start + 1; /* skip over leading bracket */ ++ count = 1; ++ pass_next = backq = 0; ++ ss = (char *)string; ++ while (c = string[i]) ++ { ++ if (pass_next) ++ { ++ pass_next = 0; ++ if (c == 0) ++ CQ_RETURN(i); ++ ADVANCE_CHAR (string, slen, i); ++ continue; ++ } ++ else if (c == '\\') ++ { ++ pass_next = 1; ++ i++; ++ continue; ++ } ++ else if (backq) ++ { ++ if (c == '`') ++ backq = 0; ++ ADVANCE_CHAR (string, slen, i); ++ continue; ++ } ++ else if (c == '`') ++ { ++ backq = 1; ++ i++; ++ continue; ++ } ++ else if (c == open) ++ { ++ count++; ++ i++; ++ continue; ++ } ++ else if (c == close) ++ { ++ count--; ++ if (count == 0) ++ break; ++ i++; ++ continue; ++ } ++ else if (c == '\'' || c == '"') ++ { ++ i = (c == '\'') ? skip_single_quoted (ss, slen, ++i) ++ : skip_double_quoted (ss, slen, ++i); ++ /* no increment, the skip functions increment past the closing quote. */ ++ } ++ else if (c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE)) ++ { ++ si = i + 2; ++ if (string[si] == '\0') ++ CQ_RETURN(si); ++ ++ if (string[i+1] == LPAREN) ++ temp = extract_delimited_string (ss, &si, "$(", "(", ")", SX_NOALLOC|SX_COMMAND); /* ) */ ++ else ++ temp = extract_dollar_brace_string (ss, &si, 0, SX_NOALLOC); ++ i = si; ++ if (string[i] == '\0') /* don't increment i past EOS in loop */ ++ break; ++ i++; ++ continue; ++ } ++ else ++ ADVANCE_CHAR (string, slen, i); ++ } ++ ++ CQ_RETURN(i); ++ } ++ ++ #if defined (ARRAY_VARS) ++ int ++ skipsubscript (string, start) ++ const char *string; ++ int start; ++ { ++ return (skip_matched_pair (string, start, '[', ']', 0)); ++ } ++ #endif ++ + /* Skip characters in STRING until we find a character in DELIMS, and return + the index of that character. START is the index into string at which we |