summaryrefslogtreecommitdiffstats
path: root/sh
diff options
context:
space:
mode:
authorJack Palevich <jackpal@google.com>2010-06-04 12:03:14 +0800
committerJack Palevich <jackpal@google.com>2010-06-04 12:03:14 +0800
commitad5431d2ca9c4dd454dfb3bc8e9de3ee0ad28a27 (patch)
tree1cf34b2f81ce28ef5c6c81513d33e8ec97741003 /sh
parent1bc4eae3492b5e5fd8afdb3bb92c63287e8e994c (diff)
downloadsystem_core-ad5431d2ca9c4dd454dfb3bc8e9de3ee0ad28a27.zip
system_core-ad5431d2ca9c4dd454dfb3bc8e9de3ee0ad28a27.tar.gz
system_core-ad5431d2ca9c4dd454dfb3bc8e9de3ee0ad28a27.tar.bz2
Emit shell prompt even when in non-interactive mode.
Change-Id: If85c509efe13e4bdb40216c79d560ea7f83ba813
Diffstat (limited to 'sh')
-rw-r--r--sh/input.c3
-rw-r--r--sh/input.h1
-rw-r--r--sh/parser.c4
3 files changed, 6 insertions, 2 deletions
diff --git a/sh/input.c b/sh/input.c
index bfb80f4..056ee8b 100644
--- a/sh/input.c
+++ b/sh/input.c
@@ -175,6 +175,9 @@ pgetc(void)
return pgetc_macro();
}
+int in_interactive_mode() {
+ return parsefile != NULL && parsefile->fd == 0;
+}
static int
preadfd(void)
diff --git a/sh/input.h b/sh/input.h
index a9d3a12..99c1b77 100644
--- a/sh/input.h
+++ b/sh/input.h
@@ -46,6 +46,7 @@ extern int parsenleft; /* number of characters left in input buffer */
extern char *parsenextc; /* next character in input buffer */
extern int init_editline; /* 0 == not setup, 1 == OK, -1 == failed */
+int in_interactive_mode();
char *pfgets(char *, int);
int pgetc(void);
int preadbuffer(void);
diff --git a/sh/parser.c b/sh/parser.c
index d956375..faf0268 100644
--- a/sh/parser.c
+++ b/sh/parser.c
@@ -1629,9 +1629,9 @@ setprompt(int which)
if (!el)
#endif
#ifdef WITH_LINENOISE
-#else
- out2str(getprompt(NULL));
+ if (! in_interactive_mode() )
#endif
+ out2str(getprompt(NULL));
}
/*