1*cdf8408cSAntonio Huete Jimenez /* $NetBSD: tty.h,v 1.24 2021/07/31 20:51:32 andvar Exp $ */ 232fe07f8SJohn Marino 332fe07f8SJohn Marino /*- 432fe07f8SJohn Marino * Copyright (c) 1992, 1993 532fe07f8SJohn Marino * The Regents of the University of California. All rights reserved. 632fe07f8SJohn Marino * 732fe07f8SJohn Marino * This code is derived from software contributed to Berkeley by 832fe07f8SJohn Marino * Christos Zoulas of Cornell University. 932fe07f8SJohn Marino * 1032fe07f8SJohn Marino * Redistribution and use in source and binary forms, with or without 1132fe07f8SJohn Marino * modification, are permitted provided that the following conditions 1232fe07f8SJohn Marino * are met: 1332fe07f8SJohn Marino * 1. Redistributions of source code must retain the above copyright 1432fe07f8SJohn Marino * notice, this list of conditions and the following disclaimer. 1532fe07f8SJohn Marino * 2. Redistributions in binary form must reproduce the above copyright 1632fe07f8SJohn Marino * notice, this list of conditions and the following disclaimer in the 1732fe07f8SJohn Marino * documentation and/or other materials provided with the distribution. 1832fe07f8SJohn Marino * 3. Neither the name of the University nor the names of its contributors 1932fe07f8SJohn Marino * may be used to endorse or promote products derived from this software 2032fe07f8SJohn Marino * without specific prior written permission. 2132fe07f8SJohn Marino * 2232fe07f8SJohn Marino * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2332fe07f8SJohn Marino * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2432fe07f8SJohn Marino * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2532fe07f8SJohn Marino * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2632fe07f8SJohn Marino * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2732fe07f8SJohn Marino * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2832fe07f8SJohn Marino * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2932fe07f8SJohn Marino * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3032fe07f8SJohn Marino * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3132fe07f8SJohn Marino * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3232fe07f8SJohn Marino * SUCH DAMAGE. 3332fe07f8SJohn Marino * 3432fe07f8SJohn Marino * @(#)tty.h 8.1 (Berkeley) 6/4/93 3532fe07f8SJohn Marino */ 3632fe07f8SJohn Marino 3732fe07f8SJohn Marino /* 3832fe07f8SJohn Marino * el.tty.h: Local terminal header 3932fe07f8SJohn Marino */ 4032fe07f8SJohn Marino #ifndef _h_el_tty 4132fe07f8SJohn Marino #define _h_el_tty 4232fe07f8SJohn Marino 4332fe07f8SJohn Marino #include <termios.h> 4432fe07f8SJohn Marino #include <unistd.h> 4532fe07f8SJohn Marino 4632fe07f8SJohn Marino /* Define our own since everyone gets it wrong! */ 4732fe07f8SJohn Marino #define CONTROL(A) ((A) & 037) 4832fe07f8SJohn Marino 4932fe07f8SJohn Marino /* 5032fe07f8SJohn Marino * Aix compatible names 5132fe07f8SJohn Marino */ 5232fe07f8SJohn Marino # if defined(VWERSE) && !defined(VWERASE) 5332fe07f8SJohn Marino # define VWERASE VWERSE 5432fe07f8SJohn Marino # endif /* VWERSE && !VWERASE */ 5532fe07f8SJohn Marino 5632fe07f8SJohn Marino # if defined(VDISCRD) && !defined(VDISCARD) 5732fe07f8SJohn Marino # define VDISCARD VDISCRD 5832fe07f8SJohn Marino # endif /* VDISCRD && !VDISCARD */ 5932fe07f8SJohn Marino 6032fe07f8SJohn Marino # if defined(VFLUSHO) && !defined(VDISCARD) 6132fe07f8SJohn Marino # define VDISCARD VFLUSHO 6232fe07f8SJohn Marino # endif /* VFLUSHO && VDISCARD */ 6332fe07f8SJohn Marino 6432fe07f8SJohn Marino # if defined(VSTRT) && !defined(VSTART) 6532fe07f8SJohn Marino # define VSTART VSTRT 6632fe07f8SJohn Marino # endif /* VSTRT && ! VSTART */ 6732fe07f8SJohn Marino 6832fe07f8SJohn Marino # if defined(VSTAT) && !defined(VSTATUS) 6932fe07f8SJohn Marino # define VSTATUS VSTAT 7032fe07f8SJohn Marino # endif /* VSTAT && ! VSTATUS */ 7132fe07f8SJohn Marino 7232fe07f8SJohn Marino # ifndef ONLRET 7332fe07f8SJohn Marino # define ONLRET 0 7432fe07f8SJohn Marino # endif /* ONLRET */ 7532fe07f8SJohn Marino 7632fe07f8SJohn Marino # ifndef TAB3 7732fe07f8SJohn Marino # ifdef OXTABS 7832fe07f8SJohn Marino # define TAB3 OXTABS 7932fe07f8SJohn Marino # else 8032fe07f8SJohn Marino # define TAB3 0 8132fe07f8SJohn Marino # endif /* OXTABS */ 8232fe07f8SJohn Marino # endif /* !TAB3 */ 8332fe07f8SJohn Marino 8432fe07f8SJohn Marino # if defined(OXTABS) && !defined(XTABS) 8532fe07f8SJohn Marino # define XTABS OXTABS 8632fe07f8SJohn Marino # endif /* OXTABS && !XTABS */ 8732fe07f8SJohn Marino 8832fe07f8SJohn Marino # ifndef ONLCR 8932fe07f8SJohn Marino # define ONLCR 0 9032fe07f8SJohn Marino # endif /* ONLCR */ 9132fe07f8SJohn Marino 9232fe07f8SJohn Marino # ifndef IEXTEN 9332fe07f8SJohn Marino # define IEXTEN 0 9432fe07f8SJohn Marino # endif /* IEXTEN */ 9532fe07f8SJohn Marino 9632fe07f8SJohn Marino # ifndef ECHOCTL 9732fe07f8SJohn Marino # define ECHOCTL 0 9832fe07f8SJohn Marino # endif /* ECHOCTL */ 9932fe07f8SJohn Marino 10032fe07f8SJohn Marino # ifndef PARENB 10132fe07f8SJohn Marino # define PARENB 0 10232fe07f8SJohn Marino # endif /* PARENB */ 10332fe07f8SJohn Marino 10432fe07f8SJohn Marino # ifndef EXTPROC 10532fe07f8SJohn Marino # define EXTPROC 0 10632fe07f8SJohn Marino # endif /* EXTPROC */ 10732fe07f8SJohn Marino 10832fe07f8SJohn Marino # ifndef FLUSHO 10932fe07f8SJohn Marino # define FLUSHO 0 11032fe07f8SJohn Marino # endif /* FLUSHO */ 11132fe07f8SJohn Marino 11232fe07f8SJohn Marino 11332fe07f8SJohn Marino # if defined(VDISABLE) && !defined(_POSIX_VDISABLE) 11432fe07f8SJohn Marino # define _POSIX_VDISABLE VDISABLE 11532fe07f8SJohn Marino # endif /* VDISABLE && ! _POSIX_VDISABLE */ 11632fe07f8SJohn Marino 11732fe07f8SJohn Marino /* 11832fe07f8SJohn Marino * Work around ISC's definition of IEXTEN which is 11932fe07f8SJohn Marino * XCASE! 12032fe07f8SJohn Marino */ 12132fe07f8SJohn Marino # ifdef ISC 12232fe07f8SJohn Marino # if defined(IEXTEN) && defined(XCASE) 12332fe07f8SJohn Marino # if IEXTEN == XCASE 12432fe07f8SJohn Marino # undef IEXTEN 12532fe07f8SJohn Marino # define IEXTEN 0 12632fe07f8SJohn Marino # endif /* IEXTEN == XCASE */ 12732fe07f8SJohn Marino # endif /* IEXTEN && XCASE */ 12832fe07f8SJohn Marino # if defined(IEXTEN) && !defined(XCASE) 12932fe07f8SJohn Marino # define XCASE IEXTEN 13032fe07f8SJohn Marino # undef IEXTEN 13132fe07f8SJohn Marino # define IEXTEN 0 13232fe07f8SJohn Marino # endif /* IEXTEN && !XCASE */ 13332fe07f8SJohn Marino # endif /* ISC */ 13432fe07f8SJohn Marino 13532fe07f8SJohn Marino /* 13632fe07f8SJohn Marino * Work around convex weirdness where turning off IEXTEN makes us 13732fe07f8SJohn Marino * lose all postprocessing! 13832fe07f8SJohn Marino */ 13932fe07f8SJohn Marino #if defined(convex) || defined(__convex__) 14032fe07f8SJohn Marino # if defined(IEXTEN) && IEXTEN != 0 14132fe07f8SJohn Marino # undef IEXTEN 14232fe07f8SJohn Marino # define IEXTEN 0 14332fe07f8SJohn Marino # endif /* IEXTEN != 0 */ 14432fe07f8SJohn Marino #endif /* convex || __convex__ */ 14532fe07f8SJohn Marino 14632fe07f8SJohn Marino /* 14732fe07f8SJohn Marino * So that we don't lose job control. 14832fe07f8SJohn Marino */ 14932fe07f8SJohn Marino #ifdef __SVR4 15032fe07f8SJohn Marino # undef CSWTCH 15132fe07f8SJohn Marino #endif 15232fe07f8SJohn Marino 15332fe07f8SJohn Marino #ifndef _POSIX_VDISABLE 15432fe07f8SJohn Marino # define _POSIX_VDISABLE ((unsigned char) -1) 15532fe07f8SJohn Marino #endif /* _POSIX_VDISABLE */ 15632fe07f8SJohn Marino 15732fe07f8SJohn Marino #if !defined(CREPRINT) && defined(CRPRNT) 15832fe07f8SJohn Marino # define CREPRINT CRPRNT 15932fe07f8SJohn Marino #endif /* !CREPRINT && CRPRNT */ 16032fe07f8SJohn Marino #if !defined(CDISCARD) && defined(CFLUSH) 16132fe07f8SJohn Marino # define CDISCARD CFLUSH 16232fe07f8SJohn Marino #endif /* !CDISCARD && CFLUSH */ 16332fe07f8SJohn Marino 16432fe07f8SJohn Marino #ifndef CINTR 16532fe07f8SJohn Marino # define CINTR CONTROL('c') 16632fe07f8SJohn Marino #endif /* CINTR */ 16732fe07f8SJohn Marino #ifndef CQUIT 16832fe07f8SJohn Marino # define CQUIT 034 /* ^\ */ 16932fe07f8SJohn Marino #endif /* CQUIT */ 17032fe07f8SJohn Marino #ifndef CERASE 17132fe07f8SJohn Marino # define CERASE 0177 /* ^? */ 17232fe07f8SJohn Marino #endif /* CERASE */ 17332fe07f8SJohn Marino #ifndef CKILL 17432fe07f8SJohn Marino # define CKILL CONTROL('u') 17532fe07f8SJohn Marino #endif /* CKILL */ 17632fe07f8SJohn Marino #ifndef CEOF 17732fe07f8SJohn Marino # define CEOF CONTROL('d') 17832fe07f8SJohn Marino #endif /* CEOF */ 17932fe07f8SJohn Marino #ifndef CEOL 18032fe07f8SJohn Marino # define CEOL _POSIX_VDISABLE 18132fe07f8SJohn Marino #endif /* CEOL */ 18232fe07f8SJohn Marino #ifndef CEOL2 18332fe07f8SJohn Marino # define CEOL2 _POSIX_VDISABLE 18432fe07f8SJohn Marino #endif /* CEOL2 */ 18532fe07f8SJohn Marino #ifndef CSWTCH 18632fe07f8SJohn Marino # define CSWTCH _POSIX_VDISABLE 18732fe07f8SJohn Marino #endif /* CSWTCH */ 18832fe07f8SJohn Marino #ifndef CDSWTCH 18932fe07f8SJohn Marino # define CDSWTCH _POSIX_VDISABLE 19032fe07f8SJohn Marino #endif /* CDSWTCH */ 19132fe07f8SJohn Marino #ifndef CERASE2 19232fe07f8SJohn Marino # define CERASE2 _POSIX_VDISABLE 19332fe07f8SJohn Marino #endif /* CERASE2 */ 19432fe07f8SJohn Marino #ifndef CSTART 19532fe07f8SJohn Marino # define CSTART CONTROL('q') 19632fe07f8SJohn Marino #endif /* CSTART */ 19732fe07f8SJohn Marino #ifndef CSTOP 19832fe07f8SJohn Marino # define CSTOP CONTROL('s') 19932fe07f8SJohn Marino #endif /* CSTOP */ 20032fe07f8SJohn Marino #ifndef CSUSP 20132fe07f8SJohn Marino # define CSUSP CONTROL('z') 20232fe07f8SJohn Marino #endif /* CSUSP */ 20332fe07f8SJohn Marino #ifndef CDSUSP 20432fe07f8SJohn Marino # define CDSUSP CONTROL('y') 20532fe07f8SJohn Marino #endif /* CDSUSP */ 20632fe07f8SJohn Marino 20732fe07f8SJohn Marino #ifdef hpux 20832fe07f8SJohn Marino 20932fe07f8SJohn Marino # ifndef CREPRINT 21032fe07f8SJohn Marino # define CREPRINT _POSIX_VDISABLE 21132fe07f8SJohn Marino # endif /* CREPRINT */ 21232fe07f8SJohn Marino # ifndef CDISCARD 21332fe07f8SJohn Marino # define CDISCARD _POSIX_VDISABLE 21432fe07f8SJohn Marino # endif /* CDISCARD */ 21532fe07f8SJohn Marino # ifndef CLNEXT 21632fe07f8SJohn Marino # define CLNEXT _POSIX_VDISABLE 21732fe07f8SJohn Marino # endif /* CLNEXT */ 21832fe07f8SJohn Marino # ifndef CWERASE 21932fe07f8SJohn Marino # define CWERASE _POSIX_VDISABLE 22032fe07f8SJohn Marino # endif /* CWERASE */ 22132fe07f8SJohn Marino 22232fe07f8SJohn Marino #else /* !hpux */ 22332fe07f8SJohn Marino 22432fe07f8SJohn Marino # ifndef CREPRINT 22532fe07f8SJohn Marino # define CREPRINT CONTROL('r') 22632fe07f8SJohn Marino # endif /* CREPRINT */ 22732fe07f8SJohn Marino # ifndef CDISCARD 22832fe07f8SJohn Marino # define CDISCARD CONTROL('o') 22932fe07f8SJohn Marino # endif /* CDISCARD */ 23032fe07f8SJohn Marino # ifndef CLNEXT 23132fe07f8SJohn Marino # define CLNEXT CONTROL('v') 23232fe07f8SJohn Marino # endif /* CLNEXT */ 23332fe07f8SJohn Marino # ifndef CWERASE 23432fe07f8SJohn Marino # define CWERASE CONTROL('w') 23532fe07f8SJohn Marino # endif /* CWERASE */ 23632fe07f8SJohn Marino 23732fe07f8SJohn Marino #endif /* hpux */ 23832fe07f8SJohn Marino 23932fe07f8SJohn Marino #ifndef CSTATUS 24032fe07f8SJohn Marino # define CSTATUS CONTROL('t') 24132fe07f8SJohn Marino #endif /* CSTATUS */ 24232fe07f8SJohn Marino #ifndef CPAGE 24332fe07f8SJohn Marino # define CPAGE ' ' 24432fe07f8SJohn Marino #endif /* CPAGE */ 24532fe07f8SJohn Marino #ifndef CPGOFF 24632fe07f8SJohn Marino # define CPGOFF CONTROL('m') 24732fe07f8SJohn Marino #endif /* CPGOFF */ 24832fe07f8SJohn Marino #ifndef CKILL2 24932fe07f8SJohn Marino # define CKILL2 _POSIX_VDISABLE 25032fe07f8SJohn Marino #endif /* CKILL2 */ 25132fe07f8SJohn Marino #ifndef CBRK 25232fe07f8SJohn Marino # ifndef masscomp 25332fe07f8SJohn Marino # define CBRK 0377 25432fe07f8SJohn Marino # else 25532fe07f8SJohn Marino # define CBRK '\0' 25632fe07f8SJohn Marino # endif /* masscomp */ 25732fe07f8SJohn Marino #endif /* CBRK */ 25832fe07f8SJohn Marino #ifndef CMIN 25932fe07f8SJohn Marino # define CMIN CEOF 26032fe07f8SJohn Marino #endif /* CMIN */ 26132fe07f8SJohn Marino #ifndef CTIME 26232fe07f8SJohn Marino # define CTIME CEOL 26332fe07f8SJohn Marino #endif /* CTIME */ 26432fe07f8SJohn Marino 26532fe07f8SJohn Marino /* 26632fe07f8SJohn Marino * Fix for sun inconsistency. On termio VSUSP and the rest of the 26732fe07f8SJohn Marino * ttychars > NCC are defined. So we undefine them. 26832fe07f8SJohn Marino */ 26932fe07f8SJohn Marino #if defined(TERMIO) || defined(POSIX) 27032fe07f8SJohn Marino # if defined(POSIX) && defined(NCCS) 27132fe07f8SJohn Marino # define NUMCC NCCS 27232fe07f8SJohn Marino # else 27332fe07f8SJohn Marino # ifdef NCC 27432fe07f8SJohn Marino # define NUMCC NCC 27532fe07f8SJohn Marino # endif /* NCC */ 27632fe07f8SJohn Marino # endif /* POSIX && NCCS */ 27732fe07f8SJohn Marino # ifdef NUMCC 27832fe07f8SJohn Marino # ifdef VINTR 27932fe07f8SJohn Marino # if NUMCC <= VINTR 28032fe07f8SJohn Marino # undef VINTR 28132fe07f8SJohn Marino # endif /* NUMCC <= VINTR */ 28232fe07f8SJohn Marino # endif /* VINTR */ 28332fe07f8SJohn Marino # ifdef VQUIT 28432fe07f8SJohn Marino # if NUMCC <= VQUIT 28532fe07f8SJohn Marino # undef VQUIT 28632fe07f8SJohn Marino # endif /* NUMCC <= VQUIT */ 28732fe07f8SJohn Marino # endif /* VQUIT */ 28832fe07f8SJohn Marino # ifdef VERASE 28932fe07f8SJohn Marino # if NUMCC <= VERASE 29032fe07f8SJohn Marino # undef VERASE 29132fe07f8SJohn Marino # endif /* NUMCC <= VERASE */ 29232fe07f8SJohn Marino # endif /* VERASE */ 29332fe07f8SJohn Marino # ifdef VKILL 29432fe07f8SJohn Marino # if NUMCC <= VKILL 29532fe07f8SJohn Marino # undef VKILL 29632fe07f8SJohn Marino # endif /* NUMCC <= VKILL */ 29732fe07f8SJohn Marino # endif /* VKILL */ 29832fe07f8SJohn Marino # ifdef VEOF 29932fe07f8SJohn Marino # if NUMCC <= VEOF 30032fe07f8SJohn Marino # undef VEOF 30132fe07f8SJohn Marino # endif /* NUMCC <= VEOF */ 30232fe07f8SJohn Marino # endif /* VEOF */ 30332fe07f8SJohn Marino # ifdef VEOL 30432fe07f8SJohn Marino # if NUMCC <= VEOL 30532fe07f8SJohn Marino # undef VEOL 30632fe07f8SJohn Marino # endif /* NUMCC <= VEOL */ 30732fe07f8SJohn Marino # endif /* VEOL */ 30832fe07f8SJohn Marino # ifdef VEOL2 30932fe07f8SJohn Marino # if NUMCC <= VEOL2 31032fe07f8SJohn Marino # undef VEOL2 31132fe07f8SJohn Marino # endif /* NUMCC <= VEOL2 */ 31232fe07f8SJohn Marino # endif /* VEOL2 */ 31332fe07f8SJohn Marino # ifdef VSWTCH 31432fe07f8SJohn Marino # if NUMCC <= VSWTCH 31532fe07f8SJohn Marino # undef VSWTCH 31632fe07f8SJohn Marino # endif /* NUMCC <= VSWTCH */ 31732fe07f8SJohn Marino # endif /* VSWTCH */ 31832fe07f8SJohn Marino # ifdef VDSWTCH 31932fe07f8SJohn Marino # if NUMCC <= VDSWTCH 32032fe07f8SJohn Marino # undef VDSWTCH 32132fe07f8SJohn Marino # endif /* NUMCC <= VDSWTCH */ 32232fe07f8SJohn Marino # endif /* VDSWTCH */ 32332fe07f8SJohn Marino # ifdef VERASE2 32432fe07f8SJohn Marino # if NUMCC <= VERASE2 32532fe07f8SJohn Marino # undef VERASE2 32632fe07f8SJohn Marino # endif /* NUMCC <= VERASE2 */ 32732fe07f8SJohn Marino # endif /* VERASE2 */ 32832fe07f8SJohn Marino # ifdef VSTART 32932fe07f8SJohn Marino # if NUMCC <= VSTART 33032fe07f8SJohn Marino # undef VSTART 33132fe07f8SJohn Marino # endif /* NUMCC <= VSTART */ 33232fe07f8SJohn Marino # endif /* VSTART */ 33332fe07f8SJohn Marino # ifdef VSTOP 33432fe07f8SJohn Marino # if NUMCC <= VSTOP 33532fe07f8SJohn Marino # undef VSTOP 33632fe07f8SJohn Marino # endif /* NUMCC <= VSTOP */ 33732fe07f8SJohn Marino # endif /* VSTOP */ 33832fe07f8SJohn Marino # ifdef VWERASE 33932fe07f8SJohn Marino # if NUMCC <= VWERASE 34032fe07f8SJohn Marino # undef VWERASE 34132fe07f8SJohn Marino # endif /* NUMCC <= VWERASE */ 34232fe07f8SJohn Marino # endif /* VWERASE */ 34332fe07f8SJohn Marino # ifdef VSUSP 34432fe07f8SJohn Marino # if NUMCC <= VSUSP 34532fe07f8SJohn Marino # undef VSUSP 34632fe07f8SJohn Marino # endif /* NUMCC <= VSUSP */ 34732fe07f8SJohn Marino # endif /* VSUSP */ 34832fe07f8SJohn Marino # ifdef VDSUSP 34932fe07f8SJohn Marino # if NUMCC <= VDSUSP 35032fe07f8SJohn Marino # undef VDSUSP 35132fe07f8SJohn Marino # endif /* NUMCC <= VDSUSP */ 35232fe07f8SJohn Marino # endif /* VDSUSP */ 35332fe07f8SJohn Marino # ifdef VREPRINT 35432fe07f8SJohn Marino # if NUMCC <= VREPRINT 35532fe07f8SJohn Marino # undef VREPRINT 35632fe07f8SJohn Marino # endif /* NUMCC <= VREPRINT */ 35732fe07f8SJohn Marino # endif /* VREPRINT */ 35832fe07f8SJohn Marino # ifdef VDISCARD 35932fe07f8SJohn Marino # if NUMCC <= VDISCARD 36032fe07f8SJohn Marino # undef VDISCARD 36132fe07f8SJohn Marino # endif /* NUMCC <= VDISCARD */ 36232fe07f8SJohn Marino # endif /* VDISCARD */ 36332fe07f8SJohn Marino # ifdef VLNEXT 36432fe07f8SJohn Marino # if NUMCC <= VLNEXT 36532fe07f8SJohn Marino # undef VLNEXT 36632fe07f8SJohn Marino # endif /* NUMCC <= VLNEXT */ 36732fe07f8SJohn Marino # endif /* VLNEXT */ 36832fe07f8SJohn Marino # ifdef VSTATUS 36932fe07f8SJohn Marino # if NUMCC <= VSTATUS 37032fe07f8SJohn Marino # undef VSTATUS 37132fe07f8SJohn Marino # endif /* NUMCC <= VSTATUS */ 37232fe07f8SJohn Marino # endif /* VSTATUS */ 37332fe07f8SJohn Marino # ifdef VPAGE 37432fe07f8SJohn Marino # if NUMCC <= VPAGE 37532fe07f8SJohn Marino # undef VPAGE 37632fe07f8SJohn Marino # endif /* NUMCC <= VPAGE */ 37732fe07f8SJohn Marino # endif /* VPAGE */ 37832fe07f8SJohn Marino # ifdef VPGOFF 37932fe07f8SJohn Marino # if NUMCC <= VPGOFF 38032fe07f8SJohn Marino # undef VPGOFF 38132fe07f8SJohn Marino # endif /* NUMCC <= VPGOFF */ 38232fe07f8SJohn Marino # endif /* VPGOFF */ 38332fe07f8SJohn Marino # ifdef VKILL2 38432fe07f8SJohn Marino # if NUMCC <= VKILL2 38532fe07f8SJohn Marino # undef VKILL2 38632fe07f8SJohn Marino # endif /* NUMCC <= VKILL2 */ 38732fe07f8SJohn Marino # endif /* VKILL2 */ 38832fe07f8SJohn Marino # ifdef VBRK 38932fe07f8SJohn Marino # if NUMCC <= VBRK 39032fe07f8SJohn Marino # undef VBRK 39132fe07f8SJohn Marino # endif /* NUMCC <= VBRK */ 39232fe07f8SJohn Marino # endif /* VBRK */ 39332fe07f8SJohn Marino # ifdef VMIN 39432fe07f8SJohn Marino # if NUMCC <= VMIN 39532fe07f8SJohn Marino # undef VMIN 39632fe07f8SJohn Marino # endif /* NUMCC <= VMIN */ 39732fe07f8SJohn Marino # endif /* VMIN */ 39832fe07f8SJohn Marino # ifdef VTIME 39932fe07f8SJohn Marino # if NUMCC <= VTIME 40032fe07f8SJohn Marino # undef VTIME 40132fe07f8SJohn Marino # endif /* NUMCC <= VTIME */ 40232fe07f8SJohn Marino # endif /* VTIME */ 40332fe07f8SJohn Marino # endif /* NUMCC */ 40432fe07f8SJohn Marino #endif /* !POSIX */ 40532fe07f8SJohn Marino 40632fe07f8SJohn Marino #define C_INTR 0 40732fe07f8SJohn Marino #define C_QUIT 1 40832fe07f8SJohn Marino #define C_ERASE 2 40932fe07f8SJohn Marino #define C_KILL 3 41032fe07f8SJohn Marino #define C_EOF 4 41132fe07f8SJohn Marino #define C_EOL 5 41232fe07f8SJohn Marino #define C_EOL2 6 41332fe07f8SJohn Marino #define C_SWTCH 7 41432fe07f8SJohn Marino #define C_DSWTCH 8 41532fe07f8SJohn Marino #define C_ERASE2 9 41632fe07f8SJohn Marino #define C_START 10 41732fe07f8SJohn Marino #define C_STOP 11 41832fe07f8SJohn Marino #define C_WERASE 12 41932fe07f8SJohn Marino #define C_SUSP 13 42032fe07f8SJohn Marino #define C_DSUSP 14 42132fe07f8SJohn Marino #define C_REPRINT 15 42232fe07f8SJohn Marino #define C_DISCARD 16 42332fe07f8SJohn Marino #define C_LNEXT 17 42432fe07f8SJohn Marino #define C_STATUS 18 42532fe07f8SJohn Marino #define C_PAGE 19 42632fe07f8SJohn Marino #define C_PGOFF 20 42732fe07f8SJohn Marino #define C_KILL2 21 42832fe07f8SJohn Marino #define C_BRK 22 42932fe07f8SJohn Marino #define C_MIN 23 43032fe07f8SJohn Marino #define C_TIME 24 43132fe07f8SJohn Marino #define C_NCC 25 43232fe07f8SJohn Marino #define C_SH(A) ((unsigned int)(1 << (A))) 43332fe07f8SJohn Marino 43432fe07f8SJohn Marino /* 435*cdf8408cSAntonio Huete Jimenez * Terminal dependent data structures 43632fe07f8SJohn Marino */ 43732fe07f8SJohn Marino #define EX_IO 0 /* while we are executing */ 43832fe07f8SJohn Marino #define ED_IO 1 /* while we are editing */ 43932fe07f8SJohn Marino #define TS_IO 2 /* new mode from terminal */ 44032fe07f8SJohn Marino #define QU_IO 2 /* used only for quoted chars */ 44132fe07f8SJohn Marino #define NN_IO 3 /* The number of entries */ 44232fe07f8SJohn Marino 44384b940c1SJohn Marino /* Don't re-order */ 44432fe07f8SJohn Marino #define MD_INP 0 44532fe07f8SJohn Marino #define MD_OUT 1 44632fe07f8SJohn Marino #define MD_CTL 2 44732fe07f8SJohn Marino #define MD_LIN 3 44832fe07f8SJohn Marino #define MD_CHAR 4 44932fe07f8SJohn Marino #define MD_NN 5 45032fe07f8SJohn Marino 45132fe07f8SJohn Marino typedef struct { 45232fe07f8SJohn Marino const char *t_name; 45332fe07f8SJohn Marino unsigned int t_setmask; 45432fe07f8SJohn Marino unsigned int t_clrmask; 45532fe07f8SJohn Marino } ttyperm_t[NN_IO][MD_NN]; 45632fe07f8SJohn Marino 45732fe07f8SJohn Marino typedef unsigned char ttychar_t[NN_IO][C_NCC]; 45832fe07f8SJohn Marino 45912db70c8Szrj libedit_private int tty_init(EditLine *); 460ae19eda8Szrj libedit_private void tty_end(EditLine *, int); 46112db70c8Szrj libedit_private int tty_stty(EditLine *, int, const wchar_t **); 46212db70c8Szrj libedit_private int tty_rawmode(EditLine *); 46312db70c8Szrj libedit_private int tty_cookedmode(EditLine *); 46412db70c8Szrj libedit_private int tty_quotemode(EditLine *); 46512db70c8Szrj libedit_private int tty_noquotemode(EditLine *); 46612db70c8Szrj libedit_private void tty_bind_char(EditLine *, int); 467ae19eda8Szrj libedit_private int tty_get_signal_character(EditLine *, int); 46832fe07f8SJohn Marino 46932fe07f8SJohn Marino typedef struct { 47032fe07f8SJohn Marino ttyperm_t t_t; 47132fe07f8SJohn Marino ttychar_t t_c; 472c8e4d2bfSJohn Marino struct termios t_or, t_ex, t_ed, t_ts; 47332fe07f8SJohn Marino int t_tabs; 47432fe07f8SJohn Marino int t_eight; 47532fe07f8SJohn Marino speed_t t_speed; 47612db70c8Szrj unsigned char t_mode; 47732fe07f8SJohn Marino unsigned char t_vdisable; 47812db70c8Szrj unsigned char t_initialized; 47932fe07f8SJohn Marino } el_tty_t; 48032fe07f8SJohn Marino 48132fe07f8SJohn Marino 48232fe07f8SJohn Marino #endif /* _h_el_tty */ 483