summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-02-19 17:20:16 +0000
committerMike Frysinger <vapier@gentoo.org>2011-02-19 17:20:16 +0000
commit823e073de0b2e0e5003fd2305f7d02010165229b (patch)
tree55a046731a325a4d322587f9326e760ad6671d27 /app-shells
parentRespect LDFLAGS (bug #335545) (diff)
downloadgentoo-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/ChangeLog7
-rw-r--r--app-shells/bash/bash-4.2.ebuild6
-rw-r--r--app-shells/bash/files/bash-4.2-patmatch.patch284
-rw-r--r--app-shells/bash/files/bash-4.2-rhs-split.patch19
-rw-r--r--app-shells/bash/files/bash-4.2-vidomove.patch27
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;
+ }