diff options
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.patch | 43 |
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: |