summaryrefslogtreecommitdiff
path: root/src/s/ptx4.h
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1999-01-28 03:49:39 +0000
committerRichard M. Stallman <rms@gnu.org>1999-01-28 03:49:39 +0000
commit35fc36a16beca347e746be327a0ccd37238bc31d (patch)
treeca8acf0db49859c6b800e48d6001d213f15d23c6 /src/s/ptx4.h
parentaa2d5fe49c62cdf7591fc111ea9a9ca981bd91c4 (diff)
downloademacs-35fc36a16beca347e746be327a0ccd37238bc31d.tar.gz
(SETUP_SLAVE_PTY): Use the ptem module if it exists.
Don't complain if ttcompat does not exist.
Diffstat (limited to 'src/s/ptx4.h')
-rw-r--r--src/s/ptx4.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/s/ptx4.h b/src/s/ptx4.h
index 8f4db997708..25cf6882986 100644
--- a/src/s/ptx4.h
+++ b/src/s/ptx4.h
@@ -16,9 +16,25 @@
/* pae@dim.com (Phil Ernhardt) says this correction to
the definition in usg5-4.h is needed to prevent
all asynchronous subprocesses from exiting right away. */
+
+/* James Youngman <jay@gnu.org> found that on "DYNIX/ptx ARNIE 4.0
+ * V4.4.2 i386", the push of the ttcompat module would fail. It seems
+ * that PTX 4.4.2 doesn't have that module, so if the push fails we
+ * don't kill ourselves. While this version lacks ttcompat, it also
+ * has ptem, but the manual page for ptem indicates that it should
+ * be pushed onto the slave side before the line discipline module.
+ * See also the streampty manual page, if you're curious (and have
+ * a ptx system).
+ */
+
+/* rms: I hope that older versions which do have ttcompat
+ will not get confused by the code to use ptem. */
+
#undef SETUP_SLAVE_PTY
#define SETUP_SLAVE_PTY \
+ if (ioctl (xforkin, I_PUSH, "ptem") == -1 && errno != EINVAL) \
+ fatal ("ioctl I_PUSH ptem", errno); \
if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \
fatal ("ioctl I_PUSH ldterm", errno); \
- if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
+ if (ioctl (xforkin, I_PUSH, "ttcompat") == -1 && errno != EINVAL) \
fatal ("ioctl I_PUSH ttcompat", errno);