commit: 6be2c5a6ab0b465e2591435715bae6db830e2356
Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Mon May 14 09:51:21 2018 +0000
Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Mon May 14 09:53:54 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6be2c5a6
app-shells/dash: Revbump to fix dash parser. Removed old.
Package-Manager: Portage-2.3.36, Repoman-2.3.9
...-0.5.10.1-r1.ebuild => dash-0.5.10.1-r2.ebuild} | 1 +
app-shells/dash/files/dash-0.5.10.1-parser.patch | 43 ++++++++++++++++++++++
2 files changed, 44 insertions(+)
diff --git a/app-shells/dash/dash-0.5.10.1-r1.ebuild
b/app-shells/dash/dash-0.5.10.1-r2.ebuild
similarity index 98%
rename from app-shells/dash/dash-0.5.10.1-r1.ebuild
rename to app-shells/dash/dash-0.5.10.1-r2.ebuild
index d51383e2eb1..09d6f32c73f 100644
--- a/app-shells/dash/dash-0.5.10.1-r1.ebuild
+++ b/app-shells/dash/dash-0.5.10.1-r2.ebuild
@@ -29,6 +29,7 @@ DEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}"/${PN}-0.5.9.1-format-security.patch
+ "${FILESDIR}"/${P}-parser.patch
)
src_prepare() {
diff --git a/app-shells/dash/files/dash-0.5.10.1-parser.patch
b/app-shells/dash/files/dash-0.5.10.1-parser.patch
new file mode 100644
index 00000000000..485fc7e6772
--- /dev/null
+++ b/app-shells/dash/files/dash-0.5.10.1-parser.patch
@@ -0,0 +1,43 @@
+https://www.mail-archive.com/[email protected]/msg01620.html
+
+--- dash-0.5.10.1/src/parser.c
++++ dash-0.5.10.1/src/parser.c
+@@ -853,6 +853,11 @@
+ return c;
+ }
+
++static int pgetc_top(struct synstack *stack)
++{
++ return stack->syntax == SQSYNTAX ? pgetc() : pgetc_eatbnl();
++}
++
+ static void synstack_push(struct synstack **stack, struct synstack *next,
+ const char *syntax)
+ {
+@@ -915,7 +920,7 @@
+ attyline();
+ if (synstack->syntax == BASESYNTAX)
+ return readtoken();
+- c = syntax == SQSYNTAX ? pgetc() : pgetc_eatbnl();
++ c = pgetc_top(synstack);
+ goto loop;
+ }
+ #endif
+@@ -929,7 +934,7 @@
+ goto endword; /* exit outer loop */
+ USTPUTC(c, out);
+ nlprompt();
+- c = syntax == SQSYNTAX ? pgetc() :
pgetc_eatbnl();
++ c = pgetc_top(synstack);
+ goto loop; /* continue outer loop
*/
+ case CWORD:
+ USTPUTC(c, out);
+@@ -1056,7 +1061,7 @@
+ USTPUTC(c, out);
+ }
+ }
+- c = syntax == SQSYNTAX ? pgetc() : pgetc_eatbnl();
++ c = pgetc_top(synstack);
+ }
+ }
+ endword: