diff options
Diffstat (limited to 'src/jobs.c')
-rw-r--r-- | src/jobs.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/jobs.c b/src/jobs.c index 9e28adb..7285d0d 100644 --- a/src/jobs.c +++ b/src/jobs.c @@ -188,18 +188,14 @@ setjobctl(int on) if (on == jobctl || rootshell == 0) return; if (on) { - int ofd; - ofd = fd = open(_PATH_TTY, O_RDWR); + fd = open(_PATH_TTY, O_RDWR); if (fd < 0) { fd += 3; - while (!isatty(fd) && --fd >= 0) - ; + while (!isatty(fd)) + if (--fd < 0) + goto out; } - fd = fcntl(fd, F_DUPFD, 10); - close(ofd); - if (fd < 0) - goto out; - fcntl(fd, F_SETFD, FD_CLOEXEC); + fd = savefd(fd); do { /* while we are in the background */ if ((pgrp = tcgetpgrp(fd)) < 0) { out: |