diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-02-19 17:20:16 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-02-19 17:20:16 +0000 |
commit | 823e073de0b2e0e5003fd2305f7d02010165229b (patch) | |
tree | 55a046731a325a4d322587f9326e760ad6671d27 /app-shells | |
parent | Respect LDFLAGS (bug #335545) (diff) | |
download | gentoo-2-823e073de0b2e0e5003fd2305f7d02010165229b.tar.gz gentoo-2-823e073de0b2e0e5003fd2305f7d02010165229b.tar.bz2 gentoo-2-823e073de0b2e0e5003fd2305f7d02010165229b.zip |
Add some fixes from upstream.
(Portage version: 2.2.0_alpha23/cvs/Linux x86_64)
Diffstat (limited to 'app-shells')
-rw-r--r-- | app-shells/bash/ChangeLog | 7 | ||||
-rw-r--r-- | app-shells/bash/bash-4.2.ebuild | 6 | ||||
-rw-r--r-- | app-shells/bash/files/bash-4.2-patmatch.patch | 284 | ||||
-rw-r--r-- | app-shells/bash/files/bash-4.2-rhs-split.patch | 19 | ||||
-rw-r--r-- | app-shells/bash/files/bash-4.2-vidomove.patch | 27 |
5 files changed, 341 insertions, 2 deletions
diff --git a/app-shells/bash/ChangeLog b/app-shells/bash/ChangeLog index 16c9f81d7f26..f83ea9f18ee5 100644 --- a/app-shells/bash/ChangeLog +++ b/app-shells/bash/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for app-shells/bash # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.276 2011/02/15 03:44:16 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.277 2011/02/19 17:20:15 vapier Exp $ + + 19 Feb 2011; Mike Frysinger <vapier@gentoo.org> bash-4.2.ebuild, + +files/bash-4.2-patmatch.patch, +files/bash-4.2-rhs-split.patch, + +files/bash-4.2-vidomove.patch: + Add some fixes from upstream. *bash-4.2 (15 Feb 2011) diff --git a/app-shells/bash/bash-4.2.ebuild b/app-shells/bash/bash-4.2.ebuild index c8acee5bc0d2..093e72458672 100644 --- a/app-shells/bash/bash-4.2.ebuild +++ b/app-shells/bash/bash-4.2.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.2.ebuild,v 1.1 2011/02/15 03:44:16 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.2.ebuild,v 1.2 2011/02/19 17:20:15 vapier Exp $ EAPI="1" @@ -69,6 +69,10 @@ src_unpack() { cd lib/readline [[ ${READLINE_PLEVEL} -gt 0 ]] && epatch $(patches -s ${READLINE_PLEVEL} readline ${READLINE_VER}) cd ../.. + + epatch "${FILESDIR}"/${P}-patmatch.patch + epatch "${FILESDIR}"/${P}-vidomove.patch + epatch "${FILESDIR}"/${P}-rhs-split.patch } src_compile() { diff --git a/app-shells/bash/files/bash-4.2-patmatch.patch b/app-shells/bash/files/bash-4.2-patmatch.patch new file mode 100644 index 000000000000..dfe5610abeac --- /dev/null +++ b/app-shells/bash/files/bash-4.2-patmatch.patch @@ -0,0 +1,284 @@ +*** ../bash-4.2/lib/glob/gmisc.c 2011-02-05 16:11:17.000000000 -0500 +--- lib/glob/gmisc.c 2011-02-18 23:53:42.000000000 -0500 +*************** +*** 78,83 **** + size_t wmax; + { +! wchar_t wc, *wbrack; +! int matlen, t, in_cclass, in_collsym, in_equiv; + + if (*wpat == 0) +--- 78,83 ---- + size_t wmax; + { +! wchar_t wc; +! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv; + + if (*wpat == 0) +*************** +*** 119,123 **** + case L'[': + /* scan for ending `]', skipping over embedded [:...:] */ +! wbrack = wpat; + wc = *wpat++; + do +--- 119,123 ---- + case L'[': + /* scan for ending `]', skipping over embedded [:...:] */ +! bracklen = 1; + wc = *wpat++; + do +*************** +*** 125,140 **** + if (wc == 0) + { +! matlen += wpat - wbrack - 1; /* incremented below */ +! break; + } + else if (wc == L'\\') + { +! wc = *wpat++; +! if (*wpat == 0) +! break; + } + else if (wc == L'[' && *wpat == L':') /* character class */ + { + wpat++; + in_cclass = 1; + } +--- 125,148 ---- + if (wc == 0) + { +! wpat--; /* back up to NUL */ +! matlen += bracklen; +! goto bad_bracket; + } + else if (wc == L'\\') + { +! /* *wpat == backslash-escaped character */ +! bracklen++; +! /* If the backslash or backslash-escape ends the string, +! bail. The ++wpat skips over the backslash escape */ +! if (*wpat == 0 || *++wpat == 0) +! { +! matlen += bracklen; +! goto bad_bracket; +! } + } + else if (wc == L'[' && *wpat == L':') /* character class */ + { + wpat++; ++ bracklen++; + in_cclass = 1; + } +*************** +*** 142,145 **** +--- 150,154 ---- + { + wpat++; ++ bracklen++; + in_cclass = 0; + } +*************** +*** 147,152 **** + { + wpat++; + if (*wpat == L']') /* right bracket can appear as collating symbol */ +! wpat++; + in_collsym = 1; + } +--- 156,165 ---- + { + wpat++; ++ bracklen++; + if (*wpat == L']') /* right bracket can appear as collating symbol */ +! { +! wpat++; +! bracklen++; +! } + in_collsym = 1; + } +*************** +*** 154,157 **** +--- 167,171 ---- + { + wpat++; ++ bracklen++; + in_collsym = 0; + } +*************** +*** 159,164 **** + { + wpat++; + if (*wpat == L']') /* right bracket can appear as equivalence class */ +! wpat++; + in_equiv = 1; + } +--- 173,182 ---- + { + wpat++; ++ bracklen++; + if (*wpat == L']') /* right bracket can appear as equivalence class */ +! { +! wpat++; +! bracklen++; +! } + in_equiv = 1; + } +*************** +*** 166,174 **** +--- 184,196 ---- + { + wpat++; ++ bracklen++; + in_equiv = 0; + } ++ else ++ bracklen++; + } + while ((wc = *wpat++) != L']'); + matlen++; /* bracket expression can only match one char */ ++ bad_bracket: + break; + } +*************** +*** 214,219 **** + size_t max; + { +! char c, *brack; +! int matlen, t, in_cclass, in_collsym, in_equiv; + + if (*pat == 0) +--- 236,241 ---- + size_t max; + { +! char c; +! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv; + + if (*pat == 0) +*************** +*** 255,259 **** + case '[': + /* scan for ending `]', skipping over embedded [:...:] */ +! brack = pat; + c = *pat++; + do +--- 277,281 ---- + case '[': + /* scan for ending `]', skipping over embedded [:...:] */ +! bracklen = 1; + c = *pat++; + do +*************** +*** 261,276 **** + if (c == 0) + { +! matlen += pat - brack - 1; /* incremented below */ +! break; + } + else if (c == '\\') + { +! c = *pat++; +! if (*pat == 0) +! break; + } + else if (c == '[' && *pat == ':') /* character class */ + { + pat++; + in_cclass = 1; + } +--- 283,306 ---- + if (c == 0) + { +! pat--; /* back up to NUL */ +! matlen += bracklen; +! goto bad_bracket; + } + else if (c == '\\') + { +! /* *pat == backslash-escaped character */ +! bracklen++; +! /* If the backslash or backslash-escape ends the string, +! bail. The ++pat skips over the backslash escape */ +! if (*pat == 0 || *++pat == 0) +! { +! matlen += bracklen; +! goto bad_bracket; +! } + } + else if (c == '[' && *pat == ':') /* character class */ + { + pat++; ++ bracklen++; + in_cclass = 1; + } +*************** +*** 278,281 **** +--- 308,312 ---- + { + pat++; ++ bracklen++; + in_cclass = 0; + } +*************** +*** 283,288 **** + { + pat++; + if (*pat == ']') /* right bracket can appear as collating symbol */ +! pat++; + in_collsym = 1; + } +--- 314,323 ---- + { + pat++; ++ bracklen++; + if (*pat == ']') /* right bracket can appear as collating symbol */ +! { +! pat++; +! bracklen++; +! } + in_collsym = 1; + } +*************** +*** 290,293 **** +--- 325,329 ---- + { + pat++; ++ bracklen++; + in_collsym = 0; + } +*************** +*** 295,300 **** + { + pat++; + if (*pat == ']') /* right bracket can appear as equivalence class */ +! pat++; + in_equiv = 1; + } +--- 331,340 ---- + { + pat++; ++ bracklen++; + if (*pat == ']') /* right bracket can appear as equivalence class */ +! { +! pat++; +! bracklen++; +! } + in_equiv = 1; + } +*************** +*** 302,310 **** +--- 342,354 ---- + { + pat++; ++ bracklen++; + in_equiv = 0; + } ++ else ++ bracklen++; + } + while ((c = *pat++) != ']'); + matlen++; /* bracket expression can only match one char */ ++ bad_bracket: + break; + } diff --git a/app-shells/bash/files/bash-4.2-rhs-split.patch b/app-shells/bash/files/bash-4.2-rhs-split.patch new file mode 100644 index 000000000000..59c436479ff9 --- /dev/null +++ b/app-shells/bash/files/bash-4.2-rhs-split.patch @@ -0,0 +1,19 @@ +*** ../bash-4.2/subst.c 2011-01-02 16:12:51.000000000 -0500 +--- subst.c 2011-02-18 22:30:13.000000000 -0500 +*************** +*** 3371,3377 **** + if (string == 0 || *string == '\0') + return (WORD_LIST *)NULL; + +! td.flags = 0; + td.word = string; + tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at); + return (tresult); +--- 3375,3381 ---- + if (string == 0 || *string == '\0') + return (WORD_LIST *)NULL; + +! td.flags = W_NOSPLIT2; /* no splitting, remove "" and '' */ + td.word = string; + tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at); + return (tresult); diff --git a/app-shells/bash/files/bash-4.2-vidomove.patch b/app-shells/bash/files/bash-4.2-vidomove.patch new file mode 100644 index 000000000000..117b73859db1 --- /dev/null +++ b/app-shells/bash/files/bash-4.2-vidomove.patch @@ -0,0 +1,27 @@ +*** ../bash-4.2/lib/readline/vi_mode.c 2010-11-20 19:51:39.000000000 -0500 +--- lib/readline/vi_mode.c 2011-02-17 20:24:25.000000000 -0500 +*************** +*** 1115,1119 **** + _rl_vi_last_motion = c; + RL_UNSETSTATE (RL_STATE_VIMOTION); +! return (0); + } + #if defined (READLINE_CALLBACKS) +--- 1115,1119 ---- + _rl_vi_last_motion = c; + RL_UNSETSTATE (RL_STATE_VIMOTION); +! return (vidomove_dispatch (m)); + } + #if defined (READLINE_CALLBACKS) +*** ../bash-4.2/lib/readline/callback.c 2010-06-06 12:18:58.000000000 -0400 +--- lib/readline/callback.c 2011-02-17 20:43:28.000000000 -0500 +*************** +*** 149,152 **** +--- 149,155 ---- + /* Should handle everything, including cleanup, numeric arguments, + and turning off RL_STATE_VIMOTION */ ++ if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) ++ _rl_internal_char_cleanup (); ++ + return; + } |