diff options
author | Denys Vlasenko | 2016-10-25 21:17:52 +0200 |
---|---|---|
committer | Denys Vlasenko | 2016-10-25 21:17:52 +0200 |
commit | 2a6d29ad5ce652c03ed8324a0d14f62594f2dd84 (patch) | |
tree | d290f3f0c703e9af629bf00398780863764278be | |
parent | 579ad107a69690efc17401c487b06e89d9e8a91d (diff) | |
download | busybox-2a6d29ad5ce652c03ed8324a0d14f62594f2dd84.zip busybox-2a6d29ad5ce652c03ed8324a0d14f62594f2dd84.tar.gz |
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>
-rw-r--r-- | shell/ash.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/shell/ash.c b/shell/ash.c index 527abc7..dc0f607 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; |