view src/s/usg5-4-2.h @ 3782:5b61a650f347

Changes for correct pgrp behavior from Bob Glickstein <bobg@zindigo.z-code.com>: * m/iris4d.h (LIB_STANDARD): Do include -lbsd here. * s/irix4-0.h (USE_IRIX_BSDPGRP): #define this. (GETPGRP_NO_ARG): Don't #define this. * callproc.c [USE_IRIX_BSDPGRP] (Fcall_process): Call BSDsetpgrp instead of plain setpgrp. [USE_IRIX_BSDPGRP] (child_setup): Same. * emacs.c [GETPGRP_NO_ARG] (main, shut_down_emacs): CPP clauses deleted; this flag isn't needed anymore. [USE_IRIX_BSDPGRP] (main, shut_down_emacs): Call BSDsetpgrp and BSDgetpgrp instead of plain setpgrp and getpgrp. * process.c [USE_IRIX_BSDPGRP] (create_process): Don't call setpgrp before opening the tty. Call BSDsetpgrp instead of setpgrp, after opening the tty. * sysdep.c [USE_IRIX_BSDPGRP] (sys_suspend, narrow_foreground_group, widen_foreground_group): Call BSDgetpgrp and BSDsetpgrp instead of getpgrp and setpgrp.
author Jim Blandy <jimb@redhat.com>
date Wed, 16 Jun 1993 23:49:54 +0000
parents 94593e8e6593
children ed596b459f72
line wrap: on
line source

/* s/ file for System V release 4.2.  */

#include "usg5-4.h"

/* pcg@aber.ac.uk says this is useless since fork does copy-on-write
   #define HAVE_VFORK */
/* fnf@cygnus.com says these exist.  */
#define HAVE_TCATTR
#define HAVE_GETHOSTNAME
#if 0 /* autoconf should take care of this.  */
#define HAVE_RANDOM
#endif
/* #define HAVE_GETWD  (appears to be buggy on SVR4.2) */

/* 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
#undef HAVE_SYSV_SIGPAUSE

/* 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;		\
  }