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