aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hush.c5
-rw-r--r--shell/hush.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/hush.c b/hush.c
index 5c129ce17..372c95753 100644
--- a/hush.c
+++ b/hush.c
@@ -891,6 +891,7 @@ static void get_user_input(struct in_str *i)
the_command[0]=fgetc(i->file);
the_command[1]='\0';
#endif
+ fflush(stdout);
i->p = the_command;
}
@@ -908,7 +909,9 @@ static int file_get(struct in_str *i)
/* need to double check i->file because we might be doing something
* more complicated by now, like sourcing or substituting. */
if (i->__promptme && interactive && i->file == stdin) {
- get_user_input(i);
+ while(! i->p || (interactive && strlen(i->p)==0) ) {
+ get_user_input(i);
+ }
i->promptmode=2;
i->__promptme = 0;
if (i->p && *i->p) {
diff --git a/shell/hush.c b/shell/hush.c
index 5c129ce17..372c95753 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -891,6 +891,7 @@ static void get_user_input(struct in_str *i)
the_command[0]=fgetc(i->file);
the_command[1]='\0';
#endif
+ fflush(stdout);
i->p = the_command;
}
@@ -908,7 +909,9 @@ static int file_get(struct in_str *i)
/* need to double check i->file because we might be doing something
* more complicated by now, like sourcing or substituting. */
if (i->__promptme && interactive && i->file == stdin) {
- get_user_input(i);
+ while(! i->p || (interactive && strlen(i->p)==0) ) {
+ get_user_input(i);
+ }
i->promptmode=2;
i->__promptme = 0;
if (i->p && *i->p) {