summaryrefslogtreecommitdiffhomepage
path: root/shell/ash.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2016-10-25 21:17:52 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2016-10-25 21:17:52 +0200
commit2a6d29ad5ce652c03ed8324a0d14f62594f2dd84 (patch)
treed290f3f0c703e9af629bf00398780863764278be /shell/ash.c
parent579ad107a69690efc17401c487b06e89d9e8a91d (diff)
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>
Diffstat (limited to 'shell/ash.c')
-rw-r--r--shell/ash.c6
1 files changed, 6 insertions, 0 deletions
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;