aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-10-03 11:23:42 +0000
committerandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-10-03 11:23:42 +0000
commitd815199e2e5b3bef043113758d8384cbe627d75f (patch)
treea7a2cc60c67966f5a69d6a94ccb5900d4bc9ae80 /shell
parent9f0e2efedd491b2c85b26eaf555b669702d54f47 (diff)
downloadbusybox-w32-d815199e2e5b3bef043113758d8384cbe627d75f.tar.gz
busybox-w32-d815199e2e5b3bef043113758d8384cbe627d75f.tar.bz2
busybox-w32-d815199e2e5b3bef043113758d8384cbe627d75f.zip
Patch from Magnus Damm <damm@opensource.se> to avoid lash hanging
on serial ports git-svn-id: svn://busybox.net/trunk/busybox@3475 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'shell')
-rw-r--r--shell/lash.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/shell/lash.c b/shell/lash.c
index 22e3c779e..b3f7cb6a8 100644
--- a/shell/lash.c
+++ b/shell/lash.c
@@ -1524,9 +1524,15 @@ void free_memory(void)
1524 * we don't fight over who gets the foreground */ 1524 * we don't fight over who gets the foreground */
1525static void setup_job_control() 1525static void setup_job_control()
1526{ 1526{
1527 int status;
1528
1527 /* Loop until we are in the foreground. */ 1529 /* Loop until we are in the foreground. */
1528 while (tcgetpgrp (shell_terminal) != (shell_pgrp = getpgrp ())) 1530 while ((status = tcgetpgrp (shell_terminal)) >= 0) {
1531 if (status == (shell_pgrp = getpgrp ())) {
1532 break;
1533 }
1529 kill (- shell_pgrp, SIGTTIN); 1534 kill (- shell_pgrp, SIGTTIN);
1535 }
1530 1536
1531 /* Ignore interactive and job-control signals. */ 1537 /* Ignore interactive and job-control signals. */
1532 signal(SIGINT, SIG_IGN); 1538 signal(SIGINT, SIG_IGN);