Emit shell prompt even when in non-interactive mode.
Change-Id: If85c509efe13e4bdb40216c79d560ea7f83ba813
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 @@
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 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 @@
if (!el)
#endif
#ifdef WITH_LINENOISE
-#else
- out2str(getprompt(NULL));
+ if (! in_interactive_mode() )
#endif
+ out2str(getprompt(NULL));
}
/*