From 2a6d29ad5ce652c03ed8324a0d14f62594f2dd84 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Tue, 25 Oct 2016 21:17:52 +0200
Subject: ash: [PARSER] Do not show prompts in expandstr

Upstream patch:

    Date: Thu, 27 Dec 2007 13:57:07 +1100
    [PARSER] Do not show prompts in expandstr

    Once I fixed the previous problem it became apparent that we never dealt
    with prompts with new-lines in them correctly.  The problem is that we
    showed a secondary prompt for each of them.

    This patch disables prompt generation in expandstr.

    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

function                                             old     new   delta
expandstr                                            102     127     +25

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 shell/ash.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/shell/ash.c b/shell/ash.c
index 527abc7b1..dc0f60747 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -12276,11 +12276,17 @@ static const char *
 expandstr(const char *ps)
 {
 	union node n;
+	int saveprompt;
 
 	/* XXX Fix (char *) cast. It _is_ a bug. ps is variable's value,
 	 * and token processing _can_ alter it (delete NULs etc). */
 	setinputstring((char *)ps);
+
+	saveprompt = doprompt;
+	doprompt = 0;
 	readtoken1(pgetc(), PSSYNTAX, nullstr, 0);
+	doprompt = saveprompt;
+
 	popfile();
 
 	n.narg.type = NARG;
-- 
cgit v1.2.3-55-g6feb