mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-03 20:38:59 +00:00 
			
		
		
		
	
		
			
	
	
		
			485 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			485 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*	$NetBSD: tty.h,v 1.9 2002/03/18 16:01:01 christos Exp $	*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*-
							 | 
						||
| 
								 | 
							
								 * Copyright (c) 1992, 1993
							 | 
						||
| 
								 | 
							
								 *	The Regents of the University of California.  All rights reserved.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This code is derived from software contributed to Berkeley by
							 | 
						||
| 
								 | 
							
								 * Christos Zoulas of Cornell University.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Redistribution and use in source and binary forms, with or without
							 | 
						||
| 
								 | 
							
								 * modification, are permitted provided that the following conditions
							 | 
						||
| 
								 | 
							
								 * are met:
							 | 
						||
| 
								 | 
							
								 * 1. Redistributions of source code must retain the above copyright
							 | 
						||
| 
								 | 
							
								 *    notice, this list of conditions and the following disclaimer.
							 | 
						||
| 
								 | 
							
								 * 2. Redistributions in binary form must reproduce the above copyright
							 | 
						||
| 
								 | 
							
								 *    notice, this list of conditions and the following disclaimer in the
							 | 
						||
| 
								 | 
							
								 *    documentation and/or other materials provided with the distribution.
							 | 
						||
| 
								 | 
							
								 * 3. All advertising materials mentioning features or use of this software
							 | 
						||
| 
								 | 
							
								 *    must display the following acknowledgement:
							 | 
						||
| 
								 | 
							
								 *	This product includes software developed by the University of
							 | 
						||
| 
								 | 
							
								 *	California, Berkeley and its contributors.
							 | 
						||
| 
								 | 
							
								 * 4. Neither the name of the University nor the names of its contributors
							 | 
						||
| 
								 | 
							
								 *    may be used to endorse or promote products derived from this software
							 | 
						||
| 
								 | 
							
								 *    without specific prior written permission.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
							 | 
						||
| 
								 | 
							
								 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
							 | 
						||
| 
								 | 
							
								 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
							 | 
						||
| 
								 | 
							
								 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
							 | 
						||
| 
								 | 
							
								 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
							 | 
						||
| 
								 | 
							
								 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
							 | 
						||
| 
								 | 
							
								 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
							 | 
						||
| 
								 | 
							
								 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
							 | 
						||
| 
								 | 
							
								 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
							 | 
						||
| 
								 | 
							
								 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
							 | 
						||
| 
								 | 
							
								 * SUCH DAMAGE.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *	@(#)tty.h	8.1 (Berkeley) 6/4/93
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * el.tty.h: Local terminal header
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#ifndef _h_el_tty
							 | 
						||
| 
								 | 
							
								#define	_h_el_tty
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "histedit.h"
							 | 
						||
| 
								 | 
							
								#include <termios.h>
							 | 
						||
| 
								 | 
							
								#include <unistd.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Define our own since everyone gets it wrong! */
							 | 
						||
| 
								 | 
							
								#define	CONTROL(A)	((A) & 037)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Aix compatible names
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								# if defined(VWERSE) && !defined(VWERASE)
							 | 
						||
| 
								 | 
							
								#  define VWERASE VWERSE
							 | 
						||
| 
								 | 
							
								# endif /* VWERSE && !VWERASE */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# if defined(VDISCRD) && !defined(VDISCARD)
							 | 
						||
| 
								 | 
							
								#  define VDISCARD VDISCRD
							 | 
						||
| 
								 | 
							
								# endif /* VDISCRD && !VDISCARD */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# if defined(VFLUSHO) && !defined(VDISCARD)
							 | 
						||
| 
								 | 
							
								#  define VDISCARD VFLUSHO
							 | 
						||
| 
								 | 
							
								# endif  /* VFLUSHO && VDISCARD */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# if defined(VSTRT) && !defined(VSTART)
							 | 
						||
| 
								 | 
							
								#  define VSTART VSTRT
							 | 
						||
| 
								 | 
							
								# endif /* VSTRT && ! VSTART */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# if defined(VSTAT) && !defined(VSTATUS)
							 | 
						||
| 
								 | 
							
								#  define VSTATUS VSTAT
							 | 
						||
| 
								 | 
							
								# endif /* VSTAT && ! VSTATUS */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef ONLRET
							 | 
						||
| 
								 | 
							
								#  define ONLRET 0
							 | 
						||
| 
								 | 
							
								# endif /* ONLRET */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef TAB3
							 | 
						||
| 
								 | 
							
								#  ifdef OXTABS
							 | 
						||
| 
								 | 
							
								#   define TAB3 OXTABS
							 | 
						||
| 
								 | 
							
								#  else
							 | 
						||
| 
								 | 
							
								#   define TAB3 0
							 | 
						||
| 
								 | 
							
								#  endif /* OXTABS */
							 | 
						||
| 
								 | 
							
								# endif /* !TAB3 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# if defined(OXTABS) && !defined(XTABS)
							 | 
						||
| 
								 | 
							
								#  define XTABS OXTABS
							 | 
						||
| 
								 | 
							
								# endif /* OXTABS && !XTABS */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef ONLCR
							 | 
						||
| 
								 | 
							
								#  define ONLCR 0
							 | 
						||
| 
								 | 
							
								# endif /* ONLCR */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef IEXTEN
							 | 
						||
| 
								 | 
							
								#  define IEXTEN 0
							 | 
						||
| 
								 | 
							
								# endif /* IEXTEN */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef ECHOCTL
							 | 
						||
| 
								 | 
							
								#  define ECHOCTL 0
							 | 
						||
| 
								 | 
							
								# endif /* ECHOCTL */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef PARENB
							 | 
						||
| 
								 | 
							
								#  define PARENB 0
							 | 
						||
| 
								 | 
							
								# endif /* PARENB */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef EXTPROC
							 | 
						||
| 
								 | 
							
								#  define EXTPROC 0
							 | 
						||
| 
								 | 
							
								# endif /* EXTPROC */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef FLUSHO
							 | 
						||
| 
								 | 
							
								#  define FLUSHO  0
							 | 
						||
| 
								 | 
							
								# endif /* FLUSHO */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# if defined(VDISABLE) && !defined(_POSIX_VDISABLE)
							 | 
						||
| 
								 | 
							
								#  define _POSIX_VDISABLE VDISABLE
							 | 
						||
| 
								 | 
							
								# endif /* VDISABLE && ! _POSIX_VDISABLE */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Work around ISC's definition of IEXTEN which is
							 | 
						||
| 
								 | 
							
								 * XCASE!
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								# ifdef ISC
							 | 
						||
| 
								 | 
							
								#  if defined(IEXTEN) && defined(XCASE)
							 | 
						||
| 
								 | 
							
								#   if IEXTEN == XCASE
							 | 
						||
| 
								 | 
							
								#    undef IEXTEN
							 | 
						||
| 
								 | 
							
								#    define IEXTEN 0
							 | 
						||
| 
								 | 
							
								#   endif /* IEXTEN == XCASE */
							 | 
						||
| 
								 | 
							
								#  endif /* IEXTEN && XCASE */
							 | 
						||
| 
								 | 
							
								#  if defined(IEXTEN) && !defined(XCASE)
							 | 
						||
| 
								 | 
							
								#   define XCASE IEXTEN
							 | 
						||
| 
								 | 
							
								#   undef IEXTEN
							 | 
						||
| 
								 | 
							
								#   define IEXTEN 0
							 | 
						||
| 
								 | 
							
								#  endif /* IEXTEN && !XCASE */
							 | 
						||
| 
								 | 
							
								# endif /* ISC */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Work around convex weirdness where turning off IEXTEN makes us
							 | 
						||
| 
								 | 
							
								 * lose all postprocessing!
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#if defined(convex) || defined(__convex__)
							 | 
						||
| 
								 | 
							
								# if defined(IEXTEN) && IEXTEN != 0
							 | 
						||
| 
								 | 
							
								#  undef IEXTEN
							 | 
						||
| 
								 | 
							
								#  define IEXTEN 0
							 | 
						||
| 
								 | 
							
								# endif /* IEXTEN != 0 */
							 | 
						||
| 
								 | 
							
								#endif /* convex || __convex__ */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * So that we don't lose job control.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#ifdef __SVR4
							 | 
						||
| 
								 | 
							
								# undef CSWTCH
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef _POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								# define _POSIX_VDISABLE ((unsigned char) -1)
							 | 
						||
| 
								 | 
							
								#endif /* _POSIX_VDISABLE */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(CREPRINT) && defined(CRPRNT)
							 | 
						||
| 
								 | 
							
								# define CREPRINT CRPRNT
							 | 
						||
| 
								 | 
							
								#endif /* !CREPRINT && CRPRNT */
							 | 
						||
| 
								 | 
							
								#if !defined(CDISCARD) && defined(CFLUSH)
							 | 
						||
| 
								 | 
							
								# define CDISCARD CFLUSH
							 | 
						||
| 
								 | 
							
								#endif /* !CDISCARD && CFLUSH */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef CINTR
							 | 
						||
| 
								 | 
							
								# define CINTR		CONTROL('c')
							 | 
						||
| 
								 | 
							
								#endif /* CINTR */
							 | 
						||
| 
								 | 
							
								#ifndef CQUIT
							 | 
						||
| 
								 | 
							
								# define CQUIT		034	/* ^\ */
							 | 
						||
| 
								 | 
							
								#endif /* CQUIT */
							 | 
						||
| 
								 | 
							
								#ifndef CERASE
							 | 
						||
| 
								 | 
							
								# define CERASE		0177	/* ^? */
							 | 
						||
| 
								 | 
							
								#endif /* CERASE */
							 | 
						||
| 
								 | 
							
								#ifndef CKILL
							 | 
						||
| 
								 | 
							
								# define CKILL		CONTROL('u')
							 | 
						||
| 
								 | 
							
								#endif /* CKILL */
							 | 
						||
| 
								 | 
							
								#ifndef CEOF
							 | 
						||
| 
								 | 
							
								# define CEOF		CONTROL('d')
							 | 
						||
| 
								 | 
							
								#endif /* CEOF */
							 | 
						||
| 
								 | 
							
								#ifndef CEOL
							 | 
						||
| 
								 | 
							
								# define CEOL		_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								#endif /* CEOL */
							 | 
						||
| 
								 | 
							
								#ifndef CEOL2
							 | 
						||
| 
								 | 
							
								# define CEOL2		_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								#endif /* CEOL2 */
							 | 
						||
| 
								 | 
							
								#ifndef CSWTCH
							 | 
						||
| 
								 | 
							
								# define CSWTCH		_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								#endif /* CSWTCH */
							 | 
						||
| 
								 | 
							
								#ifndef CDSWTCH
							 | 
						||
| 
								 | 
							
								# define CDSWTCH	_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								#endif /* CDSWTCH */
							 | 
						||
| 
								 | 
							
								#ifndef CERASE2
							 | 
						||
| 
								 | 
							
								# define CERASE2	_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								#endif /* CERASE2 */
							 | 
						||
| 
								 | 
							
								#ifndef CSTART
							 | 
						||
| 
								 | 
							
								# define CSTART		CONTROL('q')
							 | 
						||
| 
								 | 
							
								#endif /* CSTART */
							 | 
						||
| 
								 | 
							
								#ifndef CSTOP
							 | 
						||
| 
								 | 
							
								# define CSTOP		CONTROL('s')
							 | 
						||
| 
								 | 
							
								#endif /* CSTOP */
							 | 
						||
| 
								 | 
							
								#ifndef CSUSP
							 | 
						||
| 
								 | 
							
								# define CSUSP		CONTROL('z')
							 | 
						||
| 
								 | 
							
								#endif /* CSUSP */
							 | 
						||
| 
								 | 
							
								#ifndef CDSUSP
							 | 
						||
| 
								 | 
							
								# define CDSUSP		CONTROL('y')
							 | 
						||
| 
								 | 
							
								#endif /* CDSUSP */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef hpux
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef CREPRINT
							 | 
						||
| 
								 | 
							
								#  define CREPRINT	_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								# endif /* CREPRINT */
							 | 
						||
| 
								 | 
							
								# ifndef CDISCARD
							 | 
						||
| 
								 | 
							
								#  define CDISCARD	_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								# endif /* CDISCARD */
							 | 
						||
| 
								 | 
							
								# ifndef CLNEXT
							 | 
						||
| 
								 | 
							
								#  define CLNEXT	_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								# endif /* CLNEXT */
							 | 
						||
| 
								 | 
							
								# ifndef CWERASE
							 | 
						||
| 
								 | 
							
								#  define CWERASE	_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								# endif /* CWERASE */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else /* !hpux */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# ifndef CREPRINT
							 | 
						||
| 
								 | 
							
								#  define CREPRINT	CONTROL('r')
							 | 
						||
| 
								 | 
							
								# endif /* CREPRINT */
							 | 
						||
| 
								 | 
							
								# ifndef CDISCARD
							 | 
						||
| 
								 | 
							
								#  define CDISCARD	CONTROL('o')
							 | 
						||
| 
								 | 
							
								# endif /* CDISCARD */
							 | 
						||
| 
								 | 
							
								# ifndef CLNEXT
							 | 
						||
| 
								 | 
							
								#  define CLNEXT	CONTROL('v')
							 | 
						||
| 
								 | 
							
								# endif /* CLNEXT */
							 | 
						||
| 
								 | 
							
								# ifndef CWERASE
							 | 
						||
| 
								 | 
							
								#  define CWERASE	CONTROL('w')
							 | 
						||
| 
								 | 
							
								# endif /* CWERASE */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* hpux */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef CSTATUS
							 | 
						||
| 
								 | 
							
								# define CSTATUS	CONTROL('t')
							 | 
						||
| 
								 | 
							
								#endif /* CSTATUS */
							 | 
						||
| 
								 | 
							
								#ifndef CPAGE
							 | 
						||
| 
								 | 
							
								# define CPAGE		' '
							 | 
						||
| 
								 | 
							
								#endif /* CPAGE */
							 | 
						||
| 
								 | 
							
								#ifndef CPGOFF
							 | 
						||
| 
								 | 
							
								# define CPGOFF		CONTROL('m')
							 | 
						||
| 
								 | 
							
								#endif /* CPGOFF */
							 | 
						||
| 
								 | 
							
								#ifndef CKILL2
							 | 
						||
| 
								 | 
							
								# define CKILL2		_POSIX_VDISABLE
							 | 
						||
| 
								 | 
							
								#endif /* CKILL2 */
							 | 
						||
| 
								 | 
							
								#ifndef CBRK
							 | 
						||
| 
								 | 
							
								# ifndef masscomp
							 | 
						||
| 
								 | 
							
								#  define CBRK		0377
							 | 
						||
| 
								 | 
							
								# else
							 | 
						||
| 
								 | 
							
								#  define CBRK		'\0'
							 | 
						||
| 
								 | 
							
								# endif /* masscomp */
							 | 
						||
| 
								 | 
							
								#endif /* CBRK */
							 | 
						||
| 
								 | 
							
								#ifndef CMIN
							 | 
						||
| 
								 | 
							
								# define CMIN		CEOF
							 | 
						||
| 
								 | 
							
								#endif /* CMIN */
							 | 
						||
| 
								 | 
							
								#ifndef CTIME
							 | 
						||
| 
								 | 
							
								# define CTIME		CEOL
							 | 
						||
| 
								 | 
							
								#endif /* CTIME */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Fix for sun inconsistency. On termio VSUSP and the rest of the
							 | 
						||
| 
								 | 
							
								 * ttychars > NCC are defined. So we undefine them.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#if defined(TERMIO) || defined(POSIX)
							 | 
						||
| 
								 | 
							
								# if defined(POSIX) && defined(NCCS)
							 | 
						||
| 
								 | 
							
								#  define NUMCC		NCCS
							 | 
						||
| 
								 | 
							
								# else
							 | 
						||
| 
								 | 
							
								#  ifdef NCC
							 | 
						||
| 
								 | 
							
								#   define NUMCC	NCC
							 | 
						||
| 
								 | 
							
								#  endif /* NCC */
							 | 
						||
| 
								 | 
							
								# endif /* POSIX && NCCS */
							 | 
						||
| 
								 | 
							
								# ifdef NUMCC
							 | 
						||
| 
								 | 
							
								#  ifdef VINTR
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VINTR
							 | 
						||
| 
								 | 
							
								#    undef VINTR
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VINTR */
							 | 
						||
| 
								 | 
							
								#  endif /* VINTR */
							 | 
						||
| 
								 | 
							
								#  ifdef VQUIT
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VQUIT
							 | 
						||
| 
								 | 
							
								#    undef VQUIT
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VQUIT */
							 | 
						||
| 
								 | 
							
								#  endif /* VQUIT */
							 | 
						||
| 
								 | 
							
								#  ifdef VERASE
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VERASE
							 | 
						||
| 
								 | 
							
								#    undef VERASE
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VERASE */
							 | 
						||
| 
								 | 
							
								#  endif /* VERASE */
							 | 
						||
| 
								 | 
							
								#  ifdef VKILL
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VKILL
							 | 
						||
| 
								 | 
							
								#    undef VKILL
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VKILL */
							 | 
						||
| 
								 | 
							
								#  endif /* VKILL */
							 | 
						||
| 
								 | 
							
								#  ifdef VEOF
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VEOF
							 | 
						||
| 
								 | 
							
								#    undef VEOF
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VEOF */
							 | 
						||
| 
								 | 
							
								#  endif /* VEOF */
							 | 
						||
| 
								 | 
							
								#  ifdef VEOL
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VEOL
							 | 
						||
| 
								 | 
							
								#    undef VEOL
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VEOL */
							 | 
						||
| 
								 | 
							
								#  endif /* VEOL */
							 | 
						||
| 
								 | 
							
								#  ifdef VEOL2
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VEOL2
							 | 
						||
| 
								 | 
							
								#    undef VEOL2
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VEOL2 */
							 | 
						||
| 
								 | 
							
								#  endif /* VEOL2 */
							 | 
						||
| 
								 | 
							
								#  ifdef VSWTCH
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VSWTCH
							 | 
						||
| 
								 | 
							
								#    undef VSWTCH
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VSWTCH */
							 | 
						||
| 
								 | 
							
								#  endif /* VSWTCH */
							 | 
						||
| 
								 | 
							
								#  ifdef VDSWTCH
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VDSWTCH
							 | 
						||
| 
								 | 
							
								#    undef VDSWTCH
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VDSWTCH */
							 | 
						||
| 
								 | 
							
								#  endif /* VDSWTCH */
							 | 
						||
| 
								 | 
							
								#  ifdef VERASE2
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VERASE2
							 | 
						||
| 
								 | 
							
								#    undef VERASE2
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VERASE2 */
							 | 
						||
| 
								 | 
							
								#  endif /* VERASE2 */
							 | 
						||
| 
								 | 
							
								#  ifdef VSTART
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VSTART
							 | 
						||
| 
								 | 
							
								#    undef VSTART
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VSTART */
							 | 
						||
| 
								 | 
							
								#  endif /* VSTART */
							 | 
						||
| 
								 | 
							
								#  ifdef VSTOP
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VSTOP
							 | 
						||
| 
								 | 
							
								#    undef VSTOP
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VSTOP */
							 | 
						||
| 
								 | 
							
								#  endif /* VSTOP */
							 | 
						||
| 
								 | 
							
								#  ifdef VWERASE
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VWERASE
							 | 
						||
| 
								 | 
							
								#    undef VWERASE
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VWERASE */
							 | 
						||
| 
								 | 
							
								#  endif /* VWERASE */
							 | 
						||
| 
								 | 
							
								#  ifdef VSUSP
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VSUSP
							 | 
						||
| 
								 | 
							
								#    undef VSUSP
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VSUSP */
							 | 
						||
| 
								 | 
							
								#  endif /* VSUSP */
							 | 
						||
| 
								 | 
							
								#  ifdef VDSUSP
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VDSUSP
							 | 
						||
| 
								 | 
							
								#    undef VDSUSP
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VDSUSP */
							 | 
						||
| 
								 | 
							
								#  endif /* VDSUSP */
							 | 
						||
| 
								 | 
							
								#  ifdef VREPRINT
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VREPRINT
							 | 
						||
| 
								 | 
							
								#    undef VREPRINT
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VREPRINT */
							 | 
						||
| 
								 | 
							
								#  endif /* VREPRINT */
							 | 
						||
| 
								 | 
							
								#  ifdef VDISCARD
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VDISCARD
							 | 
						||
| 
								 | 
							
								#    undef VDISCARD
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VDISCARD */
							 | 
						||
| 
								 | 
							
								#  endif /* VDISCARD */
							 | 
						||
| 
								 | 
							
								#  ifdef VLNEXT
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VLNEXT
							 | 
						||
| 
								 | 
							
								#    undef VLNEXT
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VLNEXT */
							 | 
						||
| 
								 | 
							
								#  endif /* VLNEXT */
							 | 
						||
| 
								 | 
							
								#  ifdef VSTATUS
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VSTATUS
							 | 
						||
| 
								 | 
							
								#    undef VSTATUS
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VSTATUS */
							 | 
						||
| 
								 | 
							
								#  endif /* VSTATUS */
							 | 
						||
| 
								 | 
							
								#  ifdef VPAGE
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VPAGE
							 | 
						||
| 
								 | 
							
								#    undef VPAGE
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VPAGE */
							 | 
						||
| 
								 | 
							
								#  endif /* VPAGE */
							 | 
						||
| 
								 | 
							
								#  ifdef VPGOFF
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VPGOFF
							 | 
						||
| 
								 | 
							
								#    undef VPGOFF
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VPGOFF */
							 | 
						||
| 
								 | 
							
								#  endif /* VPGOFF */
							 | 
						||
| 
								 | 
							
								#  ifdef VKILL2
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VKILL2
							 | 
						||
| 
								 | 
							
								#    undef VKILL2
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VKILL2 */
							 | 
						||
| 
								 | 
							
								#  endif /* VKILL2 */
							 | 
						||
| 
								 | 
							
								#  ifdef VBRK
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VBRK
							 | 
						||
| 
								 | 
							
								#    undef VBRK
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VBRK */
							 | 
						||
| 
								 | 
							
								#  endif /* VBRK */
							 | 
						||
| 
								 | 
							
								#  ifdef VMIN
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VMIN
							 | 
						||
| 
								 | 
							
								#    undef VMIN
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VMIN */
							 | 
						||
| 
								 | 
							
								#  endif /* VMIN */
							 | 
						||
| 
								 | 
							
								#  ifdef VTIME
							 | 
						||
| 
								 | 
							
								#   if NUMCC <= VTIME
							 | 
						||
| 
								 | 
							
								#    undef VTIME
							 | 
						||
| 
								 | 
							
								#   endif /* NUMCC <= VTIME */
							 | 
						||
| 
								 | 
							
								#  endif /* VTIME */
							 | 
						||
| 
								 | 
							
								# endif /* NUMCC */
							 | 
						||
| 
								 | 
							
								#endif /* !POSIX */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define	C_INTR		 0
							 | 
						||
| 
								 | 
							
								#define	C_QUIT		 1
							 | 
						||
| 
								 | 
							
								#define	C_ERASE		 2
							 | 
						||
| 
								 | 
							
								#define	C_KILL		 3
							 | 
						||
| 
								 | 
							
								#define	C_EOF		 4
							 | 
						||
| 
								 | 
							
								#define	C_EOL		 5
							 | 
						||
| 
								 | 
							
								#define	C_EOL2		 6
							 | 
						||
| 
								 | 
							
								#define	C_SWTCH		 7
							 | 
						||
| 
								 | 
							
								#define	C_DSWTCH	 8
							 | 
						||
| 
								 | 
							
								#define	C_ERASE2	 9
							 | 
						||
| 
								 | 
							
								#define	C_START		10
							 | 
						||
| 
								 | 
							
								#define	C_STOP		11
							 | 
						||
| 
								 | 
							
								#define	C_WERASE	12
							 | 
						||
| 
								 | 
							
								#define	C_SUSP		13
							 | 
						||
| 
								 | 
							
								#define	C_DSUSP		14
							 | 
						||
| 
								 | 
							
								#define	C_REPRINT	15
							 | 
						||
| 
								 | 
							
								#define	C_DISCARD	16
							 | 
						||
| 
								 | 
							
								#define	C_LNEXT		17
							 | 
						||
| 
								 | 
							
								#define	C_STATUS	18
							 | 
						||
| 
								 | 
							
								#define	C_PAGE		19
							 | 
						||
| 
								 | 
							
								#define	C_PGOFF		20
							 | 
						||
| 
								 | 
							
								#define	C_KILL2		21
							 | 
						||
| 
								 | 
							
								#define	C_BRK		22
							 | 
						||
| 
								 | 
							
								#define	C_MIN		23
							 | 
						||
| 
								 | 
							
								#define	C_TIME		24
							 | 
						||
| 
								 | 
							
								#define	C_NCC		25
							 | 
						||
| 
								 | 
							
								#define	C_SH(A)		(1 << (A))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Terminal dependend data structures
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#define	EX_IO	0	/* while we are executing	*/
							 | 
						||
| 
								 | 
							
								#define	ED_IO	1	/* while we are editing		*/
							 | 
						||
| 
								 | 
							
								#define	TS_IO	2	/* new mode from terminal	*/
							 | 
						||
| 
								 | 
							
								#define	QU_IO	2	/* used only for quoted chars	*/
							 | 
						||
| 
								 | 
							
								#define	NN_IO	3	/* The number of entries	*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define	MD_INP	0
							 | 
						||
| 
								 | 
							
								#define	MD_OUT	1
							 | 
						||
| 
								 | 
							
								#define	MD_CTL	2
							 | 
						||
| 
								 | 
							
								#define	MD_LIN	3
							 | 
						||
| 
								 | 
							
								#define	MD_CHAR	4
							 | 
						||
| 
								 | 
							
								#define	MD_NN	5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct {
							 | 
						||
| 
								 | 
							
									const char	*t_name;
							 | 
						||
| 
								 | 
							
									u_int	 t_setmask;
							 | 
						||
| 
								 | 
							
									u_int	 t_clrmask;
							 | 
						||
| 
								 | 
							
								} ttyperm_t[NN_IO][MD_NN];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef unsigned char ttychar_t[NN_IO][C_NCC];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								protected int	tty_init(EditLine *);
							 | 
						||
| 
								 | 
							
								protected void	tty_end(EditLine *);
							 | 
						||
| 
								 | 
							
								protected int	tty_stty(EditLine *, int, const char **);
							 | 
						||
| 
								 | 
							
								protected int	tty_rawmode(EditLine *);
							 | 
						||
| 
								 | 
							
								protected int	tty_cookedmode(EditLine *);
							 | 
						||
| 
								 | 
							
								protected int	tty_quotemode(EditLine *);
							 | 
						||
| 
								 | 
							
								protected int	tty_noquotemode(EditLine *);
							 | 
						||
| 
								 | 
							
								protected void	tty_bind_char(EditLine *, int);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct {
							 | 
						||
| 
								 | 
							
								    ttyperm_t t_t;
							 | 
						||
| 
								 | 
							
								    ttychar_t t_c;
							 | 
						||
| 
								 | 
							
								    struct termios t_ex, t_ed, t_ts;
							 | 
						||
| 
								 | 
							
								    int t_tabs;
							 | 
						||
| 
								 | 
							
								    int t_eight;
							 | 
						||
| 
								 | 
							
								    speed_t t_speed;
							 | 
						||
| 
								 | 
							
								    int t_mode;
							 | 
						||
| 
								 | 
							
								    unsigned char t_vdisable;
							 | 
						||
| 
								 | 
							
								} el_tty_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* _h_el_tty */
							 |