diff options
author | Eric Andersen | 2001-10-03 11:23:42 +0000 |
---|---|---|
committer | Eric Andersen | 2001-10-03 11:23:42 +0000 |
commit | f0a4ac82166dbaedeae1d5f92821b700fc8fa17f (patch) | |
tree | a7a2cc60c67966f5a69d6a94ccb5900d4bc9ae80 /lash.c | |
parent | 35636540ea96c11a4cd58e733279a8daea9b8dee (diff) | |
download | busybox-f0a4ac82166dbaedeae1d5f92821b700fc8fa17f.zip busybox-f0a4ac82166dbaedeae1d5f92821b700fc8fa17f.tar.gz |
Patch from Magnus Damm <damm@opensource.se> to avoid lash hanging
on serial ports
Diffstat (limited to 'lash.c')
-rw-r--r-- | lash.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -1524,9 +1524,15 @@ void free_memory(void) * we don't fight over who gets the foreground */ static void setup_job_control() { + int status; + /* Loop until we are in the foreground. */ - while (tcgetpgrp (shell_terminal) != (shell_pgrp = getpgrp ())) + while ((status = tcgetpgrp (shell_terminal)) >= 0) { + if (status == (shell_pgrp = getpgrp ())) { + break; + } kill (- shell_pgrp, SIGTTIN); + } /* Ignore interactive and job-control signals. */ signal(SIGINT, SIG_IGN); |