121308Sache/* rltty.h - tty driver-related definitions used by some library files. */
221308Sache
321308Sache/* Copyright (C) 1995 Free Software Foundation, Inc.
421308Sache
521308Sache   This file contains the Readline Library (the Library), a set of
621308Sache   routines for providing Emacs style line input to programs that ask
721308Sache   for it.
821308Sache
921308Sache   The Library is free software; you can redistribute it and/or modify
1021308Sache   it under the terms of the GNU General Public License as published by
1158310Sache   the Free Software Foundation; either version 2, or (at your option)
1221308Sache   any later version.
1321308Sache
1421308Sache   The Library is distributed in the hope that it will be useful, but
1521308Sache   WITHOUT ANY WARRANTY; without even the implied warranty of
1621308Sache   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1721308Sache   General Public License for more details.
1821308Sache
1921308Sache   The GNU General Public License is often shipped with GNU software, and
2021308Sache   is generally kept in a file called COPYING or LICENSE.  If you do not
2121308Sache   have a copy of the license, write to the Free Software Foundation,
2258310Sache   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
2321308Sache
2421308Sache#if !defined (_RLTTY_H_)
2558310Sache#define _RLTTY_H_
2621308Sache
2721308Sache/* Posix systems use termios and the Posix signal functions. */
2821308Sache#if defined (TERMIOS_TTY_DRIVER)
2921308Sache#  include <termios.h>
3021308Sache#endif /* TERMIOS_TTY_DRIVER */
3121308Sache
3221308Sache/* System V machines use termio. */
3321308Sache#if defined (TERMIO_TTY_DRIVER)
3421308Sache#  include <termio.h>
3521308Sache#  if !defined (TCOON)
3621308Sache#    define TCOON 1
3721308Sache#  endif
3821308Sache#endif /* TERMIO_TTY_DRIVER */
3921308Sache
4021308Sache/* Other (BSD) machines use sgtty. */
4121308Sache#if defined (NEW_TTY_DRIVER)
4221308Sache#  include <sgtty.h>
4321308Sache#endif
4421308Sache
4535486Sache#include "rlwinsize.h"
4626497Sache
4721308Sache/* Define _POSIX_VDISABLE if we are not using the `new' tty driver and
4821308Sache   it is not already defined.  It is used both to determine if a
4921308Sache   special character is disabled and to disable certain special
5021308Sache   characters.  Posix systems should set to 0, USG systems to -1. */
5121308Sache#if !defined (NEW_TTY_DRIVER) && !defined (_POSIX_VDISABLE)
5221308Sache#  if defined (_SVR4_VDISABLE)
5321308Sache#    define _POSIX_VDISABLE _SVR4_VDISABLE
5421308Sache#  else
5521308Sache#    if defined (_POSIX_VERSION)
5621308Sache#      define _POSIX_VDISABLE 0
5721308Sache#    else /* !_POSIX_VERSION */
5821308Sache#      define _POSIX_VDISABLE -1
5921308Sache#    endif /* !_POSIX_VERSION */
6021308Sache#  endif /* !_SVR4_DISABLE */
6121308Sache#endif /* !NEW_TTY_DRIVER && !_POSIX_VDISABLE */
6221308Sache
6358310Sachetypedef struct _rl_tty_chars {
64136644Sache  unsigned char t_eof;
65136644Sache  unsigned char t_eol;
66136644Sache  unsigned char t_eol2;
67136644Sache  unsigned char t_erase;
68136644Sache  unsigned char t_werase;
69136644Sache  unsigned char t_kill;
70136644Sache  unsigned char t_reprint;
71136644Sache  unsigned char t_intr;
72136644Sache  unsigned char t_quit;
73136644Sache  unsigned char t_susp;
74136644Sache  unsigned char t_dsusp;
75136644Sache  unsigned char t_start;
76136644Sache  unsigned char t_stop;
77136644Sache  unsigned char t_lnext;
78136644Sache  unsigned char t_flush;
79136644Sache  unsigned char t_status;
8058310Sache} _RL_TTY_CHARS;
8158310Sache
8221308Sache#endif /* _RLTTY_H_ */
83