1/* $XTermId: xtermcap.h,v 1.20 2013/06/23 15:34:37 tom Exp $ */ 2 3/* 4 * Copyright 2007-2011,2013 by Thomas E. Dickey 5 * 6 * All Rights Reserved 7 * 8 * Permission is hereby granted, free of charge, to any person obtaining a 9 * copy of this software and associated documentation files (the 10 * "Software"), to deal in the Software without restriction, including 11 * without limitation the rights to use, copy, modify, merge, publish, 12 * distribute, sublicense, and/or sell copies of the Software, and to 13 * permit persons to whom the Software is furnished to do so, subject to 14 * the following conditions: 15 * 16 * The above copyright notice and this permission notice shall be included 17 * in all copies or substantial portions of the Software. 18 * 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 20 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 22 * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY 23 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 24 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 25 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 26 * 27 * Except as contained in this notice, the name(s) of the above copyright 28 * holders shall not be used in advertising or otherwise to promote the 29 * sale, use or other dealings in this Software without prior written 30 * authorization. 31 */ 32 33/* 34 * Common/useful definitions for XTERM termcap interface. 35 */ 36#ifndef included_xtermcap_h 37#define included_xtermcap_h 38/* *INDENT-OFF* */ 39 40#include <xterm.h> 41 42#include <ptyx.h> 43 44#ifndef HAVE_TIGETSTR 45#undef USE_TERMINFO 46#endif 47 48#ifndef USE_TERMINFO 49#define USE_TERMINFO 0 50#endif 51 52#if !USE_TERMINFO 53#undef HAVE_TIGETSTR 54#ifndef USE_TERMCAP 55#define USE_TERMCAP 1 56#endif 57#endif 58 59#undef ERR /* workaround for glibc 2.1.3 */ 60 61#ifdef HAVE_NCURSES_CURSES_H 62#include <ncurses/curses.h> 63#else 64#include <curses.h> 65#endif 66 67#ifndef NCURSES_VERSION 68#ifdef HAVE_TERMCAP_H 69#include <termcap.h> 70#endif 71#endif 72 73#ifdef HAVE_NCURSES_TERM_H 74#include <ncurses/term.h> 75#elif defined(HAVE_TERM_H) 76#include <term.h> /* tgetent() */ 77#endif 78 79/* 80 * Get rid of conflicting symbols from term.h 81 */ 82#undef bell 83 84/***====================================================================***/ 85 86#ifdef __cplusplus 87extern "C" { 88#endif 89 90#define MOD_NONE 1 91#define MOD_SHIFT 1 92#define MOD_ALT 2 93#define MOD_CTRL 4 94#define MOD_META 8 95 96#define MODIFIER_NAME(parm, name) \ 97 (((parm > MOD_NONE) && ((parm - MOD_NONE) & name)) ? " "#name : "") 98 99/* xtermcap.c */ 100extern Bool get_termcap(XtermWidget /* xw */, char * /* name */); 101extern void set_termcap(XtermWidget /* xw */, const char * /* name */); 102extern void free_termcap(XtermWidget /* xw */); 103 104extern char *get_tcap_buffer(XtermWidget /* xw */); 105extern char *get_tcap_erase(XtermWidget /* xw */); 106 107#if OPT_TCAP_FKEYS 108extern int xtermcapString(XtermWidget /* xw */, int /* keycode */, unsigned /* mask */); 109#endif 110 111#if OPT_TCAP_QUERY 112extern int xtermcapKeycode(XtermWidget /* xw */, const char ** /* params */, unsigned * /* state */, Bool * /* fkey */); 113#endif 114 115#ifdef __cplusplus 116 } 117#endif 118 119/* *INDENT-ON* */ 120#endif /* included_xtermcap_h */ 121