xref: /freebsd/contrib/tcsh/ed.term.h (revision a15e6f9a9a49be5eae10ed6689eb2f855462ffbb)
1a15e6f9aSMark Peek /* $Header: /p/tcsh/cvsroot/tcsh/ed.term.h,v 1.18 2007/07/05 14:13:06 christos Exp $ */
2c80476e4SDavid E. O'Brien /*
3c80476e4SDavid E. O'Brien  * ed.term.h: Local terminal header
4c80476e4SDavid E. O'Brien  */
5c80476e4SDavid E. O'Brien /*-
6c80476e4SDavid E. O'Brien  * Copyright (c) 1980, 1991 The Regents of the University of California.
7c80476e4SDavid E. O'Brien  * All rights reserved.
8c80476e4SDavid E. O'Brien  *
9c80476e4SDavid E. O'Brien  * Redistribution and use in source and binary forms, with or without
10c80476e4SDavid E. O'Brien  * modification, are permitted provided that the following conditions
11c80476e4SDavid E. O'Brien  * are met:
12c80476e4SDavid E. O'Brien  * 1. Redistributions of source code must retain the above copyright
13c80476e4SDavid E. O'Brien  *    notice, this list of conditions and the following disclaimer.
14c80476e4SDavid E. O'Brien  * 2. Redistributions in binary form must reproduce the above copyright
15c80476e4SDavid E. O'Brien  *    notice, this list of conditions and the following disclaimer in the
16c80476e4SDavid E. O'Brien  *    documentation and/or other materials provided with the distribution.
1729301572SMark Peek  * 3. Neither the name of the University nor the names of its contributors
18c80476e4SDavid E. O'Brien  *    may be used to endorse or promote products derived from this software
19c80476e4SDavid E. O'Brien  *    without specific prior written permission.
20c80476e4SDavid E. O'Brien  *
21c80476e4SDavid E. O'Brien  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22c80476e4SDavid E. O'Brien  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23c80476e4SDavid E. O'Brien  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24c80476e4SDavid E. O'Brien  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25c80476e4SDavid E. O'Brien  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26c80476e4SDavid E. O'Brien  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27c80476e4SDavid E. O'Brien  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28c80476e4SDavid E. O'Brien  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29c80476e4SDavid E. O'Brien  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30c80476e4SDavid E. O'Brien  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31c80476e4SDavid E. O'Brien  * SUCH DAMAGE.
32c80476e4SDavid E. O'Brien  */
33c80476e4SDavid E. O'Brien #ifndef _h_ed_term
34c80476e4SDavid E. O'Brien #define _h_ed_term
35c80476e4SDavid E. O'Brien 
36c80476e4SDavid E. O'Brien #define TO_CONTROL(A)	((A) & 037)
37c80476e4SDavid E. O'Brien 
38c80476e4SDavid E. O'Brien #if defined(TERMIO) || defined(POSIX)
39c80476e4SDavid E. O'Brien /*
40c80476e4SDavid E. O'Brien  * Aix compatible names
41c80476e4SDavid E. O'Brien  */
42c80476e4SDavid E. O'Brien # if defined(VWERSE) && !defined(VWERASE)
43c80476e4SDavid E. O'Brien #  define VWERASE VWERSE
44c80476e4SDavid E. O'Brien # endif /* VWERSE && !VWERASE */
45c80476e4SDavid E. O'Brien 
46c80476e4SDavid E. O'Brien # if defined(VDISCRD) && !defined(VDISCARD)
47c80476e4SDavid E. O'Brien #  define VDISCARD VDISCRD
48c80476e4SDavid E. O'Brien # endif /* VDISCRD && !VDISCARD */
49c80476e4SDavid E. O'Brien 
50c80476e4SDavid E. O'Brien # if defined(VFLUSHO) && !defined(VDISCARD)
51c80476e4SDavid E. O'Brien #  define VDISCARD VFLUSHO
52c80476e4SDavid E. O'Brien # endif  /* VFLUSHO && VDISCARD */
53c80476e4SDavid E. O'Brien 
54c80476e4SDavid E. O'Brien # if defined(VSTRT) && !defined(VSTART)
55c80476e4SDavid E. O'Brien #  define VSTART VSTRT
56c80476e4SDavid E. O'Brien # endif /* VSTRT && ! VSTART */
57c80476e4SDavid E. O'Brien 
58c80476e4SDavid E. O'Brien # if defined(VSTAT) && !defined(VSTATUS)
59c80476e4SDavid E. O'Brien #  define VSTATUS VSTAT
60c80476e4SDavid E. O'Brien # endif /* VSTAT && ! VSTATUS */
61c80476e4SDavid E. O'Brien 
62c80476e4SDavid E. O'Brien # ifndef ONLRET
63c80476e4SDavid E. O'Brien #  define ONLRET 0
64c80476e4SDavid E. O'Brien # endif /* ONLRET */
65c80476e4SDavid E. O'Brien 
66c80476e4SDavid E. O'Brien # ifndef TAB3
67c80476e4SDavid E. O'Brien #  ifdef OXTABS
68c80476e4SDavid E. O'Brien #   define TAB3 OXTABS
69c80476e4SDavid E. O'Brien #  else
70c80476e4SDavid E. O'Brien #   define TAB3 0
71c80476e4SDavid E. O'Brien #  endif /* OXTABS */
72c80476e4SDavid E. O'Brien # endif /* !TAB3 */
73c80476e4SDavid E. O'Brien 
74c80476e4SDavid E. O'Brien # if defined(OXTABS) && !defined(XTABS)
75c80476e4SDavid E. O'Brien #  define XTABS OXTABS
76c80476e4SDavid E. O'Brien # endif /* OXTABS && !XTABS */
77c80476e4SDavid E. O'Brien 
78c80476e4SDavid E. O'Brien # ifndef ONLCR
79c80476e4SDavid E. O'Brien #  define ONLCR 0
80c80476e4SDavid E. O'Brien # endif /* ONLCR */
81c80476e4SDavid E. O'Brien 
82c80476e4SDavid E. O'Brien # ifndef IEXTEN
83c80476e4SDavid E. O'Brien #  define IEXTEN 0
84c80476e4SDavid E. O'Brien # endif /* IEXTEN */
85c80476e4SDavid E. O'Brien 
86c80476e4SDavid E. O'Brien /*
87c80476e4SDavid E. O'Brien  * emx garbage
88c80476e4SDavid E. O'Brien  */
89c80476e4SDavid E. O'Brien # ifndef IDEFAULT
90c80476e4SDavid E. O'Brien #  define IDEFAULT 0
91c80476e4SDavid E. O'Brien # endif /* IDEFAULT */
92c80476e4SDavid E. O'Brien 
93c80476e4SDavid E. O'Brien # ifndef IDELETE
94c80476e4SDavid E. O'Brien #  define IDELETE 0
95c80476e4SDavid E. O'Brien # endif /* IDELETE */
96c80476e4SDavid E. O'Brien 
97c80476e4SDavid E. O'Brien # ifndef ECHOCTL
98c80476e4SDavid E. O'Brien #  define ECHOCTL 0
99c80476e4SDavid E. O'Brien # endif /* ECHOCTL */
100c80476e4SDavid E. O'Brien 
101c80476e4SDavid E. O'Brien # ifndef PARENB
102c80476e4SDavid E. O'Brien #  define PARENB 0
103c80476e4SDavid E. O'Brien # endif /* PARENB */
104c80476e4SDavid E. O'Brien 
105c80476e4SDavid E. O'Brien # ifndef EXTPROC
106c80476e4SDavid E. O'Brien #  define EXTPROC 0
107c80476e4SDavid E. O'Brien # endif /* EXTPROC */
108c80476e4SDavid E. O'Brien 
109c80476e4SDavid E. O'Brien # ifndef FLUSHO
110c80476e4SDavid E. O'Brien #  define FLUSHO  0
111c80476e4SDavid E. O'Brien # endif /* FLUSHO */
112c80476e4SDavid E. O'Brien 
113c80476e4SDavid E. O'Brien 
114c80476e4SDavid E. O'Brien # if defined(VDISABLE) && !defined(_POSIX_VDISABLE)
115c80476e4SDavid E. O'Brien #  define _POSIX_VDISABLE VDISABLE
116c80476e4SDavid E. O'Brien # endif /* VDISABLE && ! _POSIX_VDISABLE */
117c80476e4SDavid E. O'Brien 
118c80476e4SDavid E. O'Brien /*
119c80476e4SDavid E. O'Brien  * Work around ISC's definition of IEXTEN which is
120c80476e4SDavid E. O'Brien  * XCASE!
121c80476e4SDavid E. O'Brien  */
122c80476e4SDavid E. O'Brien # ifdef ISC
123c80476e4SDavid E. O'Brien #  if defined(IEXTEN) && defined(XCASE)
124c80476e4SDavid E. O'Brien #   if IEXTEN == XCASE
125c80476e4SDavid E. O'Brien #    undef IEXTEN
126c80476e4SDavid E. O'Brien #    define IEXTEN 0
127c80476e4SDavid E. O'Brien #   endif /* IEXTEN == XCASE */
128c80476e4SDavid E. O'Brien #  endif /* IEXTEN && XCASE */
129c80476e4SDavid E. O'Brien #  if defined(IEXTEN) && !defined(XCASE)
130c80476e4SDavid E. O'Brien #   define XCASE IEXTEN
131c80476e4SDavid E. O'Brien #   undef IEXTEN
132c80476e4SDavid E. O'Brien #   define IEXTEN 0
133c80476e4SDavid E. O'Brien #  endif /* IEXTEN && !XCASE */
134c80476e4SDavid E. O'Brien # endif /* ISC */
135c80476e4SDavid E. O'Brien 
136c80476e4SDavid E. O'Brien /*
137c80476e4SDavid E. O'Brien  * Work around convex weirdness where turning off IEXTEN makes us
138c80476e4SDavid E. O'Brien  * lose all postprocessing!
139c80476e4SDavid E. O'Brien  */
140c80476e4SDavid E. O'Brien #ifdef convex
141c80476e4SDavid E. O'Brien # if defined(IEXTEN) && IEXTEN != 0
142c80476e4SDavid E. O'Brien #  undef IEXTEN
143c80476e4SDavid E. O'Brien #  define IEXTEN 0
144c80476e4SDavid E. O'Brien # endif /* IEXTEN != 0 */
145c80476e4SDavid E. O'Brien #endif /* convex */
146c80476e4SDavid E. O'Brien 
147c80476e4SDavid E. O'Brien 
148c80476e4SDavid E. O'Brien # else /* SGTTY */
149c80476e4SDavid E. O'Brien 
150c80476e4SDavid E. O'Brien # ifndef LPASS8
151c80476e4SDavid E. O'Brien #  define LPASS8  0
152c80476e4SDavid E. O'Brien # endif /* LPASS8 */
153c80476e4SDavid E. O'Brien 
154c80476e4SDavid E. O'Brien #endif /* TERMIO || POSIX */
155c80476e4SDavid E. O'Brien 
156c80476e4SDavid E. O'Brien #ifndef _POSIX_VDISABLE
157c80476e4SDavid E. O'Brien # define _POSIX_VDISABLE ((unsigned char) -1)
158c80476e4SDavid E. O'Brien #endif /* _POSIX_VDISABLE */
159c80476e4SDavid E. O'Brien 
160c80476e4SDavid E. O'Brien 
161c80476e4SDavid E. O'Brien #if !defined(CREPRINT) && defined(CRPRNT)
162c80476e4SDavid E. O'Brien # define CREPRINT CRPRNT
163c80476e4SDavid E. O'Brien #endif /* !CREPRINT && CRPRNT */
164c80476e4SDavid E. O'Brien #if !defined(CDISCARD) && defined(CFLUSH)
165c80476e4SDavid E. O'Brien # define CDISCARD CFLUSH
166c80476e4SDavid E. O'Brien #endif /* !CDISCARD && CFLUSH */
167c80476e4SDavid E. O'Brien #if !defined(CDISCARD) && defined(CFLUSHO)
168c80476e4SDavid E. O'Brien # define CDISCARD CFLUSHO
169c80476e4SDavid E. O'Brien #endif /* !CDISCARD && CFLUSHO */
170c80476e4SDavid E. O'Brien 
171c80476e4SDavid E. O'Brien /*
172c80476e4SDavid E. O'Brien  * IRIX4.0 control macro is broken!
173c80476e4SDavid E. O'Brien  * Ignore and undef all default tty chars defined and redefine only
174c80476e4SDavid E. O'Brien  * the ones that are different in the IRIX file.
175c80476e4SDavid E. O'Brien  */
176c80476e4SDavid E. O'Brien #if __STDC__ && defined(IRIS4D)
177c80476e4SDavid E. O'Brien # undef  CINTR
178c80476e4SDavid E. O'Brien # define CINTR		0177	/* ^? */
179c80476e4SDavid E. O'Brien # undef  CQUIT
180c80476e4SDavid E. O'Brien # undef  CERASE
181c80476e4SDavid E. O'Brien # define CERASE		TO_CONTROL('h')
182c80476e4SDavid E. O'Brien # undef  CKILL
183c80476e4SDavid E. O'Brien # undef  CEOF
184c80476e4SDavid E. O'Brien # undef  CEOL
185c80476e4SDavid E. O'Brien # undef  CEOL2
186c80476e4SDavid E. O'Brien # undef  CSWTCH
187c80476e4SDavid E. O'Brien # define CSWTCH		TO_CONTROL('z')
188c80476e4SDavid E. O'Brien # undef  CDSWTCH
189c80476e4SDavid E. O'Brien # undef  CERASE2
190c80476e4SDavid E. O'Brien # undef  CSTART
191c80476e4SDavid E. O'Brien # undef  CSTOP
192c80476e4SDavid E. O'Brien # undef  CWERASE
193c80476e4SDavid E. O'Brien # undef  CSUSP
194c80476e4SDavid E. O'Brien # undef  CDSUSP
195c80476e4SDavid E. O'Brien # undef  CREPRINT
196c80476e4SDavid E. O'Brien # undef  CDISCARD
197c80476e4SDavid E. O'Brien # undef  CLNEXT
198c80476e4SDavid E. O'Brien # undef  CSTATUS
199c80476e4SDavid E. O'Brien # undef  CPAGE
200c80476e4SDavid E. O'Brien # undef  CPGOFF
201c80476e4SDavid E. O'Brien # undef  CKILL2
202c80476e4SDavid E. O'Brien # undef  CBRK
203c80476e4SDavid E. O'Brien # undef  CMIN
204c80476e4SDavid E. O'Brien # undef  CTIME
205c80476e4SDavid E. O'Brien #endif /* __STDC__ && IRIS4D */
206c80476e4SDavid E. O'Brien 
207c80476e4SDavid E. O'Brien 
208c80476e4SDavid E. O'Brien #ifndef CINTR
209c80476e4SDavid E. O'Brien # define CINTR		TO_CONTROL('c')
210c80476e4SDavid E. O'Brien #endif /* CINTR */
211c80476e4SDavid E. O'Brien #ifndef CQUIT
212c80476e4SDavid E. O'Brien # define CQUIT		034	/* ^\ */
213c80476e4SDavid E. O'Brien #endif /* CQUIT */
214c80476e4SDavid E. O'Brien #ifndef CERASE
215c80476e4SDavid E. O'Brien # define CERASE		0177	/* ^? */
216c80476e4SDavid E. O'Brien #endif /* CERASE */
217c80476e4SDavid E. O'Brien #ifndef CKILL
218c80476e4SDavid E. O'Brien # define CKILL		TO_CONTROL('u')
219c80476e4SDavid E. O'Brien #endif /* CKILL */
220c80476e4SDavid E. O'Brien #ifndef CEOF
221c80476e4SDavid E. O'Brien # define CEOF		TO_CONTROL('d')
222c80476e4SDavid E. O'Brien #endif /* CEOF */
223c80476e4SDavid E. O'Brien #ifndef CEOL
224c80476e4SDavid E. O'Brien # define CEOL		_POSIX_VDISABLE
225c80476e4SDavid E. O'Brien #endif /* CEOL */
226c80476e4SDavid E. O'Brien #ifndef CEOL2
227c80476e4SDavid E. O'Brien # define CEOL2		_POSIX_VDISABLE
228c80476e4SDavid E. O'Brien #endif /* CEOL2 */
229c80476e4SDavid E. O'Brien #ifndef CSWTCH
230c80476e4SDavid E. O'Brien # define CSWTCH		_POSIX_VDISABLE
231c80476e4SDavid E. O'Brien #endif /* CSWTCH */
232c80476e4SDavid E. O'Brien #ifndef CDSWTCH
233c80476e4SDavid E. O'Brien # define CDSWTCH	_POSIX_VDISABLE
234c80476e4SDavid E. O'Brien #endif /* CDSWTCH */
235c80476e4SDavid E. O'Brien #ifndef CERASE2
236c80476e4SDavid E. O'Brien # define CERASE2	_POSIX_VDISABLE
237c80476e4SDavid E. O'Brien #endif /* CERASE2 */
238c80476e4SDavid E. O'Brien #ifndef CSTART
239c80476e4SDavid E. O'Brien # define CSTART		TO_CONTROL('q')
240c80476e4SDavid E. O'Brien #endif /* CSTART */
241c80476e4SDavid E. O'Brien #ifndef CSTOP
242c80476e4SDavid E. O'Brien # define CSTOP		TO_CONTROL('s')
243c80476e4SDavid E. O'Brien #endif /* CSTOP */
244c80476e4SDavid E. O'Brien #ifndef CSUSP
245c80476e4SDavid E. O'Brien # define CSUSP		TO_CONTROL('z')
246c80476e4SDavid E. O'Brien #endif /* CSUSP */
247c80476e4SDavid E. O'Brien #ifndef CDSUSP
248c80476e4SDavid E. O'Brien # define CDSUSP		TO_CONTROL('y')
249c80476e4SDavid E. O'Brien #endif /* CDSUSP */
250c80476e4SDavid E. O'Brien 
251c80476e4SDavid E. O'Brien #ifdef hpux
252c80476e4SDavid E. O'Brien 
253c80476e4SDavid E. O'Brien # ifndef CREPRINT
254c80476e4SDavid E. O'Brien #  define CREPRINT	_POSIX_VDISABLE
255c80476e4SDavid E. O'Brien # endif /* CREPRINT */
256c80476e4SDavid E. O'Brien # ifndef CDISCARD
257c80476e4SDavid E. O'Brien #  define CDISCARD	_POSIX_VDISABLE
258c80476e4SDavid E. O'Brien # endif /* CDISCARD */
259c80476e4SDavid E. O'Brien # ifndef CLNEXT
260c80476e4SDavid E. O'Brien #  define CLNEXT	_POSIX_VDISABLE
261c80476e4SDavid E. O'Brien # endif /* CLNEXT */
262c80476e4SDavid E. O'Brien # ifndef CWERASE
263c80476e4SDavid E. O'Brien #  define CWERASE	_POSIX_VDISABLE
264c80476e4SDavid E. O'Brien # endif /* CWERASE */
265c80476e4SDavid E. O'Brien 
266c80476e4SDavid E. O'Brien #else /* !hpux */
267c80476e4SDavid E. O'Brien 
268c80476e4SDavid E. O'Brien # ifndef CREPRINT
269c80476e4SDavid E. O'Brien #  define CREPRINT	TO_CONTROL('r')
270c80476e4SDavid E. O'Brien # endif /* CREPRINT */
271c80476e4SDavid E. O'Brien # ifndef CDISCARD
272c80476e4SDavid E. O'Brien #  define CDISCARD	TO_CONTROL('o')
273c80476e4SDavid E. O'Brien # endif /* CDISCARD */
274c80476e4SDavid E. O'Brien # ifndef CLNEXT
275c80476e4SDavid E. O'Brien #  define CLNEXT	TO_CONTROL('v')
276c80476e4SDavid E. O'Brien # endif /* CLNEXT */
277c80476e4SDavid E. O'Brien # ifndef CWERASE
278c80476e4SDavid E. O'Brien #  define CWERASE	TO_CONTROL('w')
279c80476e4SDavid E. O'Brien # endif /* CWERASE */
280c80476e4SDavid E. O'Brien 
281c80476e4SDavid E. O'Brien #endif /* hpux */
282c80476e4SDavid E. O'Brien 
283c80476e4SDavid E. O'Brien #ifndef CSTATUS
284c80476e4SDavid E. O'Brien # define CSTATUS	TO_CONTROL('t')
285c80476e4SDavid E. O'Brien #endif /* CSTATUS */
286c80476e4SDavid E. O'Brien #ifndef CPAGE
287c80476e4SDavid E. O'Brien # define CPAGE		' '
288c80476e4SDavid E. O'Brien #endif /* CPAGE */
289c80476e4SDavid E. O'Brien #ifndef CPGOFF
290c80476e4SDavid E. O'Brien # define CPGOFF		TO_CONTROL('m')
291c80476e4SDavid E. O'Brien #endif /* CPGOFF */
292c80476e4SDavid E. O'Brien #ifndef CKILL2
293c80476e4SDavid E. O'Brien # define CKILL2		_POSIX_VDISABLE
294c80476e4SDavid E. O'Brien #endif /* CKILL2 */
295c80476e4SDavid E. O'Brien #ifndef CBRK
296c80476e4SDavid E. O'Brien # ifndef masscomp
297c80476e4SDavid E. O'Brien #  define CBRK		0377
298c80476e4SDavid E. O'Brien # else
299c80476e4SDavid E. O'Brien #  define CBRK		'\0'
300c80476e4SDavid E. O'Brien # endif /* masscomp */
301c80476e4SDavid E. O'Brien #endif /* CBRK */
302c80476e4SDavid E. O'Brien #ifndef CMIN
303c80476e4SDavid E. O'Brien # define CMIN		CEOF
304c80476e4SDavid E. O'Brien #endif /* CMIN */
305c80476e4SDavid E. O'Brien #ifndef CTIME
306c80476e4SDavid E. O'Brien # define CTIME		CEOL
307c80476e4SDavid E. O'Brien #endif /* CTIME */
308c80476e4SDavid E. O'Brien 
309c80476e4SDavid E. O'Brien /*
310c80476e4SDavid E. O'Brien  * Fix for sun inconsistency. On termio VSUSP and the rest of the
311c80476e4SDavid E. O'Brien  * ttychars > NCC are defined. So we undefine them.
312c80476e4SDavid E. O'Brien  */
313c80476e4SDavid E. O'Brien #if defined(TERMIO) || defined(POSIX)
314c80476e4SDavid E. O'Brien # if defined(POSIX) && defined(NCCS)
315c80476e4SDavid E. O'Brien #  define NUMCC		NCCS
316c80476e4SDavid E. O'Brien # else
317c80476e4SDavid E. O'Brien #  ifdef NCC
318c80476e4SDavid E. O'Brien #   define NUMCC	NCC
319c80476e4SDavid E. O'Brien #  endif /* NCC */
320c80476e4SDavid E. O'Brien # endif /* POSIX && NCCS */
321c80476e4SDavid E. O'Brien # ifdef NUMCC
322c80476e4SDavid E. O'Brien #  ifdef VINTR
323c80476e4SDavid E. O'Brien #   if NUMCC <= VINTR
324c80476e4SDavid E. O'Brien #    undef VINTR
325c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VINTR */
326c80476e4SDavid E. O'Brien #  endif /* VINTR */
327c80476e4SDavid E. O'Brien #  ifdef VQUIT
328c80476e4SDavid E. O'Brien #   if NUMCC <= VQUIT
329c80476e4SDavid E. O'Brien #    undef VQUIT
330c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VQUIT */
331c80476e4SDavid E. O'Brien #  endif /* VQUIT */
332c80476e4SDavid E. O'Brien #  ifdef VERASE
333c80476e4SDavid E. O'Brien #   if NUMCC <= VERASE
334c80476e4SDavid E. O'Brien #    undef VERASE
335c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VERASE */
336c80476e4SDavid E. O'Brien #  endif /* VERASE */
337c80476e4SDavid E. O'Brien #  ifdef VKILL
338c80476e4SDavid E. O'Brien #   if NUMCC <= VKILL
339c80476e4SDavid E. O'Brien #    undef VKILL
340c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VKILL */
341c80476e4SDavid E. O'Brien #  endif /* VKILL */
342c80476e4SDavid E. O'Brien #  ifdef VEOF
343c80476e4SDavid E. O'Brien #   if NUMCC <= VEOF
344c80476e4SDavid E. O'Brien #    undef VEOF
345c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VEOF */
346c80476e4SDavid E. O'Brien #  endif /* VEOF */
347c80476e4SDavid E. O'Brien #  ifdef VEOL
348c80476e4SDavid E. O'Brien #   if NUMCC <= VEOL
349c80476e4SDavid E. O'Brien #    undef VEOL
350c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VEOL */
351c80476e4SDavid E. O'Brien #  endif /* VEOL */
352c80476e4SDavid E. O'Brien #  ifdef VEOL2
353c80476e4SDavid E. O'Brien #   if NUMCC <= VEOL2
354c80476e4SDavid E. O'Brien #    undef VEOL2
355c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VEOL2 */
356c80476e4SDavid E. O'Brien #  endif /* VEOL2 */
357c80476e4SDavid E. O'Brien #  ifdef VSWTCH
358c80476e4SDavid E. O'Brien #   if NUMCC <= VSWTCH
359c80476e4SDavid E. O'Brien #    undef VSWTCH
360c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VSWTCH */
361c80476e4SDavid E. O'Brien #  endif /* VSWTCH */
362c80476e4SDavid E. O'Brien #  ifdef VDSWTCH
363c80476e4SDavid E. O'Brien #   if NUMCC <= VDSWTCH
364c80476e4SDavid E. O'Brien #    undef VDSWTCH
365c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VDSWTCH */
366c80476e4SDavid E. O'Brien #  endif /* VDSWTCH */
367c80476e4SDavid E. O'Brien #  ifdef VERASE2
368c80476e4SDavid E. O'Brien #   if NUMCC <= VERASE2
369c80476e4SDavid E. O'Brien #    undef VERASE2
370c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VERASE2 */
371c80476e4SDavid E. O'Brien #  endif /* VERASE2 */
372c80476e4SDavid E. O'Brien #  ifdef VSTART
373c80476e4SDavid E. O'Brien #   if NUMCC <= VSTART
374c80476e4SDavid E. O'Brien #    undef VSTART
375c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VSTART */
376c80476e4SDavid E. O'Brien #  endif /* VSTART */
377c80476e4SDavid E. O'Brien #  ifdef VSTOP
378c80476e4SDavid E. O'Brien #   if NUMCC <= VSTOP
379c80476e4SDavid E. O'Brien #    undef VSTOP
380c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VSTOP */
381c80476e4SDavid E. O'Brien #  endif /* VSTOP */
382c80476e4SDavid E. O'Brien #  ifdef VWERASE
383c80476e4SDavid E. O'Brien #   if NUMCC <= VWERASE
384c80476e4SDavid E. O'Brien #    undef VWERASE
385c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VWERASE */
386c80476e4SDavid E. O'Brien #  endif /* VWERASE */
387c80476e4SDavid E. O'Brien #  ifdef VSUSP
388c80476e4SDavid E. O'Brien #   if NUMCC <= VSUSP
389c80476e4SDavid E. O'Brien #    undef VSUSP
390c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VSUSP */
391c80476e4SDavid E. O'Brien #  endif /* VSUSP */
392c80476e4SDavid E. O'Brien #  ifdef VDSUSP
393c80476e4SDavid E. O'Brien #   if NUMCC <= VDSUSP
394c80476e4SDavid E. O'Brien #    undef VDSUSP
395c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VDSUSP */
396c80476e4SDavid E. O'Brien #  endif /* VDSUSP */
397c80476e4SDavid E. O'Brien #  ifdef VREPRINT
398c80476e4SDavid E. O'Brien #   if NUMCC <= VREPRINT
399c80476e4SDavid E. O'Brien #    undef VREPRINT
400c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VREPRINT */
401c80476e4SDavid E. O'Brien #  endif /* VREPRINT */
402c80476e4SDavid E. O'Brien #  ifdef VDISCARD
403c80476e4SDavid E. O'Brien #   if NUMCC <= VDISCARD
404c80476e4SDavid E. O'Brien #    undef VDISCARD
405c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VDISCARD */
406c80476e4SDavid E. O'Brien #  endif /* VDISCARD */
407c80476e4SDavid E. O'Brien #  ifdef VLNEXT
408c80476e4SDavid E. O'Brien #   if NUMCC <= VLNEXT
409c80476e4SDavid E. O'Brien #    undef VLNEXT
410c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VLNEXT */
411c80476e4SDavid E. O'Brien #  endif /* VLNEXT */
412c80476e4SDavid E. O'Brien #  ifdef VSTATUS
413c80476e4SDavid E. O'Brien #   if NUMCC <= VSTATUS
414c80476e4SDavid E. O'Brien #    undef VSTATUS
415c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VSTATUS */
416c80476e4SDavid E. O'Brien #  endif /* VSTATUS */
417c80476e4SDavid E. O'Brien #  ifdef VPAGE
418c80476e4SDavid E. O'Brien #   if NUMCC <= VPAGE
419c80476e4SDavid E. O'Brien #    undef VPAGE
420c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VPAGE */
421c80476e4SDavid E. O'Brien #  endif /* VPAGE */
422c80476e4SDavid E. O'Brien #  ifdef VPGOFF
423c80476e4SDavid E. O'Brien #   if NUMCC <= VPGOFF
424c80476e4SDavid E. O'Brien #    undef VPGOFF
425c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VPGOFF */
426c80476e4SDavid E. O'Brien #  endif /* VPGOFF */
427c80476e4SDavid E. O'Brien #  ifdef VKILL2
428c80476e4SDavid E. O'Brien #   if NUMCC <= VKILL2
429c80476e4SDavid E. O'Brien #    undef VKILL2
430c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VKILL2 */
431c80476e4SDavid E. O'Brien #  endif /* VKILL2 */
432c80476e4SDavid E. O'Brien #  ifdef VBRK
433c80476e4SDavid E. O'Brien #   if NUMCC <= VBRK
434c80476e4SDavid E. O'Brien #    undef VBRK
435c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VBRK */
436c80476e4SDavid E. O'Brien #  endif /* VBRK */
437c80476e4SDavid E. O'Brien #  ifdef VMIN
438c80476e4SDavid E. O'Brien #   if NUMCC <= VMIN
439c80476e4SDavid E. O'Brien #    undef VMIN
440c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VMIN */
441c80476e4SDavid E. O'Brien #  endif /* VMIN */
442c80476e4SDavid E. O'Brien #  ifdef VTIME
443c80476e4SDavid E. O'Brien #   if NUMCC <= VTIME
444c80476e4SDavid E. O'Brien #    undef VTIME
445c80476e4SDavid E. O'Brien #   endif /* NUMCC <= VTIME */
446c80476e4SDavid E. O'Brien #  endif /* VTIME */
447c80476e4SDavid E. O'Brien # endif /* NUMCC */
448c80476e4SDavid E. O'Brien #endif /* !POSIX */
449c80476e4SDavid E. O'Brien 
450c80476e4SDavid E. O'Brien /*
451c80476e4SDavid E. O'Brien  * fix for hpux10 inconsistency: it has VWERASE, but TIOCSLTC returns
452c80476e4SDavid E. O'Brien  * EINVAL if one tries to change it
45329301572SMark Peek  * Also for RH6.2 on the alpha, defined TIOCGLTC, but does not have
45429301572SMark Peek  * struct ltchars
455c80476e4SDavid E. O'Brien  */
456a15e6f9aSMark Peek #if (defined(hpux) && defined(VSUSP) && defined(VDSUSP) && defined(VWERASE) && defined(VLNEXT)) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__QNXNTO__)
457c80476e4SDavid E. O'Brien # undef TIOCGLTC       /* not really needed */
458c80476e4SDavid E. O'Brien # undef TIOCSLTC
459c80476e4SDavid E. O'Brien #endif
460c80476e4SDavid E. O'Brien 
461c80476e4SDavid E. O'Brien #define C_INTR		 0
462c80476e4SDavid E. O'Brien #define C_QUIT		 1
463c80476e4SDavid E. O'Brien #define C_ERASE		 2
464c80476e4SDavid E. O'Brien #define C_KILL		 3
465c80476e4SDavid E. O'Brien #define C_EOF		 4
466c80476e4SDavid E. O'Brien #define C_EOL		 5
467c80476e4SDavid E. O'Brien #define C_EOL2		 6
468c80476e4SDavid E. O'Brien #define C_SWTCH		 7
469c80476e4SDavid E. O'Brien #define C_DSWTCH	 8
470c80476e4SDavid E. O'Brien #define C_ERASE2	 9
471c80476e4SDavid E. O'Brien #define C_START		10
472c80476e4SDavid E. O'Brien #define C_STOP		11
473c80476e4SDavid E. O'Brien #define C_WERASE	12
474c80476e4SDavid E. O'Brien #define C_SUSP		13
475c80476e4SDavid E. O'Brien #define C_DSUSP		14
476c80476e4SDavid E. O'Brien #define C_REPRINT	15
477c80476e4SDavid E. O'Brien #define C_DISCARD	16
478c80476e4SDavid E. O'Brien #define C_LNEXT		17
479c80476e4SDavid E. O'Brien #define C_STATUS	18
480c80476e4SDavid E. O'Brien #define C_PAGE		19
481c80476e4SDavid E. O'Brien #define C_PGOFF		20
482c80476e4SDavid E. O'Brien #define C_KILL2		21
483c80476e4SDavid E. O'Brien #define C_BRK		22
484c80476e4SDavid E. O'Brien #define C_MIN		23
485c80476e4SDavid E. O'Brien #define C_TIME		24
486c80476e4SDavid E. O'Brien #define C_NCC		25
487c80476e4SDavid E. O'Brien #define C_SH(A)		(1 << (A))
488c80476e4SDavid E. O'Brien 
48929301572SMark Peek /*
49029301572SMark Peek  * Terminal dependend data structures
49129301572SMark Peek  */
49229301572SMark Peek typedef struct {
49329301572SMark Peek #ifdef WINNT_NATIVE
49429301572SMark Peek     int dummy;
49529301572SMark Peek #else /* !WINNT_NATIVE */
49629301572SMark Peek # if defined(POSIX) || defined(TERMIO)
49729301572SMark Peek #  ifdef POSIX
49829301572SMark Peek     struct termios d_t;
49929301572SMark Peek #  else
50029301572SMark Peek     struct termio d_t;
50129301572SMark Peek #  endif /* POSIX */
50229301572SMark Peek # else /* SGTTY */
50329301572SMark Peek #  ifdef TIOCGETP
50429301572SMark Peek     struct sgttyb d_t;
50529301572SMark Peek #  endif /* TIOCGETP */
50629301572SMark Peek #  ifdef TIOCGETC
50729301572SMark Peek     struct tchars d_tc;
50829301572SMark Peek #  endif /* TIOCGETC */
50929301572SMark Peek #  ifdef TIOCGPAGE
51029301572SMark Peek     struct ttypagestat d_pc;
51129301572SMark Peek #  endif /* TIOCGPAGE */
51229301572SMark Peek #  ifdef TIOCLGET
51329301572SMark Peek     int d_lb;
51429301572SMark Peek #  endif /* TIOCLGET */
51529301572SMark Peek # endif /* POSIX || TERMIO */
51629301572SMark Peek # ifdef TIOCGLTC
51729301572SMark Peek     struct ltchars d_ltc;
51829301572SMark Peek # endif /* TIOCGLTC */
51929301572SMark Peek #endif /* WINNT_NATIVE */
52029301572SMark Peek } ttydata_t;
52129301572SMark Peek 
522c80476e4SDavid E. O'Brien #endif /* _h_ed_term */
523