1195609Smp/* $Header: /p/tcsh/cvsroot/tcsh/ed.term.h,v 1.18 2007/07/05 14:13:06 christos Exp $ */
259243Sobrien/*
359243Sobrien * ed.term.h: Local terminal header
459243Sobrien */
559243Sobrien/*-
659243Sobrien * Copyright (c) 1980, 1991 The Regents of the University of California.
759243Sobrien * All rights reserved.
859243Sobrien *
959243Sobrien * Redistribution and use in source and binary forms, with or without
1059243Sobrien * modification, are permitted provided that the following conditions
1159243Sobrien * are met:
1259243Sobrien * 1. Redistributions of source code must retain the above copyright
1359243Sobrien *    notice, this list of conditions and the following disclaimer.
1459243Sobrien * 2. Redistributions in binary form must reproduce the above copyright
1559243Sobrien *    notice, this list of conditions and the following disclaimer in the
1659243Sobrien *    documentation and/or other materials provided with the distribution.
17100616Smp * 3. Neither the name of the University nor the names of its contributors
1859243Sobrien *    may be used to endorse or promote products derived from this software
1959243Sobrien *    without specific prior written permission.
2059243Sobrien *
2159243Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2259243Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2359243Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2459243Sobrien * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2559243Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2659243Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2759243Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2859243Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2959243Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3059243Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3159243Sobrien * SUCH DAMAGE.
3259243Sobrien */
3359243Sobrien#ifndef _h_ed_term
3459243Sobrien#define _h_ed_term
3559243Sobrien
3659243Sobrien#define TO_CONTROL(A)	((A) & 037)
3759243Sobrien
3859243Sobrien#if defined(TERMIO) || defined(POSIX)
3959243Sobrien/*
4059243Sobrien * Aix compatible names
4159243Sobrien */
4259243Sobrien# if defined(VWERSE) && !defined(VWERASE)
4359243Sobrien#  define VWERASE VWERSE
4459243Sobrien# endif /* VWERSE && !VWERASE */
4559243Sobrien
4659243Sobrien# if defined(VDISCRD) && !defined(VDISCARD)
4759243Sobrien#  define VDISCARD VDISCRD
4859243Sobrien# endif /* VDISCRD && !VDISCARD */
4959243Sobrien
5059243Sobrien# if defined(VFLUSHO) && !defined(VDISCARD)
5159243Sobrien#  define VDISCARD VFLUSHO
5259243Sobrien# endif  /* VFLUSHO && VDISCARD */
5359243Sobrien
5459243Sobrien# if defined(VSTRT) && !defined(VSTART)
5559243Sobrien#  define VSTART VSTRT
5659243Sobrien# endif /* VSTRT && ! VSTART */
5759243Sobrien
5859243Sobrien# if defined(VSTAT) && !defined(VSTATUS)
5959243Sobrien#  define VSTATUS VSTAT
6059243Sobrien# endif /* VSTAT && ! VSTATUS */
6159243Sobrien
6259243Sobrien# ifndef ONLRET
6359243Sobrien#  define ONLRET 0
6459243Sobrien# endif /* ONLRET */
6559243Sobrien
6659243Sobrien# ifndef TAB3
6759243Sobrien#  ifdef OXTABS
6859243Sobrien#   define TAB3 OXTABS
6959243Sobrien#  else
7059243Sobrien#   define TAB3 0
7159243Sobrien#  endif /* OXTABS */
7259243Sobrien# endif /* !TAB3 */
7359243Sobrien
7459243Sobrien# if defined(OXTABS) && !defined(XTABS)
7559243Sobrien#  define XTABS OXTABS
7659243Sobrien# endif /* OXTABS && !XTABS */
7759243Sobrien
7859243Sobrien# ifndef ONLCR
7959243Sobrien#  define ONLCR 0
8059243Sobrien# endif /* ONLCR */
8159243Sobrien
8259243Sobrien# ifndef IEXTEN
8359243Sobrien#  define IEXTEN 0
8459243Sobrien# endif /* IEXTEN */
8559243Sobrien
8659243Sobrien/*
8759243Sobrien * emx garbage
8859243Sobrien */
8959243Sobrien# ifndef IDEFAULT
9059243Sobrien#  define IDEFAULT 0
9159243Sobrien# endif /* IDEFAULT */
9259243Sobrien
9359243Sobrien# ifndef IDELETE
9459243Sobrien#  define IDELETE 0
9559243Sobrien# endif /* IDELETE */
9659243Sobrien
9759243Sobrien# ifndef ECHOCTL
9859243Sobrien#  define ECHOCTL 0
9959243Sobrien# endif /* ECHOCTL */
10059243Sobrien
10159243Sobrien# ifndef PARENB
10259243Sobrien#  define PARENB 0
10359243Sobrien# endif /* PARENB */
10459243Sobrien
10559243Sobrien# ifndef EXTPROC
10659243Sobrien#  define EXTPROC 0
10759243Sobrien# endif /* EXTPROC */
10859243Sobrien
10959243Sobrien# ifndef FLUSHO
11059243Sobrien#  define FLUSHO  0
11159243Sobrien# endif /* FLUSHO */
11259243Sobrien
11359243Sobrien
11459243Sobrien# if defined(VDISABLE) && !defined(_POSIX_VDISABLE)
11559243Sobrien#  define _POSIX_VDISABLE VDISABLE
11659243Sobrien# endif /* VDISABLE && ! _POSIX_VDISABLE */
11759243Sobrien
11859243Sobrien/*
11959243Sobrien * Work around ISC's definition of IEXTEN which is
12059243Sobrien * XCASE!
12159243Sobrien */
12259243Sobrien# ifdef ISC
12359243Sobrien#  if defined(IEXTEN) && defined(XCASE)
12459243Sobrien#   if IEXTEN == XCASE
12559243Sobrien#    undef IEXTEN
12659243Sobrien#    define IEXTEN 0
12759243Sobrien#   endif /* IEXTEN == XCASE */
12859243Sobrien#  endif /* IEXTEN && XCASE */
12959243Sobrien#  if defined(IEXTEN) && !defined(XCASE)
13059243Sobrien#   define XCASE IEXTEN
13159243Sobrien#   undef IEXTEN
13259243Sobrien#   define IEXTEN 0
13359243Sobrien#  endif /* IEXTEN && !XCASE */
13459243Sobrien# endif /* ISC */
13559243Sobrien
13659243Sobrien/*
13759243Sobrien * Work around convex weirdness where turning off IEXTEN makes us
13859243Sobrien * lose all postprocessing!
13959243Sobrien */
14059243Sobrien#ifdef convex
14159243Sobrien# if defined(IEXTEN) && IEXTEN != 0
14259243Sobrien#  undef IEXTEN
14359243Sobrien#  define IEXTEN 0
14459243Sobrien# endif /* IEXTEN != 0 */
14559243Sobrien#endif /* convex */
14659243Sobrien
14759243Sobrien
14859243Sobrien# else /* SGTTY */
14959243Sobrien
15059243Sobrien# ifndef LPASS8
15159243Sobrien#  define LPASS8  0
15259243Sobrien# endif /* LPASS8 */
15359243Sobrien
15459243Sobrien#endif /* TERMIO || POSIX */
15559243Sobrien
15659243Sobrien#ifndef _POSIX_VDISABLE
15759243Sobrien# define _POSIX_VDISABLE ((unsigned char) -1)
15859243Sobrien#endif /* _POSIX_VDISABLE */
15959243Sobrien
16059243Sobrien
16159243Sobrien#if !defined(CREPRINT) && defined(CRPRNT)
16259243Sobrien# define CREPRINT CRPRNT
16359243Sobrien#endif /* !CREPRINT && CRPRNT */
16459243Sobrien#if !defined(CDISCARD) && defined(CFLUSH)
16559243Sobrien# define CDISCARD CFLUSH
16659243Sobrien#endif /* !CDISCARD && CFLUSH */
16759243Sobrien#if !defined(CDISCARD) && defined(CFLUSHO)
16859243Sobrien# define CDISCARD CFLUSHO
16959243Sobrien#endif /* !CDISCARD && CFLUSHO */
17059243Sobrien
17159243Sobrien/*
17259243Sobrien * IRIX4.0 control macro is broken!
17359243Sobrien * Ignore and undef all default tty chars defined and redefine only
17459243Sobrien * the ones that are different in the IRIX file.
17559243Sobrien */
17659243Sobrien#if __STDC__ && defined(IRIS4D)
17759243Sobrien# undef  CINTR
17859243Sobrien# define CINTR		0177	/* ^? */
17959243Sobrien# undef  CQUIT
18059243Sobrien# undef  CERASE
18159243Sobrien# define CERASE		TO_CONTROL('h')
18259243Sobrien# undef  CKILL
18359243Sobrien# undef  CEOF
18459243Sobrien# undef  CEOL
18559243Sobrien# undef  CEOL2
18659243Sobrien# undef  CSWTCH
18759243Sobrien# define CSWTCH		TO_CONTROL('z')
18859243Sobrien# undef  CDSWTCH
18959243Sobrien# undef  CERASE2
19059243Sobrien# undef  CSTART
19159243Sobrien# undef  CSTOP
19259243Sobrien# undef  CWERASE
19359243Sobrien# undef  CSUSP
19459243Sobrien# undef  CDSUSP
19559243Sobrien# undef  CREPRINT
19659243Sobrien# undef  CDISCARD
19759243Sobrien# undef  CLNEXT
19859243Sobrien# undef  CSTATUS
19959243Sobrien# undef  CPAGE
20059243Sobrien# undef  CPGOFF
20159243Sobrien# undef  CKILL2
20259243Sobrien# undef  CBRK
20359243Sobrien# undef  CMIN
20459243Sobrien# undef  CTIME
20559243Sobrien#endif /* __STDC__ && IRIS4D */
20659243Sobrien
20759243Sobrien
20859243Sobrien#ifndef CINTR
20959243Sobrien# define CINTR		TO_CONTROL('c')
21059243Sobrien#endif /* CINTR */
21159243Sobrien#ifndef CQUIT
21259243Sobrien# define CQUIT		034	/* ^\ */
21359243Sobrien#endif /* CQUIT */
21459243Sobrien#ifndef CERASE
21559243Sobrien# define CERASE		0177	/* ^? */
21659243Sobrien#endif /* CERASE */
21759243Sobrien#ifndef CKILL
21859243Sobrien# define CKILL		TO_CONTROL('u')
21959243Sobrien#endif /* CKILL */
22059243Sobrien#ifndef CEOF
22159243Sobrien# define CEOF		TO_CONTROL('d')
22259243Sobrien#endif /* CEOF */
22359243Sobrien#ifndef CEOL
22459243Sobrien# define CEOL		_POSIX_VDISABLE
22559243Sobrien#endif /* CEOL */
22659243Sobrien#ifndef CEOL2
22759243Sobrien# define CEOL2		_POSIX_VDISABLE
22859243Sobrien#endif /* CEOL2 */
22959243Sobrien#ifndef CSWTCH
23059243Sobrien# define CSWTCH		_POSIX_VDISABLE
23159243Sobrien#endif /* CSWTCH */
23259243Sobrien#ifndef CDSWTCH
23359243Sobrien# define CDSWTCH	_POSIX_VDISABLE
23459243Sobrien#endif /* CDSWTCH */
23559243Sobrien#ifndef CERASE2
23659243Sobrien# define CERASE2	_POSIX_VDISABLE
23759243Sobrien#endif /* CERASE2 */
23859243Sobrien#ifndef CSTART
23959243Sobrien# define CSTART		TO_CONTROL('q')
24059243Sobrien#endif /* CSTART */
24159243Sobrien#ifndef CSTOP
24259243Sobrien# define CSTOP		TO_CONTROL('s')
24359243Sobrien#endif /* CSTOP */
24459243Sobrien#ifndef CSUSP
24559243Sobrien# define CSUSP		TO_CONTROL('z')
24659243Sobrien#endif /* CSUSP */
24759243Sobrien#ifndef CDSUSP
24859243Sobrien# define CDSUSP		TO_CONTROL('y')
24959243Sobrien#endif /* CDSUSP */
25059243Sobrien
25159243Sobrien#ifdef hpux
25259243Sobrien
25359243Sobrien# ifndef CREPRINT
25459243Sobrien#  define CREPRINT	_POSIX_VDISABLE
25559243Sobrien# endif /* CREPRINT */
25659243Sobrien# ifndef CDISCARD
25759243Sobrien#  define CDISCARD	_POSIX_VDISABLE
25859243Sobrien# endif /* CDISCARD */
25959243Sobrien# ifndef CLNEXT
26059243Sobrien#  define CLNEXT	_POSIX_VDISABLE
26159243Sobrien# endif /* CLNEXT */
26259243Sobrien# ifndef CWERASE
26359243Sobrien#  define CWERASE	_POSIX_VDISABLE
26459243Sobrien# endif /* CWERASE */
26559243Sobrien
26659243Sobrien#else /* !hpux */
26759243Sobrien
26859243Sobrien# ifndef CREPRINT
26959243Sobrien#  define CREPRINT	TO_CONTROL('r')
27059243Sobrien# endif /* CREPRINT */
27159243Sobrien# ifndef CDISCARD
27259243Sobrien#  define CDISCARD	TO_CONTROL('o')
27359243Sobrien# endif /* CDISCARD */
27459243Sobrien# ifndef CLNEXT
27559243Sobrien#  define CLNEXT	TO_CONTROL('v')
27659243Sobrien# endif /* CLNEXT */
27759243Sobrien# ifndef CWERASE
27859243Sobrien#  define CWERASE	TO_CONTROL('w')
27959243Sobrien# endif /* CWERASE */
28059243Sobrien
28159243Sobrien#endif /* hpux */
28259243Sobrien
28359243Sobrien#ifndef CSTATUS
28459243Sobrien# define CSTATUS	TO_CONTROL('t')
28559243Sobrien#endif /* CSTATUS */
28659243Sobrien#ifndef CPAGE
28759243Sobrien# define CPAGE		' '
28859243Sobrien#endif /* CPAGE */
28959243Sobrien#ifndef CPGOFF
29059243Sobrien# define CPGOFF		TO_CONTROL('m')
29159243Sobrien#endif /* CPGOFF */
29259243Sobrien#ifndef CKILL2
29359243Sobrien# define CKILL2		_POSIX_VDISABLE
29459243Sobrien#endif /* CKILL2 */
29559243Sobrien#ifndef CBRK
29659243Sobrien# ifndef masscomp
29759243Sobrien#  define CBRK		0377
29859243Sobrien# else
29959243Sobrien#  define CBRK		'\0'
30059243Sobrien# endif /* masscomp */
30159243Sobrien#endif /* CBRK */
30259243Sobrien#ifndef CMIN
30359243Sobrien# define CMIN		CEOF
30459243Sobrien#endif /* CMIN */
30559243Sobrien#ifndef CTIME
30659243Sobrien# define CTIME		CEOL
30759243Sobrien#endif /* CTIME */
30859243Sobrien
30959243Sobrien/*
31059243Sobrien * Fix for sun inconsistency. On termio VSUSP and the rest of the
31159243Sobrien * ttychars > NCC are defined. So we undefine them.
31259243Sobrien */
31359243Sobrien#if defined(TERMIO) || defined(POSIX)
31459243Sobrien# if defined(POSIX) && defined(NCCS)
31559243Sobrien#  define NUMCC		NCCS
31659243Sobrien# else
31759243Sobrien#  ifdef NCC
31859243Sobrien#   define NUMCC	NCC
31959243Sobrien#  endif /* NCC */
32059243Sobrien# endif /* POSIX && NCCS */
32159243Sobrien# ifdef NUMCC
32259243Sobrien#  ifdef VINTR
32359243Sobrien#   if NUMCC <= VINTR
32459243Sobrien#    undef VINTR
32559243Sobrien#   endif /* NUMCC <= VINTR */
32659243Sobrien#  endif /* VINTR */
32759243Sobrien#  ifdef VQUIT
32859243Sobrien#   if NUMCC <= VQUIT
32959243Sobrien#    undef VQUIT
33059243Sobrien#   endif /* NUMCC <= VQUIT */
33159243Sobrien#  endif /* VQUIT */
33259243Sobrien#  ifdef VERASE
33359243Sobrien#   if NUMCC <= VERASE
33459243Sobrien#    undef VERASE
33559243Sobrien#   endif /* NUMCC <= VERASE */
33659243Sobrien#  endif /* VERASE */
33759243Sobrien#  ifdef VKILL
33859243Sobrien#   if NUMCC <= VKILL
33959243Sobrien#    undef VKILL
34059243Sobrien#   endif /* NUMCC <= VKILL */
34159243Sobrien#  endif /* VKILL */
34259243Sobrien#  ifdef VEOF
34359243Sobrien#   if NUMCC <= VEOF
34459243Sobrien#    undef VEOF
34559243Sobrien#   endif /* NUMCC <= VEOF */
34659243Sobrien#  endif /* VEOF */
34759243Sobrien#  ifdef VEOL
34859243Sobrien#   if NUMCC <= VEOL
34959243Sobrien#    undef VEOL
35059243Sobrien#   endif /* NUMCC <= VEOL */
35159243Sobrien#  endif /* VEOL */
35259243Sobrien#  ifdef VEOL2
35359243Sobrien#   if NUMCC <= VEOL2
35459243Sobrien#    undef VEOL2
35559243Sobrien#   endif /* NUMCC <= VEOL2 */
35659243Sobrien#  endif /* VEOL2 */
35759243Sobrien#  ifdef VSWTCH
35859243Sobrien#   if NUMCC <= VSWTCH
35959243Sobrien#    undef VSWTCH
36059243Sobrien#   endif /* NUMCC <= VSWTCH */
36159243Sobrien#  endif /* VSWTCH */
36259243Sobrien#  ifdef VDSWTCH
36359243Sobrien#   if NUMCC <= VDSWTCH
36459243Sobrien#    undef VDSWTCH
36559243Sobrien#   endif /* NUMCC <= VDSWTCH */
36659243Sobrien#  endif /* VDSWTCH */
36759243Sobrien#  ifdef VERASE2
36859243Sobrien#   if NUMCC <= VERASE2
36959243Sobrien#    undef VERASE2
37059243Sobrien#   endif /* NUMCC <= VERASE2 */
37159243Sobrien#  endif /* VERASE2 */
37259243Sobrien#  ifdef VSTART
37359243Sobrien#   if NUMCC <= VSTART
37459243Sobrien#    undef VSTART
37559243Sobrien#   endif /* NUMCC <= VSTART */
37659243Sobrien#  endif /* VSTART */
37759243Sobrien#  ifdef VSTOP
37859243Sobrien#   if NUMCC <= VSTOP
37959243Sobrien#    undef VSTOP
38059243Sobrien#   endif /* NUMCC <= VSTOP */
38159243Sobrien#  endif /* VSTOP */
38259243Sobrien#  ifdef VWERASE
38359243Sobrien#   if NUMCC <= VWERASE
38459243Sobrien#    undef VWERASE
38559243Sobrien#   endif /* NUMCC <= VWERASE */
38659243Sobrien#  endif /* VWERASE */
38759243Sobrien#  ifdef VSUSP
38859243Sobrien#   if NUMCC <= VSUSP
38959243Sobrien#    undef VSUSP
39059243Sobrien#   endif /* NUMCC <= VSUSP */
39159243Sobrien#  endif /* VSUSP */
39259243Sobrien#  ifdef VDSUSP
39359243Sobrien#   if NUMCC <= VDSUSP
39459243Sobrien#    undef VDSUSP
39559243Sobrien#   endif /* NUMCC <= VDSUSP */
39659243Sobrien#  endif /* VDSUSP */
39759243Sobrien#  ifdef VREPRINT
39859243Sobrien#   if NUMCC <= VREPRINT
39959243Sobrien#    undef VREPRINT
40059243Sobrien#   endif /* NUMCC <= VREPRINT */
40159243Sobrien#  endif /* VREPRINT */
40259243Sobrien#  ifdef VDISCARD
40359243Sobrien#   if NUMCC <= VDISCARD
40459243Sobrien#    undef VDISCARD
40559243Sobrien#   endif /* NUMCC <= VDISCARD */
40659243Sobrien#  endif /* VDISCARD */
40759243Sobrien#  ifdef VLNEXT
40859243Sobrien#   if NUMCC <= VLNEXT
40959243Sobrien#    undef VLNEXT
41059243Sobrien#   endif /* NUMCC <= VLNEXT */
41159243Sobrien#  endif /* VLNEXT */
41259243Sobrien#  ifdef VSTATUS
41359243Sobrien#   if NUMCC <= VSTATUS
41459243Sobrien#    undef VSTATUS
41559243Sobrien#   endif /* NUMCC <= VSTATUS */
41659243Sobrien#  endif /* VSTATUS */
41759243Sobrien#  ifdef VPAGE
41859243Sobrien#   if NUMCC <= VPAGE
41959243Sobrien#    undef VPAGE
42059243Sobrien#   endif /* NUMCC <= VPAGE */
42159243Sobrien#  endif /* VPAGE */
42259243Sobrien#  ifdef VPGOFF
42359243Sobrien#   if NUMCC <= VPGOFF
42459243Sobrien#    undef VPGOFF
42559243Sobrien#   endif /* NUMCC <= VPGOFF */
42659243Sobrien#  endif /* VPGOFF */
42759243Sobrien#  ifdef VKILL2
42859243Sobrien#   if NUMCC <= VKILL2
42959243Sobrien#    undef VKILL2
43059243Sobrien#   endif /* NUMCC <= VKILL2 */
43159243Sobrien#  endif /* VKILL2 */
43259243Sobrien#  ifdef VBRK
43359243Sobrien#   if NUMCC <= VBRK
43459243Sobrien#    undef VBRK
43559243Sobrien#   endif /* NUMCC <= VBRK */
43659243Sobrien#  endif /* VBRK */
43759243Sobrien#  ifdef VMIN
43859243Sobrien#   if NUMCC <= VMIN
43959243Sobrien#    undef VMIN
44059243Sobrien#   endif /* NUMCC <= VMIN */
44159243Sobrien#  endif /* VMIN */
44259243Sobrien#  ifdef VTIME
44359243Sobrien#   if NUMCC <= VTIME
44459243Sobrien#    undef VTIME
44559243Sobrien#   endif /* NUMCC <= VTIME */
44659243Sobrien#  endif /* VTIME */
44759243Sobrien# endif /* NUMCC */
44859243Sobrien#endif /* !POSIX */
44959243Sobrien
45059243Sobrien/*
45159243Sobrien * fix for hpux10 inconsistency: it has VWERASE, but TIOCSLTC returns
45259243Sobrien * EINVAL if one tries to change it
453100616Smp * Also for RH6.2 on the alpha, defined TIOCGLTC, but does not have
454100616Smp * struct ltchars
45559243Sobrien */
456195609Smp#if (defined(hpux) && defined(VSUSP) && defined(VDSUSP) && defined(VWERASE) && defined(VLNEXT)) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__QNXNTO__)
45759243Sobrien# undef TIOCGLTC       /* not really needed */
45859243Sobrien# undef TIOCSLTC
45959243Sobrien#endif
46059243Sobrien
46159243Sobrien#define C_INTR		 0
46259243Sobrien#define C_QUIT		 1
46359243Sobrien#define C_ERASE		 2
46459243Sobrien#define C_KILL		 3
46559243Sobrien#define C_EOF		 4
46659243Sobrien#define C_EOL		 5
46759243Sobrien#define C_EOL2		 6
46859243Sobrien#define C_SWTCH		 7
46959243Sobrien#define C_DSWTCH	 8
47059243Sobrien#define C_ERASE2	 9
47159243Sobrien#define C_START		10
47259243Sobrien#define C_STOP		11
47359243Sobrien#define C_WERASE	12
47459243Sobrien#define C_SUSP		13
47559243Sobrien#define C_DSUSP		14
47659243Sobrien#define C_REPRINT	15
47759243Sobrien#define C_DISCARD	16
47859243Sobrien#define C_LNEXT		17
47959243Sobrien#define C_STATUS	18
48059243Sobrien#define C_PAGE		19
48159243Sobrien#define C_PGOFF		20
48259243Sobrien#define C_KILL2		21
48359243Sobrien#define C_BRK		22
48459243Sobrien#define C_MIN		23
48559243Sobrien#define C_TIME		24
48659243Sobrien#define C_NCC		25
48759243Sobrien#define C_SH(A)		(1 << (A))
48859243Sobrien
489100616Smp/*
490100616Smp * Terminal dependend data structures
491100616Smp */
492100616Smptypedef struct {
493100616Smp#ifdef WINNT_NATIVE
494100616Smp    int dummy;
495100616Smp#else /* !WINNT_NATIVE */
496100616Smp# if defined(POSIX) || defined(TERMIO)
497100616Smp#  ifdef POSIX
498100616Smp    struct termios d_t;
499100616Smp#  else
500100616Smp    struct termio d_t;
501100616Smp#  endif /* POSIX */
502100616Smp# else /* SGTTY */
503100616Smp#  ifdef TIOCGETP
504100616Smp    struct sgttyb d_t;
505100616Smp#  endif /* TIOCGETP */
506100616Smp#  ifdef TIOCGETC
507100616Smp    struct tchars d_tc;
508100616Smp#  endif /* TIOCGETC */
509100616Smp#  ifdef TIOCGPAGE
510100616Smp    struct ttypagestat d_pc;
511100616Smp#  endif /* TIOCGPAGE */
512100616Smp#  ifdef TIOCLGET
513100616Smp    int d_lb;
514100616Smp#  endif /* TIOCLGET */
515100616Smp# endif /* POSIX || TERMIO */
516100616Smp# ifdef TIOCGLTC
517100616Smp    struct ltchars d_ltc;
518100616Smp# endif /* TIOCGLTC */
519100616Smp#endif /* WINNT_NATIVE */
520100616Smp} ttydata_t;
521100616Smp
52259243Sobrien#endif /* _h_ed_term */
523