Home | History | Annotate | Line # | Download | only in libedit
tty.h revision 1.6.2.1
      1  1.6.2.1  wrstuden /*	$NetBSD: tty.h,v 1.6.2.1 1999/12/27 18:29:58 wrstuden Exp $	*/
      2      1.2     lukem 
      3      1.1       cgd /*-
      4      1.1       cgd  * Copyright (c) 1992, 1993
      5      1.1       cgd  *	The Regents of the University of California.  All rights reserved.
      6      1.1       cgd  *
      7      1.1       cgd  * This code is derived from software contributed to Berkeley by
      8      1.1       cgd  * Christos Zoulas of Cornell University.
      9      1.1       cgd  *
     10      1.1       cgd  * Redistribution and use in source and binary forms, with or without
     11      1.1       cgd  * modification, are permitted provided that the following conditions
     12      1.1       cgd  * are met:
     13      1.1       cgd  * 1. Redistributions of source code must retain the above copyright
     14      1.1       cgd  *    notice, this list of conditions and the following disclaimer.
     15      1.1       cgd  * 2. Redistributions in binary form must reproduce the above copyright
     16      1.1       cgd  *    notice, this list of conditions and the following disclaimer in the
     17      1.1       cgd  *    documentation and/or other materials provided with the distribution.
     18      1.1       cgd  * 3. All advertising materials mentioning features or use of this software
     19      1.1       cgd  *    must display the following acknowledgement:
     20      1.1       cgd  *	This product includes software developed by the University of
     21      1.1       cgd  *	California, Berkeley and its contributors.
     22      1.1       cgd  * 4. Neither the name of the University nor the names of its contributors
     23      1.1       cgd  *    may be used to endorse or promote products derived from this software
     24      1.1       cgd  *    without specific prior written permission.
     25      1.1       cgd  *
     26      1.1       cgd  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     27      1.1       cgd  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     28      1.1       cgd  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     29      1.1       cgd  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     30      1.1       cgd  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     31      1.1       cgd  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     32      1.1       cgd  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     33      1.1       cgd  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     34      1.1       cgd  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     35      1.1       cgd  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     36      1.1       cgd  * SUCH DAMAGE.
     37      1.1       cgd  *
     38      1.1       cgd  *	@(#)tty.h	8.1 (Berkeley) 6/4/93
     39      1.1       cgd  */
     40      1.1       cgd 
     41      1.1       cgd /*
     42      1.1       cgd  * el.tty.h: Local terminal header
     43      1.1       cgd  */
     44      1.1       cgd #ifndef _h_el_tty
     45      1.1       cgd #define _h_el_tty
     46      1.1       cgd 
     47      1.1       cgd #include "histedit.h"
     48      1.1       cgd #include <termios.h>
     49  1.6.2.1  wrstuden #include <unistd.h>
     50      1.1       cgd 
     51      1.1       cgd /* Define our own since everyone gets it wrong! */
     52      1.6    simonb #define CONTROL(A)	((A) & 037)
     53      1.1       cgd 
     54      1.1       cgd /*
     55      1.1       cgd  * Aix compatible names
     56      1.1       cgd  */
     57      1.1       cgd # if defined(VWERSE) && !defined(VWERASE)
     58      1.1       cgd #  define VWERASE VWERSE
     59      1.1       cgd # endif /* VWERSE && !VWERASE */
     60      1.1       cgd 
     61      1.1       cgd # if defined(VDISCRD) && !defined(VDISCARD)
     62      1.1       cgd #  define VDISCARD VDISCRD
     63      1.1       cgd # endif /* VDISCRD && !VDISCARD */
     64      1.1       cgd 
     65      1.1       cgd # if defined(VFLUSHO) && !defined(VDISCARD)
     66      1.1       cgd #  define VDISCARD VFLUSHO
     67      1.1       cgd # endif  /* VFLUSHO && VDISCARD */
     68      1.1       cgd 
     69      1.1       cgd # if defined(VSTRT) && !defined(VSTART)
     70      1.1       cgd #  define VSTART VSTRT
     71      1.1       cgd # endif /* VSTRT && ! VSTART */
     72      1.1       cgd 
     73      1.1       cgd # if defined(VSTAT) && !defined(VSTATUS)
     74      1.1       cgd #  define VSTATUS VSTAT
     75      1.1       cgd # endif /* VSTAT && ! VSTATUS */
     76      1.1       cgd 
     77      1.1       cgd # ifndef ONLRET
     78      1.1       cgd #  define ONLRET 0
     79      1.1       cgd # endif /* ONLRET */
     80      1.1       cgd 
     81      1.1       cgd # ifndef TAB3
     82      1.1       cgd #  ifdef OXTABS
     83      1.1       cgd #   define TAB3 OXTABS
     84      1.1       cgd #  else
     85      1.1       cgd #   define TAB3 0
     86      1.1       cgd #  endif /* OXTABS */
     87      1.1       cgd # endif /* !TAB3 */
     88      1.1       cgd 
     89      1.1       cgd # if defined(OXTABS) && !defined(XTABS)
     90      1.1       cgd #  define XTABS OXTABS
     91      1.1       cgd # endif /* OXTABS && !XTABS */
     92      1.1       cgd 
     93      1.1       cgd # ifndef ONLCR
     94      1.1       cgd #  define ONLCR 0
     95      1.1       cgd # endif /* ONLCR */
     96      1.1       cgd 
     97      1.1       cgd # ifndef IEXTEN
     98      1.1       cgd #  define IEXTEN 0
     99      1.1       cgd # endif /* IEXTEN */
    100      1.1       cgd 
    101      1.1       cgd # ifndef ECHOCTL
    102      1.1       cgd #  define ECHOCTL 0
    103      1.1       cgd # endif /* ECHOCTL */
    104      1.1       cgd 
    105      1.1       cgd # ifndef PARENB
    106      1.1       cgd #  define PARENB 0
    107      1.1       cgd # endif /* PARENB */
    108      1.1       cgd 
    109      1.1       cgd # ifndef EXTPROC
    110      1.1       cgd #  define EXTPROC 0
    111      1.1       cgd # endif /* EXTPROC */
    112      1.1       cgd 
    113      1.1       cgd # ifndef FLUSHO
    114      1.1       cgd #  define FLUSHO  0
    115      1.1       cgd # endif /* FLUSHO */
    116      1.1       cgd 
    117      1.1       cgd 
    118      1.1       cgd # if defined(VDISABLE) && !defined(_POSIX_VDISABLE)
    119      1.1       cgd #  define _POSIX_VDISABLE VDISABLE
    120      1.1       cgd # endif /* VDISABLE && ! _POSIX_VDISABLE */
    121      1.1       cgd 
    122      1.1       cgd /*
    123      1.1       cgd  * Work around ISC's definition of IEXTEN which is
    124      1.1       cgd  * XCASE!
    125      1.1       cgd  */
    126      1.1       cgd # ifdef ISC
    127      1.1       cgd #  if defined(IEXTEN) && defined(XCASE)
    128      1.1       cgd #   if IEXTEN == XCASE
    129      1.1       cgd #    undef IEXTEN
    130      1.1       cgd #    define IEXTEN 0
    131      1.1       cgd #   endif /* IEXTEN == XCASE */
    132      1.1       cgd #  endif /* IEXTEN && XCASE */
    133      1.1       cgd #  if defined(IEXTEN) && !defined(XCASE)
    134      1.1       cgd #   define XCASE IEXTEN
    135      1.1       cgd #   undef IEXTEN
    136      1.1       cgd #   define IEXTEN 0
    137      1.1       cgd #  endif /* IEXTEN && !XCASE */
    138      1.1       cgd # endif /* ISC */
    139      1.1       cgd 
    140      1.1       cgd /*
    141      1.1       cgd  * Work around convex weirdness where turning off IEXTEN makes us
    142      1.1       cgd  * lose all postprocessing!
    143      1.1       cgd  */
    144      1.1       cgd #if defined(convex) || defined(__convex__)
    145      1.1       cgd # if defined(IEXTEN) && IEXTEN != 0
    146      1.1       cgd #  undef IEXTEN
    147      1.1       cgd #  define IEXTEN 0
    148      1.1       cgd # endif /* IEXTEN != 0 */
    149      1.1       cgd #endif /* convex || __convex__ */
    150      1.1       cgd 
    151      1.4  christos /*
    152      1.4  christos  * So that we don't lose job control.
    153      1.4  christos  */
    154      1.4  christos #ifdef __SVR4
    155      1.4  christos # undef CSWTCH
    156      1.4  christos #endif
    157      1.1       cgd 
    158      1.1       cgd #ifndef _POSIX_VDISABLE
    159      1.1       cgd # define _POSIX_VDISABLE ((unsigned char) -1)
    160      1.1       cgd #endif /* _POSIX_VDISABLE */
    161      1.1       cgd 
    162      1.1       cgd #if !defined(CREPRINT) && defined(CRPRNT)
    163      1.1       cgd # define CREPRINT CRPRNT
    164      1.1       cgd #endif /* !CREPRINT && CRPRNT */
    165      1.1       cgd #if !defined(CDISCARD) && defined(CFLUSH)
    166      1.1       cgd # define CDISCARD CFLUSH
    167      1.1       cgd #endif /* !CDISCARD && CFLUSH */
    168      1.1       cgd 
    169      1.1       cgd #ifndef CINTR
    170      1.1       cgd # define CINTR		CONTROL('c')
    171      1.1       cgd #endif /* CINTR */
    172      1.1       cgd #ifndef CQUIT
    173      1.1       cgd # define CQUIT		034	/* ^\ */
    174      1.1       cgd #endif /* CQUIT */
    175      1.1       cgd #ifndef CERASE
    176      1.1       cgd # define CERASE		0177	/* ^? */
    177      1.1       cgd #endif /* CERASE */
    178      1.1       cgd #ifndef CKILL
    179      1.1       cgd # define CKILL		CONTROL('u')
    180      1.1       cgd #endif /* CKILL */
    181      1.1       cgd #ifndef CEOF
    182      1.1       cgd # define CEOF		CONTROL('d')
    183      1.1       cgd #endif /* CEOF */
    184      1.1       cgd #ifndef CEOL
    185      1.1       cgd # define CEOL		_POSIX_VDISABLE
    186      1.1       cgd #endif /* CEOL */
    187      1.1       cgd #ifndef CEOL2
    188      1.1       cgd # define CEOL2		_POSIX_VDISABLE
    189      1.1       cgd #endif /* CEOL2 */
    190      1.1       cgd #ifndef CSWTCH
    191      1.1       cgd # define CSWTCH		_POSIX_VDISABLE
    192      1.1       cgd #endif /* CSWTCH */
    193      1.1       cgd #ifndef CDSWTCH
    194      1.1       cgd # define CDSWTCH	_POSIX_VDISABLE
    195      1.1       cgd #endif /* CDSWTCH */
    196      1.1       cgd #ifndef CERASE2
    197      1.1       cgd # define CERASE2	_POSIX_VDISABLE
    198      1.1       cgd #endif /* CERASE2 */
    199      1.1       cgd #ifndef CSTART
    200      1.1       cgd # define CSTART		CONTROL('q')
    201      1.1       cgd #endif /* CSTART */
    202      1.1       cgd #ifndef CSTOP
    203      1.1       cgd # define CSTOP		CONTROL('s')
    204      1.1       cgd #endif /* CSTOP */
    205      1.1       cgd #ifndef CSUSP
    206      1.1       cgd # define CSUSP		CONTROL('z')
    207      1.1       cgd #endif /* CSUSP */
    208      1.1       cgd #ifndef CDSUSP
    209      1.1       cgd # define CDSUSP		CONTROL('y')
    210      1.1       cgd #endif /* CDSUSP */
    211      1.1       cgd 
    212      1.1       cgd #ifdef hpux
    213      1.1       cgd 
    214      1.1       cgd # ifndef CREPRINT
    215      1.1       cgd #  define CREPRINT	_POSIX_VDISABLE
    216      1.1       cgd # endif /* CREPRINT */
    217      1.1       cgd # ifndef CDISCARD
    218      1.1       cgd #  define CDISCARD	_POSIX_VDISABLE
    219      1.1       cgd # endif /* CDISCARD */
    220      1.1       cgd # ifndef CLNEXT
    221      1.1       cgd #  define CLNEXT	_POSIX_VDISABLE
    222      1.1       cgd # endif /* CLNEXT */
    223      1.1       cgd # ifndef CWERASE
    224      1.1       cgd #  define CWERASE	_POSIX_VDISABLE
    225      1.1       cgd # endif /* CWERASE */
    226      1.1       cgd 
    227      1.1       cgd #else /* !hpux */
    228      1.1       cgd 
    229      1.1       cgd # ifndef CREPRINT
    230      1.1       cgd #  define CREPRINT	CONTROL('r')
    231      1.1       cgd # endif /* CREPRINT */
    232      1.1       cgd # ifndef CDISCARD
    233      1.1       cgd #  define CDISCARD	CONTROL('o')
    234      1.1       cgd # endif /* CDISCARD */
    235      1.1       cgd # ifndef CLNEXT
    236      1.1       cgd #  define CLNEXT	CONTROL('v')
    237      1.1       cgd # endif /* CLNEXT */
    238      1.1       cgd # ifndef CWERASE
    239      1.1       cgd #  define CWERASE	CONTROL('w')
    240      1.1       cgd # endif /* CWERASE */
    241      1.1       cgd 
    242      1.1       cgd #endif /* hpux */
    243      1.1       cgd 
    244      1.1       cgd #ifndef CSTATUS
    245      1.1       cgd # define CSTATUS	CONTROL('t')
    246      1.1       cgd #endif /* CSTATUS */
    247      1.1       cgd #ifndef CPAGE
    248      1.1       cgd # define CPAGE		' '
    249      1.1       cgd #endif /* CPAGE */
    250      1.1       cgd #ifndef CPGOFF
    251      1.1       cgd # define CPGOFF		CONTROL('m')
    252      1.1       cgd #endif /* CPGOFF */
    253      1.1       cgd #ifndef CKILL2
    254      1.1       cgd # define CKILL2		_POSIX_VDISABLE
    255      1.1       cgd #endif /* CKILL2 */
    256      1.1       cgd #ifndef CBRK
    257      1.1       cgd # ifndef masscomp
    258      1.1       cgd #  define CBRK		0377
    259      1.1       cgd # else
    260      1.1       cgd #  define CBRK		'\0'
    261      1.1       cgd # endif /* masscomp */
    262      1.1       cgd #endif /* CBRK */
    263      1.1       cgd #ifndef CMIN
    264      1.1       cgd # define CMIN		CEOF
    265      1.1       cgd #endif /* CMIN */
    266      1.1       cgd #ifndef CTIME
    267      1.1       cgd # define CTIME		CEOL
    268      1.1       cgd #endif /* CTIME */
    269      1.1       cgd 
    270      1.1       cgd /*
    271      1.1       cgd  * Fix for sun inconsistency. On termio VSUSP and the rest of the
    272      1.1       cgd  * ttychars > NCC are defined. So we undefine them.
    273      1.1       cgd  */
    274      1.1       cgd #if defined(TERMIO) || defined(POSIX)
    275      1.1       cgd # if defined(POSIX) && defined(NCCS)
    276      1.1       cgd #  define NUMCC		NCCS
    277      1.1       cgd # else
    278      1.1       cgd #  ifdef NCC
    279      1.1       cgd #   define NUMCC	NCC
    280      1.1       cgd #  endif /* NCC */
    281      1.1       cgd # endif /* POSIX && NCCS */
    282      1.1       cgd # ifdef NUMCC
    283      1.1       cgd #  ifdef VINTR
    284      1.1       cgd #   if NUMCC <= VINTR
    285      1.1       cgd #    undef VINTR
    286      1.1       cgd #   endif /* NUMCC <= VINTR */
    287      1.1       cgd #  endif /* VINTR */
    288      1.1       cgd #  ifdef VQUIT
    289      1.1       cgd #   if NUMCC <= VQUIT
    290      1.1       cgd #    undef VQUIT
    291      1.1       cgd #   endif /* NUMCC <= VQUIT */
    292      1.1       cgd #  endif /* VQUIT */
    293      1.1       cgd #  ifdef VERASE
    294      1.1       cgd #   if NUMCC <= VERASE
    295      1.1       cgd #    undef VERASE
    296      1.1       cgd #   endif /* NUMCC <= VERASE */
    297      1.1       cgd #  endif /* VERASE */
    298      1.1       cgd #  ifdef VKILL
    299      1.1       cgd #   if NUMCC <= VKILL
    300      1.1       cgd #    undef VKILL
    301      1.1       cgd #   endif /* NUMCC <= VKILL */
    302      1.1       cgd #  endif /* VKILL */
    303      1.1       cgd #  ifdef VEOF
    304      1.1       cgd #   if NUMCC <= VEOF
    305      1.1       cgd #    undef VEOF
    306      1.1       cgd #   endif /* NUMCC <= VEOF */
    307      1.1       cgd #  endif /* VEOF */
    308      1.1       cgd #  ifdef VEOL
    309      1.1       cgd #   if NUMCC <= VEOL
    310      1.1       cgd #    undef VEOL
    311      1.1       cgd #   endif /* NUMCC <= VEOL */
    312      1.1       cgd #  endif /* VEOL */
    313      1.1       cgd #  ifdef VEOL2
    314      1.1       cgd #   if NUMCC <= VEOL2
    315      1.1       cgd #    undef VEOL2
    316      1.1       cgd #   endif /* NUMCC <= VEOL2 */
    317      1.1       cgd #  endif /* VEOL2 */
    318      1.1       cgd #  ifdef VSWTCH
    319      1.1       cgd #   if NUMCC <= VSWTCH
    320      1.1       cgd #    undef VSWTCH
    321      1.1       cgd #   endif /* NUMCC <= VSWTCH */
    322      1.1       cgd #  endif /* VSWTCH */
    323      1.1       cgd #  ifdef VDSWTCH
    324      1.1       cgd #   if NUMCC <= VDSWTCH
    325      1.1       cgd #    undef VDSWTCH
    326      1.1       cgd #   endif /* NUMCC <= VDSWTCH */
    327      1.1       cgd #  endif /* VDSWTCH */
    328      1.1       cgd #  ifdef VERASE2
    329      1.1       cgd #   if NUMCC <= VERASE2
    330      1.1       cgd #    undef VERASE2
    331      1.1       cgd #   endif /* NUMCC <= VERASE2 */
    332      1.1       cgd #  endif /* VERASE2 */
    333      1.1       cgd #  ifdef VSTART
    334      1.1       cgd #   if NUMCC <= VSTART
    335      1.1       cgd #    undef VSTART
    336      1.1       cgd #   endif /* NUMCC <= VSTART */
    337      1.1       cgd #  endif /* VSTART */
    338      1.1       cgd #  ifdef VSTOP
    339      1.1       cgd #   if NUMCC <= VSTOP
    340      1.1       cgd #    undef VSTOP
    341      1.1       cgd #   endif /* NUMCC <= VSTOP */
    342      1.1       cgd #  endif /* VSTOP */
    343      1.1       cgd #  ifdef VWERASE
    344      1.1       cgd #   if NUMCC <= VWERASE
    345      1.1       cgd #    undef VWERASE
    346      1.1       cgd #   endif /* NUMCC <= VWERASE */
    347      1.1       cgd #  endif /* VWERASE */
    348      1.1       cgd #  ifdef VSUSP
    349      1.1       cgd #   if NUMCC <= VSUSP
    350      1.1       cgd #    undef VSUSP
    351      1.1       cgd #   endif /* NUMCC <= VSUSP */
    352      1.1       cgd #  endif /* VSUSP */
    353      1.1       cgd #  ifdef VDSUSP
    354      1.1       cgd #   if NUMCC <= VDSUSP
    355      1.1       cgd #    undef VDSUSP
    356      1.1       cgd #   endif /* NUMCC <= VDSUSP */
    357      1.1       cgd #  endif /* VDSUSP */
    358      1.1       cgd #  ifdef VREPRINT
    359      1.1       cgd #   if NUMCC <= VREPRINT
    360      1.1       cgd #    undef VREPRINT
    361      1.1       cgd #   endif /* NUMCC <= VREPRINT */
    362      1.1       cgd #  endif /* VREPRINT */
    363      1.1       cgd #  ifdef VDISCARD
    364      1.1       cgd #   if NUMCC <= VDISCARD
    365      1.1       cgd #    undef VDISCARD
    366      1.1       cgd #   endif /* NUMCC <= VDISCARD */
    367      1.1       cgd #  endif /* VDISCARD */
    368      1.1       cgd #  ifdef VLNEXT
    369      1.1       cgd #   if NUMCC <= VLNEXT
    370      1.1       cgd #    undef VLNEXT
    371      1.1       cgd #   endif /* NUMCC <= VLNEXT */
    372      1.1       cgd #  endif /* VLNEXT */
    373      1.1       cgd #  ifdef VSTATUS
    374      1.1       cgd #   if NUMCC <= VSTATUS
    375      1.1       cgd #    undef VSTATUS
    376      1.1       cgd #   endif /* NUMCC <= VSTATUS */
    377      1.1       cgd #  endif /* VSTATUS */
    378      1.1       cgd #  ifdef VPAGE
    379      1.1       cgd #   if NUMCC <= VPAGE
    380      1.1       cgd #    undef VPAGE
    381      1.1       cgd #   endif /* NUMCC <= VPAGE */
    382      1.1       cgd #  endif /* VPAGE */
    383      1.1       cgd #  ifdef VPGOFF
    384      1.1       cgd #   if NUMCC <= VPGOFF
    385      1.1       cgd #    undef VPGOFF
    386      1.1       cgd #   endif /* NUMCC <= VPGOFF */
    387      1.1       cgd #  endif /* VPGOFF */
    388      1.1       cgd #  ifdef VKILL2
    389      1.1       cgd #   if NUMCC <= VKILL2
    390      1.1       cgd #    undef VKILL2
    391      1.1       cgd #   endif /* NUMCC <= VKILL2 */
    392      1.1       cgd #  endif /* VKILL2 */
    393      1.1       cgd #  ifdef VBRK
    394      1.1       cgd #   if NUMCC <= VBRK
    395      1.1       cgd #    undef VBRK
    396      1.1       cgd #   endif /* NUMCC <= VBRK */
    397      1.1       cgd #  endif /* VBRK */
    398      1.1       cgd #  ifdef VMIN
    399      1.1       cgd #   if NUMCC <= VMIN
    400      1.1       cgd #    undef VMIN
    401      1.1       cgd #   endif /* NUMCC <= VMIN */
    402      1.1       cgd #  endif /* VMIN */
    403      1.1       cgd #  ifdef VTIME
    404      1.1       cgd #   if NUMCC <= VTIME
    405      1.1       cgd #    undef VTIME
    406      1.1       cgd #   endif /* NUMCC <= VTIME */
    407      1.1       cgd #  endif /* VTIME */
    408      1.1       cgd # endif /* NUMCC */
    409      1.1       cgd #endif /* !POSIX */
    410      1.1       cgd 
    411      1.1       cgd #define C_INTR		 0
    412      1.1       cgd #define C_QUIT		 1
    413      1.1       cgd #define C_ERASE		 2
    414      1.1       cgd #define C_KILL		 3
    415      1.1       cgd #define C_EOF		 4
    416      1.1       cgd #define C_EOL		 5
    417      1.1       cgd #define C_EOL2		 6
    418      1.1       cgd #define C_SWTCH		 7
    419      1.1       cgd #define C_DSWTCH	 8
    420      1.1       cgd #define C_ERASE2	 9
    421      1.1       cgd #define C_START		10
    422      1.1       cgd #define C_STOP		11
    423      1.1       cgd #define C_WERASE	12
    424      1.1       cgd #define C_SUSP		13
    425      1.1       cgd #define C_DSUSP		14
    426      1.1       cgd #define C_REPRINT	15
    427      1.1       cgd #define C_DISCARD	16
    428      1.1       cgd #define C_LNEXT		17
    429      1.1       cgd #define C_STATUS	18
    430      1.1       cgd #define C_PAGE		19
    431      1.1       cgd #define C_PGOFF		20
    432      1.1       cgd #define C_KILL2		21
    433      1.1       cgd #define C_BRK		22
    434      1.1       cgd #define C_MIN		23
    435      1.1       cgd #define C_TIME		24
    436      1.1       cgd #define C_NCC		25
    437      1.1       cgd #define C_SH(A)		(1 << (A))
    438      1.1       cgd 
    439      1.1       cgd /*
    440      1.1       cgd  * Terminal dependend data structures
    441      1.1       cgd  */
    442      1.1       cgd #define EX_IO	0	/* while we are executing	*/
    443      1.1       cgd #define ED_IO	1	/* while we are editing		*/
    444      1.1       cgd #define TS_IO	2	/* new mode from terminal	*/
    445      1.1       cgd #define QU_IO	2	/* used only for quoted chars	*/
    446      1.1       cgd #define NN_IO	3	/* The number of entries	*/
    447      1.1       cgd 
    448      1.5  christos #define MD_INP	0
    449      1.5  christos #define MD_OUT	1
    450      1.5  christos #define MD_CTL	2
    451      1.5  christos #define MD_LIN	3
    452      1.5  christos #define MD_CHAR	4
    453      1.5  christos #define MD_NN	5
    454      1.1       cgd 
    455      1.6    simonb typedef struct {
    456      1.1       cgd     char *t_name;
    457      1.3  christos     u_int t_setmask;
    458      1.3  christos     u_int t_clrmask;
    459      1.5  christos } ttyperm_t[NN_IO][MD_NN];
    460      1.1       cgd 
    461      1.1       cgd typedef unsigned char ttychar_t[NN_IO][C_NCC];
    462      1.1       cgd 
    463      1.1       cgd protected int	tty_init	__P((EditLine *));
    464      1.1       cgd protected void	tty_end		__P((EditLine *));
    465      1.1       cgd protected int	tty_stty	__P((EditLine *, int, char**));
    466      1.1       cgd protected int	tty_rawmode	__P((EditLine *));
    467      1.1       cgd protected int	tty_cookedmode	__P((EditLine *));
    468      1.1       cgd protected int	tty_quotemode	__P((EditLine *));
    469      1.1       cgd protected int	tty_noquotemode	__P((EditLine *));
    470      1.1       cgd protected void	tty_bind_char	__P((EditLine *, int));
    471      1.1       cgd 
    472      1.1       cgd typedef struct {
    473      1.1       cgd     ttyperm_t t_t;
    474      1.1       cgd     ttychar_t t_c;
    475      1.1       cgd     struct termios t_ex, t_ed, t_ts;
    476      1.1       cgd     int t_tabs;
    477      1.1       cgd     int t_eight;
    478      1.1       cgd     speed_t t_speed;
    479      1.1       cgd     int t_mode;
    480      1.1       cgd     unsigned char t_vdisable;
    481      1.1       cgd } el_tty_t;
    482      1.1       cgd 
    483      1.1       cgd 
    484      1.1       cgd #endif /* _h_el_tty */
    485