commit:     f311a77983e608c3218f492ece715bced27f77a0
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Oct  8 22:07:20 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Oct  8 22:08:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f311a779

app-shells/bash: reorganise 5.2_p2-r2 patches

Just splits the patches from 47950445cddff736a1e6c0c1346a20ab6b326cc1
into two.

Closes: https://bugs.gentoo.org/873931
See: 47950445cddff736a1e6c0c1346a20ab6b326cc1
Thanks-to: Kerin Millar <kfm <AT> plushkava.net>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 app-shells/bash/bash-5.2_p2-r2.ebuild              |  3 +-
 ...r-brackets-in-nested-parameter-expansions.patch | 41 ++++++++++++++++++++++
 ...h-5.2_p2-fixes-for-extglob-in-compat-mode.patch | 38 --------------------
 3 files changed, 43 insertions(+), 39 deletions(-)

diff --git a/app-shells/bash/bash-5.2_p2-r2.ebuild 
b/app-shells/bash/bash-5.2_p2-r2.ebuild
index 897cf5324a38..c79b71ca70ef 100644
--- a/app-shells/bash/bash-5.2_p2-r2.ebuild
+++ b/app-shells/bash/bash-5.2_p2-r2.ebuild
@@ -108,7 +108,8 @@ PATCHES=(
 
        # Patches from Chet sent to bash-bug ml
        "${FILESDIR}"/${PN}-5.0-syslog-history-extern.patch
-       "${FILESDIR}"/${PN}-5.2_p2-fixes-for-extglob-in-compat-mode.patch
+       "${FILESDIR}"/${P}-fix-for-brackets-in-nested-parameter-expansions.patch
+       "${FILESDIR}"/${P}-fixes-for-extglob-in-compat-mode.patch
 )
 
 pkg_setup() {

diff --git 
a/app-shells/bash/files/bash-5.2_p2-fix-for-brackets-in-nested-parameter-expansions.patch
 
b/app-shells/bash/files/bash-5.2_p2-fix-for-brackets-in-nested-parameter-expansions.patch
new file mode 100644
index 000000000000..9c1b03f8b2df
--- /dev/null
+++ 
b/app-shells/bash/files/bash-5.2_p2-fix-for-brackets-in-nested-parameter-expansions.patch
@@ -0,0 +1,41 @@
+https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=22f21b760ed90eb77c3756e6ccf39b73c84f532a
+
+--- subst.c
++++ subst.c
+@@ -1798,6 +1798,9 @@ extract_heredoc_dolbrace_string (string, sindex, quoted, 
flags)
+   return (result);
+ }
+ 
++#define PARAMEXPNEST_MAX      32      // for now
++static int dbstate[PARAMEXPNEST_MAX];
++
+ /* Extract a parameter expansion expression within ${ and } from STRING.
+    Obey the Posix.2 rules for finding the ending `}': count braces while
+    skipping over enclosed quoted strings and command substitutions.
+@@ -1828,6 +1831,8 @@ extract_dollar_brace_string (string, sindex, quoted, 
flags)
+   if (quoted == Q_HERE_DOCUMENT && dolbrace_state == DOLBRACE_QUOTE && (flags 
& SX_NOALLOC) == 0)
+     return (extract_heredoc_dolbrace_string (string, sindex, quoted, flags));
+ 
++  dbstate[0] = dolbrace_state;
++
+   pass_character = 0;
+   nesting_level = 1;
+   slen = strlen (string + *sindex) + *sindex;
+@@ -1852,6 +1857,8 @@ extract_dollar_brace_string (string, sindex, quoted, 
flags)
+ 
+       if (string[i] == '$' && string[i+1] == LBRACE)
+       {
++        if (nesting_level < PARAMEXPNEST_MAX)
++          dbstate[nesting_level] = dolbrace_state;
+         nesting_level++;
+         i += 2;
+         if (dolbrace_state == DOLBRACE_QUOTE || dolbrace_state == 
DOLBRACE_WORD)
+@@ -1864,6 +1871,7 @@ extract_dollar_brace_string (string, sindex, quoted, 
flags)
+         nesting_level--;
+         if (nesting_level == 0)
+           break;
++        dolbrace_state = (nesting_level < PARAMEXPNEST_MAX) ? 
dbstate[nesting_level] : dbstate[0];    /* Guess using initial state */
+         i++;
+         continue;
+       }
+

diff --git 
a/app-shells/bash/files/bash-5.2_p2-fixes-for-extglob-in-compat-mode.patch 
b/app-shells/bash/files/bash-5.2_p2-fixes-for-extglob-in-compat-mode.patch
index 06415b5cdaa4..16393c79af8b 100644
--- a/app-shells/bash/files/bash-5.2_p2-fixes-for-extglob-in-compat-mode.patch
+++ b/app-shells/bash/files/bash-5.2_p2-fixes-for-extglob-in-compat-mode.patch
@@ -213,44 +213,6 @@ 
https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=22f21b760ed90eb77c
  
     This file is part of GNU Bash, the Bourne Again SHell.
  
---- subst.c
-+++ subst.c
-@@ -1798,6 +1798,9 @@ extract_heredoc_dolbrace_string (string, sindex, quoted, 
flags)
-   return (result);
- }
- 
-+#define PARAMEXPNEST_MAX      32      // for now
-+static int dbstate[PARAMEXPNEST_MAX];
-+
- /* Extract a parameter expansion expression within ${ and } from STRING.
-    Obey the Posix.2 rules for finding the ending `}': count braces while
-    skipping over enclosed quoted strings and command substitutions.
-@@ -1828,6 +1831,8 @@ extract_dollar_brace_string (string, sindex, quoted, 
flags)
-   if (quoted == Q_HERE_DOCUMENT && dolbrace_state == DOLBRACE_QUOTE && (flags 
& SX_NOALLOC) == 0)
-     return (extract_heredoc_dolbrace_string (string, sindex, quoted, flags));
- 
-+  dbstate[0] = dolbrace_state;
-+
-   pass_character = 0;
-   nesting_level = 1;
-   slen = strlen (string + *sindex) + *sindex;
-@@ -1852,6 +1857,8 @@ extract_dollar_brace_string (string, sindex, quoted, 
flags)
- 
-       if (string[i] == '$' && string[i+1] == LBRACE)
-       {
-+        if (nesting_level < PARAMEXPNEST_MAX)
-+          dbstate[nesting_level] = dolbrace_state;
-         nesting_level++;
-         i += 2;
-         if (dolbrace_state == DOLBRACE_QUOTE || dolbrace_state == 
DOLBRACE_WORD)
-@@ -1864,6 +1871,7 @@ extract_dollar_brace_string (string, sindex, quoted, 
flags)
-         nesting_level--;
-         if (nesting_level == 0)
-           break;
-+        dolbrace_state = (nesting_level < PARAMEXPNEST_MAX) ? 
dbstate[nesting_level] : dbstate[0];    /* Guess using initial state */
-         i++;
-         continue;
-       }
 --- tests/extglob.right
 +++ tests/extglob.right
 @@ -182,3 +182,10 @@ no dotglob: .a .foo bar

Reply via email to