From: Eric Andersen Date: Thu, 31 May 2001 17:17:12 +0000 (-0000) Subject: Cope gracefully when people type something, then hit ^C. X-Git-Tag: 0_52~122 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4f6753e586dba5e6c240e670d41fc8fd011034e1;p=platform%2Fupstream%2Fbusybox.git Cope gracefully when people type something, then hit ^C. -Erik --- diff --git a/hush.c b/hush.c index 5c129ce..372c957 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 5c129ce..372c957 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) {