1157184Sache/* Copyright 2004 Per Bothner <per@bothner.com>
2157184Sache * Based on config.h from screen-4.0.2.
3157184Sache * Copyright (c) 1993-2000
4157184Sache *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
5157184Sache *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
6157184Sache * Copyright (c) 1987 Oliver Laumann
7157184Sache *
8157184Sache * This program is free software; you can redistribute it and/or modify
9157184Sache * it under the terms of the GNU General Public License as published by
10157184Sache * the Free Software Foundation; either version 2, or (at your option)
11157184Sache * any later version.
12157184Sache *
13157184Sache * This program is distributed in the hope that it will be useful,
14157184Sache * but WITHOUT ANY WARRANTY; without even the implied warranty of
15157184Sache * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16157184Sache * GNU General Public License for more details.
17157184Sache *
18157184Sache * You should have received a copy of the GNU General Public License
19157184Sache * along with this program (see the file COPYING); if not, write to the
20157184Sache * Free Software Foundation, Inc.,
21157184Sache * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
22157184Sache *
23157184Sache ****************************************************************
24157184Sache * $Id: config.h.in,v 1.12 1994/05/31 12:31:36 mlschroe Exp $ FAU
25157184Sache */
26157184Sache
27157184Sache
28157184Sache
29157184Sache
30157184Sache
31157184Sache/**********************************************************************
32157184Sache *
33157184Sache *	User Configuration Section
34157184Sache */
35157184Sache
36157184Sache
37157184Sache/* 
38157184Sache * define PTYMODE if you do not like the default of 0622, which allows 
39157184Sache * public write to your pty.
40157184Sache * define PTYGROUP to some numerical group-id if you do not want the
41157184Sache * tty to be in "your" group.
42157184Sache * Note, screen is unable to change mode or group of the pty if it
43157184Sache * is not installed with sufficient privilege. (e.g. set-uid-root)
44157184Sache * define PTYROFS if the /dev/pty devices are mounted on a read-only 
45157184Sache * filesystem so screen should not even attempt to set mode or group  
46157184Sache * even if running as root (e.g. on TiVo).
47157184Sache */
48157184Sache#undef PTYMODE
49157184Sache#undef PTYGROUP
50157184Sache#undef PTYROFS
51157184Sache
52157184Sache/*
53157184Sache * If screen is NOT installed set-uid root, screen can provide tty
54157184Sache * security by exclusively locking the ptys.  While this keeps other
55157184Sache * users from opening your ptys, it also keeps your own subprocesses
56157184Sache * from being able to open /dev/tty.  Define LOCKPTY to add this
57157184Sache * exclusive locking.
58157184Sache */
59157184Sache#undef LOCKPTY
60157184Sache
61157184Sache
62157184Sache/**********************************************************************
63157184Sache *
64157184Sache *	End of User Configuration Section
65157184Sache *
66157184Sache *      Rest of this file is modified by 'configure'
67157184Sache *      Change at your own risk!
68157184Sache *
69157184Sache */
70157184Sache
71157184Sache/*
72157184Sache * Some defines to identify special unix variants
73157184Sache */
74157184Sache#ifndef SVR4
75157184Sache#undef SVR4
76157184Sache#endif
77157184Sache
78157184Sache#ifndef _POSIX_SOURCE
79157184Sache#undef _POSIX_SOURCE
80157184Sache#endif
81157184Sache
82157184Sache/*
83157184Sache * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
84157184Sache */
85157184Sache#undef POSIX
86157184Sache
87157184Sache/*
88157184Sache * Define TERMIO if you have struct termio instead of struct sgttyb.
89157184Sache * This is usually the case for SVID systems, where BSD uses sgttyb.
90157184Sache * POSIX systems should define this anyway, even though they use
91157184Sache * struct termios.
92157184Sache */
93157184Sache#undef TERMIO
94157184Sache
95157184Sache/*
96157184Sache * Define CYTERMIO if you have cyrillic termio modes.
97157184Sache */
98157184Sache#undef CYTERMIO
99157184Sache
100157184Sache/*
101157184Sache * Define TERMINFO if your machine emulates the termcap routines
102157184Sache * with the terminfo database.
103157184Sache * Thus the .screenrc file is parsed for
104157184Sache * the command 'terminfo' and not 'termcap'.
105157184Sache */
106157184Sache#undef TERMINFO
107157184Sache
108157184Sache/*
109157184Sache * If your library does not define ospeed, define this.
110157184Sache */
111157184Sache#undef NEED_OSPEED
112157184Sache
113157184Sache/*
114157184Sache * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
115157184Sache */
116157184Sache#ifndef SYSV
117157184Sache#undef SYSV
118157184Sache#endif
119157184Sache
120157184Sache/*
121157184Sache * Define SIGVOID if your signal handlers return void.  On older
122157184Sache * systems, signal returns int, but on newer ones, it returns void.
123157184Sache */
124157184Sache#undef SIGVOID 
125157184Sache
126157184Sache/*
127157184Sache * Define USESIGSET if you have sigset for BSD 4.1 reliable signals.
128157184Sache */
129157184Sache#undef USESIGSET
130157184Sache
131157184Sache/*
132157184Sache * Define SYSVSIGS if signal handlers must be reinstalled after
133157184Sache * they have been called.
134157184Sache */
135157184Sache#undef SYSVSIGS
136157184Sache
137157184Sache/*
138157184Sache * Define BSDWAIT if your system defines a 'union wait' in <sys/wait.h>
139157184Sache *
140157184Sache * Only allow BSDWAIT i.e. wait3 on nonposix systems, since
141157184Sache * posix implies wait(3) and waitpid(3). vdlinden@fwi.uva.nl
142157184Sache * 
143157184Sache */
144157184Sache#ifndef POSIX
145157184Sache#undef BSDWAIT
146157184Sache#endif
147157184Sache
148157184Sache/*
149157184Sache * On RISCOS we prefer wait2() over wait3(). rouilj@sni-usa.com 
150157184Sache */
151157184Sache#ifdef BSDWAIT
152157184Sache#undef USE_WAIT2
153157184Sache#endif
154157184Sache
155157184Sache/*
156157184Sache * Define if you have the utempter utmp helper program
157157184Sache */
158157184Sache#undef HAVE_UTEMPTER
159157184Sache
160157184Sache/*
161157184Sache * If ttyslot() breaks getlogin() by returning indexes to utmp entries
162157184Sache * of type DEAD_PROCESS, then our getlogin() replacement should be
163157184Sache * selected by defining BUGGYGETLOGIN.
164157184Sache */
165157184Sache#undef BUGGYGETLOGIN
166157184Sache
167157184Sache/*
168157184Sache * If your system has the calls setreuid() and setregid(),
169157184Sache * define HAVE_SETREUID. Otherwise screen will use a forked process to
170157184Sache * safely create output files without retaining any special privileges.
171157184Sache */
172157184Sache#undef HAVE_SETREUID
173157184Sache
174157184Sache/*
175157184Sache * If your system supports BSD4.4's seteuid() and setegid(), define
176157184Sache * HAVE_SETEUID.
177157184Sache */
178157184Sache#undef HAVE_SETEUID
179157184Sache
180157184Sache/*
181157184Sache * If you want the "time" command to display the current load average
182157184Sache * define LOADAV. Maybe you must install screen with the needed
183157184Sache * privileges to read /dev/kmem.
184157184Sache * Note that NLIST_ stuff is only checked, when getloadavg() is not available.
185157184Sache */
186157184Sache#undef LOADAV
187157184Sache
188157184Sache#undef LOADAV_NUM
189157184Sache#undef LOADAV_TYPE
190157184Sache#undef LOADAV_SCALE
191157184Sache#undef LOADAV_GETLOADAVG
192157184Sache#undef LOADAV_UNIX
193157184Sache#undef LOADAV_AVENRUN
194157184Sache#undef LOADAV_USE_NLIST64
195157184Sache
196157184Sache#undef NLIST_DECLARED
197157184Sache#undef NLIST_STRUCT
198157184Sache#undef NLIST_NAME_UNION
199157184Sache
200157184Sache/*
201157184Sache * If your system has the new format /etc/ttys (like 4.3 BSD) and the
202157184Sache * getttyent(3) library functions, define GETTTYENT.
203157184Sache */
204157184Sache#undef GETTTYENT
205157184Sache
206157184Sache/*
207157184Sache * Define USEBCOPY if the bcopy/memcpy from your system's C library
208157184Sache * supports the overlapping of source and destination blocks.  When
209157184Sache * undefined, screen uses its own (probably slower) version of bcopy().
210157184Sache * 
211157184Sache * SYSV machines may have a working memcpy() -- Oh, this is 
212157184Sache * quite unlikely. Tell me if you see one.
213157184Sache * "But then, memmove() should work, if at all available" he thought...
214157184Sache * Boing, never say "works everywhere" unless you checked SCO UNIX.
215157184Sache * Their memove fails the test in the configure script. Sigh. (Juergen)
216157184Sache */
217157184Sache#undef USEBCOPY
218157184Sache#undef USEMEMCPY
219157184Sache#undef USEMEMMOVE
220157184Sache
221157184Sache/*
222157184Sache * If your system has vsprintf() and requires the use of the macros in
223157184Sache * "varargs.h" to use functions with variable arguments,
224157184Sache * define USEVARARGS.
225157184Sache */
226157184Sache#undef USEVARARGS
227157184Sache
228157184Sache/*
229157184Sache * If your system has strerror() define this.
230157184Sache */
231157184Sache#undef HAVE_STRERROR
232157184Sache
233157184Sache/*
234157184Sache * If the select return value doesn't treat a descriptor that is
235157184Sache * usable for reading and writing as two hits, define SELECT_BROKEN.
236157184Sache */
237157184Sache#undef SELECT_BROKEN
238157184Sache
239157184Sache/*
240157184Sache * Define this if your system supports named pipes.
241157184Sache */
242157184Sache#undef NAMEDPIPE
243157184Sache
244157184Sache/*
245157184Sache * Define this if your system exits select() immediatly if a pipe is
246157184Sache * opened read-only and no writer has opened it.
247157184Sache */
248157184Sache#undef BROKEN_PIPE
249157184Sache
250157184Sache/*
251157184Sache * Define this if the unix-domain socket implementation doesn't
252157184Sache * create a socket in the filesystem.
253157184Sache */
254157184Sache#undef SOCK_NOT_IN_FS
255157184Sache
256157184Sache/*
257157184Sache * If your system has setenv() and unsetenv() define USESETENV
258157184Sache */
259157184Sache#undef USESETENV
260157184Sache
261157184Sache/*
262157184Sache * If your system does not come with a setenv()/putenv()/getenv()
263157184Sache * functions, you may bring in our own code by defining NEEDPUTENV.
264157184Sache */
265157184Sache#undef NEEDPUTENV
266157184Sache
267157184Sache/*
268157184Sache * If the passwords are stored in a shadow file and you want the
269157184Sache * builtin lock to work properly, define SHADOWPW.
270157184Sache */
271157184Sache#undef SHADOWPW
272157184Sache
273157184Sache/*
274157184Sache * If you are on a SYS V machine that restricts filename length to 14 
275157184Sache * characters, you may need to enforce that by setting NAME_MAX to 14
276157184Sache */
277157184Sache#undef NAME_MAX		/* KEEP_UNDEF_HERE override system value */
278157184Sache#undef NAME_MAX
279157184Sache
280157184Sache/*
281157184Sache * define HAVE_RENAME if your system has a rename() function
282157184Sache */
283157184Sache#undef HAVE_RENAME
284157184Sache
285157184Sache/*
286157184Sache * define HAVE__EXIT if your system has the _exit() call.
287157184Sache */
288157184Sache#undef HAVE__EXIT
289157184Sache
290157184Sache/*
291157184Sache * define HAVE_LSTAT if your system has symlinks and the lstat() call.
292157184Sache */
293157184Sache#undef HAVE_LSTAT
294157184Sache
295157184Sache/*
296157184Sache * define HAVE_UTIMES if your system has the utimes() call.
297157184Sache */
298157184Sache#undef HAVE_UTIMES
299157184Sache
300157184Sache/*
301157184Sache * define HAVE_FCHOWN if your system has the fchown() call.
302157184Sache */
303157184Sache#undef HAVE_FCHOWN
304157184Sache
305157184Sache/*
306157184Sache * define HAVE_FCHMOD if your system has the fchmod() call.
307157184Sache */
308157184Sache#undef HAVE_FCHMOD
309157184Sache
310157184Sache/*
311157184Sache * define HAVE_VSNPRINTF if your system has vsnprintf() (GNU lib).
312157184Sache */
313157184Sache#undef HAVE_VSNPRINTF
314157184Sache
315157184Sache/*
316157184Sache * define HAVE_GETCWD if your system has the getcwd() call.
317157184Sache */
318157184Sache#undef HAVE_GETCWD
319157184Sache
320157184Sache/*
321157184Sache * define HAVE_SETLOCALE if your system has the setlocale() call.
322157184Sache */
323157184Sache#undef HAVE_SETLOCALE
324157184Sache
325157184Sache/*
326157184Sache * define HAVE_STRFTIME if your system has the strftime() call.
327157184Sache */
328157184Sache#undef HAVE_STRFTIME
329157184Sache
330157184Sache/*
331157184Sache * define HAVE_NL_LANGINFO if your system has the nl_langinfo() call
332157184Sache * and <langinfo.h> defines CODESET.
333157184Sache */
334157184Sache#undef HAVE_NL_LANGINFO
335157184Sache
336157184Sache/*
337157184Sache * Newer versions of Solaris include fdwalk, which can greatly improve
338157184Sache * the startup time of screen; otherwise screen spends a lot of time
339157184Sache * closing file descriptors.
340157184Sache */
341157184Sache#undef HAVE_FDWALK
342157184Sache
343157184Sache/*
344157184Sache * define HAVE_DEV_PTC if you have a /dev/ptc character special
345157184Sache * device.
346157184Sache */
347157184Sache#undef HAVE_DEV_PTC
348157184Sache
349157184Sache/*
350157184Sache * define HAVE_SVR4_PTYS if you have a /dev/ptmx character special
351157184Sache * device and support the ptsname(), grantpt(), unlockpt() functions.
352157184Sache */
353157184Sache#undef HAVE_SVR4_PTYS
354157184Sache
355157184Sache/*
356157184Sache * define HAVE_GETPT if you have the getpt() function.
357157184Sache */
358157184Sache#undef HAVE_GETPT
359157184Sache
360157184Sache/*
361157184Sache * define HAVE_OPENPTY if your system has the openpty() call.
362157184Sache */
363157184Sache#undef HAVE_OPENPTY
364157184Sache
365157184Sache/* 
366157184Sache * define PTYRANGE0 and or PTYRANGE1 if you want to adapt screen
367157184Sache * to unusual environments. E.g. For SunOs the defaults are "qpr" and 
368157184Sache * "0123456789abcdef". For SunOs 4.1.2 
369157184Sache * #define PTYRANGE0 "pqrstuvwxyzPQRST" 
370157184Sache * is recommended by Dan Jacobson.
371157184Sache */
372157184Sache#undef PTYRANGE0
373157184Sache#undef PTYRANGE1
374157184Sache
375157184Sache#define USEVARARGS
376