1 /* s/ file for Unixware.
3 Copyright (C) 1999-2012 Free Software Foundation, Inc.
5 This file is part of GNU Emacs.
7 GNU Emacs is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 GNU Emacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
21 #include "usg5-4-common.h"
23 /* #define HAVE_GETWD (appears to be buggy on SVR4.2) */
26 #undef HAVE_SYSV_SIGPAUSE
28 /* This is the same definition as in usg5-4-common.h, but with sigblock/sigunblock
29 rather than sighold/sigrelse, which appear to be BSD4.1 specific.
30 It may also be appropriate for SVR4.x
31 (x<2) but I'm not sure. fnf@cygnus.com */
32 /* This sets the name of the slave side of the PTY. On SysVr4,
33 grantpt(3) forks a subprocess, so keep sigchld_handler() from
34 intercepting that death. If any child but grantpt's should die
35 within, it should be caught after sigrelse(2). */
36 #define PTY_TTY_NAME_SPRINTF \
38 char *ptsname (int), *ptyname; \
40 sigblock(sigmask(SIGCLD)); \
41 if (grantpt(fd) == -1) \
42 fatal("could not grant slave pty"); \
43 sigunblock(sigmask(SIGCLD)); \
44 if (unlockpt(fd) == -1) \
45 fatal("could not unlock slave pty"); \
46 if (!(ptyname = ptsname(fd))) \
47 fatal ("could not enable slave pty"); \
48 strncpy(pty_name, ptyname, sizeof(pty_name)); \
49 pty_name[sizeof(pty_name) - 1] = 0; \
52 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base)