aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Roskin <proski@gnu.org>2000-09-14 22:47:29 +0000
committerPavel Roskin <proski@gnu.org>2000-09-14 22:47:29 +0000
commitcbe05e45db168fabf807c3cf943a00ff81ec8279 (patch)
tree738121e5b9cf2112feda43faac436aed613ed235
parent7e3bf6e339a2d1e28fc8ee53ca57919f32eba6d6 (diff)
downloadbusybox-w32-cbe05e45db168fabf807c3cf943a00ff81ec8279.tar.gz
busybox-w32-cbe05e45db168fabf807c3cf943a00ff81ec8279.tar.bz2
busybox-w32-cbe05e45db168fabf807c3cf943a00ff81ec8279.zip
For "askfirst" don't just read one char from stdin,
read the whole line using getc(), so that everything before Enter gets discarded.
-rw-r--r--init.c3
-rw-r--r--init/init.c3
2 files changed, 2 insertions, 4 deletions
diff --git a/init.c b/init.c
index 7af8c4a95..7e821f110 100644
--- a/init.c
+++ b/init.c
@@ -448,14 +448,13 @@ static pid_t run(char *command, char *terminal, int get_enter)
448 * be allowed to start a shell or whatever an init script 448 * be allowed to start a shell or whatever an init script
449 * specifies. 449 * specifies.
450 */ 450 */
451 char c;
452#ifdef DEBUG_INIT 451#ifdef DEBUG_INIT
453 pid_t shell_pgid = getpid(); 452 pid_t shell_pgid = getpid();
454 message(LOG, "Waiting for enter to start '%s' (pid %d, console %s)\r\n", 453 message(LOG, "Waiting for enter to start '%s' (pid %d, console %s)\r\n",
455 command, shell_pgid, terminal); 454 command, shell_pgid, terminal);
456#endif 455#endif
457 write(fileno(stdout), press_enter, sizeof(press_enter) - 1); 456 write(fileno(stdout), press_enter, sizeof(press_enter) - 1);
458 read(fileno(stdin), &c, 1); 457 getc(stdin);
459 } 458 }
460 459
461#ifdef DEBUG_INIT 460#ifdef DEBUG_INIT
diff --git a/init/init.c b/init/init.c
index 7af8c4a95..7e821f110 100644
--- a/init/init.c
+++ b/init/init.c
@@ -448,14 +448,13 @@ static pid_t run(char *command, char *terminal, int get_enter)
448 * be allowed to start a shell or whatever an init script 448 * be allowed to start a shell or whatever an init script
449 * specifies. 449 * specifies.
450 */ 450 */
451 char c;
452#ifdef DEBUG_INIT 451#ifdef DEBUG_INIT
453 pid_t shell_pgid = getpid(); 452 pid_t shell_pgid = getpid();
454 message(LOG, "Waiting for enter to start '%s' (pid %d, console %s)\r\n", 453 message(LOG, "Waiting for enter to start '%s' (pid %d, console %s)\r\n",
455 command, shell_pgid, terminal); 454 command, shell_pgid, terminal);
456#endif 455#endif
457 write(fileno(stdout), press_enter, sizeof(press_enter) - 1); 456 write(fileno(stdout), press_enter, sizeof(press_enter) - 1);
458 read(fileno(stdin), &c, 1); 457 getc(stdin);
459 } 458 }
460 459
461#ifdef DEBUG_INIT 460#ifdef DEBUG_INIT