summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2014-03-20 19:45:36 +0000
committerMike Frysinger <vapier@gentoo.org>2014-03-20 19:45:36 +0000
commit0b7d58e545d7beefcad863e77947c845a081701e (patch)
tree1b7ef466996b3fefc696fc982c65e0b050dd41ff /app-shells
parentVersion bump (diff)
downloadgentoo-2-0b7d58e545d7beefcad863e77947c845a081701e.tar.gz
gentoo-2-0b7d58e545d7beefcad863e77947c845a081701e.tar.bz2
gentoo-2-0b7d58e545d7beefcad863e77947c845a081701e.zip
Add more fixes from upstream.
(Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key D2E96200)
Diffstat (limited to 'app-shells')
-rw-r--r--app-shells/bash/ChangeLog9
-rw-r--r--app-shells/bash/bash-4.3-r2.ebuild (renamed from app-shells/bash/bash-4.3-r1.ebuild)4
-rw-r--r--app-shells/bash/files/bash-4.3-compound-array-empty-value.patch14
-rw-r--r--app-shells/bash/files/bash-4.3-extglob-skipname.patch156
4 files changed, 181 insertions, 2 deletions
diff --git a/app-shells/bash/ChangeLog b/app-shells/bash/ChangeLog
index faa3ee780c76..282247583d07 100644
--- a/app-shells/bash/ChangeLog
+++ b/app-shells/bash/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-shells/bash
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.356 2014/03/19 03:37:33 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.357 2014/03/20 19:45:36 vapier Exp $
+
+*bash-4.3-r2 (20 Mar 2014)
+
+ 20 Mar 2014; Mike Frysinger <vapier@gentoo.org> +bash-4.3-r2.ebuild,
+ +files/bash-4.3-compound-array-empty-value.patch,
+ +files/bash-4.3-extglob-skipname.patch, -bash-4.3-r1.ebuild:
+ Add more fixes from upstream.
19 Mar 2014; Mike Frysinger <vapier@gentoo.org> bash-4.3-r1.ebuild:
Drop job/readline patches as they appear to be fixed in this release already.
diff --git a/app-shells/bash/bash-4.3-r1.ebuild b/app-shells/bash/bash-4.3-r2.ebuild
index 657e88795016..688b310ec3bd 100644
--- a/app-shells/bash/bash-4.3-r1.ebuild
+++ b/app-shells/bash/bash-4.3-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.3-r1.ebuild,v 1.3 2014/03/19 03:37:33 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.3-r2.ebuild,v 1.1 2014/03/20 19:45:36 vapier Exp $
EAPI="4"
@@ -87,6 +87,8 @@ src_prepare() {
epatch "${FILESDIR}"/${P}-jobs-exit.patch
epatch "${FILESDIR}"/${P}-parse-ansi-expand.patch
epatch "${FILESDIR}"/${P}-pcomplete-dequote.patch
+ epatch "${FILESDIR}"/${P}-extglob-skipname.patch
+ epatch "${FILESDIR}"/${P}-compound-array-empty-value.patch
epatch_user
}
diff --git a/app-shells/bash/files/bash-4.3-compound-array-empty-value.patch b/app-shells/bash/files/bash-4.3-compound-array-empty-value.patch
new file mode 100644
index 000000000000..46ffa15f3e8b
--- /dev/null
+++ b/app-shells/bash/files/bash-4.3-compound-array-empty-value.patch
@@ -0,0 +1,14 @@
+*** ../bash-4.3/arrayfunc.c 2013-08-02 16:19:59.000000000 -0400
+--- arrayfunc.c 2014-03-18 11:08:15.000000000 -0400
+***************
+*** 598,601 ****
+--- 598,606 ----
+ {
+ val = expand_assignment_string_to_string (val, 0);
++ if (val == 0)
++ {
++ val = (char *)xmalloc (1);
++ val[0] = '\0'; /* like do_assignment_internal */
++ }
+ free_val = 1;
+ }
diff --git a/app-shells/bash/files/bash-4.3-extglob-skipname.patch b/app-shells/bash/files/bash-4.3-extglob-skipname.patch
new file mode 100644
index 000000000000..9461d697da3e
--- /dev/null
+++ b/app-shells/bash/files/bash-4.3-extglob-skipname.patch
@@ -0,0 +1,156 @@
+*** ../bash-4.3/lib/glob/gmisc.c 2013-10-28 14:45:25.000000000 -0400
+--- lib/glob/gmisc.c 2014-03-19 09:16:08.000000000 -0400
+***************
+*** 211,214 ****
+--- 211,215 ----
+ case '!':
+ case '@':
++ case '?':
+ return (pat[1] == LPAREN);
+ default:
+*** ../bash-4.3/lib/glob/glob.c 2014-01-31 21:43:51.000000000 -0500
+--- lib/glob/glob.c 2014-03-20 09:01:26.000000000 -0400
+***************
+*** 180,202 ****
+ int flags;
+ {
+! char *pp, *pe, *t;
+! int n, r;
+
+ pp = pat + 2;
+! pe = pp + strlen (pp) - 1; /*(*/
+! if (*pe != ')')
+! return 0;
+! if ((t = strchr (pp, '|')) == 0) /* easy case first */
+ {
+ *pe = '\0';
+ r = skipname (pp, dname, flags); /*(*/
+ *pe = ')';
+ return r;
+ }
+ while (t = glob_patscan (pp, pe, '|'))
+ {
+ n = t[-1];
+ t[-1] = '\0';
+ r = skipname (pp, dname, flags);
+ t[-1] = n;
+ if (r == 0) /* if any pattern says not skip, we don't skip */
+--- 180,215 ----
+ int flags;
+ {
+! char *pp, *pe, *t, *se;
+! int n, r, negate;
+
++ negate = *pat == '!';
+ pp = pat + 2;
+! se = pp + strlen (pp) - 1; /* end of string */
+! pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */
+! /* we should check for invalid extglob pattern here */
+! /* if pe != se we have more of the pattern at the end of the extglob
+! pattern. Check the easy case first ( */
+! if (pe == se && *pe == ')' && (t = strchr (pp, '|')) == 0)
+ {
+ *pe = '\0';
++ #if defined (HANDLE_MULTIBYTE)
++ r = mbskipname (pp, dname, flags);
++ #else
+ r = skipname (pp, dname, flags); /*(*/
++ #endif
+ *pe = ')';
+ return r;
+ }
++
++ /* check every subpattern */
+ while (t = glob_patscan (pp, pe, '|'))
+ {
+ n = t[-1];
+ t[-1] = '\0';
++ #if defined (HANDLE_MULTIBYTE)
++ r = mbskipname (pp, dname, flags);
++ #else
+ r = skipname (pp, dname, flags);
++ #endif
+ t[-1] = n;
+ if (r == 0) /* if any pattern says not skip, we don't skip */
+***************
+*** 205,219 ****
+ } /*(*/
+
+! if (pp == pe) /* glob_patscan might find end of pattern */
+ return r;
+
+! *pe = '\0';
+! # if defined (HANDLE_MULTIBYTE)
+! r = mbskipname (pp, dname, flags); /*(*/
+! # else
+! r = skipname (pp, dname, flags); /*(*/
+! # endif
+! *pe = ')';
+! return r;
+ }
+ #endif
+--- 218,227 ----
+ } /*(*/
+
+! /* glob_patscan might find end of pattern */
+! if (pp == se)
+ return r;
+
+! /* but if it doesn't then we didn't match a leading dot */
+! return 0;
+ }
+ #endif
+***************
+*** 278,289 ****
+ {
+ #if EXTENDED_GLOB
+! wchar_t *pp, *pe, *t, n;
+! int r;
+
+ pp = pat + 2;
+! pe = pp + wcslen (pp) - 1; /*(*/
+! if (*pe != L')')
+! return 0;
+! if ((t = wcschr (pp, L'|')) == 0)
+ {
+ *pe = L'\0';
+--- 286,298 ----
+ {
+ #if EXTENDED_GLOB
+! wchar_t *pp, *pe, *t, n, *se;
+! int r, negate;
+
++ negate = *pat == L'!';
+ pp = pat + 2;
+! se = pp + wcslen (pp) - 1; /*(*/
+! pe = glob_patscan_wc (pp, se, 0);
+!
+! if (pe == se && *pe == ')' && (t = wcschr (pp, L'|')) == 0)
+ {
+ *pe = L'\0';
+***************
+*** 292,295 ****
+--- 301,306 ----
+ return r;
+ }
++
++ /* check every subpattern */
+ while (t = glob_patscan_wc (pp, pe, '|'))
+ {
+***************
+*** 306,313 ****
+ return r;
+
+! *pe = L'\0';
+! r = wchkname (pp, dname); /*(*/
+! *pe = L')';
+! return r;
+ #else
+ return (wchkname (pat, dname));
+--- 317,322 ----
+ return r;
+
+! /* but if it doesn't then we didn't match a leading dot */
+! return 0;
+ #else
+ return (wchkname (pat, dname));