1
/* Copyright (c) 1993-2002
2
* Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
3
* Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
4
* Copyright (c) 1987 Oliver Laumann
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2, or (at your option)
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program (see the file COPYING); if not, write to the
18
* Free Software Foundation, Inc.,
19
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
21
****************************************************************
22
* $Id: screen.h,v 1.12 1994/05/31 12:32:54 mlschroe Exp $ FAU
49
# define STATIC /* a function that the debugger should see */
51
# define STATIC static
55
# define DEBUGDIR "/tmp/debug"
56
# define debugf(a) do {if(dfp){fprintf a;fflush(dfp);}} while (0)
57
# define debug(x) debugf((dfp,x))
58
# define debug1(x,a) debugf((dfp,x,a))
59
# define debug2(x,a,b) debugf((dfp,x,a,b))
60
# define debug3(x,a,b,c) debugf((dfp,x,a,b,c))
63
# define debugf(a) do {} while (0)
64
# define debug(x) debugf(x)
65
# define debug1(x,a) debugf(x)
66
# define debug2(x,a,b) debugf(x)
67
# define debug3(x,a,b,c) debugf(x)
75
# if defined(__STDC__)
76
# define ASSERT(lousy_cpp) do {if (!(lousy_cpp)) {if (!dfp) opendebug(0, 1);debug2("ASSERT("#lousy_cpp") failed file %s line %d\n", __FILE__, __LINE__);abort();}} while (0)
78
# define ASSERT(lousy_cpp) do {if (!(lousy_cpp)) {if (!dfp) opendebug(0, 1);debug2("ASSERT(lousy_cpp) failed file %s line %d\n", __FILE__, __LINE__);abort();}} while (0)
81
# define ASSERT(lousy_cpp) do {} while (0)
84
/* here comes my own Free: jw. */
85
#define Free(a) {if ((a) == 0) abort(); else free((void *)(a)); (a)=0;}
87
#define Ctrl(c) ((c)&037)
93
#define SILENCEWAIT 30
96
* if a nasty user really wants to try a history of 3000 lines on all 10
97
* windows, he will allocate 8 MegaBytes of memory, which is quite enough.
99
#define MAXHISTHEIGHT 3000
100
#define DEFAULTHISTHEIGHT 100
101
#if defined(NAME_MAX) && NAME_MAX < 16
102
# define DEFAULT_BUFFERFILE "/tmp/screen-xchg"
104
# define DEFAULT_BUFFERFILE "/tmp/screen-exchange"
108
#if defined(hpux) && !(defined(VSUSP) && defined(VDSUSP) && defined(VWERASE) && defined(VLNEXT))
109
# define HPUX_LTCHARS_HACK
116
# ifdef HPUX_LTCHARS_HACK
117
struct ltchars m_ltchars;
118
# endif /* HPUX_LTCHARS_HACK */
128
struct sgttyb m_ttyb;
129
struct tchars m_tchars;
130
struct ltchars m_ltchars;
135
#if defined(KANJI) && defined(TIOCKSET)
136
struct jtchars m_jtchars;
142
/* #include "logfile.h" */ /* (requires stat.h) struct logfile */
148
* Parameters for the Detach() routine
154
#define D_REMOTE_POWER 4
159
* Here are the messages the attacher sends to the backend
166
#define MSG_POW_DETACH 5
169
#define MSG_COMMAND 8
172
* versions of struct msg:
173
* 0: screen version 3.6.6 (version count introduced)
175
#define MSG_VERSION 0
176
#define MSG_REVISION (('m'<<24) | ('s'<<16) | ('g'<<8) | MSG_VERSION)
179
int protocol_revision; /* reduce harm done by incompatible messages */
181
char m_tty[MAXPATHLEN]; /* ttyname */
189
int hheight; /* size of scrollback buffer */
191
char line[MAXPATHLEN];
192
char dir[MAXPATHLEN];
193
char screenterm[20]; /* is screen really "screen" ? */
198
char auser[20 + 1]; /* username */
199
int apid; /* pid of frontend */
200
int adaptflag; /* adapt window size? */
201
int lines, columns; /* display size */
203
int esc; /* his new escape character unless -1 */
204
int meta_esc; /* his new meta esc character unless -1 */
205
char envterm[20 + 1]; /* terminal type */
206
int encoding; /* encoding of display */
211
char duser[20 + 1]; /* username */
212
int dpid; /* pid of frontend */
217
char auser[20 + 1]; /* username */
219
char cmd[MAXPATHLEN]; /* command */
220
int apid; /* pid of frontend */
224
char message[MAXPATHLEN * 2];
229
* And the signals the attacher receives from the backend
231
#define SIG_BYE SIGHUP
232
#define SIG_POWER_BYE SIGUSR1
233
#define SIG_LOCK SIGUSR2
234
#define SIG_STOP SIGTSTP
236
#define SIG_NODEBUG SIGIO /* triggerd by command 'debug off' */
240
#define BELL (Ctrl('g'))
241
#define VBELLWAIT 1 /* No. of seconds a vbell will be displayed */
243
#define BELL_ON 0 /* No bell has occurred in the window */
244
#define BELL_FOUND 1 /* A bell has occurred, but user not yet notified */
245
#define BELL_DONE 2 /* A bell has occured, user has been notified */
247
#define BELL_VISUAL 3 /* A bell has occured in fore win, notify him visually */
249
#define MON_OFF 0 /* Monitoring is off in the window */
250
#define MON_ON 1 /* No activity has occurred in the window */
251
#define MON_FOUND 2 /* Activity has occured, but user not yet notified */
252
#define MON_DONE 3 /* Activity has occured, user has been notified */
254
#define DUMP_TERMCAP 0 /* WriteFile() options */
255
#define DUMP_HARDCOPY 1
256
#define DUMP_EXCHANGE 2
257
#define DUMP_SCROLLBACK 3
259
#define SILENCE_OFF 0
262
extern char strnomem[];
265
* line modes used by Input()
282
#define MAX_PLOP_DEFS 256
286
int idx; /* the index in the bsd-is padding lookup table */
287
int bps; /* bits per seconds */
288
int sym; /* symbol defined in ttydev.h */