Simplify by avoiding confusing use of strncpy etc.
[bpt/emacs.git] / src / s / unixware.h
CommitLineData
15d25dc0
DN
1/* s/ file for Unixware.
2
acaf905b 3Copyright (C) 1999-2012 Free Software Foundation, Inc.
15d25dc0
DN
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 3 of the License, or
10(at your option) any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19
20
1b231651 21#include "usg5-4-common.h"
15d25dc0 22
1b231651 23/* This is the same definition as in usg5-4-common.h, but with sigblock/sigunblock
ef03a4e6
DN
24 rather than sighold/sigrelse, which appear to be BSD4.1 specific.
25 It may also be appropriate for SVR4.x
15d25dc0
DN
26 (x<2) but I'm not sure. fnf@cygnus.com */
27/* This sets the name of the slave side of the PTY. On SysVr4,
28 grantpt(3) forks a subprocess, so keep sigchld_handler() from
29 intercepting that death. If any child but grantpt's should die
e05aebe9 30 within, it should be caught after sigrelse(2). */
15d25dc0
DN
31#define PTY_TTY_NAME_SPRINTF \
32 { \
5c1ccb01 33 char *ptsname (int), *ptyname; \
15d25dc0
DN
34 \
35 sigblock(sigmask(SIGCLD)); \
36 if (grantpt(fd) == -1) \
37 fatal("could not grant slave pty"); \
38 sigunblock(sigmask(SIGCLD)); \
39 if (unlockpt(fd) == -1) \
40 fatal("could not unlock slave pty"); \
41 if (!(ptyname = ptsname(fd))) \
42 fatal ("could not enable slave pty"); \
e99a530f 43 snprintf (pty_name, sizeof pty_name, "%s", ptyname); \
15d25dc0
DN
44 }
45
b948ce8b
PE
46/* Conservative garbage collection has not been tested, so for now
47 play it safe and stick with the old-fashioned way of marking. */
48#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE