1/* rltty.h - tty driver-related definitions used by some library files. */
2
3/* Copyright (C) 1995-2009 Free Software Foundation, Inc.
4
5   This file is part of the GNU Readline Library (Readline), a library
6   for reading lines of text with interactive input and history editing.
7
8   Readline is free software: you can redistribute it and/or modify
9   it under the terms of the GNU General Public License as published by
10   the Free Software Foundation, either version 3 of the License, or
11   (at your option) any later version.
12
13   Readline is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18   You should have received a copy of the GNU General Public License
19   along with Readline.  If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#if !defined (_RLTTY_H_)
23#define _RLTTY_H_
24
25/* Posix systems use termios and the Posix signal functions. */
26#if defined (TERMIOS_TTY_DRIVER)
27#  include <termios.h>
28#endif /* TERMIOS_TTY_DRIVER */
29
30/* System V machines use termio. */
31#if defined (TERMIO_TTY_DRIVER)
32#  include <termio.h>
33#  if !defined (TCOON)
34#    define TCOON 1
35#  endif
36#endif /* TERMIO_TTY_DRIVER */
37
38/* Other (BSD) machines use sgtty. */
39#if defined (NEW_TTY_DRIVER)
40#  include <sgtty.h>
41#endif
42
43#include "rlwinsize.h"
44
45/* Define _POSIX_VDISABLE if we are not using the `new' tty driver and
46   it is not already defined.  It is used both to determine if a
47   special character is disabled and to disable certain special
48   characters.  Posix systems should set to 0, USG systems to -1. */
49#if !defined (NEW_TTY_DRIVER) && !defined (_POSIX_VDISABLE)
50#  if defined (_SVR4_VDISABLE)
51#    define _POSIX_VDISABLE _SVR4_VDISABLE
52#  else
53#    if defined (_POSIX_VERSION)
54#      define _POSIX_VDISABLE 0
55#    else /* !_POSIX_VERSION */
56#      define _POSIX_VDISABLE -1
57#    endif /* !_POSIX_VERSION */
58#  endif /* !_SVR4_DISABLE */
59#endif /* !NEW_TTY_DRIVER && !_POSIX_VDISABLE */
60
61typedef struct _rl_tty_chars {
62  unsigned char t_eof;
63  unsigned char t_eol;
64  unsigned char t_eol2;
65  unsigned char t_erase;
66  unsigned char t_werase;
67  unsigned char t_kill;
68  unsigned char t_reprint;
69  unsigned char t_intr;
70  unsigned char t_quit;
71  unsigned char t_susp;
72  unsigned char t_dsusp;
73  unsigned char t_start;
74  unsigned char t_stop;
75  unsigned char t_lnext;
76  unsigned char t_flush;
77  unsigned char t_status;
78} _RL_TTY_CHARS;
79
80#endif /* _RLTTY_H_ */
81