xterm.h revision e39b573c
1e39b573cSmrg/* $XTermId: xterm.h,v 1.654 2011/07/12 08:39:49 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 343e39b573cSmrg#define XtNallowBoldFonts "allowBoldFonts" 344d522f475Smrg#define XtNallowC1Printable "allowC1Printable" 34520d2c4d2Smrg#define XtNallowColorOps "allowColorOps" 3462eaa94a1Schristos#define XtNallowFontOps "allowFontOps" 34720d2c4d2Smrg#define XtNallowScrollLock "allowScrollLock" 348d522f475Smrg#define XtNallowSendEvents "allowSendEvents" 3492eaa94a1Schristos#define XtNallowTcapOps "allowTcapOps" 350d522f475Smrg#define XtNallowTitleOps "allowTitleOps" 351d522f475Smrg#define XtNallowWindowOps "allowWindowOps" 352d522f475Smrg#define XtNaltIsNotMeta "altIsNotMeta" 353d522f475Smrg#define XtNaltSendsEscape "altSendsEscape" 354d522f475Smrg#define XtNalwaysBoldMode "alwaysBoldMode" 355d522f475Smrg#define XtNalwaysHighlight "alwaysHighlight" 356d522f475Smrg#define XtNalwaysUseMods "alwaysUseMods" 357d522f475Smrg#define XtNanswerbackString "answerbackString" 358d522f475Smrg#define XtNappcursorDefault "appcursorDefault" 359d522f475Smrg#define XtNappkeypadDefault "appkeypadDefault" 360d522f475Smrg#define XtNautoWrap "autoWrap" 361d522f475Smrg#define XtNawaitInput "awaitInput" 362d522f475Smrg#define XtNbackarrowKey "backarrowKey" 363d522f475Smrg#define XtNbellIsUrgent "bellIsUrgent" 364d522f475Smrg#define XtNbellOnReset "bellOnReset" 365d522f475Smrg#define XtNbellSuppressTime "bellSuppressTime" 366d522f475Smrg#define XtNboldColors "boldColors" 367d522f475Smrg#define XtNboldFont "boldFont" 368d522f475Smrg#define XtNboldMode "boldMode" 369d522f475Smrg#define XtNbrokenLinuxOSC "brokenLinuxOSC" 370d522f475Smrg#define XtNbrokenSelections "brokenSelections" 371d522f475Smrg#define XtNbrokenStringTerm "brokenStringTerm" 372d522f475Smrg#define XtNc132 "c132" 373d522f475Smrg#define XtNcacheDoublesize "cacheDoublesize" 374d522f475Smrg#define XtNcharClass "charClass" 375d522f475Smrg#define XtNcjkWidth "cjkWidth" 376d522f475Smrg#define XtNcolorAttrMode "colorAttrMode" 377d522f475Smrg#define XtNcolorBDMode "colorBDMode" 378d522f475Smrg#define XtNcolorBLMode "colorBLMode" 379d522f475Smrg#define XtNcolorMode "colorMode" 380d522f475Smrg#define XtNcolorRVMode "colorRVMode" 381d522f475Smrg#define XtNcolorULMode "colorULMode" 382d522f475Smrg#define XtNcombiningChars "combiningChars" 383d522f475Smrg#define XtNctrlFKeys "ctrlFKeys" 384d522f475Smrg#define XtNcurses "curses" 385d522f475Smrg#define XtNcursorBlink "cursorBlink" 386d522f475Smrg#define XtNcursorColor "cursorColor" 387d522f475Smrg#define XtNcursorOffTime "cursorOffTime" 388d522f475Smrg#define XtNcursorOnTime "cursorOnTime" 3892eaa94a1Schristos#define XtNcursorUnderline "cursorUnderLine" 390d522f475Smrg#define XtNcutNewline "cutNewline" 391d522f475Smrg#define XtNcutToBeginningOfLine "cutToBeginningOfLine" 392d522f475Smrg#define XtNdecTerminalID "decTerminalID" 393956cc18dSsnj#define XtNdefaultString "defaultString" 394d522f475Smrg#define XtNdeleteIsDEL "deleteIsDEL" 39520d2c4d2Smrg#define XtNdisallowedColorOps "disallowedColorOps" 39620d2c4d2Smrg#define XtNdisallowedFontOps "disallowedFontOps" 39720d2c4d2Smrg#define XtNdisallowedTcapOps "disallowedTcapOps" 39820d2c4d2Smrg#define XtNdisallowedWindowOps "disallowedWindowOps" 399d522f475Smrg#define XtNdynamicColors "dynamicColors" 400d522f475Smrg#define XtNeightBitControl "eightBitControl" 401d522f475Smrg#define XtNeightBitInput "eightBitInput" 402d522f475Smrg#define XtNeightBitOutput "eightBitOutput" 403956cc18dSsnj#define XtNeightBitSelectTypes "eightBitSelectTypes" 404d522f475Smrg#define XtNfaceName "faceName" 405d522f475Smrg#define XtNfaceNameDoublesize "faceNameDoublesize" 406d522f475Smrg#define XtNfaceSize "faceSize" 407956cc18dSsnj#define XtNfastScroll "fastScroll" 408d522f475Smrg#define XtNfont1 "font1" 409d522f475Smrg#define XtNfont2 "font2" 410d522f475Smrg#define XtNfont3 "font3" 411d522f475Smrg#define XtNfont4 "font4" 412d522f475Smrg#define XtNfont5 "font5" 413d522f475Smrg#define XtNfont6 "font6" 414d522f475Smrg#define XtNfontDoublesize "fontDoublesize" 415d522f475Smrg#define XtNfontStyle "fontStyle" 416956cc18dSsnj#define XtNfontWarnings "fontWarnings" 417d522f475Smrg#define XtNforceBoxChars "forceBoxChars" 41820d2c4d2Smrg#define XtNforcePackedFont "forcePackedFont" 419d522f475Smrg#define XtNformatOtherKeys "formatOtherKeys" 420d522f475Smrg#define XtNfreeBoldBox "freeBoldBox" 421a1f3da82Smrg#define XtNfullscreen "fullscreen" 422d522f475Smrg#define XtNhighlightColor "highlightColor" 423d522f475Smrg#define XtNhighlightColorMode "highlightColorMode" 424d522f475Smrg#define XtNhighlightReverse "highlightReverse" 425d522f475Smrg#define XtNhighlightSelection "highlightSelection" 426d522f475Smrg#define XtNhighlightTextColor "highlightTextColor" 427d522f475Smrg#define XtNhpLowerleftBugCompat "hpLowerleftBugCompat" 428d522f475Smrg#define XtNi18nSelections "i18nSelections" 429d522f475Smrg#define XtNinitialFont "initialFont" 430d522f475Smrg#define XtNinternalBorder "internalBorder" 431956cc18dSsnj#define XtNitalicULMode "italicULMode" 432d522f475Smrg#define XtNjumpScroll "jumpScroll" 433d522f475Smrg#define XtNkeepSelection "keepSelection" 434d522f475Smrg#define XtNkeyboardDialect "keyboardDialect" 435d522f475Smrg#define XtNlimitResize "limitResize" 436d522f475Smrg#define XtNlocale "locale" 437d522f475Smrg#define XtNlocaleFilter "localeFilter" 438d522f475Smrg#define XtNlogFile "logFile" 439d522f475Smrg#define XtNlogInhibit "logInhibit" 440d522f475Smrg#define XtNlogging "logging" 441d522f475Smrg#define XtNloginShell "loginShell" 442d522f475Smrg#define XtNmarginBell "marginBell" 443956cc18dSsnj#define XtNmaximized "maximized" 444d522f475Smrg#define XtNmenuBar "menuBar" 445d522f475Smrg#define XtNmenuHeight "menuHeight" 446d522f475Smrg#define XtNmetaSendsEscape "metaSendsEscape" 447d522f475Smrg#define XtNmkSamplePass "mkSamplePass" 448d522f475Smrg#define XtNmkSampleSize "mkSampleSize" 449d522f475Smrg#define XtNmkWidth "mkWidth" 450d522f475Smrg#define XtNmodifyCursorKeys "modifyCursorKeys" 451d522f475Smrg#define XtNmodifyFunctionKeys "modifyFunctionKeys" 452d522f475Smrg#define XtNmodifyKeypadKeys "modifyKeypadKeys" 453d522f475Smrg#define XtNmodifyOtherKeys "modifyOtherKeys" 454d522f475Smrg#define XtNmodifyStringKeys "modifyStringKeys" 455d522f475Smrg#define XtNmultiClickTime "multiClickTime" 456d522f475Smrg#define XtNmultiScroll "multiScroll" 457d522f475Smrg#define XtNnMarginBell "nMarginBell" 458d522f475Smrg#define XtNnumLock "numLock" 459d522f475Smrg#define XtNoldXtermFKeys "oldXtermFKeys" 460d522f475Smrg#define XtNpointerColor "pointerColor" 461d522f475Smrg#define XtNpointerColorBackground "pointerColorBackground" 462d522f475Smrg#define XtNpointerMode "pointerMode" 463d522f475Smrg#define XtNpointerShape "pointerShape" 464d522f475Smrg#define XtNpopOnBell "popOnBell" 465d522f475Smrg#define XtNprintAttributes "printAttributes" 466d522f475Smrg#define XtNprinterAutoClose "printerAutoClose" 467d522f475Smrg#define XtNprinterCommand "printerCommand" 468d522f475Smrg#define XtNprinterControlMode "printerControlMode" 469d522f475Smrg#define XtNprinterExtent "printerExtent" 470d522f475Smrg#define XtNprinterFormFeed "printerFormFeed" 47120d2c4d2Smrg#define XtNprinterNewLine "printerNewLine" 472d522f475Smrg#define XtNquietGrab "quietGrab" 473d522f475Smrg#define XtNrenderFont "renderFont" 474d522f475Smrg#define XtNresizeGravity "resizeGravity" 475956cc18dSsnj#define XtNretryInputMethod "retryInputMethod" 476d522f475Smrg#define XtNreverseWrap "reverseWrap" 477d522f475Smrg#define XtNrightScrollBar "rightScrollBar" 478d522f475Smrg#define XtNsaveLines "saveLines" 479d522f475Smrg#define XtNscrollBar "scrollBar" 480d522f475Smrg#define XtNscrollBarBorder "scrollBarBorder" 481d522f475Smrg#define XtNscrollKey "scrollKey" 482d522f475Smrg#define XtNscrollLines "scrollLines" 483d522f475Smrg#define XtNscrollPos "scrollPos" 484d522f475Smrg#define XtNscrollTtyOutput "scrollTtyOutput" 485d522f475Smrg#define XtNselectToClipboard "selectToClipboard" 486d522f475Smrg#define XtNshiftFonts "shiftFonts" 487d522f475Smrg#define XtNshowBlinkAsBold "showBlinkAsBold" 488d522f475Smrg#define XtNshowMissingGlyphs "showMissingGlyphs" 489492d43a5Smrg#define XtNshowWrapMarks "showWrapMarks" 490d522f475Smrg#define XtNsignalInhibit "signalInhibit" 491d522f475Smrg#define XtNtekGeometry "tekGeometry" 492d522f475Smrg#define XtNtekInhibit "tekInhibit" 493d522f475Smrg#define XtNtekSmall "tekSmall" 494d522f475Smrg#define XtNtekStartup "tekStartup" 495d522f475Smrg#define XtNtiXtraScroll "tiXtraScroll" 496d522f475Smrg#define XtNtiteInhibit "titeInhibit" 49720d2c4d2Smrg#define XtNtitleModes "titleModes" 498d522f475Smrg#define XtNtoolBar "toolBar" 499d522f475Smrg#define XtNtrimSelection "trimSelection" 500d522f475Smrg#define XtNunderLine "underLine" 501d522f475Smrg#define XtNuseClipping "useClipping" 502d522f475Smrg#define XtNutf8 "utf8" 503e39b573cSmrg#define XtNutf8Fonts "utf8Fonts" 504d522f475Smrg#define XtNutf8Latin1 "utf8Latin1" 505956cc18dSsnj#define XtNutf8SelectTypes "utf8SelectTypes" 506d522f475Smrg#define XtNutf8Title "utf8Title" 507d522f475Smrg#define XtNveryBoldColors "veryBoldColors" 508d522f475Smrg#define XtNvisualBell "visualBell" 509d522f475Smrg#define XtNvisualBellDelay "visualBellDelay" 510d522f475Smrg#define XtNvt100Graphics "vt100Graphics" 511d522f475Smrg#define XtNwideBoldFont "wideBoldFont" 512d522f475Smrg#define XtNwideChars "wideChars" 513d522f475Smrg#define XtNwideFont "wideFont" 514d522f475Smrg#define XtNximFont "ximFont" 515d522f475Smrg#define XtNxmcAttributes "xmcAttributes" 516d522f475Smrg#define XtNxmcGlitch "xmcGlitch" 517d522f475Smrg#define XtNxmcInline "xmcInline" 518d522f475Smrg#define XtNxmcMoveSGR "xmcMoveSGR" 519d522f475Smrg 520e39b573cSmrg#define XtCAllowBoldFonts "AllowBoldFonts" 521d522f475Smrg#define XtCAllowC1Printable "AllowC1Printable" 52220d2c4d2Smrg#define XtCAllowColorOps "AllowColorOps" 5232eaa94a1Schristos#define XtCAllowFontOps "AllowFontOps" 52420d2c4d2Smrg#define XtCAllowScrollLock "AllowScrollLock" 525d522f475Smrg#define XtCAllowSendEvents "AllowSendEvents" 5262eaa94a1Schristos#define XtCAllowTcapOps "AllowTcapOps" 527d522f475Smrg#define XtCAllowTitleOps "AllowTitleOps" 528d522f475Smrg#define XtCAllowWindowOps "AllowWindowOps" 529d522f475Smrg#define XtCAltIsNotMeta "AltIsNotMeta" 530d522f475Smrg#define XtCAltSendsEscape "AltSendsEscape" 531d522f475Smrg#define XtCAlwaysBoldMode "AlwaysBoldMode" 532d522f475Smrg#define XtCAlwaysHighlight "AlwaysHighlight" 533d522f475Smrg#define XtCAlwaysUseMods "AlwaysUseMods" 534d522f475Smrg#define XtCAnswerbackString "AnswerbackString" 535d522f475Smrg#define XtCAppcursorDefault "AppcursorDefault" 536d522f475Smrg#define XtCAppkeypadDefault "AppkeypadDefault" 537d522f475Smrg#define XtCAutoWrap "AutoWrap" 538d522f475Smrg#define XtCAwaitInput "AwaitInput" 539d522f475Smrg#define XtCBackarrowKey "BackarrowKey" 540d522f475Smrg#define XtCBellIsUrgent "BellIsUrgent" 541d522f475Smrg#define XtCBellOnReset "BellOnReset" 542d522f475Smrg#define XtCBellSuppressTime "BellSuppressTime" 543d522f475Smrg#define XtCBoldFont "BoldFont" 544d522f475Smrg#define XtCBoldMode "BoldMode" 545d522f475Smrg#define XtCBrokenLinuxOSC "BrokenLinuxOSC" 546d522f475Smrg#define XtCBrokenSelections "BrokenSelections" 547d522f475Smrg#define XtCBrokenStringTerm "BrokenStringTerm" 548d522f475Smrg#define XtCC132 "C132" 549d522f475Smrg#define XtCCacheDoublesize "CacheDoublesize" 550d522f475Smrg#define XtCCharClass "CharClass" 551a1f3da82Smrg#define XtCCjkWidth "CjkWidth" 552956cc18dSsnj#define XtCColorAttrMode "ColorAttrMode" 553d522f475Smrg#define XtCColorMode "ColorMode" 554d522f475Smrg#define XtCColumn "Column" 555d522f475Smrg#define XtCCombiningChars "CombiningChars" 556d522f475Smrg#define XtCCtrlFKeys "CtrlFKeys" 557d522f475Smrg#define XtCCurses "Curses" 558d522f475Smrg#define XtCCursorBlink "CursorBlink" 559d522f475Smrg#define XtCCursorOffTime "CursorOffTime" 560d522f475Smrg#define XtCCursorOnTime "CursorOnTime" 5612eaa94a1Schristos#define XtCCursorUnderline "CursorUnderLine" 562d522f475Smrg#define XtCCutNewline "CutNewline" 563d522f475Smrg#define XtCCutToBeginningOfLine "CutToBeginningOfLine" 564d522f475Smrg#define XtCDecTerminalID "DecTerminalID" 565956cc18dSsnj#define XtCDefaultString "DefaultString" 566d522f475Smrg#define XtCDeleteIsDEL "DeleteIsDEL" 56720d2c4d2Smrg#define XtCDisallowedColorOps "DisallowedColorOps" 56820d2c4d2Smrg#define XtCDisallowedFontOps "DisallowedFontOps" 56920d2c4d2Smrg#define XtCDisallowedTcapOps "DisallowedTcapOps" 57020d2c4d2Smrg#define XtCDisallowedWindowOps "DisallowedWindowOps" 571d522f475Smrg#define XtCDynamicColors "DynamicColors" 572d522f475Smrg#define XtCEightBitControl "EightBitControl" 573d522f475Smrg#define XtCEightBitInput "EightBitInput" 574d522f475Smrg#define XtCEightBitOutput "EightBitOutput" 575956cc18dSsnj#define XtCEightBitSelectTypes "EightBitSelectTypes" 576d522f475Smrg#define XtCFaceName "FaceName" 577d522f475Smrg#define XtCFaceNameDoublesize "FaceNameDoublesize" 578d522f475Smrg#define XtCFaceSize "FaceSize" 579956cc18dSsnj#define XtCFastScroll "FastScroll" 580d522f475Smrg#define XtCFont1 "Font1" 581d522f475Smrg#define XtCFont2 "Font2" 582d522f475Smrg#define XtCFont3 "Font3" 583d522f475Smrg#define XtCFont4 "Font4" 584d522f475Smrg#define XtCFont5 "Font5" 585d522f475Smrg#define XtCFont6 "Font6" 586d522f475Smrg#define XtCFontDoublesize "FontDoublesize" 587d522f475Smrg#define XtCFontStyle "FontStyle" 588956cc18dSsnj#define XtCFontWarnings "FontWarnings" 589d522f475Smrg#define XtCForceBoxChars "ForceBoxChars" 59020d2c4d2Smrg#define XtCForcePackedFont "ForcePackedFont" 591d522f475Smrg#define XtCFormatOtherKeys "FormatOtherKeys" 592d522f475Smrg#define XtCFreeBoldBox "FreeBoldBox" 593a1f3da82Smrg#define XtCFullscreen "Fullscreen" 594d522f475Smrg#define XtCHighlightColorMode "HighlightColorMode" 595d522f475Smrg#define XtCHighlightReverse "HighlightReverse" 596d522f475Smrg#define XtCHighlightSelection "HighlightSelection" 597d522f475Smrg#define XtCHpLowerleftBugCompat "HpLowerleftBugCompat" 598d522f475Smrg#define XtCI18nSelections "I18nSelections" 599d522f475Smrg#define XtCInitialFont "InitialFont" 600d522f475Smrg#define XtCJumpScroll "JumpScroll" 601d522f475Smrg#define XtCKeepSelection "KeepSelection" 602d522f475Smrg#define XtCKeyboardDialect "KeyboardDialect" 603d522f475Smrg#define XtCLimitResize "LimitResize" 604d522f475Smrg#define XtCLocale "Locale" 605d522f475Smrg#define XtCLocaleFilter "LocaleFilter" 606d522f475Smrg#define XtCLogInhibit "LogInhibit" 607d522f475Smrg#define XtCLogfile "Logfile" 608d522f475Smrg#define XtCLogging "Logging" 609d522f475Smrg#define XtCLoginShell "LoginShell" 610d522f475Smrg#define XtCMarginBell "MarginBell" 611956cc18dSsnj#define XtCMaximized "Maximized" 612d522f475Smrg#define XtCMenuBar "MenuBar" 613d522f475Smrg#define XtCMenuHeight "MenuHeight" 614d522f475Smrg#define XtCMetaSendsEscape "MetaSendsEscape" 615d522f475Smrg#define XtCMkSamplePass "MkSamplePass" 616d522f475Smrg#define XtCMkSampleSize "MkSampleSize" 617a1f3da82Smrg#define XtCMkWidth "MkWidth" 618d522f475Smrg#define XtCModifyCursorKeys "ModifyCursorKeys" 619d522f475Smrg#define XtCModifyFunctionKeys "ModifyFunctionKeys" 620d522f475Smrg#define XtCModifyKeypadKeys "ModifyKeypadKeys" 621d522f475Smrg#define XtCModifyOtherKeys "ModifyOtherKeys" 622d522f475Smrg#define XtCModifyStringKeys "ModifyStringKeys" 623d522f475Smrg#define XtCMultiClickTime "MultiClickTime" 624d522f475Smrg#define XtCMultiScroll "MultiScroll" 625d522f475Smrg#define XtCNumLock "NumLock" 626d522f475Smrg#define XtCOldXtermFKeys "OldXtermFKeys" 627d522f475Smrg#define XtCPointerMode "PointerMode" 628d522f475Smrg#define XtCPopOnBell "PopOnBell" 629d522f475Smrg#define XtCPrintAttributes "PrintAttributes" 630d522f475Smrg#define XtCPrinterAutoClose "PrinterAutoClose" 631d522f475Smrg#define XtCPrinterCommand "PrinterCommand" 632d522f475Smrg#define XtCPrinterControlMode "PrinterControlMode" 633d522f475Smrg#define XtCPrinterExtent "PrinterExtent" 634d522f475Smrg#define XtCPrinterFormFeed "PrinterFormFeed" 63520d2c4d2Smrg#define XtCPrinterNewLine "PrinterNewLine" 636d522f475Smrg#define XtCQuietGrab "QuietGrab" 637d522f475Smrg#define XtCRenderFont "RenderFont" 638d522f475Smrg#define XtCResizeGravity "ResizeGravity" 639956cc18dSsnj#define XtCRetryInputMethod "RetryInputMethod" 640d522f475Smrg#define XtCReverseWrap "ReverseWrap" 641d522f475Smrg#define XtCRightScrollBar "RightScrollBar" 642d522f475Smrg#define XtCSaveLines "SaveLines" 643d522f475Smrg#define XtCScrollBar "ScrollBar" 644d522f475Smrg#define XtCScrollBarBorder "ScrollBarBorder" 645d522f475Smrg#define XtCScrollCond "ScrollCond" 646d522f475Smrg#define XtCScrollLines "ScrollLines" 647d522f475Smrg#define XtCScrollPos "ScrollPos" 648d522f475Smrg#define XtCSelectToClipboard "SelectToClipboard" 649d522f475Smrg#define XtCShiftFonts "ShiftFonts" 650d522f475Smrg#define XtCShowBlinkAsBold "ShowBlinkAsBold" 651d522f475Smrg#define XtCShowMissingGlyphs "ShowMissingGlyphs" 652492d43a5Smrg#define XtCShowWrapMarks "ShowWrapMarks" 653d522f475Smrg#define XtCSignalInhibit "SignalInhibit" 654d522f475Smrg#define XtCTekInhibit "TekInhibit" 655d522f475Smrg#define XtCTekSmall "TekSmall" 656d522f475Smrg#define XtCTekStartup "TekStartup" 657d522f475Smrg#define XtCTiXtraScroll "TiXtraScroll" 658d522f475Smrg#define XtCTiteInhibit "TiteInhibit" 65920d2c4d2Smrg#define XtCTitleModes "TitleModes" 660d522f475Smrg#define XtCToolBar "ToolBar" 661d522f475Smrg#define XtCTrimSelection "TrimSelection" 662d522f475Smrg#define XtCUnderLine "UnderLine" 663d522f475Smrg#define XtCUseClipping "UseClipping" 664d522f475Smrg#define XtCUtf8 "Utf8" 665e39b573cSmrg#define XtCUtf8Fonts "Utf8Fonts" 666d522f475Smrg#define XtCUtf8Latin1 "Utf8Latin1" 667956cc18dSsnj#define XtCUtf8SelectTypes "Utf8SelectTypes" 668d522f475Smrg#define XtCUtf8Title "Utf8Title" 669d522f475Smrg#define XtCVT100Graphics "VT100Graphics" 670d522f475Smrg#define XtCVeryBoldColors "VeryBoldColors" 671d522f475Smrg#define XtCVisualBell "VisualBell" 672d522f475Smrg#define XtCVisualBellDelay "VisualBellDelay" 673d522f475Smrg#define XtCWideBoldFont "WideBoldFont" 674d522f475Smrg#define XtCWideChars "WideChars" 675d522f475Smrg#define XtCWideFont "WideFont" 676d522f475Smrg#define XtCXimFont "XimFont" 677d522f475Smrg#define XtCXmcAttributes "XmcAttributes" 678d522f475Smrg#define XtCXmcGlitch "XmcGlitch" 679d522f475Smrg#define XtCXmcInline "XmcInline" 680d522f475Smrg#define XtCXmcMoveSGR "XmcMoveSGR" 681d522f475Smrg 682d522f475Smrg#if defined(NO_ACTIVE_ICON) && !defined(XtNgeometry) 683d522f475Smrg#define XtNgeometry "geometry" 684d522f475Smrg#define XtCGeometry "Geometry" 685d522f475Smrg#endif 686d522f475Smrg 687d522f475Smrg#if OPT_COLOR_CLASS 688d522f475Smrg#define XtCCursorColor "CursorColor" 689d522f475Smrg#define XtCPointerColor "PointerColor" 690d522f475Smrg#define XtCHighlightColor "HighlightColor" 691d522f475Smrg#define XtCHighlightTextColor "HighlightTextColor" 692d522f475Smrg#else 693d522f475Smrg#define XtCCursorColor XtCForeground 694d522f475Smrg#define XtCPointerColor XtCForeground 695d522f475Smrg#define XtCHighlightColor XtCForeground 696d522f475Smrg#define XtCHighlightTextColor XtCBackground 697d522f475Smrg#endif 698d522f475Smrg 699d522f475Smrg/***====================================================================***/ 700d522f475Smrg 701d522f475Smrg#ifdef __cplusplus 702d522f475Smrgextern "C" { 703d522f475Smrg#endif 704d522f475Smrg 705d522f475Smrgstruct XTERM_RESOURCE; 706d522f475Smrg 707d522f475Smrg/* Tekproc.c */ 708d522f475Smrg#if OPT_TEK4014 709956cc18dSsnjextern TekWidget getTekWidget(Widget /* w */); 710d522f475Smrgextern int TekGetFontSize (const char * /* param */); 711d522f475Smrgextern int TekInit (void); 712d522f475Smrgextern int TekPtyData(void); 713d522f475Smrgextern void ChangeTekColors (TekWidget /* tw */, TScreen * /* screen */, ScrnColors * /* pNew */); 714d522f475Smrgextern void HandleGINInput PROTO_XT_ACTIONS_ARGS; 715d522f475Smrgextern void TCursorToggle (TekWidget /* tw */, int /* toggle */); 716d522f475Smrgextern void TekCopy (TekWidget /* tw */); 717d522f475Smrgextern void TekEnqMouse (TekWidget /* tw */, int /* c */); 718d522f475Smrgextern void TekExpose (Widget /* w */, XEvent * /* event */, Region /* region */); 719d522f475Smrgextern void TekGINoff (TekWidget /* tw */); 720d522f475Smrgextern void TekRefresh (TekWidget /* tw */); 721d522f475Smrgextern void TekRepaint (TekWidget /* xw */); 722d522f475Smrgextern void TekReverseVideo (TekWidget /* tw */); 723d522f475Smrgextern void TekRun (void); 724956cc18dSsnjextern void TekSetFontSize (TekWidget /* tw */, Bool /* fromMenu */, int /* newitem */); 725d522f475Smrgextern void TekSimulatePageButton (TekWidget /* tw */, Bool /* reset */); 726d522f475Smrg#endif 727d522f475Smrg 728d522f475Smrg/* button.c */ 729492d43a5Smrg#define MotionOff( s, t ) if (!(screen->hide_pointer)) { \ 730d522f475Smrg (s)->event_mask |= ButtonMotionMask; \ 731d522f475Smrg (s)->event_mask &= ~PointerMotionMask; \ 732d522f475Smrg XSelectInput(XtDisplay((t)), XtWindow((t)), (long) (s)->event_mask); } 733d522f475Smrg 734d522f475Smrg#define MotionOn( s, t ) { \ 735d522f475Smrg (s)->event_mask &= ~ButtonMotionMask; \ 736d522f475Smrg (s)->event_mask |= PointerMotionMask; \ 737d522f475Smrg XSelectInput(XtDisplay((t)), XtWindow((t)), (long) (s)->event_mask); } 738d522f475Smrg 739d522f475Smrgextern Bool SendMousePosition (XtermWidget /* w */, XEvent* /* event */); 740d522f475Smrgextern void DiredButton PROTO_XT_ACTIONS_ARGS; 741d522f475Smrgextern void DisownSelection (XtermWidget /* termw */); 742d522f475Smrgextern void UnhiliteSelection (XtermWidget /* termw */); 7436879286fSmrgextern void HandleCopySelection PROTO_XT_ACTIONS_ARGS; 744d522f475Smrgextern void HandleInsertSelection PROTO_XT_ACTIONS_ARGS; 745d522f475Smrgextern void HandleKeyboardSelectEnd PROTO_XT_ACTIONS_ARGS; 746d522f475Smrgextern void HandleKeyboardSelectExtend PROTO_XT_ACTIONS_ARGS; 747d522f475Smrgextern void HandleKeyboardSelectStart PROTO_XT_ACTIONS_ARGS; 748d522f475Smrgextern void HandleKeyboardStartExtend PROTO_XT_ACTIONS_ARGS; 749d522f475Smrgextern void HandleSelectEnd PROTO_XT_ACTIONS_ARGS; 750d522f475Smrgextern void HandleSelectExtend PROTO_XT_ACTIONS_ARGS; 751d522f475Smrgextern void HandleSelectSet PROTO_XT_ACTIONS_ARGS; 752d522f475Smrgextern void HandleSelectStart PROTO_XT_ACTIONS_ARGS; 753d522f475Smrgextern void HandleStartExtend PROTO_XT_ACTIONS_ARGS; 754d522f475Smrgextern void ResizeSelection (TScreen * /* screen */, int /* rows */, int /* cols */); 755d522f475Smrgextern void ScrollSelection (TScreen * /* screen */, int /* amount */, Bool /* always */); 75620d2c4d2Smrgextern void TrackMouse (XtermWidget /* xw */, int /* func */, CELL * /* start */, int /* firstrow */, int /* lastrow */); 757d522f475Smrgextern void ViButton PROTO_XT_ACTIONS_ARGS; 758d522f475Smrg 75920d2c4d2Smrgextern int xtermUtf8ToTextList(XtermWidget /* xw */, XTextProperty * /* text_prop */, char *** /* text_list */, int * /* text_list_count */); 76020d2c4d2Smrg 761d522f475Smrg#if OPT_DEC_LOCATOR 762d522f475Smrgextern void GetLocatorPosition (XtermWidget /* w */); 763d522f475Smrgextern void InitLocatorFilter (XtermWidget /* w */); 764d522f475Smrg#endif /* OPT_DEC_LOCATOR */ 765d522f475Smrg 766d522f475Smrg#if OPT_FOCUS_EVENT 767d522f475Smrgextern void SendFocusButton(XtermWidget /* xw */, XFocusChangeEvent * /* event */); 768d522f475Smrg#else 769d522f475Smrg#define SendFocusBotton(xw, event) /* nothing */ 770d522f475Smrg#endif 771d522f475Smrg 772d522f475Smrg#if OPT_PASTE64 773d522f475Smrgextern void AppendToSelectionBuffer (TScreen * /* screen */, unsigned /* c */); 774d522f475Smrgextern void ClearSelectionBuffer (TScreen * /* screen */); 77520d2c4d2Smrgextern void CompleteSelection (XtermWidget /* xw */, String * /* args */, Cardinal /* len */); 776d522f475Smrgextern void xtermGetSelection (Widget /* w */, Time /* ev_time */, String * /* params */, Cardinal /* num_params */, Atom * /* targets */); 777d522f475Smrg#endif 778d522f475Smrg 779d522f475Smrg#if OPT_READLINE 780d522f475Smrgextern void ReadLineButton PROTO_XT_ACTIONS_ARGS; 781d522f475Smrg#endif 782d522f475Smrg 783d522f475Smrg#if OPT_WIDE_CHARS 784d522f475Smrgextern Bool iswide(int /* i */); 78520d2c4d2Smrg#define WideCells(n) (((IChar)(n) >= first_widechar) ? my_wcwidth((wchar_t) (n)) : 1) 78620d2c4d2Smrg#define isWide(n) (((IChar)(n) >= first_widechar) && iswide(n)) 78720d2c4d2Smrg#else 78820d2c4d2Smrg#define WideCells(n) 1 789d522f475Smrg#endif 790d522f475Smrg 791d522f475Smrg/* cachedCgs.c */ 792d522f475Smrgextern CgsEnum getCgsId(XtermWidget /*xw*/, VTwin * /*cgsWin*/, GC /*gc*/); 793d522f475Smrgextern GC freeCgs(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/); 794d522f475Smrgextern GC getCgsGC(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/); 795d522f475Smrgextern Pixel getCgsBack(XtermWidget /*xw*/, VTwin * /*cgsWin*/, GC /*gc*/); 796d522f475Smrgextern Pixel getCgsFore(XtermWidget /*xw*/, VTwin * /*cgsWin*/, GC /*gc*/); 797d522f475Smrgextern XTermFonts * getCgsFont(XtermWidget /*xw*/, VTwin * /*cgsWin*/, GC /*gc*/); 798d522f475Smrgextern void clrCgsFonts(XtermWidget /*xw*/, VTwin * /*cgsWin*/, XTermFonts * /*font*/); 799d522f475Smrgextern void copyCgs(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*dstCgsId*/, CgsEnum /*srcCgsId*/); 800d522f475Smrgextern void redoCgs(XtermWidget /*xw*/, Pixel /*fg*/, Pixel /*bg*/, CgsEnum /*cgsId*/); 801d522f475Smrgextern void setCgsBack(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/, Pixel /*bg*/); 802d522f475Smrgextern void setCgsCSet(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/, unsigned /*cset*/); 803d522f475Smrgextern void setCgsFont(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/, XTermFonts * /*font*/); 804d522f475Smrgextern void setCgsFore(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*cgsId*/, Pixel /*fg*/); 805d522f475Smrgextern void swapCgs(XtermWidget /*xw*/, VTwin * /*cgsWin*/, CgsEnum /*dstCgsId*/, CgsEnum /*srcCgsId*/); 806d522f475Smrg 807d522f475Smrg#ifdef NO_LEAKS 808d522f475Smrgextern void noleaks_cachedCgs (XtermWidget /* xw */); 809d522f475Smrg#endif 810d522f475Smrg 811d522f475Smrg/* charproc.c */ 812d522f475Smrgextern Bool CheckBufPtrs (TScreen * /* screen */); 813492d43a5Smrgextern Bool set_cursor_gcs (XtermWidget /* xw */); 814956cc18dSsnjextern int VTInit (XtermWidget /* xw */); 815d522f475Smrgextern void FindFontSelection (XtermWidget /* xw */, const char * /* atom_name */, Bool /* justprobe */); 816d522f475Smrgextern void HideCursor (void); 81720d2c4d2Smrgextern void RestartBlinking(TScreen * /* screen */); 818d522f475Smrgextern void ShowCursor (void); 81920d2c4d2Smrgextern void SwitchBufPtrs (TScreen * /* screen */, int /* toBuf */); 820d522f475Smrgextern void ToggleAlternate (XtermWidget /* xw */); 821a1f3da82Smrgextern void VTInitTranslations (void); 822e39b573cSmrgextern void VTReset (XtermWidget /* xw */, int /* full */, int /* saved */) GCC_NORETURN; 823956cc18dSsnjextern void VTRun (XtermWidget /* xw */); 824d522f475Smrgextern void dotext (XtermWidget /* xw */, int /* charset */, IChar * /* buf */, Cardinal /* len */); 825d522f475Smrgextern void releaseCursorGCs(XtermWidget /*xw*/); 826d522f475Smrgextern void releaseWindowGCs(XtermWidget /*xw*/, VTwin * /*win*/); 827d522f475Smrgextern void resetCharsets (TScreen * /* screen */); 828d522f475Smrgextern void set_max_col(TScreen * /* screen */, int /* cols */); 829d522f475Smrgextern void set_max_row(TScreen * /* screen */, int /* rows */); 830d522f475Smrgextern void set_tb_margins (TScreen * /* screen */, int /* top */, int /* bottom */); 831d522f475Smrgextern void unparse_end (XtermWidget /* xw */); 832d522f475Smrgextern void unparseputc (XtermWidget /* xw */, int /* c */); 833d522f475Smrgextern void unparseputc1 (XtermWidget /* xw */, int /* c */); 834d522f475Smrgextern void unparseputn (XtermWidget /* xw */, unsigned /* n */); 83520d2c4d2Smrgextern void unparseputs (XtermWidget /* xw */, const char * /* s */); 836d522f475Smrgextern void unparseseq (XtermWidget /* xw */, ANSI * /* ap */); 837492d43a5Smrgextern void v_write (int /* f */, const Char * /* d */, unsigned /* len */); 838d522f475Smrgextern void xtermAddInput(Widget /* w */); 839d522f475Smrg 840d522f475Smrg#if OPT_BLINK_CURS 841d522f475Smrgextern void ToggleCursorBlink(TScreen * /* screen */); 842d522f475Smrg#endif 843d522f475Smrg 844d522f475Smrg#if OPT_ISO_COLORS 845d522f475Smrgextern void SGR_Background (XtermWidget /* xw */, int /* color */); 846d522f475Smrgextern void SGR_Foreground (XtermWidget /* xw */, int /* color */); 847d522f475Smrg#endif 848d522f475Smrg 849d522f475Smrg#ifdef NO_LEAKS 850d522f475Smrgextern void noleaks_charproc (void); 851d522f475Smrg#endif 852d522f475Smrg 853d522f475Smrg/* charsets.c */ 854d522f475Smrgextern unsigned xtermCharSetIn (unsigned /* code */, int /* charset */); 8552eaa94a1Schristosextern int xtermCharSetOut (XtermWidget /* xw */, IChar * /* buf */, IChar * /* ptr */, int /* charset */); 856d522f475Smrg 857d522f475Smrg/* cursor.c */ 858d522f475Smrgextern void AdjustSavedCursor (XtermWidget /* xw */, int /* adjust */); 859d522f475Smrgextern void CarriageReturn (TScreen * /* screen */); 860d522f475Smrgextern void CursorBack (XtermWidget /* xw */, int /* n */); 861d522f475Smrgextern void CursorDown (TScreen * /* screen */, int /* n */); 862d522f475Smrgextern void CursorForward (TScreen * /* screen */, int /* n */); 863d522f475Smrgextern void CursorNextLine (TScreen * /* screen */, int /* count */); 864d522f475Smrgextern void CursorPrevLine (TScreen * /* screen */, int /* count */); 865d522f475Smrgextern void CursorRestore (XtermWidget /* xw */); 866d522f475Smrgextern void CursorSave (XtermWidget /* xw */); 867d522f475Smrgextern void CursorSet (TScreen * /* screen */, int /* row */, int /* col */, unsigned /* flags */); 868d522f475Smrgextern void CursorUp (TScreen * /* screen */, int /* n */); 869d522f475Smrgextern void RevIndex (XtermWidget /* xw */, int /* amount */); 870d522f475Smrgextern void xtermIndex (XtermWidget /* xw */, int /* amount */); 871d522f475Smrg 872d522f475Smrg#if OPT_TRACE 873d522f475Smrgextern int set_cur_col(TScreen * /* screen */, int /* value */); 874d522f475Smrgextern int set_cur_row(TScreen * /* screen */, int /* value */); 875d522f475Smrg#else 876d522f475Smrg#define set_cur_col(screen, value) screen->cur_col = value 877d522f475Smrg#define set_cur_row(screen, value) screen->cur_row = value 878d522f475Smrg#endif 879d522f475Smrg 880d522f475Smrg/* doublechr.c */ 881d522f475Smrgextern void xterm_DECDHL (XtermWidget /* xw */, Bool /* top */); 882d522f475Smrgextern void xterm_DECSWL (XtermWidget /* xw */); 883d522f475Smrgextern void xterm_DECDWL (XtermWidget /* xw */); 884d522f475Smrg#if OPT_DEC_CHRSET 885d522f475Smrgextern int xterm_Double_index(XtermWidget /* xw */, unsigned /* chrset */, unsigned /* flags */); 886d522f475Smrgextern GC xterm_DoubleGC(XtermWidget /* xw */, unsigned /* chrset */, unsigned /* flags */, GC /* old_gc */, int * /* inxp */); 887d522f475Smrg#endif 888d522f475Smrg 889d522f475Smrg/* input.c */ 890956cc18dSsnjextern unsigned xtermParamToState (XtermWidget /* xw */, unsigned /* param */); 891956cc18dSsnjextern unsigned xtermStateToParam (XtermWidget /* xw */, unsigned /* state */); 892d522f475Smrgextern Bool xtermDeleteIsDEL (XtermWidget /* xw */); 893d522f475Smrgextern void Input (XtermWidget /* xw */, XKeyEvent */* event */, Bool /* eightbit */); 89420d2c4d2Smrgextern void StringInput (XtermWidget /* xw */, const Char * /* string */, size_t /* nbytes */); 895d522f475Smrg 896d522f475Smrg#if OPT_NUM_LOCK 897d522f475Smrgextern void VTInitModifiers(XtermWidget /* xw */); 898d522f475Smrg#endif 899d522f475Smrg 900956cc18dSsnj/* linedata.c */ 901956cc18dSsnjextern LineData *getLineData(TScreen * /* screen */, int /* row */); 902956cc18dSsnjextern void copyLineData(LineData * /* dst */, LineData * /* src */); 903956cc18dSsnjextern void initLineData(XtermWidget /* xw */); 904956cc18dSsnj 905956cc18dSsnjextern CellData *newCellData(XtermWidget /* xw */, Cardinal /* count */); 906956cc18dSsnjextern void saveCellData(TScreen * /* screen */, CellData * /* data */, Cardinal /* cell */, LineData * /* ld */, int /* column */); 907956cc18dSsnjextern void restoreCellData(TScreen * /* screen */, CellData * /* data */, Cardinal /* cell */, LineData * /* ld */, int /* column */); 908956cc18dSsnj 909d522f475Smrg/* main.c */ 910d522f475Smrg#ifndef __UNIXOS2__ 911d522f475Smrg#define ENVP_ARG /**/ 912d522f475Smrg#else 913d522f475Smrg#define ENVP_ARG , char ** /* envp */ 914d522f475Smrg#endif 915d522f475Smrg 916d522f475Smrgextern int main (int /* argc */, char ** /* argv */ ENVP_ARG); 917d522f475Smrgextern int GetBytesAvailable (int /* fd */); 918d522f475Smrgextern int kill_process_group (int /* pid */, int /* sig */); 919d522f475Smrgextern int nonblocking_wait (void); 920d522f475Smrg 921d522f475Smrg#if OPT_PTY_HANDSHAKE 922d522f475Smrgextern void first_map_occurred (void); 923d522f475Smrg#else 924d522f475Smrg#define first_map_occurred() /* nothing */ 925d522f475Smrg#endif 926d522f475Smrg 927d522f475Smrg#ifdef SIGNAL_T 928e39b573cSmrgextern SIGNAL_T Exit (int /* n */) GCC_NORETURN; 929d522f475Smrg#endif 930d522f475Smrg 931d522f475Smrg#ifndef SIG_ATOMIC_T 932d522f475Smrg#define SIG_ATOMIC_T int 933d522f475Smrg#endif 934d522f475Smrg 935d522f475Smrg#if OPT_WIDE_CHARS 93620d2c4d2Smrgextern unsigned first_widechar; 937d522f475Smrgextern int (*my_wcwidth)(wchar_t); 938d522f475Smrg#endif 939d522f475Smrg 940d522f475Smrg/* menu.c */ 941d522f475Smrgextern void do_hangup PROTO_XT_CALLBACK_ARGS; 942d522f475Smrgextern void repairSizeHints (void); 943d522f475Smrgextern void show_8bit_control (Bool /* value */); 944d522f475Smrg 945d522f475Smrg/* misc.c */ 946e39b573cSmrg 947e39b573cSmrg#define TIMESTAMP_LEN 20 /* length of TIMESTAMP_FMT */ 948e39b573cSmrg 94920d2c4d2Smrgextern Bool AllocateTermColor(XtermWidget, ScrnColors *, int, const char *, Bool); 950d522f475Smrgextern Cursor make_colored_cursor (unsigned /* cursorindex */, unsigned long /* fg */, unsigned long /* bg */); 951d522f475Smrgextern OptionHelp * sortedOpts(OptionHelp *, XrmOptionDescRec *, Cardinal); 952d522f475Smrgextern Window WMFrameWindow(XtermWidget /* termw */); 953d522f475Smrgextern XrmOptionDescRec * sortedOptDescs(XrmOptionDescRec *, Cardinal); 954956cc18dSsnjextern XtermWidget getXtermWidget(Widget /* w */); 955d522f475Smrgextern char *udk_lookup (int /* keycode */, int * /* len */); 956d522f475Smrgextern char *xtermEnvEncoding (void); 957d522f475Smrgextern char *xtermEnvLocale (void); 958d522f475Smrgextern char *xtermFindShell(char * /* leaf */, Bool /* warning */); 959d522f475Smrgextern char *xtermVersion(void); 960d522f475Smrgextern const char *SysErrorMsg (int /* n */); 961d522f475Smrgextern const char *SysReasonMsg (int /* n */); 96220d2c4d2Smrgextern int ResetAnsiColorRequest(XtermWidget, char *, int); 963d522f475Smrgextern int XStrCmp (char * /* s1 */, char * /* s2 */); 964e39b573cSmrgextern int creat_as (uid_t /* uid */, gid_t /* gid */, Bool /* append */, char * /* pathname */, unsigned /* mode */); 965d522f475Smrgextern int open_userfile (uid_t /* uid */, gid_t /* gid */, char * /* path */, Bool /* append */); 966d522f475Smrgextern int xerror (Display * /* d */, XErrorEvent * /* ev */); 967d522f475Smrgextern int xioerror (Display * /* dpy */); 968d522f475Smrgextern int xtermResetIds(TScreen * /* screen */); 96920d2c4d2Smrgextern void Bell (XtermWidget /* xw */, int /* which */, int /* percent */); 970956cc18dSsnjextern void ChangeIconName (XtermWidget /* xw */, char * /* name */); 971956cc18dSsnjextern void ChangeTitle (XtermWidget /* xw */, char * /* name */); 972d522f475Smrgextern void ChangeXprop (char * /* name */); 973d522f475Smrgextern void Cleanup (int /* code */); 974d522f475Smrgextern void HandleBellPropertyChange PROTO_XT_EV_HANDLER_ARGS; 975d522f475Smrgextern void HandleEightBitKeyPressed PROTO_XT_ACTIONS_ARGS; 976d522f475Smrgextern void HandleEnterWindow PROTO_XT_EV_HANDLER_ARGS; 977d522f475Smrgextern void HandleFocusChange PROTO_XT_EV_HANDLER_ARGS; 978d522f475Smrgextern void HandleInterpret PROTO_XT_ACTIONS_ARGS; 979d522f475Smrgextern void HandleKeyPressed PROTO_XT_ACTIONS_ARGS; 980d522f475Smrgextern void HandleLeaveWindow PROTO_XT_EV_HANDLER_ARGS; 981d522f475Smrgextern void HandleSpawnTerminal PROTO_XT_ACTIONS_ARGS; 982d522f475Smrgextern void HandleStringEvent PROTO_XT_ACTIONS_ARGS; 98320d2c4d2Smrgextern void Panic (const char * /* s */, int /* a */); 984d522f475Smrgextern void Redraw (void); 985e39b573cSmrgextern void ice_error (IceConn /* iceConn */); 986d522f475Smrgextern void ReverseOldColors (void); 987a1f3da82Smrgextern void SysError (int /* i */) GCC_NORETURN; 988d522f475Smrgextern void VisualBell (void); 989d522f475Smrgextern void do_dcs (XtermWidget /* xw */, Char * /* buf */, size_t /* len */); 990492d43a5Smrgextern void do_decrpm (XtermWidget /* xw */, int /* nparam */, int * /* params */); 99120d2c4d2Smrgextern void do_osc (XtermWidget /* xw */, Char * /* buf */, size_t /* len */, int /* final */); 992492d43a5Smrgextern void do_rpm (XtermWidget /* xw */, int /* nparam */, int * /* params */); 993d522f475Smrgextern void do_xevents (void); 994d522f475Smrgextern void end_tek_mode (void); 995d522f475Smrgextern void end_vt_mode (void); 996d522f475Smrgextern void hide_tek_window (void); 997d522f475Smrgextern void hide_vt_window (void); 998d522f475Smrgextern void reset_decudk (void); 999d522f475Smrgextern void set_tek_visibility (Bool /* on */); 1000d522f475Smrgextern void set_vt_visibility (Bool /* on */); 1001d522f475Smrgextern void switch_modes (Bool /* tovt */); 1002d522f475Smrgextern void timestamp_filename(char * /* dst */, const char * /* src */); 1003d522f475Smrgextern void xevents (void); 1004d522f475Smrgextern void xt_error (String /* message */); 1005956cc18dSsnjextern void xtermBell(XtermWidget /* xw */, int /* which */, int /* percent */); 1006d522f475Smrgextern void xtermCopyEnv (char ** /* oldenv */); 1007d522f475Smrgextern void xtermDisplayCursor (XtermWidget /* xw */); 100820d2c4d2Smrgextern void xtermSetenv (const char * /* var */, const char * /* value */); 1009d522f475Smrgextern void xtermShowPointer (XtermWidget /* xw */, Bool /* enable */); 1010d522f475Smrg 1011d522f475Smrg#if OPT_DABBREV 1012d522f475Smrgextern void HandleDabbrevExpand PROTO_XT_ACTIONS_ARGS; 1013d522f475Smrg#endif 1014d522f475Smrg 1015d522f475Smrg#if OPT_MAXIMIZE 1016d522f475Smrgextern int QueryMaximize (XtermWidget /* termw */, unsigned * /* width */, unsigned * /* height */); 1017d522f475Smrgextern void HandleDeIconify PROTO_XT_ACTIONS_ARGS; 1018d522f475Smrgextern void HandleIconify PROTO_XT_ACTIONS_ARGS; 1019d522f475Smrgextern void HandleMaximize PROTO_XT_ACTIONS_ARGS; 1020d522f475Smrgextern void HandleRestoreSize PROTO_XT_ACTIONS_ARGS; 1021d522f475Smrgextern void RequestMaximize (XtermWidget /* termw */, int /* maximize */); 1022d522f475Smrg#endif 1023d522f475Smrg 102420d2c4d2Smrg#if OPT_SCROLL_LOCK 102520d2c4d2Smrgextern void GetScrollLock (TScreen * /* screen */); 102620d2c4d2Smrgextern void HandleScrollLock PROTO_XT_ACTIONS_ARGS; 102720d2c4d2Smrgextern void ShowScrollLock (TScreen * /* screen */, Bool /* enable */); 102820d2c4d2Smrgextern void SetScrollLock (TScreen * /* screen */, Bool /* enable */); 102920d2c4d2Smrgextern void xtermShowLED (TScreen * /* screen */, Cardinal /* led_number */, Bool /* enable */); 103020d2c4d2Smrgextern void xtermClearLEDs (TScreen * /* screen */); 103120d2c4d2Smrg#else 103220d2c4d2Smrg#define ShowScrollLock(screen, enable) /* nothing */ 103320d2c4d2Smrg#define SetScrollLock(screen, enable) /* nothing */ 103420d2c4d2Smrg#define GetScrollLock(screen) /* nothing */ 103520d2c4d2Smrg#endif 103620d2c4d2Smrg 1037d522f475Smrg#if OPT_WIDE_CHARS 1038d522f475Smrgextern Bool xtermEnvUTF8(void); 1039d522f475Smrg#else 1040d522f475Smrg#define xtermEnvUTF8() False 1041d522f475Smrg#endif 1042d522f475Smrg 1043d522f475Smrg#ifdef ALLOWLOGGING 104420d2c4d2Smrgextern void StartLog (XtermWidget /* xw */); 104520d2c4d2Smrgextern void CloseLog (XtermWidget /* xw */); 104620d2c4d2Smrgextern void FlushLog (XtermWidget /* xw */); 1047d522f475Smrg#else 104820d2c4d2Smrg#define FlushLog(xw) /*nothing*/ 1049d522f475Smrg#endif 1050d522f475Smrg 1051d522f475Smrg/* print.c */ 1052956cc18dSsnjextern Bool xtermHasPrinter (XtermWidget /* xw */); 1053e39b573cSmrgextern PrinterFlags *getPrinterFlags (XtermWidget /* xw */, String * /* params */, Cardinal * /* param_count */); 1054956cc18dSsnjextern int xtermPrinterControl (XtermWidget /* xw */, int /* chr */); 1055e39b573cSmrgextern void closePrinter (XtermWidget /* xw */); 1056956cc18dSsnjextern void setPrinterControlMode (XtermWidget /* xw */, int /* mode */); 1057956cc18dSsnjextern void xtermAutoPrint (XtermWidget /* xw */, unsigned /* chr */); 1058956cc18dSsnjextern void xtermMediaControl (XtermWidget /* xw */, int /* param */, int /* private_seq */); 105920d2c4d2Smrgextern void xtermPrintScreen (XtermWidget /* xw */, Bool /* use_DECPEX */, PrinterFlags * /* p */); 106020d2c4d2Smrgextern void xtermPrintEverything (XtermWidget /* xw */, PrinterFlags * /* p */); 1061e39b573cSmrgextern void xtermPrintImmediately (XtermWidget /* xw */, String /* filename */, int /* opts */, int /* attributes */); 1062e39b573cSmrgextern void xtermPrintOnXError (XtermWidget /* xw */, int /* n */); 1063d522f475Smrg 1064d522f475Smrg/* ptydata.c */ 1065d522f475Smrg#ifdef VMS 1066d522f475Smrg#define PtySelect int 1067d522f475Smrg#else 1068d522f475Smrg#define PtySelect fd_set 1069d522f475Smrg#endif 1070d522f475Smrg 1071d522f475Smrgextern Bool decodeUtf8 (PtyData * /* data */); 107220d2c4d2Smrgextern int readPtyData (XtermWidget /* xw */, PtySelect * /* select_mask */, PtyData * /* data */); 107320d2c4d2Smrgextern void fillPtyData (XtermWidget /* xw */, PtyData * /* data */, const char * /* value */, int /* length */); 1074d522f475Smrgextern void initPtyData (PtyData ** /* data */); 107520d2c4d2Smrgextern void trimPtyData (XtermWidget /* xw */, PtyData * /* data */); 1076d522f475Smrg 1077d522f475Smrg#ifdef NO_LEAKS 1078d522f475Smrgextern void noleaks_ptydata ( void ); 1079d522f475Smrg#endif 1080d522f475Smrg 1081d522f475Smrg#if OPT_WIDE_CHARS 1082d522f475Smrgextern Char *convertToUTF8 (Char * /* lp */, unsigned /* c */); 1083d522f475Smrgextern IChar nextPtyData (TScreen * /* screen */, PtyData * /* data */); 1084d522f475Smrgextern IChar skipPtyData (PtyData * /* data */); 1085d522f475Smrgextern PtyData * fakePtyData(PtyData * /* result */, Char * /* next */, Char * /* last */); 1086d522f475Smrgextern void switchPtyData (TScreen * /* screen */, int /* f */); 1087d522f475Smrgextern void writePtyData (int /* f */, IChar * /* d */, unsigned /* len */); 1088956cc18dSsnj 1089956cc18dSsnj#define morePtyData(screen,data) \ 1090956cc18dSsnj (((data)->last > (data)->next) \ 1091956cc18dSsnj ? (((screen)->utf8_inparse && !(data)->utf_size) \ 1092956cc18dSsnj ? decodeUtf8(data) \ 1093956cc18dSsnj : True) \ 1094956cc18dSsnj : False) 1095d522f475Smrg#else 1096d522f475Smrg#define morePtyData(screen, data) ((data)->last > (data)->next) 1097a1f3da82Smrg#define nextPtyData(screen, data) (IChar) (*((data)->next++) & \ 1098a1f3da82Smrg (screen->output_eight_bits \ 1099a1f3da82Smrg ? 0xff \ 1100a1f3da82Smrg : 0x7f)) 1101d522f475Smrg#define writePtyData(f,d,len) v_write(f,d,len) 1102d522f475Smrg#endif 1103d522f475Smrg 1104d522f475Smrg/* screen.c */ 1105d522f475Smrgextern Bool non_blank_line (TScreen */* screen */, int /* row */, int /* col */, int /* len */); 1106956cc18dSsnjextern Char * allocScrnData(TScreen * /* screen */, unsigned /* nrow */, unsigned /* ncol */); 1107956cc18dSsnjextern ScrnBuf allocScrnBuf (XtermWidget /* xw */, unsigned /* nrow */, unsigned /* ncol */, ScrnPtr * /* addr */); 1108956cc18dSsnjextern ScrnBuf scrnHeadAddr (TScreen * /* screen */, ScrnBuf /* base */, unsigned /* offset */); 1109d522f475Smrgextern int ScreenResize (XtermWidget /* xw */, int /* width */, int /* height */, unsigned * /* flags */); 1110d522f475Smrgextern size_t ScrnPointers (TScreen * /* screen */, size_t /* len */); 1111d522f475Smrgextern void ClearBufRows (XtermWidget /* xw */, int /* first */, int /* last */); 1112d522f475Smrgextern void ClearCells (XtermWidget /* xw */, int /* flags */, unsigned /* len */, int /* row */, int /* col */); 1113a1f3da82Smrgextern void FullScreen(XtermWidget /* xw */, Bool /* enabled */); 1114956cc18dSsnjextern void ScrnAllocBuf (XtermWidget /* xw */); 1115d522f475Smrgextern void ScrnClearCells (XtermWidget /* xw */, int /* row */, int /* col */, unsigned /* len */); 1116d522f475Smrgextern void ScrnDeleteChar (XtermWidget /* xw */, unsigned /* n */); 1117956cc18dSsnjextern void ScrnDeleteLine (XtermWidget /* xw */, ScrnBuf /* sb */, int /* n */, int /* last */, unsigned /* where */); 1118d522f475Smrgextern void ScrnDisownSelection (XtermWidget /* xw */); 1119d522f475Smrgextern void ScrnFillRectangle (XtermWidget /* xw */, XTermRect *, int , unsigned /* flags */, Bool /* keepColors */); 1120d522f475Smrgextern void ScrnInsertChar (XtermWidget /* xw */, unsigned /* n */); 1121956cc18dSsnjextern void ScrnInsertLine (XtermWidget /* xw */, ScrnBuf /* sb */, int /* last */, int /* where */, unsigned /* n */); 1122d522f475Smrgextern void ScrnRefresh (XtermWidget /* xw */, int /* toprow */, int /* leftcol */, int /* nrows */, int /* ncols */, Bool /* force */); 1123d522f475Smrgextern void ScrnUpdate (XtermWidget /* xw */, int /* toprow */, int /* leftcol */, int /* nrows */, int /* ncols */, Bool /* force */); 112420d2c4d2Smrgextern void ScrnWriteText (XtermWidget /* xw */, IChar * /* str */, unsigned /* flags */, unsigned /* cur_fg_bg */, unsigned /* length */); 1125492d43a5Smrgextern void ShowWrapMarks (XtermWidget /* xw */, int /* row */, LineData * /* ld */); 1126956cc18dSsnjextern void setupLineData (TScreen * /* screen */, ScrnBuf /* base */, Char * /* data */, unsigned /* nrow */, unsigned /* ncol */); 1127d522f475Smrgextern void xtermParseRect (XtermWidget /* xw */, int, int *, XTermRect *); 1128d522f475Smrg 1129d522f475Smrg#if OPT_TRACE && OPT_TRACE_FLAGS 1130956cc18dSsnjextern int LineTstFlag(LineData /* ld */, int /* flag */); 1131956cc18dSsnjextern void LineClrFlag(LineData /* ld */, int /* flag */); 1132956cc18dSsnjextern void LineSetFlag(LineData /* ld */, int /* flag */); 1133d522f475Smrg#else 1134d522f475Smrg 1135956cc18dSsnj#define LineFlags(ld) GetLineFlags(ld) 1136956cc18dSsnj 1137956cc18dSsnj#define LineClrFlag(ld, flag) SetLineFlags(ld, (GetLineFlags(ld) & ~ (flag))) 1138956cc18dSsnj#define LineSetFlag(ld, flag) SetLineFlags(ld, (GetLineFlags(ld) | (flag))) 1139956cc18dSsnj#define LineTstFlag(ld, flag) ((GetLineFlags(ld) & flag) != 0) 1140d522f475Smrg 1141d522f475Smrg#endif /* OPT_TRACE && OPT_TRACE_FLAGS */ 1142d522f475Smrg 1143956cc18dSsnj#define LineClrBlinked(ld) LineClrFlag(ld, LINEBLINKED) 1144956cc18dSsnj#define LineSetBlinked(ld) LineSetFlag(ld, LINEBLINKED) 1145956cc18dSsnj#define LineTstBlinked(ld) LineTstFlag(ld, LINEBLINKED) 1146d522f475Smrg 1147956cc18dSsnj#define LineClrWrapped(ld) LineClrFlag(ld, LINEWRAPPED) 1148956cc18dSsnj#define LineSetWrapped(ld) LineSetFlag(ld, LINEWRAPPED) 1149956cc18dSsnj#define LineTstWrapped(ld) LineTstFlag(ld, LINEWRAPPED) 1150d522f475Smrg 1151d522f475Smrg#define ScrnHaveSelection(screen) \ 1152d522f475Smrg ((screen)->startH.row != (screen)->endH.row \ 1153d522f475Smrg || (screen)->startH.col != (screen)->endH.col) 1154d522f475Smrg 1155d522f475Smrg#define ScrnAreLinesInSelection(screen, first, last) \ 1156d522f475Smrg ((last) >= (screen)->startH.row && (first) <= (screen)->endH.row) 1157d522f475Smrg 1158d522f475Smrg#define ScrnIsLineInSelection(screen, line) \ 1159d522f475Smrg ((line) >= (screen)->startH.row && (line) <= (screen)->endH.row) 1160d522f475Smrg 1161d522f475Smrg#define ScrnHaveLineMargins(screen) \ 1162d522f475Smrg ((screen)->top_marg != 0 \ 1163d522f475Smrg || ((screen)->bot_marg != screen->max_row)) 1164d522f475Smrg 1165d522f475Smrg#define ScrnIsLineInMargins(screen, line) \ 1166d522f475Smrg ((line) >= (screen)->top_marg && (line) <= (screen)->bot_marg) 1167d522f475Smrg 1168d522f475Smrg#if OPT_DEC_RECTOPS 1169d522f475Smrgextern void ScrnCopyRectangle (XtermWidget /* xw */, XTermRect *, int, int *); 1170d522f475Smrgextern void ScrnMarkRectangle (XtermWidget /* xw */, XTermRect *, Bool, int, int *); 1171d522f475Smrgextern void ScrnWipeRectangle (XtermWidget /* xw */, XTermRect *); 1172d522f475Smrg#endif 1173d522f475Smrg 1174d522f475Smrg#if OPT_WIDE_CHARS 1175d522f475Smrgextern void ChangeToWide(XtermWidget /* xw */); 1176d522f475Smrg#endif 1177d522f475Smrg 1178956cc18dSsnj/* scrollback.c */ 1179956cc18dSsnjextern LineData *getScrollback (TScreen * /* screen */, int /* row */); 1180956cc18dSsnjextern LineData *addScrollback (TScreen * /* screen */); 1181956cc18dSsnjextern void deleteScrollback (TScreen * /* screen */, int /* row */); 1182956cc18dSsnj 1183d522f475Smrg/* scrollbar.c */ 1184d522f475Smrgextern void DoResizeScreen (XtermWidget /* xw */); 1185d522f475Smrgextern void HandleScrollBack PROTO_XT_ACTIONS_ARGS; 1186d522f475Smrgextern void HandleScrollForward PROTO_XT_ACTIONS_ARGS; 1187d522f475Smrgextern void ResizeScrollBar (XtermWidget /* xw */); 1188d522f475Smrgextern void ScrollBarDrawThumb (Widget /* scrollWidget */); 1189d522f475Smrgextern void ScrollBarOff (XtermWidget /* xw */); 1190956cc18dSsnjextern void ScrollBarOn (XtermWidget /* xw */, Bool /* init */); 1191d522f475Smrgextern void ScrollBarReverseVideo (Widget /* scrollWidget */); 1192d522f475Smrgextern void ToggleScrollBar (XtermWidget /* xw */); 119320d2c4d2Smrgextern void WindowScroll (XtermWidget /* xw */, int /* top */, Bool /* always */); 1194d522f475Smrg 1195d522f475Smrg#ifdef SCROLLBAR_RIGHT 1196d522f475Smrgextern void updateRightScrollbar(XtermWidget /* xw */); 1197d522f475Smrg#else 1198d522f475Smrg#define updateRightScrollbar(xw) /* nothing */ 1199d522f475Smrg#endif 1200d522f475Smrg 1201d522f475Smrg/* tabs.c */ 1202d522f475Smrgextern Bool TabToNextStop (XtermWidget /* xw */); 1203d522f475Smrgextern Bool TabToPrevStop (XtermWidget /* xw */); 1204d522f475Smrgextern void TabClear (Tabs /* tabs */, int /* col */); 1205d522f475Smrgextern void TabReset (Tabs /* tabs */); 1206d522f475Smrgextern void TabSet (Tabs /* tabs */, int /* col */); 1207d522f475Smrgextern void TabZonk (Tabs /* tabs */); 1208d522f475Smrg 1209d522f475Smrg/* util.c */ 1210d522f475Smrgextern Boolean isDefaultBackground(const char * /* name */); 1211d522f475Smrgextern Boolean isDefaultForeground(const char * /* name */); 121220d2c4d2Smrgextern GC updatedXtermGC (XtermWidget /* xw */, unsigned /* flags */, unsigned /* fg_bg */, Bool /* hilite */); 1213d522f475Smrgextern int AddToRefresh (XtermWidget /* xw */); 1214d522f475Smrgextern int ClearInLine (XtermWidget /* xw */, int /* row */, int /* col */, unsigned /* len */); 1215d522f475Smrgextern int HandleExposure (XtermWidget /* xw */, XEvent * /* event */); 1216956cc18dSsnjextern int drawXtermText (XtermWidget /* xw */, unsigned /* flags */, GC /* gc */, int /* x */, int /* y */, int /* chrset */, IChar * /* text */, Cardinal /* len */, int /* on_wide */); 1217a1f3da82Smrgextern int extendedBoolean(const char * /* value */, FlagList * /* table */, Cardinal /* limit */); 1218d522f475Smrgextern void ChangeColors (XtermWidget /* xw */, ScrnColors * /* pNew */); 1219d522f475Smrgextern void ClearRight (XtermWidget /* xw */, int /* n */); 1220d522f475Smrgextern void ClearScreen (XtermWidget /* xw */); 1221d522f475Smrgextern void DeleteChar (XtermWidget /* xw */, unsigned /* n */); 1222d522f475Smrgextern void DeleteLine (XtermWidget /* xw */, int /* n */); 1223d522f475Smrgextern void FlushScroll (XtermWidget /* xw */); 1224d522f475Smrgextern void GetColors (XtermWidget /* xw */, ScrnColors * /* pColors */); 1225d522f475Smrgextern void InsertChar (XtermWidget /* xw */, unsigned /* n */); 1226d522f475Smrgextern void InsertLine (XtermWidget /* xw */, int /* n */); 1227d522f475Smrgextern void RevScroll (XtermWidget /* xw */, int /* amount */); 1228d522f475Smrgextern void ReverseVideo (XtermWidget /* termw */); 1229956cc18dSsnjextern void WriteText (XtermWidget /* xw */, IChar * /* str */, Cardinal /* len */); 1230d522f475Smrgextern void decode_keyboard_type (XtermWidget /* xw */, struct XTERM_RESOURCE * /* rp */); 123120d2c4d2Smrgextern void decode_wcwidth (XtermWidget /* xw */); 1232d522f475Smrgextern void do_erase_display (XtermWidget /* xw */, int /* param */, int /* mode */); 1233d522f475Smrgextern void do_erase_line (XtermWidget /* xw */, int /* param */, int /* mode */); 1234d522f475Smrgextern void getXtermSizeHints (XtermWidget /* xw */); 1235d522f475Smrgextern void init_keyboard_type (XtermWidget /* xw */, xtermKeyboardType /* type */, Bool /* set */); 1236d522f475Smrgextern void recolor_cursor (TScreen * /* screen */, Cursor /* cursor */, unsigned long /* fg */, unsigned long /* bg */); 1237d522f475Smrgextern void resetXtermGC (XtermWidget /* xw */, unsigned /* flags */, Bool /* hilite */); 1238d522f475Smrgextern void scrolling_copy_area (XtermWidget /* xw */, int /* firstline */, int /* nlines */, int /* amount */); 1239d522f475Smrgextern void set_keyboard_type (XtermWidget /* xw */, xtermKeyboardType /* type */, Bool /* set */); 1240d522f475Smrgextern void toggle_keyboard_type (XtermWidget /* xw */, xtermKeyboardType /* type */); 1241d522f475Smrgextern void update_keyboard_type (void); 1242d522f475Smrgextern void xtermClear (XtermWidget /* xw */); 1243d522f475Smrgextern void xtermRepaint (XtermWidget /* xw */); 1244d522f475Smrgextern void xtermScroll (XtermWidget /* xw */, int /* amount */); 1245d522f475Smrgextern void xtermSizeHints (XtermWidget /* xw */, int /* scrollbarWidth */); 1246d522f475Smrg 1247d522f475Smrg#if OPT_ISO_COLORS 1248d522f475Smrg 124920d2c4d2Smrgextern unsigned extract_fg (XtermWidget /* xw */, unsigned /* color */, unsigned /* flags */); 125020d2c4d2Smrgextern unsigned extract_bg (XtermWidget /* xw */, unsigned /* color */, unsigned /* flags */); 1251956cc18dSsnjextern CellColor makeColorPair (int /* fg */, int /* bg */); 1252d522f475Smrgextern void ClearCurBackground (XtermWidget /* xw */, int /* top */, int /* left */, unsigned /* height */, unsigned /* width */); 1253d522f475Smrg 1254d522f475Smrg#define xtermColorPair(xw) makeColorPair(xw->sgr_foreground, xw->sgr_background) 1255d522f475Smrg 1256d522f475Smrg#define getXtermForeground(xw, flags, color) \ 1257d522f475Smrg (((flags) & FG_COLOR) && ((int)(color) >= 0 && (color) < MAXCOLORS) \ 125820d2c4d2Smrg ? GET_COLOR_RES(xw, TScreenOf(xw)->Acolors[color]) \ 125920d2c4d2Smrg : T_COLOR(TScreenOf(xw), TEXT_FG)) 1260d522f475Smrg 1261d522f475Smrg#define getXtermBackground(xw, flags, color) \ 1262d522f475Smrg (((flags) & BG_COLOR) && ((int)(color) >= 0 && (color) < MAXCOLORS) \ 126320d2c4d2Smrg ? GET_COLOR_RES(xw, TScreenOf(xw)->Acolors[color]) \ 126420d2c4d2Smrg : T_COLOR(TScreenOf(xw), TEXT_BG)) 1265d522f475Smrg 1266d522f475Smrg#if OPT_COLOR_RES 126720d2c4d2Smrg#define GET_COLOR_RES(xw, res) xtermGetColorRes(xw, &(res)) 1268d522f475Smrg#define SET_COLOR_RES(res,color) (res)->value = color 1269d522f475Smrg#define EQL_COLOR_RES(res,color) (res)->value == color 1270d522f475Smrg#define T_COLOR(v,n) (v)->Tcolors[n].value 127120d2c4d2Smrgextern Pixel xtermGetColorRes(XtermWidget /* xw */, ColorRes * /* res */); 1272d522f475Smrg#else 127320d2c4d2Smrg#define GET_COLOR_RES(xw, res) res 1274d522f475Smrg#define SET_COLOR_RES(res,color) *res = color 1275d522f475Smrg#define EQL_COLOR_RES(res,color) *res == color 1276d522f475Smrg#define T_COLOR(v,n) (v)->Tcolors[n] 1277d522f475Smrg#endif 1278d522f475Smrg 1279956cc18dSsnj#define ExtractForeground(color) (unsigned) GetCellColorFG(color) 1280956cc18dSsnj#define ExtractBackground(color) (unsigned) GetCellColorBG(color) 1281d522f475Smrg 128220d2c4d2Smrg#define MapToColorMode(fg, screen, flags) \ 128320d2c4d2Smrg (((screen)->colorBLMode && ((flags) & BLINK)) \ 128420d2c4d2Smrg ? COLOR_BL \ 1285a1f3da82Smrg : (((screen)->colorBDMode && ((flags) & BOLD)) \ 1286a1f3da82Smrg ? COLOR_BD \ 1287a1f3da82Smrg : (((screen)->colorULMode && ((flags) & UNDERLINE)) \ 1288a1f3da82Smrg ? COLOR_UL \ 128920d2c4d2Smrg : fg))) 129020d2c4d2Smrg 1291d522f475Smrg#define checkVeryBoldAttr(flags, fg, code, attr) \ 1292d522f475Smrg if ((flags & FG_COLOR) != 0 \ 1293d522f475Smrg && (screen->veryBoldColors & attr) == 0 \ 1294d522f475Smrg && (flags & attr) != 0 \ 1295d522f475Smrg && (fg == code)) \ 129620d2c4d2Smrg UIntClr(flags, attr) 1297d522f475Smrg 1298d522f475Smrg#define checkVeryBoldColors(flags, fg) \ 1299d522f475Smrg checkVeryBoldAttr(flags, fg, COLOR_RV, INVERSE); \ 1300d522f475Smrg checkVeryBoldAttr(flags, fg, COLOR_UL, UNDERLINE); \ 1301d522f475Smrg checkVeryBoldAttr(flags, fg, COLOR_BD, BOLD); \ 1302d522f475Smrg checkVeryBoldAttr(flags, fg, COLOR_BL, BLINK) 1303d522f475Smrg 1304d522f475Smrg#else /* !OPT_ISO_COLORS */ 1305d522f475Smrg 130620d2c4d2Smrg#define MapToColorMode(fg, screen, flags) fg 130720d2c4d2Smrg 1308d522f475Smrg#define ClearDFtBackground(xw, top, left, height, width) \ 1309d522f475Smrg ClearCurBackground(xw, top, left, height, width) 1310d522f475Smrg 1311d522f475Smrg#define ClearCurBackground(xw, top, left, height, width) \ 131220d2c4d2Smrg XClearArea (TScreenOf(xw)->display, VWindow(TScreenOf(xw)), \ 1313d522f475Smrg left, top, width, height, False) 1314d522f475Smrg 1315d522f475Smrg#define extract_fg(xw, color, flags) (xw)->cur_foreground 1316d522f475Smrg#define extract_bg(xw, color, flags) (xw)->cur_background 1317d522f475Smrg 1318d522f475Smrg /* FIXME: Reverse-Video? */ 1319d522f475Smrg#define T_COLOR(v,n) (v)->Tcolors[n] 132020d2c4d2Smrg#define getXtermBackground(xw, flags, color) T_COLOR(TScreenOf(xw), TEXT_BG) 132120d2c4d2Smrg#define getXtermForeground(xw, flags, color) T_COLOR(TScreenOf(xw), TEXT_FG) 1322d522f475Smrg#define makeColorPair(fg, bg) 0 1323d522f475Smrg#define xtermColorPair(xw) 0 1324d522f475Smrg 1325d522f475Smrg#define checkVeryBoldColors(flags, fg) /* nothing */ 1326d522f475Smrg 1327d522f475Smrg#endif /* OPT_ISO_COLORS */ 1328d522f475Smrg 1329d522f475Smrg#define XTERM_CELL(row,col) getXtermCell(screen, ROW2INX(screen, row), col) 1330d522f475Smrg 1331d522f475Smrgextern unsigned getXtermCell (TScreen * /* screen */, int /* row */, int /* col */); 1332d522f475Smrgextern void putXtermCell (TScreen * /* screen */, int /* row */, int /* col */, int /* ch */); 1333d522f475Smrg 1334d522f475Smrg#if OPT_HIGHLIGHT_COLOR 1335d522f475Smrg#define isNotForeground(xw, fg, bg, sel) \ 133620d2c4d2Smrg (Boolean) ((sel) != T_COLOR(TScreenOf(xw), TEXT_FG) \ 13372eaa94a1Schristos && (sel) != (fg) \ 13382eaa94a1Schristos && (sel) != (bg) \ 13392eaa94a1Schristos && (sel) != (xw)->dft_foreground) 1340d522f475Smrg#define isNotBackground(xw, fg, bg, sel) \ 134120d2c4d2Smrg (Boolean) ((sel) != T_COLOR(TScreenOf(xw), TEXT_BG) \ 13422eaa94a1Schristos && (sel) != (fg) \ 13432eaa94a1Schristos && (sel) != (bg) \ 13442eaa94a1Schristos && (sel) != (xw)->dft_background) 1345d522f475Smrg#endif 1346d522f475Smrg 1347d522f475Smrg#if OPT_WIDE_CHARS 1348d522f475Smrgextern Boolean isWideControl(unsigned /* ch */); 1349d522f475Smrgextern int DamagedCells(TScreen * /* screen */, unsigned /* n */, int * /* klp */, int * /* krp */, int /* row */, int /* col */); 1350d522f475Smrgextern int DamagedCurCells(TScreen * /* screen */, unsigned /* n */, int * /* klp */, int * /* krp */); 1351d522f475Smrgextern unsigned AsciiEquivs(unsigned /* ch */); 1352d522f475Smrgextern void addXtermCombining (TScreen * /* screen */, int /* row */, int /* col */, unsigned /* ch */); 1353956cc18dSsnjextern void allocXtermChars(ScrnPtr * /* buffer */, Cardinal /* length */); 1354d522f475Smrg#endif 1355d522f475Smrg 1356d522f475Smrg#if OPT_XMC_GLITCH 1357d522f475Smrgextern void Mark_XMC (XtermWidget /* xw */, int /* param */); 1358d522f475Smrgextern void Jump_XMC (XtermWidget /* xw */); 1359d522f475Smrgextern void Resolve_XMC (XtermWidget /* xw */); 1360d522f475Smrg#endif 1361d522f475Smrg 1362d522f475Smrg#if OPT_WIDE_CHARS 1363956cc18dSsnjunsigned visual_width(IChar * /* str */, Cardinal /* len */); 1364d522f475Smrg#else 1365d522f475Smrg#define visual_width(a, b) (b) 1366d522f475Smrg#endif 1367d522f475Smrg 1368d522f475Smrg#define BtoS(b) (((b) == Maybe) ? "maybe" : ((b) ? "on" : "off")) 1369d522f475Smrg#define NonNull(s) ((s) ? (s) : "<null>") 1370d522f475Smrg 137120d2c4d2Smrg#define UIntSet(dst,bits) dst = dst | (unsigned) (bits) 137220d2c4d2Smrg#define UIntClr(dst,bits) dst = dst & (unsigned) ~(bits) 137320d2c4d2Smrg 1374d522f475Smrg#ifdef __cplusplus 1375d522f475Smrg } 1376d522f475Smrg#endif 1377a1f3da82Smrg/* *INDENT-ON* */ 1378d522f475Smrg 1379a1f3da82Smrg#endif /* included_xterm_h */ 1380