cl.h revision 19304
1/*-
2 * Copyright (c) 1993, 1994
3 *	The Regents of the University of California.  All rights reserved.
4 * Copyright (c) 1993, 1994, 1995, 1996
5 *	Keith Bostic.  All rights reserved.
6 *
7 * See the LICENSE file for redistribution information.
8 *
9 *	@(#)cl.h	10.19 (Berkeley) 9/24/96
10 */
11
12typedef struct _cl_private {
13	CHAR_T	 ibuf[256];	/* Input keys. */
14
15	int	 eof_count;	/* EOF count. */
16
17	struct termios orig;	/* Original terminal values. */
18	struct termios ex_enter;/* Terminal values to enter ex. */
19	struct termios vi_enter;/* Terminal values to enter vi. */
20
21	char	*el;		/* Clear to EOL terminal string. */
22	char	*cup;		/* Cursor movement terminal string. */
23	char	*cuu1;		/* Cursor up terminal string. */
24	char	*rmso, *smso;	/* Inverse video terminal strings. */
25	char	*smcup, *rmcup;	/* Terminal start/stop strings. */
26
27	int	 killersig;	/* Killer signal. */
28#define	INDX_HUP	0
29#define	INDX_INT	1
30#define	INDX_TERM	2
31#define	INDX_WINCH	3
32#define	INDX_MAX	4	/* Original signal information. */
33	struct sigaction oact[INDX_MAX];
34
35	enum {			/* Tty group write mode. */
36	    TGW_UNKNOWN=0, TGW_SET, TGW_UNSET } tgw;
37
38	enum {			/* Terminal initialization strings. */
39	    TE_SENT=0, TI_SENT } ti_te;
40
41#define	CL_IN_EX	0x0001	/* Currently running ex. */
42#define	CL_RENAME	0x0002	/* X11 xterm icon/window renamed. */
43#define	CL_RENAME_OK	0x0004	/* User wants the windows renamed. */
44#define	CL_SCR_EX_INIT	0x0008	/* Ex screen initialized. */
45#define	CL_SCR_VI_INIT	0x0010	/* Vi screen initialized. */
46#define	CL_SIGHUP	0x0020	/* SIGHUP arrived. */
47#define	CL_SIGINT	0x0040	/* SIGINT arrived. */
48#define	CL_SIGTERM	0x0080	/* SIGTERM arrived. */
49#define	CL_SIGWINCH	0x0100	/* SIGWINCH arrived. */
50#define	CL_STDIN_TTY	0x0200	/* Talking to a terminal. */
51	u_int32_t flags;
52} CL_PRIVATE;
53
54#define	CLP(sp)		((CL_PRIVATE *)((sp)->gp->cl_private))
55#define	GCLP(gp)	((CL_PRIVATE *)gp->cl_private)
56
57/* Return possibilities from the keyboard read routine. */
58typedef enum { INP_OK=0, INP_EOF, INP_ERR, INP_INTR, INP_TIMEOUT } input_t;
59
60/* The screen line relative to a specific window. */
61#define	RLNO(sp, lno)	(sp)->woff + (lno)
62
63/* X11 xterm escape sequence to rename the icon/window. */
64#define	XTERM_RENAME	"\033]0;%s\007"
65
66/*
67 * XXX
68 * Some implementations of curses.h don't define these for us.  Used for
69 * compatibility only.
70 */
71#ifndef TRUE
72#define	TRUE	1
73#endif
74#ifndef FALSE
75#define	FALSE	0
76#endif
77
78#include "cl_extern.h"
79