summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-shells/dash')
-rw-r--r--app-shells/dash/dash-0.5.10.1-r2.ebuild (renamed from app-shells/dash/dash-0.5.10.1-r1.ebuild)1
-rw-r--r--app-shells/dash/files/dash-0.5.10.1-parser.patch43
2 files changed, 44 insertions, 0 deletions
diff --git a/app-shells/dash/dash-0.5.10.1-r1.ebuild b/app-shells/dash/dash-0.5.10.1-r2.ebuild
index d51383e2eb19..09d6f32c73f1 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 000000000000..485fc7e6772a
--- /dev/null
+++ b/app-shells/dash/files/dash-0.5.10.1-parser.patch
@@ -0,0 +1,43 @@
+https://www.mail-archive.com/dash@vger.kernel.org/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: