summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2014-05-07 08:23:13 +0000
committerLars Wendler <polynomial-c@gentoo.org>2014-05-07 08:23:13 +0000
commiteb5751fcff82ec8d9faad65906613601548623e8 (patch)
tree731730a1aeb6bbddc6fa46b690eb4b9a9aa8ce89 /app-shells
parentBump to 4.7.2, thanks to slepnoga. (diff)
downloadgentoo-2-eb5751fcff82ec8d9faad65906613601548623e8.tar.gz
gentoo-2-eb5751fcff82ec8d9faad65906613601548623e8.tar.bz2
gentoo-2-eb5751fcff82ec8d9faad65906613601548623e8.zip
Added another upstream fix. Removed old
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 0x981CA6FC)
Diffstat (limited to 'app-shells')
-rw-r--r--app-shells/bash/ChangeLog8
-rw-r--r--app-shells/bash/bash-4.3_p11-r3.ebuild (renamed from app-shells/bash/bash-4.3_p11-r1.ebuild)6
-rw-r--r--app-shells/bash/files/bash-4.3-extglob-directory.patch100
3 files changed, 111 insertions, 3 deletions
diff --git a/app-shells/bash/ChangeLog b/app-shells/bash/ChangeLog
index 0ac1e6cf598f..ca4661f8fd43 100644
--- a/app-shells/bash/ChangeLog
+++ b/app-shells/bash/ChangeLog
@@ -1,6 +1,12 @@
# 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.366 2014/04/26 20:14:20 polynomial-c Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.367 2014/05/07 08:23:12 polynomial-c Exp $
+
+*bash-4.3_p11-r3 (07 May 2014)
+
+ 07 May 2014; Lars Wendler <polynomial-c@gentoo.org> -bash-4.3_p11-r1.ebuild,
+ +bash-4.3_p11-r3.ebuild, +files/bash-4.3-extglob-directory.patch:
+ Added another upstream fix. Removed old.
*bash-4.3_p11-r2 (26 Apr 2014)
diff --git a/app-shells/bash/bash-4.3_p11-r1.ebuild b/app-shells/bash/bash-4.3_p11-r3.ebuild
index 139ecd59f81e..1eb6a8d6ce51 100644
--- a/app-shells/bash/bash-4.3_p11-r1.ebuild
+++ b/app-shells/bash/bash-4.3_p11-r3.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_p11-r1.ebuild,v 1.1 2014/04/16 09:39:12 polynomial-c Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.3_p11-r3.ebuild,v 1.1 2014/05/07 08:23:12 polynomial-c Exp $
EAPI="4"
@@ -83,7 +83,9 @@ src_prepare() {
sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
touch -r . doc/*
- epatch "${FILESDIR}"/${PN}-4.3-jobs-run-sigchld-trap.patch
+ epatch "${FILESDIR}"/${PN}-4.3-jobs-run-sigchld-trap.patch \
+ "${FILESDIR}"/${PN}-4.3-complete-dequoting.patch \
+ "${FILESDIR}"/${PN}-4.3-extglob-directory.patch
epatch_user
}
diff --git a/app-shells/bash/files/bash-4.3-extglob-directory.patch b/app-shells/bash/files/bash-4.3-extglob-directory.patch
new file mode 100644
index 000000000000..aa3e49a09114
--- /dev/null
+++ b/app-shells/bash/files/bash-4.3-extglob-directory.patch
@@ -0,0 +1,100 @@
+*** ../bash-4.3-patched/lib/glob/glob.c 2014-03-28 10:54:23.000000000 -0400
+--- lib/glob/glob.c 2014-05-02 10:24:28.000000000 -0400
+***************
+*** 124,127 ****
+--- 124,129 ----
+ extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int));
+
++ extern char *glob_dirscan __P((char *, int));
++
+ /* Compile `glob_loop.c' for single-byte characters. */
+ #define CHAR unsigned char
+***************
+*** 188,191 ****
+--- 190,196 ----
+ pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */
+ /* we should check for invalid extglob pattern here */
++ if (pe == 0)
++ return 0;
++
+ /* if pe != se we have more of the pattern at the end of the extglob
+ pattern. Check the easy case first ( */
+***************
+*** 1016,1020 ****
+ char **result;
+ unsigned int result_size;
+! char *directory_name, *filename, *dname;
+ unsigned int directory_len;
+ int free_dirname; /* flag */
+--- 1021,1025 ----
+ char **result;
+ unsigned int result_size;
+! char *directory_name, *filename, *dname, *fn;
+ unsigned int directory_len;
+ int free_dirname; /* flag */
+***************
+*** 1032,1035 ****
+--- 1037,1052 ----
+ /* Find the filename. */
+ filename = strrchr (pathname, '/');
++ #if defined (EXTENDED_GLOB)
++ if (filename && extended_glob)
++ {
++ fn = glob_dirscan (pathname, '/');
++ #if DEBUG_MATCHING
++ if (fn != filename)
++ fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) != filename (%s)\n", fn ? fn : "(null)", filename);
++ #endif
++ filename = fn;
++ }
++ #endif
++
+ if (filename == NULL)
+ {
+*** ../bash-4.3-patched/lib/glob/gmisc.c 2014-03-28 10:54:23.000000000 -0400
+--- lib/glob/gmisc.c 2014-05-02 09:35:57.000000000 -0400
+***************
+*** 43,46 ****
+--- 43,48 ----
+ #define WRPAREN L')'
+
++ extern char *glob_patscan __P((char *, char *, int));
++
+ /* Return 1 of the first character of WSTRING could match the first
+ character of pattern WPAT. Wide character version. */
+***************
+*** 376,377 ****
+--- 378,410 ----
+ return matlen;
+ }
++
++ /* Skip characters in PAT and return the final occurrence of DIRSEP. This
++ is only called when extended_glob is set, so we have to skip over extglob
++ patterns x(...) */
++ char *
++ glob_dirscan (pat, dirsep)
++ char *pat;
++ int dirsep;
++ {
++ char *p, *d, *pe, *se;
++
++ d = pe = se = 0;
++ for (p = pat; p && *p; p++)
++ {
++ if (extglob_pattern_p (p))
++ {
++ if (se == 0)
++ se = p + strlen (p) - 1;
++ pe = glob_patscan (p + 2, se, 0);
++ if (pe == 0)
++ continue;
++ else if (*pe == 0)
++ break;
++ p = pe - 1; /* will do increment above */
++ continue;
++ }
++ if (*p == dirsep)
++ d = p;
++ }
++ return d;
++ }