xterm.h revision a1f3da82
1a1f3da82Smrg/* $XTermId: xterm.h,v 1.644 2011/02/20 00:49:16 tom Exp $ */
2d522f475Smrg
3d522f475Smrg/************************************************************
4d522f475Smrg
5a1f3da82SmrgCopyright 1999-2010,2011 by Thomas E. Dickey
6d522f475Smrg
7d522f475Smrg                        All Rights Reserved
8d522f475Smrg
9d522f475SmrgPermission is hereby granted, free of charge, to any person obtaining a
10d522f475Smrgcopy of this software and associated documentation files (the
11d522f475Smrg"Software"), to deal in the Software without restriction, including
12d522f475Smrgwithout limitation the rights to use, copy, modify, merge, publish,
13d522f475Smrgdistribute, sublicense, and/or sell copies of the Software, and to
14d522f475Smrgpermit persons to whom the Software is furnished to do so, subject to
15d522f475Smrgthe following conditions:
16d522f475Smrg
17d522f475SmrgThe above copyright notice and this permission notice shall be included
18d522f475Smrgin all copies or substantial portions of the Software.
19d522f475Smrg
20d522f475SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21d522f475SmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22d522f475SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23d522f475SmrgIN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
24d522f475SmrgCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25d522f475SmrgTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26d522f475SmrgSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27d522f475Smrg
28d522f475SmrgExcept as contained in this notice, the name(s) of the above copyright
29d522f475Smrgholders shall not be used in advertising or otherwise to promote the
30d522f475Smrgsale, use or other dealings in this Software without prior written
31d522f475Smrgauthorization.
32d522f475Smrg
33d522f475Smrg********************************************************/
34d522f475Smrg
35d522f475Smrg/*
36d522f475Smrg * Common/useful definitions for XTERM application.
37d522f475Smrg *
38d522f475Smrg * This is also where we put the fallback definitions if we do not build using
39d522f475Smrg * the configure script.
40d522f475Smrg */
41d522f475Smrg#ifndef included_xterm_h
42d522f475Smrg#define included_xterm_h
43a1f3da82Smrg/* *INDENT-OFF* */
44d522f475Smrg
45d522f475Smrg#ifdef HAVE_CONFIG_H
46d522f475Smrg#include <xtermcfg.h>
47d522f475Smrg#endif
48d522f475Smrg
49a1f3da82Smrg#ifndef GCC_PRINTFLIKE
50a1f3da82Smrg#define GCC_PRINTFLIKE(f,n)	/* nothing */
51a1f3da82Smrg#endif
52a1f3da82Smrg
53d522f475Smrg#ifndef GCC_UNUSED
54d522f475Smrg#define GCC_UNUSED		/* nothing */
55d522f475Smrg#endif
56d522f475Smrg
57d522f475Smrg#ifndef GCC_NORETURN
58d522f475Smrg#define GCC_NORETURN		/* nothing */
59d522f475Smrg#endif
60d522f475Smrg
6120d2c4d2Smrg#if defined(__GNUC__) && defined(_FORTIFY_SOURCE)
6220d2c4d2Smrg#define USE_IGNORE_RC
6320d2c4d2Smrg#define IGNORE_RC(func) ignore_unused = (int) func
6420d2c4d2Smrg#else
6520d2c4d2Smrg#define IGNORE_RC(func) (void) func
6620d2c4d2Smrg#endif /* gcc workarounds */
6720d2c4d2Smrg
68d522f475Smrg#include <X11/Xos.h>
69d522f475Smrg
70d522f475Smrg#ifndef HAVE_CONFIG_H
71d522f475Smrg
72d522f475Smrg#define HAVE_LIB_XAW 1
73d522f475Smrg
74d522f475Smrg#ifdef CSRG_BASED
75d522f475Smrg/* Get definition of BSD */
76d522f475Smrg#include <sys/param.h>
77d522f475Smrg#endif
78d522f475Smrg
79d522f475Smrg#ifndef DFT_TERMTYPE
80d522f475Smrg#define DFT_TERMTYPE "xterm"
81d522f475Smrg#endif
82d522f475Smrg
83d522f475Smrg#ifndef X_NOT_POSIX
84d522f475Smrg#define HAVE_WAITPID 1
85d522f475Smrg#define HAVE_SYS_WAIT_H 1
86d522f475Smrg#define HAVE_UNISTD_H 1
87d522f475Smrg#endif
88d522f475Smrg
89d522f475Smrg#define HAVE_STDLIB_H 1
90d522f475Smrg
91d522f475Smrg#if defined(sun)
92d522f475Smrg/* errno is declared in <errno.h> */
93d522f475Smrg#else
94d522f475Smrg#define DECL_ERRNO 1
95d522f475Smrg#endif
96d522f475Smrg
97d522f475Smrg#undef DECL_PTSNAME		/* ptsname() is normally in stdlib.h */
98d522f475Smrg
99d522f475Smrg#ifndef NOPUTENV
100d522f475Smrg#define HAVE_PUTENV 1
101d522f475Smrg#endif
102d522f475Smrg
103d522f475Smrg#if defined(CSRG_BASED) || defined(__GNU__)
104d522f475Smrg#define USE_POSIX_TERMIOS 1
105d522f475Smrg#endif
106d522f475Smrg
107d522f475Smrg#ifdef __NetBSD__
108d522f475Smrg#if __NetBSD_Version__ >= 106030000	/* 1.6C */
109d522f475Smrg#define BSD_UTMPX 1
110d522f475Smrg#define ut_xtime ut_tv.tv_sec
111d522f475Smrg#endif
112d522f475Smrg#endif
113d522f475Smrg
114d522f475Smrg#if defined(hpux) && !defined(__hpux)
115d522f475Smrg#define __hpux 1		/* HPUX 11.0 does not define this */
116d522f475Smrg#endif
117d522f475Smrg
118d522f475Smrg#if !defined(__SCO__) && (defined(SCO) || defined(sco) || defined(SCO325))
119d522f475Smrg#define __SCO__ 1
120d522f475Smrg#endif
121d522f475Smrg
122d522f475Smrg#ifdef USE_POSIX_TERMIOS
123d522f475Smrg#define HAVE_TERMIOS_H 1
124d522f475Smrg#define HAVE_TCGETATTR 1
125d522f475Smrg#endif
126d522f475Smrg
127d522f475Smrg#if defined(__UNIXOS2__) || defined(__SCO__) || defined(__UNIXWARE__)
128d522f475Smrg#define USE_TERMCAP 1
129d522f475Smrg#endif
130d522f475Smrg
131d522f475Smrg#if defined(UTMP)
132d522f475Smrg#define HAVE_UTMP 1
133d522f475Smrg#endif
134d522f475Smrg
135d522f475Smrg#if (defined(__MVS__) || defined(SVR4) || defined(__SCO__) || defined(BSD_UTMPX)) && !defined(__CYGWIN__)
136d522f475Smrg#define UTMPX_FOR_UTMP 1
137d522f475Smrg#endif
138d522f475Smrg
139d522f475Smrg#if !defined(ISC) && !defined(__QNX__)
140d522f475Smrg#define HAVE_UTMP_UT_HOST 1
141d522f475Smrg#endif
142d522f475Smrg
143d522f475Smrg#if defined(UTMPX_FOR_UTMP) && !(defined(__MVS__) || defined(__hpux))
144d522f475Smrg#define HAVE_UTMP_UT_SESSION 1
145d522f475Smrg#endif
146d522f475Smrg
147d522f475Smrg#if !(defined(linux) && (!defined(__GLIBC__) || (__GLIBC__ < 2))) && !defined(SVR4)
148d522f475Smrg#define ut_xstatus ut_exit.e_exit
149d522f475Smrg#endif
150d522f475Smrg
151d522f475Smrg#if defined(SVR4) || defined(__SCO__) || defined(BSD_UTMPX) || (defined(linux) && defined(__GLIBC__) && (__GLIBC__ >= 2) && !(defined(__powerpc__) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0)))
152d522f475Smrg#define HAVE_UTMP_UT_XTIME 1
153d522f475Smrg#endif
154d522f475Smrg
155d522f475Smrg#if defined(linux) || defined(__CYGWIN__)
156d522f475Smrg#define USE_LASTLOG
157d522f475Smrg#define HAVE_LASTLOG_H
158d522f475Smrg#define USE_STRUCT_LASTLOG
159d522f475Smrg#elif defined(BSD) && (BSD >= 199103)
160d522f475Smrg#ifdef BSD_UTMPX
161d522f475Smrg#define USE_LASTLOGX
162d522f475Smrg#else
163d522f475Smrg#define USE_LASTLOG
164d522f475Smrg#define USE_STRUCT_LASTLOG
165d522f475Smrg#endif
166d522f475Smrg#endif
167d522f475Smrg
168d522f475Smrg#if defined(__OpenBSD__)
169d522f475Smrg#define DEFDELETE_DEL True
170d522f475Smrg#define DEF_BACKARO_ERASE True
171d522f475Smrg#define DEF_INITIAL_ERASE True
172d522f475Smrg#endif
173d522f475Smrg
174d522f475Smrg#if defined(__SCO__) || defined(__UNIXWARE__)
175d522f475Smrg#define DEFDELETE_DEL True
176d522f475Smrg#define OPT_SCO_FUNC_KEYS 1
177d522f475Smrg#endif
178d522f475Smrg
179d522f475Smrg#if defined(__SCO__) || defined(SVR4) || defined(_POSIX_SOURCE) || defined(__QNX__) || defined(__hpux) || (defined(BSD) && (BSD >= 199103)) || defined(__CYGWIN__)
180d522f475Smrg#define USE_POSIX_WAIT
181d522f475Smrg#endif
182d522f475Smrg
183d522f475Smrg#if defined(AIXV3) || defined(CRAY) || defined(__SCO__) || defined(SVR4) || (defined(SYSV) && defined(i386)) || defined(__MVS__) || defined(__hpux) || defined(__osf__) || defined(linux) || defined(macII) || defined(BSD_UTMPX)
184d522f475Smrg#define USE_SYSV_UTMP
185d522f475Smrg#endif
186d522f475Smrg
187d522f475Smrg#if defined(__GNU__) || defined(__MVS__) || defined(__osf__)
188d522f475Smrg#define USE_TTY_GROUP
189d522f475Smrg#endif
190d522f475Smrg
191d522f475Smrg#if defined(__CYGWIN__)
192d522f475Smrg#define HAVE_NCURSES_TERM_H 1
193d522f475Smrg#endif
194d522f475Smrg
195d522f475Smrg#ifdef __osf__
196d522f475Smrg#define TTY_GROUP_NAME "terminal"
197d522f475Smrg#endif
198d522f475Smrg
199d522f475Smrg#if defined(__MVS__)
200d522f475Smrg#undef ut_xstatus
201d522f475Smrg#define ut_name ut_user
202d522f475Smrg#define ut_xstatus ut_exit.ut_e_exit
203d522f475Smrg#define ut_xtime ut_tv.tv_sec
204d522f475Smrg#endif
205d522f475Smrg
206d522f475Smrg#if defined(ut_xstatus)
207d522f475Smrg#define HAVE_UTMP_UT_XSTATUS 1
208d522f475Smrg#endif
209d522f475Smrg
210d522f475Smrg#if defined(XKB)
211d522f475Smrg#define HAVE_XKB_BELL_EXT 1
212d522f475Smrg#endif
213d522f475Smrg
214d522f475Smrg#if (defined(SVR4) && !defined(__CYGWIN__)) || defined(linux) || (defined(BSD) && (BSD >= 199103))
215d522f475Smrg#define HAVE_POSIX_SAVED_IDS
216d522f475Smrg#endif
217d522f475Smrg
218d522f475Smrg#endif /* HAVE_CONFIG_H */
219d522f475Smrg
220d522f475Smrg#ifndef HAVE_X11_DECKEYSYM_H
221d522f475Smrg#define HAVE_X11_DECKEYSYM_H 1
222d522f475Smrg#endif
223d522f475Smrg
224d522f475Smrg#ifndef HAVE_X11_SUNKEYSYM_H
225d522f475Smrg#define HAVE_X11_SUNKEYSYM_H 1
226d522f475Smrg#endif
227d522f475Smrg
228d522f475Smrg#ifndef HAVE_X11_XF86KEYSYM_H
229d522f475Smrg#define HAVE_X11_XF86KEYSYM_H 0
230d522f475Smrg#endif
231d522f475Smrg
232d522f475Smrg/***====================================================================***/
233d522f475Smrg
234d522f475Smrg/* if compiling with gcc -ansi -pedantic, we must fix POSIX definitions */
235d522f475Smrg#if defined(SVR4) && defined(sun)
236d522f475Smrg#ifndef __EXTENSIONS__
237d522f475Smrg#define __EXTENSIONS__ 1
238d522f475Smrg#endif
239d522f475Smrg#ifndef _POSIX_C_SOURCE
240d522f475Smrg#define _POSIX_C_SOURCE 1
241d522f475Smrg#endif
242d522f475Smrg#endif
243d522f475Smrg
244d522f475Smrg/***====================================================================***/
245d522f475Smrg
246d522f475Smrg#ifdef HAVE_STDLIB_H
247d522f475Smrg#include <stdlib.h>
248d522f475Smrg#else
249d522f475Smrgextern char *calloc();
250d522f475Smrgextern char *getenv();
251d522f475Smrgextern char *malloc();
252d522f475Smrgextern char *realloc();
253d522f475Smrgextern void exit();
254d522f475Smrgextern void free();
255d522f475Smrg#endif
256d522f475Smrg
257d522f475Smrg#ifdef HAVE_UNISTD_H
258d522f475Smrg#include <unistd.h>
259d522f475Smrg#endif
260d522f475Smrg
261d522f475Smrg#ifdef HAVE_SYS_WAIT_H
262d522f475Smrg#include <sys/wait.h>
263d522f475Smrg#endif
264d522f475Smrg
265d522f475Smrg#include <errno.h>
266d522f475Smrg#if defined(DECL_ERRNO) && !defined(errno)
267d522f475Smrgextern int errno;
268d522f475Smrg#endif
269d522f475Smrg
270d522f475Smrg/*
271d522f475Smrg * FIXME:  Toggling logging from xterm hangs under Linux 2.0.29 with libc5 if
272d522f475Smrg * we use 'waitpid()', while 'wait()' seems to work properly.
273d522f475Smrg */
274d522f475Smrg#ifdef linux
275d522f475Smrg#undef HAVE_WAITPID
276d522f475Smrg#endif
277d522f475Smrg
278d522f475Smrg#ifndef OPT_WIDE_CHARS
279d522f475Smrg#define OPT_WIDE_CHARS 0
280d522f475Smrg#endif
281d522f475Smrg
282d522f475Smrg#if OPT_WIDE_CHARS
283d522f475Smrg#define HIDDEN_CHAR 0xffff
284d522f475Smrg#endif
285d522f475Smrg
286d522f475Smrg/***====================================================================***/
287d522f475Smrg
288d522f475Smrg#include <proto.h>
289d522f475Smrg#include <ptyx.h>
290d522f475Smrg
291d522f475Smrg#if (XtSpecificationRelease >= 6) && !defined(NO_XPOLL_H) && !defined(sun)
292d522f475Smrg#include <X11/Xpoll.h>
293d522f475Smrg#define USE_XPOLL_H 1
294d522f475Smrg#else
295d522f475Smrg#define Select(n,r,w,e,t) select(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval *)t)
296d522f475Smrg#define XFD_COPYSET(src,dst) memcpy((dst)->fds_bits, (src)->fds_bits, sizeof(fd_set))
297d522f475Smrg#if defined(__MVS__) && !defined(TIME_WITH_SYS_TIME)
298d522f475Smrg#define TIME_WITH_SYS_TIME
299d522f475Smrg#endif
300d522f475Smrg#endif
301d522f475Smrg
302d522f475Smrg#ifdef TIME_WITH_SYS_TIME
303d522f475Smrg# include <sys/time.h>
304d522f475Smrg# include <time.h>
305d522f475Smrg#else
306d522f475Smrg# ifdef HAVE_SYS_TIME_H
307d522f475Smrg#  include <sys/time.h>
308d522f475Smrg# else
309d522f475Smrg#  include <time.h>
310d522f475Smrg# endif
311d522f475Smrg#endif
312d522f475Smrg
313d522f475Smrg/* these may be needed for sig_atomic_t */
314d522f475Smrg#include <sys/types.h>
315d522f475Smrg#include <signal.h>
316d522f475Smrg
317d522f475Smrg#ifdef USE_SYS_SELECT_H
318d522f475Smrg
319d522f475Smrg#if defined(USE_XPOLL_H) && defined(AIXV3) && defined(NFDBITS)
320d522f475Smrg#undef NFDBITS			/* conflict between X11/Xpoll.h and sys/select.h */
321d522f475Smrg#endif
322d522f475Smrg
323d522f475Smrg#include <sys/select.h>
324d522f475Smrg
325d522f475Smrg#endif /* USE_SYS_SELECT_H */
326d522f475Smrg
327d522f475Smrg#include <setjmp.h>
328d522f475Smrg
329d522f475Smrg#if defined(__UNIXOS2__) && !defined(XTERM_MAIN)
330d522f475Smrg#define environ gblenvp		/* circumvent a bug */
331d522f475Smrg#endif
332d522f475Smrg
333d522f475Smrg#if !defined(VMS) && !(defined(linux) && defined(__USE_GNU)) && !defined(__hpux) && !defined(_ALL_SOURCE) && !defined(__osf__)
334d522f475Smrgextern char **environ;
335d522f475Smrg#endif
336d522f475Smrg
337d522f475Smrg#define XK_Fn(n)	(XK_F1 + (n) - 1)
338d522f475Smrg
339d522f475Smrg#define Maybe		2
340d522f475Smrg
341d522f475Smrg/***====================================================================***/
342d522f475Smrg
343d522f475Smrg#define XtNallowC1Printable	"allowC1Printable"
34420d2c4d2Smrg#define XtNallowColorOps	"allowColorOps"
3452eaa94a1Schristos#define XtNallowFontOps		"allowFontOps"
34620d2c4d2Smrg#define XtNallowScrollLock	"allowScrollLock"
347d522f475Smrg#define XtNallowSendEvents	"allowSendEvents"
3482eaa94a1Schristos#define XtNallowTcapOps		"allowTcapOps"
349d522f475Smrg#define XtNallowTitleOps	"allowTitleOps"
350d522f475Smrg#define XtNallowWindowOps	"allowWindowOps"
351d522f475Smrg#define XtNaltIsNotMeta		"altIsNotMeta"
352d522f475Smrg#define XtNaltSendsEscape	"altSendsEscape"
353d522f475Smrg#define XtNalwaysBoldMode	"alwaysBoldMode"
354d522f475Smrg#define XtNalwaysHighlight	"alwaysHighlight"
355d522f475Smrg#define XtNalwaysUseMods	"alwaysUseMods"
356d522f475Smrg#define XtNanswerbackString	"answerbackString"
357d522f475Smrg#define XtNappcursorDefault	"appcursorDefault"
358d522f475Smrg#define XtNappkeypadDefault	"appkeypadDefault"
359d522f475Smrg#define XtNautoWrap		"autoWrap"
360d522f475Smrg#define XtNawaitInput		"awaitInput"
361d522f475Smrg#define XtNbackarrowKey		"backarrowKey"
362d522f475Smrg#define XtNbellIsUrgent		"bellIsUrgent"
363d522f475Smrg#define XtNbellOnReset		"bellOnReset"
364d522f475Smrg#define XtNbellSuppressTime	"bellSuppressTime"
365d522f475Smrg#define XtNboldColors		"boldColors"
366d522f475Smrg#define XtNboldFont		"boldFont"
367d522f475Smrg#define XtNboldMode		"boldMode"
368d522f475Smrg#define XtNbrokenLinuxOSC	"brokenLinuxOSC"
369d522f475Smrg#define XtNbrokenSelections	"brokenSelections"
370d522f475Smrg#define XtNbrokenStringTerm	"brokenStringTerm"
371d522f475Smrg#define XtNc132			"c132"
372d522f475Smrg#define XtNcacheDoublesize	"cacheDoublesize"
373d522f475Smrg#define XtNcharClass		"charClass"
374d522f475Smrg#define XtNcjkWidth		"cjkWidth"
375d522f475Smrg#define XtNcolorAttrMode	"colorAttrMode"
376d522f475Smrg#define XtNcolorBDMode		"colorBDMode"
377d522f475Smrg#define XtNcolorBLMode		"colorBLMode"
378d522f475Smrg#define XtNcolorMode		"colorMode"
379d522f475Smrg#define XtNcolorRVMode		"colorRVMode"
380d522f475Smrg#define XtNcolorULMode		"colorULMode"
381d522f475Smrg#define XtNcombiningChars	"combiningChars"
382d522f475Smrg#define XtNctrlFKeys		"ctrlFKeys"
383d522f475Smrg#define XtNcurses		"curses"
384d522f475Smrg#define XtNcursorBlink		"cursorBlink"
385d522f475Smrg#define XtNcursorColor		"cursorColor"
386d522f475Smrg#define XtNcursorOffTime	"cursorOffTime"
387d522f475Smrg#define XtNcursorOnTime		"cursorOnTime"
3882eaa94a1Schristos#define XtNcursorUnderline	"cursorUnderLine"
389d522f475Smrg#define XtNcutNewline		"cutNewline"
390d522f475Smrg#define XtNcutToBeginningOfLine	"cutToBeginningOfLine"
391d522f475Smrg#define XtNdecTerminalID	"decTerminalID"
392956cc18dSsnj#define XtNdefaultString	"defaultString"
393d522f475Smrg#define XtNdeleteIsDEL		"deleteIsDEL"
39420d2c4d2Smrg#define XtNdisallowedColorOps	"disallowedColorOps"
39520d2c4d2Smrg#define XtNdisallowedFontOps	"disallowedFontOps"
39620d2c4d2Smrg#define XtNdisallowedTcapOps	"disallowedTcapOps"
39720d2c4d2Smrg#define XtNdisallowedWindowOps	"disallowedWindowOps"
398d522f475Smrg#define XtNdynamicColors	"dynamicColors"
399d522f475Smrg#define XtNeightBitControl	"eightBitControl"
400d522f475Smrg#define XtNeightBitInput	"eightBitInput"
401d522f475Smrg#define XtNeightBitOutput	"eightBitOutput"
402956cc18dSsnj#define XtNeightBitSelectTypes	"eightBitSelectTypes"
403d522f475Smrg#define XtNfaceName		"faceName"
404d522f475Smrg#define XtNfaceNameDoublesize	"faceNameDoublesize"
405d522f475Smrg#define XtNfaceSize		"faceSize"
406956cc18dSsnj#define XtNfastScroll		"fastScroll"
407d522f475Smrg#define XtNfont1		"font1"
408d522f475Smrg#define XtNfont2		"font2"
409d522f475Smrg#define XtNfont3		"font3"
410d522f475Smrg#define XtNfont4		"font4"
411d522f475Smrg#define XtNfont5		"font5"
412d522f475Smrg#define XtNfont6		"font6"
413d522f475Smrg#define XtNfontDoublesize	"fontDoublesize"
414d522f475Smrg#define XtNfontStyle		"fontStyle"
415956cc18dSsnj#define XtNfontWarnings		"fontWarnings"
416d522f475Smrg#define XtNforceBoxChars	"forceBoxChars"
41720d2c4d2Smrg#define XtNforcePackedFont	"forcePackedFont"
418d522f475Smrg#define XtNformatOtherKeys	"formatOtherKeys"
419d522f475Smrg#define XtNfreeBoldBox		"freeBoldBox"
420a1f3da82Smrg#define XtNfullscreen		"fullscreen"
421d522f475Smrg#define XtNhighlightColor	"highlightColor"
422d522f475Smrg#define XtNhighlightColorMode	"highlightColorMode"
423d522f475Smrg#define XtNhighlightReverse	"highlightReverse"
424d522f475Smrg#define XtNhighlightSelection	"highlightSelection"
425d522f475Smrg#define XtNhighlightTextColor	"highlightTextColor"
426d522f475Smrg#define XtNhpLowerleftBugCompat	"hpLowerleftBugCompat"
427d522f475Smrg#define XtNi18nSelections	"i18nSelections"
428d522f475Smrg#define XtNinitialFont		"initialFont"
429d522f475Smrg#define XtNinternalBorder	"internalBorder"
430956cc18dSsnj#define XtNitalicULMode		"italicULMode"
431d522f475Smrg#define XtNjumpScroll		"jumpScroll"
432d522f475Smrg#define XtNkeepSelection	"keepSelection"
433d522f475Smrg#define XtNkeyboardDialect	"keyboardDialect"
434d522f475Smrg#define XtNlimitResize		"limitResize"
435d522f475Smrg#define XtNlocale		"locale"
436d522f475Smrg#define XtNlocaleFilter		"localeFilter"
437d522f475Smrg#define XtNlogFile		"logFile"
438d522f475Smrg#define XtNlogInhibit		"logInhibit"
439d522f475Smrg#define XtNlogging		"logging"
440d522f475Smrg#define XtNloginShell		"loginShell"
441d522f475Smrg#define XtNmarginBell		"marginBell"
442956cc18dSsnj#define XtNmaximized		"maximized"
443d522f475Smrg#define XtNmenuBar		"menuBar"
444d522f475Smrg#define XtNmenuHeight		"menuHeight"
445d522f475Smrg#define XtNmetaSendsEscape	"metaSendsEscape"
446d522f475Smrg#define XtNmkSamplePass		"mkSamplePass"
447d522f475Smrg#define XtNmkSampleSize		"mkSampleSize"
448d522f475Smrg#define XtNmkWidth		"mkWidth"
449d522f475Smrg#define XtNmodifyCursorKeys	"modifyCursorKeys"
450d522f475Smrg#define XtNmodifyFunctionKeys	"modifyFunctionKeys"
451d522f475Smrg#define XtNmodifyKeypadKeys	"modifyKeypadKeys"
452d522f475Smrg#define XtNmodifyOtherKeys	"modifyOtherKeys"
453d522f475Smrg#define XtNmodifyStringKeys	"modifyStringKeys"
454d522f475Smrg#define XtNmultiClickTime	"multiClickTime"
455d522f475Smrg#define XtNmultiScroll		"multiScroll"
456d522f475Smrg#define XtNnMarginBell		"nMarginBell"
457d522f475Smrg#define XtNnumLock		"numLock"
458d522f475Smrg#define XtNoldXtermFKeys	"oldXtermFKeys"
459d522f475Smrg#define XtNpointerColor		"pointerColor"
460d522f475Smrg#define XtNpointerColorBackground "pointerColorBackground"
461d522f475Smrg#define XtNpointerMode		"pointerMode"
462d522f475Smrg#define XtNpointerShape		"pointerShape"
463d522f475Smrg#define XtNpopOnBell		"popOnBell"
464d522f475Smrg#define XtNprintAttributes	"printAttributes"
465d522f475Smrg#define XtNprinterAutoClose	"printerAutoClose"
466d522f475Smrg#define XtNprinterCommand	"printerCommand"
467d522f475Smrg#define XtNprinterControlMode	"printerControlMode"
468d522f475Smrg#define XtNprinterExtent	"printerExtent"
469d522f475Smrg#define XtNprinterFormFeed	"printerFormFeed"
47020d2c4d2Smrg#define XtNprinterNewLine	"printerNewLine"
471d522f475Smrg#define XtNquietGrab		"quietGrab"
472d522f475Smrg#define XtNrenderFont		"renderFont"
473d522f475Smrg#define XtNresizeGravity	"resizeGravity"
474956cc18dSsnj#define XtNretryInputMethod     "retryInputMethod"
475d522f475Smrg#define XtNreverseWrap		"reverseWrap"
476d522f475Smrg#define XtNrightScrollBar	"rightScrollBar"
477d522f475Smrg#define XtNsaveLines		"saveLines"
478d522f475Smrg#define XtNscrollBar		"scrollBar"
479d522f475Smrg#define XtNscrollBarBorder	"scrollBarBorder"
480d522f475Smrg#define XtNscrollKey		"scrollKey"
481d522f475Smrg#define XtNscrollLines		"scrollLines"
482d522f475Smrg#define XtNscrollPos		"scrollPos"
483d522f475Smrg#define XtNscrollTtyOutput	"scrollTtyOutput"
484d522f475Smrg#define XtNselectToClipboard	"selectToClipboard"
485d522f475Smrg#define XtNshiftFonts		"shiftFonts"
486d522f475Smrg#define XtNshowBlinkAsBold	"showBlinkAsBold"
487d522f475Smrg#define XtNshowMissingGlyphs	"showMissingGlyphs"
488492d43a5Smrg#define XtNshowWrapMarks	"showWrapMarks"
489d522f475Smrg#define XtNsignalInhibit	"signalInhibit"
490d522f475Smrg#define XtNtekGeometry		"tekGeometry"
491d522f475Smrg#define XtNtekInhibit		"tekInhibit"
492d522f475Smrg#define XtNtekSmall		"tekSmall"
493d522f475Smrg#define XtNtekStartup		"tekStartup"
494d522f475Smrg#define XtNtiXtraScroll		"tiXtraScroll"
495d522f475Smrg#define XtNtiteInhibit		"titeInhibit"
49620d2c4d2Smrg#define XtNtitleModes		"titleModes"
497d522f475Smrg#define XtNtoolBar		"toolBar"
498d522f475Smrg#define XtNtrimSelection	"trimSelection"
499d522f475Smrg#define XtNunderLine		"underLine"
500d522f475Smrg#define XtNuseClipping		"useClipping"
501d522f475Smrg#define XtNutf8			"utf8"
502d522f475Smrg#define XtNutf8Latin1		"utf8Latin1"
503956cc18dSsnj#define XtNutf8SelectTypes	"utf8SelectTypes"
504d522f475Smrg#define XtNutf8Title		"utf8Title"
505d522f475Smrg#define XtNveryBoldColors	"veryBoldColors"
506d522f475Smrg#define XtNvisualBell		"visualBell"
507d522f475Smrg#define XtNvisualBellDelay	"visualBellDelay"
508d522f475Smrg#define XtNvt100Graphics	"vt100Graphics"
509d522f475Smrg#define XtNwideBoldFont		"wideBoldFont"
510d522f475Smrg#define XtNwideChars		"wideChars"
511d522f475Smrg#define XtNwideFont		"wideFont"
512d522f475Smrg#define XtNximFont		"ximFont"
513d522f475Smrg#define XtNxmcAttributes	"xmcAttributes"
514d522f475Smrg#define XtNxmcGlitch		"xmcGlitch"
515d522f475Smrg#define XtNxmcInline		"xmcInline"
516d522f475Smrg#define XtNxmcMoveSGR		"xmcMoveSGR"
517d522f475Smrg
518d522f475Smrg#define XtCAllowC1Printable	"AllowC1Printable"
51920d2c4d2Smrg#define XtCAllowColorOps	"AllowColorOps"
5202eaa94a1Schristos#define XtCAllowFontOps		"AllowFontOps"
52120d2c4d2Smrg#define XtCAllowScrollLock	"AllowScrollLock"
522d522f475Smrg#define XtCAllowSendEvents	"AllowSendEvents"
5232eaa94a1Schristos#define XtCAllowTcapOps		"AllowTcapOps"
524d522f475Smrg#define XtCAllowTitleOps	"AllowTitleOps"
525d522f475Smrg#define XtCAllowWindowOps	"AllowWindowOps"
526d522f475Smrg#define XtCAltIsNotMeta		"AltIsNotMeta"
527d522f475Smrg#define XtCAltSendsEscape	"AltSendsEscape"
528d522f475Smrg#define XtCAlwaysBoldMode	"AlwaysBoldMode"
529d522f475Smrg#define XtCAlwaysHighlight	"AlwaysHighlight"
530d522f475Smrg#define XtCAlwaysUseMods	"AlwaysUseMods"
531d522f475Smrg#define XtCAnswerbackString	"AnswerbackString"
532d522f475Smrg#define XtCAppcursorDefault	"AppcursorDefault"
533d522f475Smrg#define XtCAppkeypadDefault	"AppkeypadDefault"
534d522f475Smrg#define XtCAutoWrap		"AutoWrap"
535d522f475Smrg#define XtCAwaitInput		"AwaitInput"
536d522f475Smrg#define XtCBackarrowKey		"BackarrowKey"
537d522f475Smrg#define XtCBellIsUrgent		"BellIsUrgent"
538d522f475Smrg#define XtCBellOnReset		"BellOnReset"
539d522f475Smrg#define XtCBellSuppressTime	"BellSuppressTime"
540d522f475Smrg#define XtCBoldFont		"BoldFont"
541d522f475Smrg#define XtCBoldMode		"BoldMode"
542d522f475Smrg#define XtCBrokenLinuxOSC	"BrokenLinuxOSC"
543d522f475Smrg#define XtCBrokenSelections	"BrokenSelections"
544d522f475Smrg#define XtCBrokenStringTerm	"BrokenStringTerm"
545d522f475Smrg#define XtCC132			"C132"
546d522f475Smrg#define XtCCacheDoublesize	"CacheDoublesize"
547d522f475Smrg#define XtCCharClass		"CharClass"
548a1f3da82Smrg#define XtCCjkWidth		"CjkWidth"
549956cc18dSsnj#define XtCColorAttrMode	"ColorAttrMode"
550d522f475Smrg#define XtCColorMode		"ColorMode"
551d522f475Smrg#define XtCColumn		"Column"
552d522f475Smrg#define XtCCombiningChars	"CombiningChars"
553d522f475Smrg#define XtCCtrlFKeys		"CtrlFKeys"
554d522f475Smrg#define XtCCurses		"Curses"
555d522f475Smrg#define XtCCursorBlink		"CursorBlink"
556d522f475Smrg#define XtCCursorOffTime	"CursorOffTime"
557d522f475Smrg#define XtCCursorOnTime		"CursorOnTime"
5582eaa94a1Schristos#define XtCCursorUnderline	"CursorUnderLine"
559d522f475Smrg#define XtCCutNewline		"CutNewline"
560d522f475Smrg#define XtCCutToBeginningOfLine	"CutToBeginningOfLine"
561d522f475Smrg#define XtCDecTerminalID	"DecTerminalID"
562956cc18dSsnj#define XtCDefaultString	"DefaultString"
563d522f475Smrg#define XtCDeleteIsDEL		"DeleteIsDEL"
56420d2c4d2Smrg#define XtCDisallowedColorOps	"DisallowedColorOps"
56520d2c4d2Smrg#define XtCDisallowedFontOps	"DisallowedFontOps"
56620d2c4d2Smrg#define XtCDisallowedTcapOps	"DisallowedTcapOps"
56720d2c4d2Smrg#define XtCDisallowedWindowOps	"DisallowedWindowOps"
568d522f475Smrg#define XtCDynamicColors	"DynamicColors"
569d522f475Smrg#define XtCEightBitControl	"EightBitControl"
570d522f475Smrg#define XtCEightBitInput	"EightBitInput"
571d522f475Smrg#define XtCEightBitOutput	"EightBitOutput"
572956cc18dSsnj#define XtCEightBitSelectTypes	"EightBitSelectTypes"
573d522f475Smrg#define XtCFaceName		"FaceName"
574d522f475Smrg#define XtCFaceNameDoublesize	"FaceNameDoublesize"
575d522f475Smrg#define XtCFaceSize		"FaceSize"
576956cc18dSsnj#define XtCFastScroll		"FastScroll"
577d522f475Smrg#define XtCFont1		"Font1"
578d522f475Smrg#define XtCFont2		"Font2"
579d522f475Smrg#define XtCFont3		"Font3"
580d522f475Smrg#define XtCFont4		"Font4"
581d522f475Smrg#define XtCFont5		"Font5"
582d522f475Smrg#define XtCFont6		"Font6"
583d522f475Smrg#define XtCFontDoublesize	"FontDoublesize"
584d522f475Smrg#define XtCFontStyle		"FontStyle"
585956cc18dSsnj#define XtCFontWarnings		"FontWarnings"
586d522f475Smrg#define XtCForceBoxChars	"ForceBoxChars"
58720d2c4d2Smrg#define XtCForcePackedFont	"ForcePackedFont"
588d522f475Smrg#define XtCFormatOtherKeys	"FormatOtherKeys"
589d522f475Smrg#define XtCFreeBoldBox		"FreeBoldBox"
590a1f3da82Smrg#define XtCFullscreen		"Fullscreen"
591d522f475Smrg#define XtCHighlightColorMode	"HighlightColorMode"
592d522f475Smrg#define XtCHighlightReverse	"HighlightReverse"
593d522f475Smrg#define XtCHighlightSelection	"HighlightSelection"
594d522f475Smrg#define XtCHpLowerleftBugCompat	"HpLowerleftBugCompat"
595d522f475Smrg#define XtCI18nSelections	"I18nSelections"
596d522f475Smrg#define XtCInitialFont		"InitialFont"
597d522f475Smrg#define XtCJumpScroll		"JumpScroll"
598d522f475Smrg#define XtCKeepSelection	"KeepSelection"
599d522f475Smrg#define XtCKeyboardDialect	"KeyboardDialect"
600d522f475Smrg#define XtCLimitResize		"LimitResize"
601d522f475Smrg#define XtCLocale		"Locale"
602d522f475Smrg#define XtCLocaleFilter		"LocaleFilter"
603d522f475Smrg#define XtCLogInhibit		"LogInhibit"
604d522f475Smrg#define XtCLogfile		"Logfile"
605d522f475Smrg#define XtCLogging		"Logging"
606d522f475Smrg#define XtCLoginShell		"LoginShell"
607d522f475Smrg#define XtCMarginBell		"MarginBell"
608956cc18dSsnj#define XtCMaximized		"Maximized"
609d522f475Smrg#define XtCMenuBar		"MenuBar"
610d522f475Smrg#define XtCMenuHeight		"MenuHeight"
611d522f475Smrg#define XtCMetaSendsEscape	"MetaSendsEscape"
612d522f475Smrg#define XtCMkSamplePass 	"MkSamplePass"
613d522f475Smrg#define XtCMkSampleSize 	"MkSampleSize"
614a1f3da82Smrg#define XtCMkWidth		"MkWidth"
615d522f475Smrg#define XtCModifyCursorKeys	"ModifyCursorKeys"
616d522f475Smrg#define XtCModifyFunctionKeys	"ModifyFunctionKeys"
617d522f475Smrg#define XtCModifyKeypadKeys	"ModifyKeypadKeys"
618d522f475Smrg#define XtCModifyOtherKeys	"ModifyOtherKeys"
619d522f475Smrg#define XtCModifyStringKeys	"ModifyStringKeys"
620d522f475Smrg#define XtCMultiClickTime	"MultiClickTime"
621d522f475Smrg#define XtCMultiScroll		"MultiScroll"
622d522f475Smrg#define XtCNumLock		"NumLock"
623d522f475Smrg#define XtCOldXtermFKeys	"OldXtermFKeys"
624d522f475Smrg#define XtCPointerMode		"PointerMode"
625d522f475Smrg#define XtCPopOnBell		"PopOnBell"
626d522f475Smrg#define XtCPrintAttributes	"PrintAttributes"
627d522f475Smrg#define XtCPrinterAutoClose	"PrinterAutoClose"
628d522f475Smrg#define XtCPrinterCommand	"PrinterCommand"
629d522f475Smrg#define XtCPrinterControlMode	"PrinterControlMode"
630d522f475Smrg#define XtCPrinterExtent	"PrinterExtent"
631d522f475Smrg#define XtCPrinterFormFeed	"PrinterFormFeed"
63220d2c4d2Smrg#define XtCPrinterNewLine	"PrinterNewLine"
633d522f475Smrg#define XtCQuietGrab		"QuietGrab"
634d522f475Smrg#define XtCRenderFont		"RenderFont"
635d522f475Smrg#define XtCResizeGravity	"ResizeGravity"
636956cc18dSsnj#define XtCRetryInputMethod     "RetryInputMethod"
637d522f475Smrg#define XtCReverseWrap		"ReverseWrap"
638d522f475Smrg#define XtCRightScrollBar	"RightScrollBar"
639d522f475Smrg#define XtCSaveLines		"SaveLines"
640d522f475Smrg#define XtCScrollBar		"ScrollBar"
641d522f475Smrg#define XtCScrollBarBorder	"ScrollBarBorder"
642d522f475Smrg#define XtCScrollCond		"ScrollCond"
643d522f475Smrg#define XtCScrollLines		"ScrollLines"
644d522f475Smrg#define XtCScrollPos		"ScrollPos"
645d522f475Smrg#define XtCSelectToClipboard	"SelectToClipboard"
646d522f475Smrg#define XtCShiftFonts		"ShiftFonts"
647d522f475Smrg#define XtCShowBlinkAsBold	"ShowBlinkAsBold"
648d522f475Smrg#define XtCShowMissingGlyphs	"ShowMissingGlyphs"
649492d43a5Smrg#define XtCShowWrapMarks	"ShowWrapMarks"
650d522f475Smrg#define XtCSignalInhibit	"SignalInhibit"
651d522f475Smrg#define XtCTekInhibit		"TekInhibit"
652d522f475Smrg#define XtCTekSmall		"TekSmall"
653d522f475Smrg#define XtCTekStartup		"TekStartup"
654d522f475Smrg#define XtCTiXtraScroll		"TiXtraScroll"
655d522f475Smrg#define XtCTiteInhibit		"TiteInhibit"
65620d2c4d2Smrg#define XtCTitleModes		"TitleModes"
657d522f475Smrg#define XtCToolBar		"ToolBar"
658d522f475Smrg#define XtCTrimSelection	"TrimSelection"
659d522f475Smrg#define XtCUnderLine		"UnderLine"
660d522f475Smrg#define XtCUseClipping		"UseClipping"
661d522f475Smrg#define XtCUtf8			"Utf8"
662d522f475Smrg#define XtCUtf8Latin1		"Utf8Latin1"
663956cc18dSsnj#define XtCUtf8SelectTypes	"Utf8SelectTypes"
664d522f475Smrg#define XtCUtf8Title		"Utf8Title"
665d522f475Smrg#define XtCVT100Graphics	"VT100Graphics"
666d522f475Smrg#define XtCVeryBoldColors	"VeryBoldColors"
667d522f475Smrg#define XtCVisualBell		"VisualBell"
668d522f475Smrg#define XtCVisualBellDelay	"VisualBellDelay"
669d522f475Smrg#define XtCWideBoldFont		"WideBoldFont"
670d522f475Smrg#define XtCWideChars		"WideChars"
671d522f475Smrg#define XtCWideFont		"WideFont"
672d522f475Smrg#define XtCXimFont		"XimFont"
673d522f475Smrg#define XtCXmcAttributes	"XmcAttributes"
674d522f475Smrg#define XtCXmcGlitch		"XmcGlitch"
675d522f475Smrg#define XtCXmcInline		"XmcInline"
676d522f475Smrg#define XtCXmcMoveSGR		"XmcMoveSGR"
677d522f475Smrg
678d522f475Smrg#if defined(NO_ACTIVE_ICON) && !defined(XtNgeometry)
679d522f475Smrg#define XtNgeometry		"geometry"
680d522f475Smrg#define XtCGeometry		"Geometry"
681d522f475Smrg#endif
682d522f475Smrg
683d522f475Smrg#if OPT_COLOR_CLASS
684d522f475Smrg#define XtCCursorColor		"CursorColor"
685d522f475Smrg#define XtCPointerColor		"PointerColor"
686d522f475Smrg#define XtCHighlightColor	"HighlightColor"
687d522f475Smrg#define XtCHighlightTextColor	"HighlightTextColor"
688d522f475Smrg#else
689d522f475Smrg#define XtCCursorColor		XtCForeground
690d522f475Smrg#define XtCPointerColor		XtCForeground
691d522f475Smrg#define XtCHighlightColor	XtCForeground
692d522f475Smrg#define XtCHighlightTextColor	XtCBackground
693d522f475Smrg#endif
694d522f475Smrg
695d522f475Smrg/***====================================================================***/
696d522f475Smrg
697d522f475Smrg#ifdef __cplusplus
698d522f475Smrgextern "C" {
699d522f475Smrg#endif
700d522f475Smrg
701d522f475Smrgstruct XTERM_RESOURCE;
702d522f475Smrg
703d522f475Smrg/* Tekproc.c */
704d522f475Smrg#if OPT_TEK4014
705956cc18dSsnjextern TekWidget getTekWidget(Widget /* w */);
706d522f475Smrgextern int TekGetFontSize (const char * /* param */);
707d522f475Smrgextern int TekInit (void);
708d522f475Smrgextern int TekPtyData(void);
709d522f475Smrgextern void ChangeTekColors (TekWidget /* tw */, TScreen * /* screen */, ScrnColors * /* pNew */);
710d522f475Smrgextern void HandleGINInput             PROTO_XT_ACTIONS_ARGS;
711d522f475Smrgextern void TCursorToggle (TekWidget /* tw */, int /* toggle */);
712d522f475Smrgextern void TekCopy (TekWidget /* tw */);
713d522f475Smrgextern void TekEnqMouse (TekWidget /* tw */, int /* c */);
714d522f475Smrgextern void TekExpose (Widget  /* w */, XEvent * /* event */, Region  /* region */);
715d522f475Smrgextern void TekGINoff (TekWidget /* tw */);
716d522f475Smrgextern void TekRefresh (TekWidget /* tw */);
717d522f475Smrgextern void TekRepaint (TekWidget /* xw */);
718d522f475Smrgextern void TekReverseVideo (TekWidget /* tw */);
719d522f475Smrgextern void TekRun (void);
720956cc18dSsnjextern void TekSetFontSize (TekWidget /* tw */, Bool /* fromMenu */, int  /* newitem */);
721d522f475Smrgextern void TekSimulatePageButton (TekWidget /* tw */, Bool /* reset */);
722d522f475Smrg#endif
723d522f475Smrg
724d522f475Smrg/* button.c */
725492d43a5Smrg#define	MotionOff( s, t ) if (!(screen->hide_pointer)) {		\
726d522f475Smrg	    (s)->event_mask |= ButtonMotionMask;			\
727d522f475Smrg	    (s)->event_mask &= ~PointerMotionMask;			\
728d522f475Smrg	    XSelectInput(XtDisplay((t)), XtWindow((t)), (long) (s)->event_mask); }
729d522f475Smrg
730d522f475Smrg#define	MotionOn( s, t ) {						\
731d522f475Smrg	    (s)->event_mask &= ~ButtonMotionMask;			\
732d522f475Smrg	    (s)->event_mask |= PointerMotionMask;			\
733d522f475Smrg	    XSelectInput(XtDisplay((t)), XtWindow((t)), (long) (s)->event_mask); }
734d522f475Smrg
735d522f475Smrgextern Bool SendMousePosition (XtermWidget  /* w */, XEvent*  /* event */);
736d522f475Smrgextern void DiredButton                PROTO_XT_ACTIONS_ARGS;
737d522f475Smrgextern void DisownSelection (XtermWidget  /* termw */);
738d522f475Smrgextern void UnhiliteSelection (XtermWidget  /* termw */);
7396879286fSmrgextern void HandleCopySelection        PROTO_XT_ACTIONS_ARGS;
740d522f475Smrgextern void HandleInsertSelection      PROTO_XT_ACTIONS_ARGS;
741d522f475Smrgextern void HandleKeyboardSelectEnd    PROTO_XT_ACTIONS_ARGS;
742d522f475Smrgextern void HandleKeyboardSelectExtend PROTO_XT_ACTIONS_ARGS;
743d522f475Smrgextern void HandleKeyboardSelectStart  PROTO_XT_ACTIONS_ARGS;
744d522f475Smrgextern void HandleKeyboardStartExtend  PROTO_XT_ACTIONS_ARGS;
745d522f475Smrgextern void HandleSelectEnd            PROTO_XT_ACTIONS_ARGS;
746d522f475Smrgextern void HandleSelectExtend         PROTO_XT_ACTIONS_ARGS;
747d522f475Smrgextern void HandleSelectSet            PROTO_XT_ACTIONS_ARGS;
748d522f475Smrgextern void HandleSelectStart          PROTO_XT_ACTIONS_ARGS;
749d522f475Smrgextern void HandleStartExtend          PROTO_XT_ACTIONS_ARGS;
750d522f475Smrgextern void ResizeSelection (TScreen * /* screen */, int  /* rows */, int  /* cols */);
751d522f475Smrgextern void ScrollSelection (TScreen * /* screen */, int  /* amount */,  Bool /* always */);
75220d2c4d2Smrgextern void TrackMouse (XtermWidget /* xw */, int /* func */, CELL * /* start */, int /* firstrow */, int /* lastrow */);
753d522f475Smrgextern void ViButton                   PROTO_XT_ACTIONS_ARGS;
754d522f475Smrg
75520d2c4d2Smrgextern int xtermUtf8ToTextList(XtermWidget /* xw */, XTextProperty * /* text_prop */, char *** /* text_list */, int * /* text_list_count */);
75620d2c4d2Smrg
757d522f475Smrg#if OPT_DEC_LOCATOR
758d522f475Smrgextern void GetLocatorPosition (XtermWidget  /* w */);
759d522f475Smrgextern void InitLocatorFilter (XtermWidget  /* w */);
760d522f475Smrg#endif	/* OPT_DEC_LOCATOR */
761d522f475Smrg
762d522f475Smrg#if OPT_FOCUS_EVENT
763d522f475Smrgextern void SendFocusButton(XtermWidget /* xw */, XFocusChangeEvent * /* event */);
764d522f475Smrg#else
765d522f475Smrg#define SendFocusBotton(xw, event) /* nothing */
766d522f475Smrg#endif
767d522f475Smrg
768d522f475Smrg#if OPT_PASTE64
769d522f475Smrgextern void AppendToSelectionBuffer (TScreen * /* screen */, unsigned  /* c */);
770d522f475Smrgextern void ClearSelectionBuffer (TScreen * /* screen */);
77120d2c4d2Smrgextern void CompleteSelection (XtermWidget  /* xw */, String * /* args */, Cardinal  /* len */);
772d522f475Smrgextern void xtermGetSelection (Widget  /* w */, Time  /* ev_time */, String * /* params */, Cardinal  /* num_params */, Atom * /* targets */);
773d522f475Smrg#endif
774d522f475Smrg
775d522f475Smrg#if OPT_READLINE
776d522f475Smrgextern void ReadLineButton             PROTO_XT_ACTIONS_ARGS;
777d522f475Smrg#endif
778d522f475Smrg
779d522f475Smrg#if OPT_WIDE_CHARS
780d522f475Smrgextern Bool iswide(int  /* i */);
78120d2c4d2Smrg#define WideCells(n) (((IChar)(n) >= first_widechar) ? my_wcwidth((wchar_t) (n)) : 1)
78220d2c4d2Smrg#define isWide(n)    (((IChar)(n) >= first_widechar) && iswide(n))
78320d2c4d2Smrg#else
78420d2c4d2Smrg#define WideCells(n) 1
785d522f475Smrg#endif
786d522f475Smrg
787d522f475Smrg/* cachedCgs.c */
788d522f475Smrgextern CgsEnum getCgsId(XtermWidget /*xw*/, VTwin * /*cgsWin*/, GC /*gc*/);
789d522f475Smrgextern GC freeCgs(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/);
790d522f475Smrgextern GC getCgsGC(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/);
791d522f475Smrgextern Pixel getCgsBack(XtermWidget /*xw*/, VTwin * /*cgsWin*/, GC /*gc*/);
792d522f475Smrgextern Pixel getCgsFore(XtermWidget /*xw*/, VTwin * /*cgsWin*/, GC /*gc*/);
793d522f475Smrgextern XTermFonts * getCgsFont(XtermWidget /*xw*/, VTwin * /*cgsWin*/, GC /*gc*/);
794d522f475Smrgextern void clrCgsFonts(XtermWidget /*xw*/, VTwin * /*cgsWin*/, XTermFonts * /*font*/);
795d522f475Smrgextern void copyCgs(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*dstCgsId*/, CgsEnum /*srcCgsId*/);
796d522f475Smrgextern void redoCgs(XtermWidget /*xw*/, Pixel /*fg*/, Pixel /*bg*/, CgsEnum /*cgsId*/);
797d522f475Smrgextern void setCgsBack(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/, Pixel /*bg*/);
798d522f475Smrgextern void setCgsCSet(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/, unsigned /*cset*/);
799d522f475Smrgextern void setCgsFont(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/, XTermFonts * /*font*/);
800d522f475Smrgextern void setCgsFore(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/, Pixel /*fg*/);
801d522f475Smrgextern void swapCgs(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*dstCgsId*/, CgsEnum /*srcCgsId*/);
802d522f475Smrg
803d522f475Smrg#ifdef NO_LEAKS
804d522f475Smrgextern void noleaks_cachedCgs (XtermWidget /* xw */);
805d522f475Smrg#endif
806d522f475Smrg
807d522f475Smrg/* charproc.c */
808d522f475Smrgextern Bool CheckBufPtrs (TScreen * /* screen */);
809492d43a5Smrgextern Bool set_cursor_gcs (XtermWidget /* xw */);
810956cc18dSsnjextern int VTInit (XtermWidget /* xw */);
811d522f475Smrgextern void FindFontSelection (XtermWidget /* xw */, const char * /* atom_name */, Bool  /* justprobe */);
812d522f475Smrgextern void HideCursor (void);
81320d2c4d2Smrgextern void RestartBlinking(TScreen * /* screen */);
814d522f475Smrgextern void ShowCursor (void);
81520d2c4d2Smrgextern void SwitchBufPtrs (TScreen * /* screen */, int /* toBuf */);
816d522f475Smrgextern void ToggleAlternate (XtermWidget /* xw */);
817a1f3da82Smrgextern void VTInitTranslations (void);
818d522f475Smrgextern void VTReset (XtermWidget /* xw */, int /* full */, int /* saved */);
819956cc18dSsnjextern void VTRun (XtermWidget /* xw */);
820d522f475Smrgextern void dotext (XtermWidget /* xw */, int  /* charset */, IChar * /* buf */, Cardinal  /* len */);
821d522f475Smrgextern void releaseCursorGCs(XtermWidget /*xw*/);
822d522f475Smrgextern void releaseWindowGCs(XtermWidget /*xw*/, VTwin * /*win*/);
823d522f475Smrgextern void resetCharsets (TScreen * /* screen */);
824d522f475Smrgextern void set_max_col(TScreen *  /* screen */, int  /* cols */);
825d522f475Smrgextern void set_max_row(TScreen *  /* screen */, int  /* rows */);
826d522f475Smrgextern void set_tb_margins (TScreen * /* screen */, int  /* top */, int  /* bottom */);
827d522f475Smrgextern void unparse_end (XtermWidget /* xw */);
828d522f475Smrgextern void unparseputc (XtermWidget /* xw */, int  /* c */);
829d522f475Smrgextern void unparseputc1 (XtermWidget /* xw */, int  /* c */);
830d522f475Smrgextern void unparseputn (XtermWidget /* xw */, unsigned /* n */);
83120d2c4d2Smrgextern void unparseputs (XtermWidget /* xw */, const char * /* s */);
832d522f475Smrgextern void unparseseq (XtermWidget /* xw */, ANSI * /* ap */);
833492d43a5Smrgextern void v_write (int  /* f */, const Char * /* d */, unsigned  /* len */);
834d522f475Smrgextern void xtermAddInput(Widget  /* w */);
835d522f475Smrg
836d522f475Smrg#if OPT_BLINK_CURS
837d522f475Smrgextern void ToggleCursorBlink(TScreen * /* screen */);
838d522f475Smrg#endif
839d522f475Smrg
840d522f475Smrg#if OPT_ISO_COLORS
841d522f475Smrgextern void SGR_Background (XtermWidget /* xw */, int  /* color */);
842d522f475Smrgextern void SGR_Foreground (XtermWidget /* xw */, int  /* color */);
843d522f475Smrg#endif
844d522f475Smrg
845d522f475Smrg#ifdef NO_LEAKS
846d522f475Smrgextern void noleaks_charproc (void);
847d522f475Smrg#endif
848d522f475Smrg
849d522f475Smrg/* charsets.c */
850d522f475Smrgextern unsigned xtermCharSetIn (unsigned  /* code */, int  /* charset */);
8512eaa94a1Schristosextern int xtermCharSetOut (XtermWidget /* xw */, IChar * /* buf */, IChar * /* ptr */, int  /* charset */);
852d522f475Smrg
853d522f475Smrg/* cursor.c */
854d522f475Smrgextern void AdjustSavedCursor (XtermWidget /* xw */, int /* adjust */);
855d522f475Smrgextern void CarriageReturn (TScreen * /* screen */);
856d522f475Smrgextern void CursorBack (XtermWidget /* xw */, int   /* n */);
857d522f475Smrgextern void CursorDown (TScreen * /* screen */, int   /* n */);
858d522f475Smrgextern void CursorForward (TScreen * /* screen */, int   /* n */);
859d522f475Smrgextern void CursorNextLine (TScreen * /* screen */, int  /* count */);
860d522f475Smrgextern void CursorPrevLine (TScreen * /* screen */, int  /* count */);
861d522f475Smrgextern void CursorRestore (XtermWidget  /* xw */);
862d522f475Smrgextern void CursorSave (XtermWidget  /* xw */);
863d522f475Smrgextern void CursorSet (TScreen * /* screen */, int  /* row */, int  /* col */, unsigned  /* flags */);
864d522f475Smrgextern void CursorUp (TScreen * /* screen */, int   /* n */);
865d522f475Smrgextern void RevIndex (XtermWidget /* xw */, int  /* amount */);
866d522f475Smrgextern void xtermIndex (XtermWidget /* xw */, int  /* amount */);
867d522f475Smrg
868d522f475Smrg#if OPT_TRACE
869d522f475Smrgextern int set_cur_col(TScreen * /* screen */, int  /* value */);
870d522f475Smrgextern int set_cur_row(TScreen * /* screen */, int  /* value */);
871d522f475Smrg#else
872d522f475Smrg#define set_cur_col(screen, value) screen->cur_col = value
873d522f475Smrg#define set_cur_row(screen, value) screen->cur_row = value
874d522f475Smrg#endif
875d522f475Smrg
876d522f475Smrg/* doublechr.c */
877d522f475Smrgextern void xterm_DECDHL (XtermWidget /* xw */, Bool  /* top */);
878d522f475Smrgextern void xterm_DECSWL (XtermWidget /* xw */);
879d522f475Smrgextern void xterm_DECDWL (XtermWidget /* xw */);
880d522f475Smrg#if OPT_DEC_CHRSET
881d522f475Smrgextern int xterm_Double_index(XtermWidget /* xw */, unsigned  /* chrset */, unsigned  /* flags */);
882d522f475Smrgextern GC xterm_DoubleGC(XtermWidget /* xw */, unsigned  /* chrset */, unsigned  /* flags */, GC  /* old_gc */, int * /* inxp */);
883d522f475Smrg#endif
884d522f475Smrg
885d522f475Smrg/* input.c */
886956cc18dSsnjextern unsigned xtermParamToState (XtermWidget /* xw */, unsigned /* param */);
887956cc18dSsnjextern unsigned xtermStateToParam (XtermWidget /* xw */, unsigned /* state */);
888d522f475Smrgextern Bool xtermDeleteIsDEL (XtermWidget /* xw */);
889d522f475Smrgextern void Input (XtermWidget /* xw */, XKeyEvent */* event */, Bool /* eightbit */);
89020d2c4d2Smrgextern void StringInput (XtermWidget /* xw */, const Char * /* string */, size_t  /* nbytes */);
891d522f475Smrg
892d522f475Smrg#if OPT_NUM_LOCK
893d522f475Smrgextern void VTInitModifiers(XtermWidget /* xw */);
894d522f475Smrg#endif
895d522f475Smrg
896956cc18dSsnj/* linedata.c */
897956cc18dSsnjextern LineData *getLineData(TScreen * /* screen */, int /* row */);
898956cc18dSsnjextern void copyLineData(LineData * /* dst */, LineData * /* src */);
899956cc18dSsnjextern void initLineData(XtermWidget /* xw */);
900956cc18dSsnj
901956cc18dSsnjextern CellData *newCellData(XtermWidget /* xw */, Cardinal /* count */);
902956cc18dSsnjextern void saveCellData(TScreen * /* screen */, CellData * /* data */, Cardinal /* cell */, LineData * /* ld */, int /* column */);
903956cc18dSsnjextern void restoreCellData(TScreen * /* screen */, CellData * /* data */, Cardinal /* cell */, LineData * /* ld */, int /* column */);
904956cc18dSsnj
905d522f475Smrg/* main.c */
906d522f475Smrg#ifndef __UNIXOS2__
907d522f475Smrg#define ENVP_ARG /**/
908d522f475Smrg#else
909d522f475Smrg#define ENVP_ARG , char ** /* envp */
910d522f475Smrg#endif
911d522f475Smrg
912d522f475Smrgextern int main (int  /* argc */, char ** /* argv */ ENVP_ARG);
913d522f475Smrgextern int GetBytesAvailable (int  /* fd */);
914d522f475Smrgextern int kill_process_group (int  /* pid */, int  /* sig */);
915d522f475Smrgextern int nonblocking_wait (void);
916d522f475Smrg
917d522f475Smrg#if OPT_PTY_HANDSHAKE
918d522f475Smrgextern void first_map_occurred (void);
919d522f475Smrg#else
920d522f475Smrg#define first_map_occurred() /* nothing */
921d522f475Smrg#endif
922d522f475Smrg
923d522f475Smrg#ifdef SIGNAL_T
924d522f475Smrgextern SIGNAL_T Exit (int  /* n */);
925d522f475Smrg#endif
926d522f475Smrg
927d522f475Smrg#ifndef SIG_ATOMIC_T
928d522f475Smrg#define SIG_ATOMIC_T int
929d522f475Smrg#endif
930d522f475Smrg
931d522f475Smrg#if OPT_WIDE_CHARS
93220d2c4d2Smrgextern unsigned first_widechar;
933d522f475Smrgextern int (*my_wcwidth)(wchar_t);
934d522f475Smrg#endif
935d522f475Smrg
936d522f475Smrg/* menu.c */
937d522f475Smrgextern void do_hangup          PROTO_XT_CALLBACK_ARGS;
938d522f475Smrgextern void repairSizeHints    (void);
939d522f475Smrgextern void show_8bit_control  (Bool  /* value */);
940d522f475Smrg
941d522f475Smrg/* misc.c */
94220d2c4d2Smrgextern Bool AllocateTermColor(XtermWidget, ScrnColors *, int, const char *, Bool);
943d522f475Smrgextern Cursor make_colored_cursor (unsigned /* cursorindex */, unsigned long  /* fg */, unsigned long  /* bg */);
944d522f475Smrgextern OptionHelp * sortedOpts(OptionHelp *, XrmOptionDescRec *, Cardinal);
945d522f475Smrgextern Window WMFrameWindow(XtermWidget /* termw */);
946d522f475Smrgextern XrmOptionDescRec * sortedOptDescs(XrmOptionDescRec *, Cardinal);
947956cc18dSsnjextern XtermWidget getXtermWidget(Widget /* w */);
948d522f475Smrgextern char *udk_lookup (int /* keycode */, int * /* len */);
949d522f475Smrgextern char *xtermEnvEncoding (void);
950d522f475Smrgextern char *xtermEnvLocale (void);
951d522f475Smrgextern char *xtermFindShell(char * /* leaf */, Bool  /* warning */);
952d522f475Smrgextern char *xtermVersion(void);
953d522f475Smrgextern const char *SysErrorMsg (int /* n */);
954d522f475Smrgextern const char *SysReasonMsg (int /* n */);
95520d2c4d2Smrgextern int ResetAnsiColorRequest(XtermWidget, char *, int);
956d522f475Smrgextern int XStrCmp (char * /* s1 */, char * /* s2 */);
957d522f475Smrgextern int creat_as (uid_t  /* uid */, gid_t  /* gid */, Bool  /* append */, char * /* pathname */, int  /* mode */);
958d522f475Smrgextern int open_userfile (uid_t  /* uid */, gid_t  /* gid */, char * /* path */, Bool  /* append */);
959d522f475Smrgextern int xerror (Display * /* d */, XErrorEvent * /* ev */);
960d522f475Smrgextern int xioerror (Display * /* dpy */);
961d522f475Smrgextern int xtermResetIds(TScreen *  /* screen */);
96220d2c4d2Smrgextern void Bell (XtermWidget /* xw */, int  /* which */, int  /* percent */);
963956cc18dSsnjextern void ChangeIconName (XtermWidget /* xw */, char * /* name */);
964956cc18dSsnjextern void ChangeTitle (XtermWidget /* xw */, char * /* name */);
965d522f475Smrgextern void ChangeXprop (char * /* name */);
966d522f475Smrgextern void Cleanup (int  /* code */);
967d522f475Smrgextern void HandleBellPropertyChange   PROTO_XT_EV_HANDLER_ARGS;
968d522f475Smrgextern void HandleEightBitKeyPressed   PROTO_XT_ACTIONS_ARGS;
969d522f475Smrgextern void HandleEnterWindow          PROTO_XT_EV_HANDLER_ARGS;
970d522f475Smrgextern void HandleFocusChange          PROTO_XT_EV_HANDLER_ARGS;
971d522f475Smrgextern void HandleInterpret            PROTO_XT_ACTIONS_ARGS;
972d522f475Smrgextern void HandleKeyPressed           PROTO_XT_ACTIONS_ARGS;
973d522f475Smrgextern void HandleLeaveWindow          PROTO_XT_EV_HANDLER_ARGS;
974d522f475Smrgextern void HandleSpawnTerminal        PROTO_XT_ACTIONS_ARGS;
975d522f475Smrgextern void HandleStringEvent          PROTO_XT_ACTIONS_ARGS;
97620d2c4d2Smrgextern void Panic (const char * /* s */, int  /* a */);
977d522f475Smrgextern void Redraw (void);
978d522f475Smrgextern void ReverseOldColors (void);
979a1f3da82Smrgextern void SysError (int /* i */) GCC_NORETURN;
980d522f475Smrgextern void VisualBell (void);
981d522f475Smrgextern void do_dcs (XtermWidget /* xw */, Char * /* buf */, size_t  /* len */);
982492d43a5Smrgextern void do_decrpm (XtermWidget /* xw */, int /* nparam */, int *  /* params */);
98320d2c4d2Smrgextern void do_osc (XtermWidget /* xw */, Char * /* buf */, size_t  /* len */, int  /* final */);
984492d43a5Smrgextern void do_rpm (XtermWidget /* xw */, int /* nparam */, int *  /* params */);
985d522f475Smrgextern void do_xevents (void);
986d522f475Smrgextern void end_tek_mode (void);
987d522f475Smrgextern void end_vt_mode (void);
988d522f475Smrgextern void hide_tek_window (void);
989d522f475Smrgextern void hide_vt_window (void);
990d522f475Smrgextern void reset_decudk (void);
991d522f475Smrgextern void set_tek_visibility (Bool  /* on */);
992d522f475Smrgextern void set_vt_visibility (Bool  /* on */);
993d522f475Smrgextern void switch_modes (Bool  /* tovt */);
994d522f475Smrgextern void timestamp_filename(char * /* dst */, const char * /* src */);
995d522f475Smrgextern void xevents (void);
996d522f475Smrgextern void xt_error (String  /* message */);
997956cc18dSsnjextern void xtermBell(XtermWidget /* xw */, int /* which */, int /* percent */);
998d522f475Smrgextern void xtermCopyEnv (char ** /* oldenv */);
999d522f475Smrgextern void xtermDisplayCursor (XtermWidget /* xw */);
100020d2c4d2Smrgextern void xtermSetenv (const char * /* var */, const char * /* value */);
1001d522f475Smrgextern void xtermShowPointer (XtermWidget /* xw */, Bool /* enable */);
1002d522f475Smrg
1003d522f475Smrg#if OPT_DABBREV
1004d522f475Smrgextern void HandleDabbrevExpand        PROTO_XT_ACTIONS_ARGS;
1005d522f475Smrg#endif
1006d522f475Smrg
1007d522f475Smrg#if OPT_MAXIMIZE
1008d522f475Smrgextern int QueryMaximize (XtermWidget  /* termw */, unsigned * /* width */, unsigned * /* height */);
1009d522f475Smrgextern void HandleDeIconify            PROTO_XT_ACTIONS_ARGS;
1010d522f475Smrgextern void HandleIconify              PROTO_XT_ACTIONS_ARGS;
1011d522f475Smrgextern void HandleMaximize             PROTO_XT_ACTIONS_ARGS;
1012d522f475Smrgextern void HandleRestoreSize          PROTO_XT_ACTIONS_ARGS;
1013d522f475Smrgextern void RequestMaximize (XtermWidget  /* termw */, int  /* maximize */);
1014d522f475Smrg#endif
1015d522f475Smrg
101620d2c4d2Smrg#if OPT_SCROLL_LOCK
101720d2c4d2Smrgextern void GetScrollLock (TScreen * /* screen */);
101820d2c4d2Smrgextern void HandleScrollLock           PROTO_XT_ACTIONS_ARGS;
101920d2c4d2Smrgextern void ShowScrollLock (TScreen * /* screen */, Bool /* enable */);
102020d2c4d2Smrgextern void SetScrollLock (TScreen * /* screen */, Bool /* enable */);
102120d2c4d2Smrgextern void xtermShowLED (TScreen * /* screen */, Cardinal /* led_number */, Bool /* enable */);
102220d2c4d2Smrgextern void xtermClearLEDs (TScreen * /* screen */);
102320d2c4d2Smrg#else
102420d2c4d2Smrg#define ShowScrollLock(screen, enable) /* nothing */
102520d2c4d2Smrg#define SetScrollLock(screen, enable) /* nothing */
102620d2c4d2Smrg#define GetScrollLock(screen) /* nothing */
102720d2c4d2Smrg#endif
102820d2c4d2Smrg
1029d522f475Smrg#if OPT_WIDE_CHARS
1030d522f475Smrgextern Bool xtermEnvUTF8(void);
1031d522f475Smrg#else
1032d522f475Smrg#define xtermEnvUTF8() False
1033d522f475Smrg#endif
1034d522f475Smrg
1035d522f475Smrg#ifdef ALLOWLOGGING
103620d2c4d2Smrgextern void StartLog (XtermWidget /* xw */);
103720d2c4d2Smrgextern void CloseLog (XtermWidget /* xw */);
103820d2c4d2Smrgextern void FlushLog (XtermWidget /* xw */);
1039d522f475Smrg#else
104020d2c4d2Smrg#define FlushLog(xw) /*nothing*/
1041d522f475Smrg#endif
1042d522f475Smrg
1043d522f475Smrg/* print.c */
1044956cc18dSsnjextern Bool xtermHasPrinter (XtermWidget /* xw */);
104520d2c4d2Smrgextern PrinterFlags *getPrinterFlags(XtermWidget /* xw */, String * /* params */, Cardinal * /* param_count */);
1046956cc18dSsnjextern int xtermPrinterControl (XtermWidget /* xw */, int /* chr */);
1047956cc18dSsnjextern void setPrinterControlMode (XtermWidget /* xw */, int /* mode */);
1048956cc18dSsnjextern void xtermAutoPrint (XtermWidget /* xw */, unsigned /* chr */);
1049956cc18dSsnjextern void xtermMediaControl (XtermWidget /* xw */, int  /* param */, int  /* private_seq */);
105020d2c4d2Smrgextern void xtermPrintScreen (XtermWidget /* xw */, Bool  /* use_DECPEX */, PrinterFlags * /* p */);
105120d2c4d2Smrgextern void xtermPrintEverything (XtermWidget /* xw */, PrinterFlags * /* p */);
1052d522f475Smrg
1053d522f475Smrg/* ptydata.c */
1054d522f475Smrg#ifdef VMS
1055d522f475Smrg#define PtySelect int
1056d522f475Smrg#else
1057d522f475Smrg#define PtySelect fd_set
1058d522f475Smrg#endif
1059d522f475Smrg
1060d522f475Smrgextern Bool decodeUtf8 (PtyData * /* data */);
106120d2c4d2Smrgextern int readPtyData (XtermWidget /* xw */, PtySelect * /* select_mask */, PtyData * /* data */);
106220d2c4d2Smrgextern void fillPtyData (XtermWidget /* xw */, PtyData * /* data */, const char * /* value */, int  /* length */);
1063d522f475Smrgextern void initPtyData (PtyData ** /* data */);
106420d2c4d2Smrgextern void trimPtyData (XtermWidget /* xw */, PtyData * /* data */);
1065d522f475Smrg
1066d522f475Smrg#ifdef NO_LEAKS
1067d522f475Smrgextern void noleaks_ptydata ( void );
1068d522f475Smrg#endif
1069d522f475Smrg
1070d522f475Smrg#if OPT_WIDE_CHARS
1071d522f475Smrgextern Char *convertToUTF8 (Char * /* lp */, unsigned  /* c */);
1072d522f475Smrgextern IChar nextPtyData (TScreen * /* screen */, PtyData * /* data */);
1073d522f475Smrgextern IChar skipPtyData (PtyData * /* data */);
1074d522f475Smrgextern PtyData * fakePtyData(PtyData * /* result */, Char * /* next */, Char * /* last */);
1075d522f475Smrgextern void switchPtyData (TScreen * /* screen */, int  /* f */);
1076d522f475Smrgextern void writePtyData (int  /* f */, IChar * /* d */, unsigned  /* len */);
1077956cc18dSsnj
1078956cc18dSsnj#define morePtyData(screen,data) \
1079956cc18dSsnj	(((data)->last > (data)->next) \
1080956cc18dSsnj	 ? (((screen)->utf8_inparse && !(data)->utf_size) \
1081956cc18dSsnj	    ? decodeUtf8(data) \
1082956cc18dSsnj	    : True) \
1083956cc18dSsnj	 : False)
1084d522f475Smrg#else
1085d522f475Smrg#define morePtyData(screen, data) ((data)->last > (data)->next)
1086a1f3da82Smrg#define nextPtyData(screen, data) (IChar) (*((data)->next++) & \
1087a1f3da82Smrg					   (screen->output_eight_bits \
1088a1f3da82Smrg					    ? 0xff \
1089a1f3da82Smrg					    : 0x7f))
1090d522f475Smrg#define writePtyData(f,d,len) v_write(f,d,len)
1091d522f475Smrg#endif
1092d522f475Smrg
1093d522f475Smrg/* screen.c */
1094d522f475Smrgextern Bool non_blank_line (TScreen */* screen */, int  /* row */, int  /* col */, int  /* len */);
1095956cc18dSsnjextern Char * allocScrnData(TScreen * /* screen */, unsigned /* nrow */, unsigned /* ncol */);
1096956cc18dSsnjextern ScrnBuf allocScrnBuf (XtermWidget /* xw */, unsigned  /* nrow */, unsigned  /* ncol */, ScrnPtr * /* addr */);
1097956cc18dSsnjextern ScrnBuf scrnHeadAddr (TScreen * /* screen */, ScrnBuf /* base */, unsigned /* offset */);
1098d522f475Smrgextern int ScreenResize (XtermWidget /* xw */, int  /* width */, int  /* height */, unsigned * /* flags */);
1099d522f475Smrgextern size_t ScrnPointers (TScreen * /* screen */, size_t  /* len */);
1100d522f475Smrgextern void ClearBufRows (XtermWidget /* xw */, int  /* first */, int  /* last */);
1101d522f475Smrgextern void ClearCells (XtermWidget /* xw */, int /* flags */, unsigned /* len */, int /* row */, int /* col */);
1102a1f3da82Smrgextern void FullScreen(XtermWidget /* xw */, Bool /* enabled */);
1103956cc18dSsnjextern void ScrnAllocBuf (XtermWidget /* xw */);
1104d522f475Smrgextern void ScrnClearCells (XtermWidget /* xw */, int /* row */, int /* col */, unsigned /* len */);
1105d522f475Smrgextern void ScrnDeleteChar (XtermWidget /* xw */, unsigned  /* n */);
1106956cc18dSsnjextern void ScrnDeleteLine (XtermWidget /* xw */, ScrnBuf  /* sb */, int  /* n */, int  /* last */, unsigned /* where */);
1107d522f475Smrgextern void ScrnDisownSelection (XtermWidget /* xw */);
1108d522f475Smrgextern void ScrnFillRectangle (XtermWidget /* xw */, XTermRect *,  int ,  unsigned /* flags */, Bool /* keepColors */);
1109d522f475Smrgextern void ScrnInsertChar (XtermWidget /* xw */, unsigned  /* n */);
1110956cc18dSsnjextern void ScrnInsertLine (XtermWidget /* xw */, ScrnBuf /* sb */, int  /* last */, int  /* where */, unsigned  /* n */);
1111d522f475Smrgextern void ScrnRefresh (XtermWidget /* xw */, int  /* toprow */, int  /* leftcol */, int  /* nrows */, int  /* ncols */, Bool  /* force */);
1112d522f475Smrgextern void ScrnUpdate (XtermWidget /* xw */, int  /* toprow */, int  /* leftcol */, int  /* nrows */, int  /* ncols */, Bool  /* force */);
111320d2c4d2Smrgextern void ScrnWriteText (XtermWidget /* xw */, IChar * /* str */, unsigned  /* flags */, unsigned /* cur_fg_bg */, unsigned  /* length */);
1114492d43a5Smrgextern void ShowWrapMarks (XtermWidget /* xw */, int /* row */, LineData * /* ld */);
1115956cc18dSsnjextern void setupLineData (TScreen * /* screen */, ScrnBuf /* base */, Char * /* data */, unsigned /* nrow */, unsigned /* ncol */);
1116d522f475Smrgextern void xtermParseRect (XtermWidget /* xw */, int, int *, XTermRect *);
1117d522f475Smrg
1118d522f475Smrg#if OPT_TRACE && OPT_TRACE_FLAGS
1119956cc18dSsnjextern int  LineTstFlag(LineData /* ld */, int /* flag */);
1120956cc18dSsnjextern void LineClrFlag(LineData /* ld */, int /* flag */);
1121956cc18dSsnjextern void LineSetFlag(LineData /* ld */, int /* flag */);
1122d522f475Smrg#else
1123d522f475Smrg
1124956cc18dSsnj#define LineFlags(ld)         GetLineFlags(ld)
1125956cc18dSsnj
1126956cc18dSsnj#define LineClrFlag(ld, flag) SetLineFlags(ld, (GetLineFlags(ld) & ~ (flag)))
1127956cc18dSsnj#define LineSetFlag(ld, flag) SetLineFlags(ld, (GetLineFlags(ld) | (flag)))
1128956cc18dSsnj#define LineTstFlag(ld, flag) ((GetLineFlags(ld) & flag) != 0)
1129d522f475Smrg
1130d522f475Smrg#endif /* OPT_TRACE && OPT_TRACE_FLAGS */
1131d522f475Smrg
1132956cc18dSsnj#define LineClrBlinked(ld) LineClrFlag(ld, LINEBLINKED)
1133956cc18dSsnj#define LineSetBlinked(ld) LineSetFlag(ld, LINEBLINKED)
1134956cc18dSsnj#define LineTstBlinked(ld) LineTstFlag(ld, LINEBLINKED)
1135d522f475Smrg
1136956cc18dSsnj#define LineClrWrapped(ld) LineClrFlag(ld, LINEWRAPPED)
1137956cc18dSsnj#define LineSetWrapped(ld) LineSetFlag(ld, LINEWRAPPED)
1138956cc18dSsnj#define LineTstWrapped(ld) LineTstFlag(ld, LINEWRAPPED)
1139d522f475Smrg
1140d522f475Smrg#define ScrnHaveSelection(screen) \
1141d522f475Smrg			((screen)->startH.row != (screen)->endH.row \
1142d522f475Smrg			|| (screen)->startH.col != (screen)->endH.col)
1143d522f475Smrg
1144d522f475Smrg#define ScrnAreLinesInSelection(screen, first, last) \
1145d522f475Smrg	((last) >= (screen)->startH.row && (first) <= (screen)->endH.row)
1146d522f475Smrg
1147d522f475Smrg#define ScrnIsLineInSelection(screen, line) \
1148d522f475Smrg	((line) >= (screen)->startH.row && (line) <= (screen)->endH.row)
1149d522f475Smrg
1150d522f475Smrg#define ScrnHaveLineMargins(screen) \
1151d522f475Smrg			((screen)->top_marg != 0 \
1152d522f475Smrg			|| ((screen)->bot_marg != screen->max_row))
1153d522f475Smrg
1154d522f475Smrg#define ScrnIsLineInMargins(screen, line) \
1155d522f475Smrg	((line) >= (screen)->top_marg && (line) <= (screen)->bot_marg)
1156d522f475Smrg
1157d522f475Smrg#if OPT_DEC_RECTOPS
1158d522f475Smrgextern void ScrnCopyRectangle (XtermWidget /* xw */, XTermRect *, int, int *);
1159d522f475Smrgextern void ScrnMarkRectangle (XtermWidget /* xw */, XTermRect *, Bool, int, int *);
1160d522f475Smrgextern void ScrnWipeRectangle (XtermWidget /* xw */, XTermRect *);
1161d522f475Smrg#endif
1162d522f475Smrg
1163d522f475Smrg#if OPT_WIDE_CHARS
1164d522f475Smrgextern void ChangeToWide(XtermWidget /* xw */);
1165d522f475Smrg#endif
1166d522f475Smrg
1167956cc18dSsnj/* scrollback.c */
1168956cc18dSsnjextern LineData *getScrollback (TScreen * /* screen */, int /* row */);
1169956cc18dSsnjextern LineData *addScrollback (TScreen * /* screen */);
1170956cc18dSsnjextern void deleteScrollback (TScreen * /* screen */, int /* row */);
1171956cc18dSsnj
1172d522f475Smrg/* scrollbar.c */
1173d522f475Smrgextern void DoResizeScreen (XtermWidget /* xw */);
1174d522f475Smrgextern void HandleScrollBack           PROTO_XT_ACTIONS_ARGS;
1175d522f475Smrgextern void HandleScrollForward        PROTO_XT_ACTIONS_ARGS;
1176d522f475Smrgextern void ResizeScrollBar (XtermWidget  /* xw */);
1177d522f475Smrgextern void ScrollBarDrawThumb (Widget  /* scrollWidget */);
1178d522f475Smrgextern void ScrollBarOff (XtermWidget  /* xw */);
1179956cc18dSsnjextern void ScrollBarOn (XtermWidget  /* xw */, Bool /* init */);
1180d522f475Smrgextern void ScrollBarReverseVideo (Widget  /* scrollWidget */);
1181d522f475Smrgextern void ToggleScrollBar (XtermWidget  /* xw */);
118220d2c4d2Smrgextern void WindowScroll (XtermWidget /* xw */, int  /* top */, Bool /* always */);
1183d522f475Smrg
1184d522f475Smrg#ifdef SCROLLBAR_RIGHT
1185d522f475Smrgextern void updateRightScrollbar(XtermWidget  /* xw */);
1186d522f475Smrg#else
1187d522f475Smrg#define updateRightScrollbar(xw) /* nothing */
1188d522f475Smrg#endif
1189d522f475Smrg
1190d522f475Smrg/* tabs.c */
1191d522f475Smrgextern Bool TabToNextStop (XtermWidget /* xw */);
1192d522f475Smrgextern Bool TabToPrevStop (XtermWidget /* xw */);
1193d522f475Smrgextern void TabClear (Tabs  /* tabs */, int  /* col */);
1194d522f475Smrgextern void TabReset (Tabs  /* tabs */);
1195d522f475Smrgextern void TabSet (Tabs  /* tabs */, int  /* col */);
1196d522f475Smrgextern void TabZonk (Tabs  /* tabs */);
1197d522f475Smrg
1198d522f475Smrg/* util.c */
1199d522f475Smrgextern Boolean isDefaultBackground(const char * /* name */);
1200d522f475Smrgextern Boolean isDefaultForeground(const char * /* name */);
120120d2c4d2Smrgextern GC updatedXtermGC (XtermWidget /* xw */, unsigned  /* flags */, unsigned /* fg_bg */, Bool  /* hilite */);
1202d522f475Smrgextern int AddToRefresh (XtermWidget /* xw */);
1203d522f475Smrgextern int ClearInLine (XtermWidget /* xw */, int /* row */, int /* col */, unsigned /* len */);
1204d522f475Smrgextern int HandleExposure (XtermWidget /* xw */, XEvent * /* event */);
1205956cc18dSsnjextern int drawXtermText (XtermWidget /* xw */, unsigned /* flags */, GC /* gc */, int /* x */, int /* y */, int /* chrset */, IChar * /* text */, Cardinal /* len */, int /* on_wide */);
1206a1f3da82Smrgextern int extendedBoolean(const char * /* value */, FlagList * /* table */, Cardinal /* limit */);
1207d522f475Smrgextern void ChangeColors (XtermWidget  /* xw */, ScrnColors * /* pNew */);
1208d522f475Smrgextern void ClearRight (XtermWidget /* xw */, int /* n */);
1209d522f475Smrgextern void ClearScreen (XtermWidget /* xw */);
1210d522f475Smrgextern void DeleteChar (XtermWidget /* xw */, unsigned /* n */);
1211d522f475Smrgextern void DeleteLine (XtermWidget /* xw */, int /* n */);
1212d522f475Smrgextern void FlushScroll (XtermWidget /* xw */);
1213d522f475Smrgextern void GetColors (XtermWidget  /* xw */, ScrnColors * /* pColors */);
1214d522f475Smrgextern void InsertChar (XtermWidget /* xw */, unsigned /* n */);
1215d522f475Smrgextern void InsertLine (XtermWidget /* xw */, int  /* n */);
1216d522f475Smrgextern void RevScroll (XtermWidget /* xw */, int  /* amount */);
1217d522f475Smrgextern void ReverseVideo (XtermWidget  /* termw */);
1218956cc18dSsnjextern void WriteText (XtermWidget /* xw */, IChar * /* str */, Cardinal /* len */);
1219d522f475Smrgextern void decode_keyboard_type (XtermWidget /* xw */, struct XTERM_RESOURCE * /* rp */);
122020d2c4d2Smrgextern void decode_wcwidth (XtermWidget  /* xw */);
1221d522f475Smrgextern void do_erase_display (XtermWidget /* xw */, int  /* param */, int  /* mode */);
1222d522f475Smrgextern void do_erase_line (XtermWidget /* xw */, int  /* param */, int  /* mode */);
1223d522f475Smrgextern void getXtermSizeHints (XtermWidget /* xw */);
1224d522f475Smrgextern void init_keyboard_type (XtermWidget /* xw */, xtermKeyboardType /* type */, Bool  /* set */);
1225d522f475Smrgextern void recolor_cursor (TScreen * /* screen */, Cursor  /* cursor */, unsigned long  /* fg */, unsigned long  /* bg */);
1226d522f475Smrgextern void resetXtermGC (XtermWidget /* xw */, unsigned  /* flags */, Bool  /* hilite */);
1227d522f475Smrgextern void scrolling_copy_area (XtermWidget /* xw */, int  /* firstline */, int  /* nlines */, int  /* amount */);
1228d522f475Smrgextern void set_keyboard_type (XtermWidget /* xw */, xtermKeyboardType  /* type */, Bool  /* set */);
1229d522f475Smrgextern void toggle_keyboard_type (XtermWidget /* xw */, xtermKeyboardType  /* type */);
1230d522f475Smrgextern void update_keyboard_type (void);
1231d522f475Smrgextern void xtermClear (XtermWidget /* xw */);
1232d522f475Smrgextern void xtermRepaint (XtermWidget /* xw */);
1233d522f475Smrgextern void xtermScroll (XtermWidget /* xw */, int /* amount */);
1234d522f475Smrgextern void xtermSizeHints (XtermWidget  /* xw */, int /* scrollbarWidth */);
1235d522f475Smrg
1236d522f475Smrg#if OPT_ISO_COLORS
1237d522f475Smrg
123820d2c4d2Smrgextern unsigned extract_fg (XtermWidget /* xw */, unsigned  /* color */, unsigned  /* flags */);
123920d2c4d2Smrgextern unsigned extract_bg (XtermWidget /* xw */, unsigned  /* color */, unsigned  /* flags */);
1240956cc18dSsnjextern CellColor makeColorPair (int  /* fg */, int  /* bg */);
1241d522f475Smrgextern void ClearCurBackground (XtermWidget /* xw */, int  /* top */, int  /* left */, unsigned  /* height */, unsigned  /* width */);
1242d522f475Smrg
1243d522f475Smrg#define xtermColorPair(xw) makeColorPair(xw->sgr_foreground, xw->sgr_background)
1244d522f475Smrg
1245d522f475Smrg#define getXtermForeground(xw, flags, color) \
1246d522f475Smrg	(((flags) & FG_COLOR) && ((int)(color) >= 0 && (color) < MAXCOLORS) \
124720d2c4d2Smrg			? GET_COLOR_RES(xw, TScreenOf(xw)->Acolors[color]) \
124820d2c4d2Smrg			: T_COLOR(TScreenOf(xw), TEXT_FG))
1249d522f475Smrg
1250d522f475Smrg#define getXtermBackground(xw, flags, color) \
1251d522f475Smrg	(((flags) & BG_COLOR) && ((int)(color) >= 0 && (color) < MAXCOLORS) \
125220d2c4d2Smrg			? GET_COLOR_RES(xw, TScreenOf(xw)->Acolors[color]) \
125320d2c4d2Smrg			: T_COLOR(TScreenOf(xw), TEXT_BG))
1254d522f475Smrg
1255d522f475Smrg#if OPT_COLOR_RES
125620d2c4d2Smrg#define GET_COLOR_RES(xw, res) xtermGetColorRes(xw, &(res))
1257d522f475Smrg#define SET_COLOR_RES(res,color) (res)->value = color
1258d522f475Smrg#define EQL_COLOR_RES(res,color) (res)->value == color
1259d522f475Smrg#define T_COLOR(v,n) (v)->Tcolors[n].value
126020d2c4d2Smrgextern Pixel xtermGetColorRes(XtermWidget /* xw */, ColorRes * /* res */);
1261d522f475Smrg#else
126220d2c4d2Smrg#define GET_COLOR_RES(xw, res) res
1263d522f475Smrg#define SET_COLOR_RES(res,color) *res = color
1264d522f475Smrg#define EQL_COLOR_RES(res,color) *res == color
1265d522f475Smrg#define T_COLOR(v,n) (v)->Tcolors[n]
1266d522f475Smrg#endif
1267d522f475Smrg
1268956cc18dSsnj#define ExtractForeground(color) (unsigned) GetCellColorFG(color)
1269956cc18dSsnj#define ExtractBackground(color) (unsigned) GetCellColorBG(color)
1270d522f475Smrg
127120d2c4d2Smrg#define MapToColorMode(fg, screen, flags) \
127220d2c4d2Smrg	(((screen)->colorBLMode && ((flags) & BLINK)) \
127320d2c4d2Smrg	 ? COLOR_BL \
1274a1f3da82Smrg	 : (((screen)->colorBDMode && ((flags) & BOLD)) \
1275a1f3da82Smrg	    ? COLOR_BD \
1276a1f3da82Smrg	    : (((screen)->colorULMode && ((flags) & UNDERLINE)) \
1277a1f3da82Smrg	       ? COLOR_UL \
127820d2c4d2Smrg	       : fg)))
127920d2c4d2Smrg
1280d522f475Smrg#define checkVeryBoldAttr(flags, fg, code, attr) \
1281d522f475Smrg	if ((flags & FG_COLOR) != 0 \
1282d522f475Smrg	 && (screen->veryBoldColors & attr) == 0 \
1283d522f475Smrg	 && (flags & attr) != 0 \
1284d522f475Smrg	 && (fg == code)) \
128520d2c4d2Smrg		 UIntClr(flags, attr)
1286d522f475Smrg
1287d522f475Smrg#define checkVeryBoldColors(flags, fg) \
1288d522f475Smrg	checkVeryBoldAttr(flags, fg, COLOR_RV, INVERSE); \
1289d522f475Smrg	checkVeryBoldAttr(flags, fg, COLOR_UL, UNDERLINE); \
1290d522f475Smrg	checkVeryBoldAttr(flags, fg, COLOR_BD, BOLD); \
1291d522f475Smrg	checkVeryBoldAttr(flags, fg, COLOR_BL, BLINK)
1292d522f475Smrg
1293d522f475Smrg#else /* !OPT_ISO_COLORS */
1294d522f475Smrg
129520d2c4d2Smrg#define MapToColorMode(fg, screen, flags) fg
129620d2c4d2Smrg
1297d522f475Smrg#define ClearDFtBackground(xw, top, left, height, width) \
1298d522f475Smrg	ClearCurBackground(xw, top, left, height, width)
1299d522f475Smrg
1300d522f475Smrg#define ClearCurBackground(xw, top, left, height, width) \
130120d2c4d2Smrg	XClearArea (TScreenOf(xw)->display, VWindow(TScreenOf(xw)), \
1302d522f475Smrg		left, top, width, height, False)
1303d522f475Smrg
1304d522f475Smrg#define extract_fg(xw, color, flags) (xw)->cur_foreground
1305d522f475Smrg#define extract_bg(xw, color, flags) (xw)->cur_background
1306d522f475Smrg
1307d522f475Smrg		/* FIXME: Reverse-Video? */
1308d522f475Smrg#define T_COLOR(v,n) (v)->Tcolors[n]
130920d2c4d2Smrg#define getXtermBackground(xw, flags, color) T_COLOR(TScreenOf(xw), TEXT_BG)
131020d2c4d2Smrg#define getXtermForeground(xw, flags, color) T_COLOR(TScreenOf(xw), TEXT_FG)
1311d522f475Smrg#define makeColorPair(fg, bg) 0
1312d522f475Smrg#define xtermColorPair(xw) 0
1313d522f475Smrg
1314d522f475Smrg#define checkVeryBoldColors(flags, fg) /* nothing */
1315d522f475Smrg
1316d522f475Smrg#endif	/* OPT_ISO_COLORS */
1317d522f475Smrg
1318d522f475Smrg#define XTERM_CELL(row,col)    getXtermCell(screen,     ROW2INX(screen, row), col)
1319d522f475Smrg
1320d522f475Smrgextern unsigned getXtermCell (TScreen * /* screen */, int  /* row */, int  /* col */);
1321d522f475Smrgextern void putXtermCell (TScreen * /* screen */, int  /* row */, int  /* col */, int  /* ch */);
1322d522f475Smrg
1323d522f475Smrg#if OPT_HIGHLIGHT_COLOR
1324d522f475Smrg#define isNotForeground(xw, fg, bg, sel) \
132520d2c4d2Smrg		(Boolean) ((sel) != T_COLOR(TScreenOf(xw), TEXT_FG) \
13262eaa94a1Schristos			   && (sel) != (fg) \
13272eaa94a1Schristos			   && (sel) != (bg) \
13282eaa94a1Schristos			   && (sel) != (xw)->dft_foreground)
1329d522f475Smrg#define isNotBackground(xw, fg, bg, sel) \
133020d2c4d2Smrg		(Boolean) ((sel) != T_COLOR(TScreenOf(xw), TEXT_BG) \
13312eaa94a1Schristos			   && (sel) != (fg) \
13322eaa94a1Schristos			   && (sel) != (bg) \
13332eaa94a1Schristos			   && (sel) != (xw)->dft_background)
1334d522f475Smrg#endif
1335d522f475Smrg
1336d522f475Smrg#if OPT_WIDE_CHARS
1337d522f475Smrgextern Boolean isWideControl(unsigned /* ch */);
1338d522f475Smrgextern int DamagedCells(TScreen * /* screen */, unsigned /* n */, int * /* klp */, int * /* krp */, int /* row */, int /* col */);
1339d522f475Smrgextern int DamagedCurCells(TScreen * /* screen */, unsigned /* n */, int * /* klp */, int * /* krp */);
1340d522f475Smrgextern unsigned AsciiEquivs(unsigned /* ch */);
1341d522f475Smrgextern void addXtermCombining (TScreen * /* screen */, int  /* row */, int  /* col */, unsigned  /* ch */);
1342956cc18dSsnjextern void allocXtermChars(ScrnPtr * /* buffer */, Cardinal /* length */);
1343d522f475Smrg#endif
1344d522f475Smrg
1345d522f475Smrg#if OPT_XMC_GLITCH
1346d522f475Smrgextern void Mark_XMC (XtermWidget /* xw */, int  /* param */);
1347d522f475Smrgextern void Jump_XMC (XtermWidget /* xw */);
1348d522f475Smrgextern void Resolve_XMC (XtermWidget /* xw */);
1349d522f475Smrg#endif
1350d522f475Smrg
1351d522f475Smrg#if OPT_WIDE_CHARS
1352956cc18dSsnjunsigned visual_width(IChar * /* str */, Cardinal  /* len */);
1353d522f475Smrg#else
1354d522f475Smrg#define visual_width(a, b) (b)
1355d522f475Smrg#endif
1356d522f475Smrg
1357d522f475Smrg#define BtoS(b)    (((b) == Maybe) ? "maybe" : ((b) ? "on" : "off"))
1358d522f475Smrg#define NonNull(s) ((s) ? (s) : "<null>")
1359d522f475Smrg
136020d2c4d2Smrg#define UIntSet(dst,bits) dst = dst | (unsigned) (bits)
136120d2c4d2Smrg#define UIntClr(dst,bits) dst = dst & (unsigned) ~(bits)
136220d2c4d2Smrg
1363d522f475Smrg#ifdef __cplusplus
1364d522f475Smrg	}
1365d522f475Smrg#endif
1366a1f3da82Smrg/* *INDENT-ON* */
1367d522f475Smrg
1368a1f3da82Smrg#endif /* included_xterm_h */
1369