changeset 8513:d11ec52807d6

(POSIX_SIGNALS): Define it. (PTY_TTY_NAME_SPRINTF): New overriding definition. (sigsetmask): Add #undefs.
author Richard M. Stallman <rms@gnu.org>
date Thu, 11 Aug 1994 03:42:57 +0000
parents e357ba54e6fd
children 66866be86727
files src/s/sol2-3.h
diffstat 1 files changed, 32 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/s/sol2-3.h	Thu Aug 11 03:42:18 1994 +0000
+++ b/src/s/sol2-3.h	Thu Aug 11 03:42:57 1994 +0000
@@ -16,3 +16,35 @@
 #define LD_SWITCH_SYSTEM -L /usr/ccs/lib \
  `./prefix-args -Xlinker LD_SWITCH_X_SITE_AUX`
 #endif /* GCC */
+
+/* Info from fnf@cygnus.com suggests this is appropriate.  */
+#define POSIX_SIGNALS
+
+/* We don't need the definition from usg5-3.h with POSIX_SIGNALS.  */
+#undef sigsetmask
+
+/* This is the same definition as in usg5-4.h, but with sigblock/sigunblock
+   rather than sighold/sigrelse, which appear to be BSD4.1 specific and won't
+   work if POSIX_SIGNALS is defined.  It may also be appropriate for SVR4.x
+   (x<2) but I'm not sure.   fnf@cygnus.com */
+/* This sets the name of the slave side of the PTY.  On SysVr4,
+   grantpt(3) forks a subprocess, so keep sigchld_handler() from
+   intercepting that death.  If any child but grantpt's should die
+   within, it should be caught after sigrelse(2). */
+
+#undef PTY_TTY_NAME_SPRINTF
+#define PTY_TTY_NAME_SPRINTF			\
+  {						\
+    char *ptsname(), *ptyname;			\
+						\
+    sigblock(sigmask(SIGCLD));			\
+    if (grantpt(fd) == -1)			\
+      fatal("could not grant slave pty");	\
+    sigunblock(sigmask(SIGCLD));		\
+    if (unlockpt(fd) == -1)			\
+      fatal("could not unlock slave pty");	\
+    if (!(ptyname = ptsname(fd)))		\
+      fatal ("could not enable slave pty");	\
+    strncpy(pty_name, ptyname, sizeof(pty_name)); \
+    pty_name[sizeof(pty_name) - 1] = 0;		\
+  }