Mercurial > emacs
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; \ + }