8fe28625dd4513f95a712d79392bda6b262d9891
[bpt/emacs.git] / src / s / unixware.h
1 /* s/ file for Unixware.
2
3 Copyright (C) 1999-2011 Free Software Foundation, Inc.
4
5 This file is part of GNU Emacs.
6
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.
11
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.
16
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/>. */
19
20
21 #include "usg5-4-common.h"
22
23 /* #define HAVE_GETWD (appears to be buggy on SVR4.2) */
24 #undef HAVE_GETWD
25
26 #undef HAVE_SYSV_SIGPAUSE
27
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 \
37 { \
38 char *ptsname (int), *ptyname; \
39 \
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; \
50 }
51
52 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base)