aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/ash.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c
index b707d00d0..f3a2c6952 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -13042,6 +13042,7 @@ expandstr(const char *ps, int syntax_type)
{
union node n;
int saveprompt;
+ struct parsefile *file_stop = g_parsefile;
/* XXX Fix (char *) cast. */
setinputstring((char *)ps);
@@ -13068,7 +13069,8 @@ expandstr(const char *ps, int syntax_type)
doprompt = saveprompt;
- popfile();
+ /* Try: PS1='`xxx(`' */
+ unwindfiles(file_stop);
n.narg.type = NARG;
n.narg.next = NULL;