From 16898406724b99ec61d16b38393137bddd6ecc25 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Tue, 25 Nov 2008 01:34:52 +0000 Subject: [PATCH] ash: fix bad interaction between ash -c '....&' and bash compat --- shell/ash.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/shell/ash.c b/shell/ash.c index d44de3319..55a79a7a6 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -9189,8 +9189,9 @@ preadbuffer(void) while (g_parsefile->strpush) { #if ENABLE_ASH_ALIAS - if (parsenleft == -1 && g_parsefile->strpush->ap && - parsenextc[-1] != ' ' && parsenextc[-1] != '\t') { + if (parsenleft == -1 && g_parsefile->strpush->ap + && parsenextc[-1] != ' ' && parsenextc[-1] != '\t' + ) { return PEOA; } #endif @@ -9314,6 +9315,9 @@ pfgets(char *line, int len) static void pungetc(void) { + /* check is needed for ash -c 'echo 5&' + BASH_COMPAT to work */ + if (parsenleft < 0) + return; parsenleft++; parsenextc--; }