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