From cfba2eb6f221d0f94643a57c135c62f5bc66ee10 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Wed, 24 Aug 2011 22:38:39 +0300 Subject: Fix pty coprocess on Ubuntu. --- io.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'io.c') diff --git a/io.c b/io.c index 1dcf217b..6e1d06ad 100644 --- a/io.c +++ b/io.c @@ -34,6 +34,9 @@ #undef RE_DUP_MAX /* avoid spurious conflict w/regex.h */ #include #endif /* HAVE_SYS_PARAM_H */ +#ifdef HAVE_SYS_IOCTL_H +#include +#endif /* HAVE_SYS_IOCTL_H */ #ifndef O_ACCMODE #define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) @@ -1696,9 +1699,6 @@ two_way_open(const char *str, struct redirect *rp) ioctl(slave, I_PUSH, "ldterm"); #endif -#ifdef TIOCSCTTY - ioctl(slave, TIOCSCTTY, 0); -#endif tcgetattr(slave, &st); st.c_iflag &= ~(ISTRIP | IGNCR | INLCR | IXOFF); st.c_iflag |= (ICRNL | IGNPAR | BRKINT | IXON); @@ -1735,6 +1735,10 @@ two_way_open(const char *str, struct redirect *rp) /* Child process */ setsid(); +#ifdef TIOCSCTTY + ioctl(slave, TIOCSCTTY, 0); +#endif + if (close(master) == -1) fatal(_("close of master pty failed (%s)"), strerror(errno)); if (close(1) == -1) -- cgit v1.2.3