10e3d5408SPeter Wemm/**************************************************************************** 2*21817992SBaptiste Daroussin * Copyright 2018-2023,2024 Thomas E. Dickey * 3e1865124SBaptiste Daroussin * Copyright 1998-2016,2017 Free Software Foundation, Inc. * 40e3d5408SPeter Wemm * * 50e3d5408SPeter Wemm * Permission is hereby granted, free of charge, to any person obtaining a * 60e3d5408SPeter Wemm * copy of this software and associated documentation files (the * 70e3d5408SPeter Wemm * "Software"), to deal in the Software without restriction, including * 80e3d5408SPeter Wemm * without limitation the rights to use, copy, modify, merge, publish, * 90e3d5408SPeter Wemm * distribute, distribute with modifications, sublicense, and/or sell * 100e3d5408SPeter Wemm * copies of the Software, and to permit persons to whom the Software is * 110e3d5408SPeter Wemm * furnished to do so, subject to the following conditions: * 120e3d5408SPeter Wemm * * 130e3d5408SPeter Wemm * The above copyright notice and this permission notice shall be included * 140e3d5408SPeter Wemm * in all copies or substantial portions of the Software. * 150e3d5408SPeter Wemm * * 160e3d5408SPeter Wemm * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 170e3d5408SPeter Wemm * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 180e3d5408SPeter Wemm * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 190e3d5408SPeter Wemm * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 200e3d5408SPeter Wemm * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 210e3d5408SPeter Wemm * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 220e3d5408SPeter Wemm * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 230e3d5408SPeter Wemm * * 240e3d5408SPeter Wemm * Except as contained in this notice, the name(s) of the above copyright * 250e3d5408SPeter Wemm * holders shall not be used in advertising or otherwise to promote the * 260e3d5408SPeter Wemm * sale, use or other dealings in this Software without prior written * 270e3d5408SPeter Wemm * authorization. * 280e3d5408SPeter Wemm ****************************************************************************/ 290e3d5408SPeter Wemm 300e3d5408SPeter Wemm/**************************************************************************** 310e3d5408SPeter Wemm * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 * 320e3d5408SPeter Wemm * and: Eric S. Raymond <esr@snark.thyrsus.com> * 33b82face1SPeter Wemm * and: Thomas E. Dickey 1996-on * 340e3d5408SPeter Wemm ****************************************************************************/ 350e3d5408SPeter Wemm 36*21817992SBaptiste Daroussin/* $Id: curses.h.in,v 1.282 2024/01/19 11:50:07 tom Exp $ */ 370e3d5408SPeter Wemm 380e3d5408SPeter Wemm#ifndef __NCURSES_H 390e3d5408SPeter Wemm#define __NCURSES_H 400e3d5408SPeter Wemm 41*21817992SBaptiste Daroussin/* 42*21817992SBaptiste Daroussin The symbols beginning NCURSES_ or USE_ are configuration choices. 43*21817992SBaptiste Daroussin A few of the former can be overridden by applications at compile-time. 44*21817992SBaptiste Daroussin Most of the others correspond to configure-script options (or checks 45*21817992SBaptiste Daroussin by the configure-script for features of the system on which it is built). 46*21817992SBaptiste Daroussin 47*21817992SBaptiste Daroussin These symbols can be overridden by applications at compile-time: 48*21817992SBaptiste Daroussin NCURSES_NOMACROS suppresses macro definitions in favor of functions 49*21817992SBaptiste Daroussin NCURSES_WATTR_MACROS suppresses wattr_* macro definitions 50*21817992SBaptiste Daroussin NCURSES_WIDECHAR is an alternative for declaring wide-character functions. 51*21817992SBaptiste Daroussin 52*21817992SBaptiste Daroussin These symbols are used only when building ncurses: 53*21817992SBaptiste Daroussin NCURSES_ATTR_T 54*21817992SBaptiste Daroussin NCURSES_FIELD_INTERNALS 55*21817992SBaptiste Daroussin NCURSES_INTERNALS 56*21817992SBaptiste Daroussin 57*21817992SBaptiste Daroussin These symbols are set by the configure script: 58*21817992SBaptiste Daroussin NCURSES_ENABLE_STDBOOL_H 59*21817992SBaptiste Daroussin NCURSES_EXPANDED 60*21817992SBaptiste Daroussin NCURSES_EXT_COLORS 61*21817992SBaptiste Daroussin NCURSES_EXT_FUNCS 62*21817992SBaptiste Daroussin NCURSES_EXT_PUTWIN 63*21817992SBaptiste Daroussin NCURSES_NO_PADDING 64*21817992SBaptiste Daroussin NCURSES_OSPEED_COMPAT 65*21817992SBaptiste Daroussin NCURSES_PATHSEP 66*21817992SBaptiste Daroussin NCURSES_REENTRANT 67*21817992SBaptiste Daroussin NCURSES_SIGWINCH 68*21817992SBaptiste Daroussin */ 69*21817992SBaptiste Daroussin 700e3d5408SPeter Wemm#define CURSES 1 710e3d5408SPeter Wemm#define CURSES_H 1 720e3d5408SPeter Wemm 730e3d5408SPeter Wemm/* These are defined only in curses.h, and are used for conditional compiles */ 740e3d5408SPeter Wemm#define NCURSES_VERSION_MAJOR @NCURSES_MAJOR@ 750e3d5408SPeter Wemm#define NCURSES_VERSION_MINOR @NCURSES_MINOR@ 760e3d5408SPeter Wemm#define NCURSES_VERSION_PATCH @NCURSES_PATCH@ 770e3d5408SPeter Wemm 780e3d5408SPeter Wemm/* This is defined in more than one ncurses header, for identification */ 790e3d5408SPeter Wemm#undef NCURSES_VERSION 800e3d5408SPeter Wemm#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@" 810e3d5408SPeter Wemm 824a1a9510SRong-En Fan/* 834a1a9510SRong-En Fan * Identify the mouse encoding version. 844a1a9510SRong-En Fan */ 854a1a9510SRong-En Fan#define NCURSES_MOUSE_VERSION @NCURSES_MOUSE_VERSION@ 864a1a9510SRong-En Fan 874a1a9510SRong-En Fan/* 884a1a9510SRong-En Fan * Definitions to facilitate DLL's. 894a1a9510SRong-En Fan */ 907a69bbfbSPeter Wemm#include <ncurses_dll.h> 917a69bbfbSPeter Wemm 92*21817992SBaptiste Daroussin/* 93*21817992SBaptiste Daroussin * Extra headers. 94*21817992SBaptiste Daroussin */ 95aae38d10SBaptiste Daroussin#if @HAVE_STDINT_H@ 96aae38d10SBaptiste Daroussin#include <stdint.h> 97aae38d10SBaptiste Daroussin#endif 98aae38d10SBaptiste Daroussin 99*21817992SBaptiste Daroussin#ifdef __cplusplus 100*21817992SBaptiste Daroussin#else 101*21817992SBaptiste Daroussin#if @HAVE_STDNORETURN_H@ 102*21817992SBaptiste Daroussin#include <stdnoreturn.h> 103*21817992SBaptiste Daroussin#undef GCC_NORETURN 104*21817992SBaptiste Daroussin#define GCC_NORETURN _Noreturn 105*21817992SBaptiste Daroussin#endif 106*21817992SBaptiste Daroussin#endif 107*21817992SBaptiste Daroussin 1084a1a9510SRong-En Fan/* 1094a1a9510SRong-En Fan * User-definable tweak to disable the include of <stdbool.h>. 1104a1a9510SRong-En Fan */ 1114a1a9510SRong-En Fan#ifndef NCURSES_ENABLE_STDBOOL_H 1124a1a9510SRong-En Fan#define NCURSES_ENABLE_STDBOOL_H @cf_cv_header_stdbool_h@ 1134a1a9510SRong-En Fan#endif 1144a1a9510SRong-En Fan 1154a1a9510SRong-En Fan/* 1164a1a9510SRong-En Fan * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses 1174a1a9510SRong-En Fan * configured using --disable-macros. 1184a1a9510SRong-En Fan */ 1190e3d5408SPeter Wemm#ifndef NCURSES_ATTR_T 1200e3d5408SPeter Wemm#define NCURSES_ATTR_T int 1210e3d5408SPeter Wemm#endif 1220e3d5408SPeter Wemm 1234a1a9510SRong-En Fan/* 1244a1a9510SRong-En Fan * Expands to 'const' if ncurses is configured using --enable-const. Note that 1254a1a9510SRong-En Fan * doing so makes it incompatible with other implementations of X/Open Curses. 1264a1a9510SRong-En Fan */ 1270e3d5408SPeter Wemm#undef NCURSES_CONST 1280e3d5408SPeter Wemm#define NCURSES_CONST @NCURSES_CONST@ 1290e3d5408SPeter Wemm 1304a1a9510SRong-En Fan#undef NCURSES_INLINE 1314a1a9510SRong-En Fan#define NCURSES_INLINE @NCURSES_INLINE@ 1324a1a9510SRong-En Fan 1334a1a9510SRong-En Fan/* 134aae38d10SBaptiste Daroussin * The standard type used for color values, and for color-pairs. The latter 13573f0a83dSXin LI * allows the curses library to enumerate the combinations of foreground and 13673f0a83dSXin LI * background colors used by an application, and is normally the product of the 13773f0a83dSXin LI * total foreground and background colors. 13873f0a83dSXin LI * 13973f0a83dSXin LI * X/Open uses "short" for both of these types, ultimately because they are 140aae38d10SBaptiste Daroussin * numbers from the SVr4 terminal database, which uses 16-bit signed values. 1414a1a9510SRong-En Fan */ 14215589c42SPeter Wemm#undef NCURSES_COLOR_T 14315589c42SPeter Wemm#define NCURSES_COLOR_T short 14415589c42SPeter Wemm 14573f0a83dSXin LI#undef NCURSES_PAIRS_T 14673f0a83dSXin LI#define NCURSES_PAIRS_T short 14773f0a83dSXin LI 1484a1a9510SRong-En Fan/* 149aae38d10SBaptiste Daroussin * Definitions used to make WINDOW and similar structs opaque. 1505ca44d1cSRong-En Fan */ 151aae38d10SBaptiste Daroussin#ifndef NCURSES_INTERNALS 1525ca44d1cSRong-En Fan#define NCURSES_OPAQUE @NCURSES_OPAQUE@ 153aae38d10SBaptiste Daroussin#define NCURSES_OPAQUE_FORM @NCURSES_OPAQUE_FORM@ 154aae38d10SBaptiste Daroussin#define NCURSES_OPAQUE_MENU @NCURSES_OPAQUE_MENU@ 155aae38d10SBaptiste Daroussin#define NCURSES_OPAQUE_PANEL @NCURSES_OPAQUE_PANEL@ 156aae38d10SBaptiste Daroussin#endif 157aae38d10SBaptiste Daroussin 158aae38d10SBaptiste Daroussin/* 159aae38d10SBaptiste Daroussin * Definition used to optionally suppress wattr* macros to help with the 160aae38d10SBaptiste Daroussin * transition from ncurses5 to ncurses6 by allowing the header files to 161aae38d10SBaptiste Daroussin * be shared across development packages for ncursesw in both ABIs. 162aae38d10SBaptiste Daroussin */ 163aae38d10SBaptiste Daroussin#ifndef NCURSES_WATTR_MACROS 164aae38d10SBaptiste Daroussin#define NCURSES_WATTR_MACROS @NCURSES_WATTR_MACROS@ 1655ca44d1cSRong-En Fan#endif 1665ca44d1cSRong-En Fan 1675ca44d1cSRong-En Fan/* 16806bfebdeSXin LI * The reentrant code relies on the opaque setting, but adds features. 16906bfebdeSXin LI */ 17006bfebdeSXin LI#ifndef NCURSES_REENTRANT 17106bfebdeSXin LI#define NCURSES_REENTRANT @cf_cv_enable_reentrant@ 17206bfebdeSXin LI#endif 17306bfebdeSXin LI 17406bfebdeSXin LI/* 175*21817992SBaptiste Daroussin * KEY_RESIZE is an extended feature that relies upon the SIGWINCH handler 176*21817992SBaptiste Daroussin * in ncurses. 177*21817992SBaptiste Daroussin */ 178*21817992SBaptiste Daroussin#if @NCURSES_EXT_FUNCS@ 179*21817992SBaptiste Daroussin#ifndef NCURSES_SIGWINCH 180*21817992SBaptiste Daroussin#define NCURSES_SIGWINCH @cf_cv_enable_sigwinch@ 181*21817992SBaptiste Daroussin#endif 182*21817992SBaptiste Daroussin#else 183*21817992SBaptiste Daroussin#undef NCURSES_SIGWINCH 184*21817992SBaptiste Daroussin#define NCURSES_SIGWINCH 0 185*21817992SBaptiste Daroussin#endif 186*21817992SBaptiste Daroussin 187*21817992SBaptiste Daroussin/* 188e1865124SBaptiste Daroussin * In certain environments, we must work around linker problems for data 189e1865124SBaptiste Daroussin */ 190e1865124SBaptiste Daroussin#undef NCURSES_BROKEN_LINKER 191e1865124SBaptiste Daroussin#if @BROKEN_LINKER@ 192e1865124SBaptiste Daroussin#define NCURSES_BROKEN_LINKER 1 193e1865124SBaptiste Daroussin#endif 194e1865124SBaptiste Daroussin 195e1865124SBaptiste Daroussin/* 19606bfebdeSXin LI * Control whether bindings for interop support are added. 19706bfebdeSXin LI */ 19806bfebdeSXin LI#undef NCURSES_INTEROP_FUNCS 19906bfebdeSXin LI#define NCURSES_INTEROP_FUNCS @NCURSES_INTEROP_FUNCS@ 20006bfebdeSXin LI 20106bfebdeSXin LI/* 2024a1a9510SRong-En Fan * The internal type used for window dimensions. 2034a1a9510SRong-En Fan */ 20415589c42SPeter Wemm#undef NCURSES_SIZE_T 2055ca44d1cSRong-En Fan#define NCURSES_SIZE_T @NCURSES_SIZE_T@ 20615589c42SPeter Wemm 2074a1a9510SRong-En Fan/* 2084a1a9510SRong-En Fan * Control whether tparm() supports varargs or fixed-parameter list. 2094a1a9510SRong-En Fan */ 2104a1a9510SRong-En Fan#undef NCURSES_TPARM_VARARGS 2114a1a9510SRong-En Fan#define NCURSES_TPARM_VARARGS @NCURSES_TPARM_VARARGS@ 2124a1a9510SRong-En Fan 2134a1a9510SRong-En Fan/* 21473f0a83dSXin LI * Control type used for tparm's arguments. While X/Open equates long and 21573f0a83dSXin LI * char* values, this is not always workable for 64-bit platforms. 21673f0a83dSXin LI */ 21773f0a83dSXin LI#undef NCURSES_TPARM_ARG 21873f0a83dSXin LI#define NCURSES_TPARM_ARG @NCURSES_TPARM_ARG@ 21973f0a83dSXin LI 22073f0a83dSXin LI/* 221aae38d10SBaptiste Daroussin * Control whether ncurses uses wcwidth() for checking width of line-drawing 222aae38d10SBaptiste Daroussin * characters. 223aae38d10SBaptiste Daroussin */ 224aae38d10SBaptiste Daroussin#undef NCURSES_WCWIDTH_GRAPHICS 225aae38d10SBaptiste Daroussin#define NCURSES_WCWIDTH_GRAPHICS @NCURSES_WCWIDTH_GRAPHICS@ 226aae38d10SBaptiste Daroussin 227aae38d10SBaptiste Daroussin/* 2284a1a9510SRong-En Fan * NCURSES_CH_T is used in building the library, but not used otherwise in 2294a1a9510SRong-En Fan * this header file, since that would make the normal/wide-character versions 2304a1a9510SRong-En Fan * of the header incompatible. 2314a1a9510SRong-En Fan */ 23239f2269fSPeter Wemm#undef NCURSES_CH_T 23339f2269fSPeter Wemm#define NCURSES_CH_T @NCURSES_CH_T@ 23439f2269fSPeter Wemm 2354a1a9510SRong-En Fan#if @cf_cv_enable_lp64@ && defined(_LP64) 2364a1a9510SRong-En Fantypedef unsigned chtype; 2374a1a9510SRong-En Fantypedef unsigned mmask_t; 2384a1a9510SRong-En Fan#else 239aae38d10SBaptiste Daroussintypedef @cf_cv_typeof_chtype@ chtype; 240aae38d10SBaptiste Daroussintypedef @cf_cv_typeof_mmask_t@ mmask_t; 2414a1a9510SRong-En Fan#endif 2420e3d5408SPeter Wemm 24306bfebdeSXin LI/* 24406bfebdeSXin LI * We need FILE, etc. Include this before checking any feature symbols. 24506bfebdeSXin LI */ 2460e3d5408SPeter Wemm#include <stdio.h> 24706bfebdeSXin LI 24806bfebdeSXin LI/* 24906bfebdeSXin LI * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or 25073f0a83dSXin LI * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is 25173f0a83dSXin LI * not already defined, e.g., if the platform relies upon nonstandard feature 25273f0a83dSXin LI * test macros, define it at this point if the standard feature test macros 25373f0a83dSXin LI * indicate that it should be defined. 25406bfebdeSXin LI */ 25573f0a83dSXin LI#ifndef NCURSES_WIDECHAR 25673f0a83dSXin LI#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) 25773f0a83dSXin LI#define NCURSES_WIDECHAR 1 25873f0a83dSXin LI#else 25973f0a83dSXin LI#define NCURSES_WIDECHAR 0 26006bfebdeSXin LI#endif 26173f0a83dSXin LI#endif /* NCURSES_WIDECHAR */ 26206bfebdeSXin LI 2630e3d5408SPeter Wemm#include <stdarg.h> /* we need va_list */ 26473f0a83dSXin LI#if NCURSES_WIDECHAR 2650e3d5408SPeter Wemm#include <stddef.h> /* we want wchar_t */ 26606bfebdeSXin LI#endif 2670e3d5408SPeter Wemm 2685ca44d1cSRong-En Fan/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also 2690e3d5408SPeter Wemm * implement it. If so, we must use the C++ compiler's type to avoid conflict 2700e3d5408SPeter Wemm * with other interfaces. 27139f2269fSPeter Wemm * 27239f2269fSPeter Wemm * A further complication is that <stdbool.h> may declare 'bool' to be a 27339f2269fSPeter Wemm * different type, such as an enum which is not necessarily compatible with 27439f2269fSPeter Wemm * C++. If we have <stdbool.h>, make 'bool' a macro, so users may #undef it. 27539f2269fSPeter Wemm * Otherwise, let it remain a typedef to avoid conflicts with other #define's. 27639f2269fSPeter Wemm * In either case, make a typedef for NCURSES_BOOL which can be used if needed 27739f2269fSPeter Wemm * from either C or C++. 2780e3d5408SPeter Wemm */ 2790e3d5408SPeter Wemm 2800e3d5408SPeter Wemm#undef TRUE 2810e3d5408SPeter Wemm#define TRUE 1 2820e3d5408SPeter Wemm 2830e3d5408SPeter Wemm#undef FALSE 2840e3d5408SPeter Wemm#define FALSE 0 2850e3d5408SPeter Wemm 28639f2269fSPeter Wemmtypedef @cf_cv_type_of_bool@ NCURSES_BOOL; 28739f2269fSPeter Wemm 2884a1a9510SRong-En Fan#if @USE_CXX_BOOL@ /* __cplusplus, etc. */ 28939f2269fSPeter Wemm 2904a1a9510SRong-En Fan/* use the C++ compiler's bool type */ 2914a1a9510SRong-En Fan#define NCURSES_BOOL bool 2924a1a9510SRong-En Fan 2934a1a9510SRong-En Fan#else /* c89, c99, etc. */ 2944a1a9510SRong-En Fan 2954a1a9510SRong-En Fan#if NCURSES_ENABLE_STDBOOL_H 29639f2269fSPeter Wemm#include <stdbool.h> 2974a1a9510SRong-En Fan/* use whatever the C compiler decides bool really is */ 2984a1a9510SRong-En Fan#define NCURSES_BOOL bool 29939f2269fSPeter Wemm#else 3004a1a9510SRong-En Fan/* there is no predefined bool - use our own */ 3014a1a9510SRong-En Fan#undef bool 3024a1a9510SRong-En Fan#define bool NCURSES_BOOL 3030e3d5408SPeter Wemm#endif 3040e3d5408SPeter Wemm 30539f2269fSPeter Wemm#endif /* !__cplusplus, etc. */ 30639f2269fSPeter Wemm 3070e3d5408SPeter Wemm#ifdef __cplusplus 3080e3d5408SPeter Wemmextern "C" { 3094a1a9510SRong-En Fan#define NCURSES_CAST(type,value) static_cast<type>(value) 3104a1a9510SRong-En Fan#else 3114a1a9510SRong-En Fan#define NCURSES_CAST(type,value) (type)(value) 3120e3d5408SPeter Wemm#endif 3130e3d5408SPeter Wemm 314aae38d10SBaptiste Daroussin#define NCURSES_OK_ADDR(p) (0 != NCURSES_CAST(const void *, (p))) 315aae38d10SBaptiste Daroussin 3160e3d5408SPeter Wemm/* 3175ca44d1cSRong-En Fan * X/Open attributes. In the ncurses implementation, they are identical to the 3180e3d5408SPeter Wemm * A_ attributes. 3190e3d5408SPeter Wemm */ 3200e3d5408SPeter Wemm#define WA_ATTRIBUTES A_ATTRIBUTES 3210e3d5408SPeter Wemm#define WA_NORMAL A_NORMAL 3220e3d5408SPeter Wemm#define WA_STANDOUT A_STANDOUT 3230e3d5408SPeter Wemm#define WA_UNDERLINE A_UNDERLINE 3240e3d5408SPeter Wemm#define WA_REVERSE A_REVERSE 3250e3d5408SPeter Wemm#define WA_BLINK A_BLINK 3260e3d5408SPeter Wemm#define WA_DIM A_DIM 3270e3d5408SPeter Wemm#define WA_BOLD A_BOLD 3280e3d5408SPeter Wemm#define WA_ALTCHARSET A_ALTCHARSET 3290e3d5408SPeter Wemm#define WA_INVIS A_INVIS 3300e3d5408SPeter Wemm#define WA_PROTECT A_PROTECT 3310e3d5408SPeter Wemm#define WA_HORIZONTAL A_HORIZONTAL 3320e3d5408SPeter Wemm#define WA_LEFT A_LEFT 3330e3d5408SPeter Wemm#define WA_LOW A_LOW 3340e3d5408SPeter Wemm#define WA_RIGHT A_RIGHT 3350e3d5408SPeter Wemm#define WA_TOP A_TOP 3360e3d5408SPeter Wemm#define WA_VERTICAL A_VERTICAL 3370e3d5408SPeter Wemm 33873f0a83dSXin LI#if @NCURSES_EXT_FUNCS@ 33973f0a83dSXin LI#define WA_ITALIC A_ITALIC /* ncurses extension */ 34073f0a83dSXin LI#endif 34173f0a83dSXin LI 3420e3d5408SPeter Wemm/* colors */ 3430e3d5408SPeter Wemm#define COLOR_BLACK 0 3440e3d5408SPeter Wemm#define COLOR_RED 1 3450e3d5408SPeter Wemm#define COLOR_GREEN 2 3460e3d5408SPeter Wemm#define COLOR_YELLOW 3 3470e3d5408SPeter Wemm#define COLOR_BLUE 4 3480e3d5408SPeter Wemm#define COLOR_MAGENTA 5 3490e3d5408SPeter Wemm#define COLOR_CYAN 6 3500e3d5408SPeter Wemm#define COLOR_WHITE 7 3510e3d5408SPeter Wemm 3520e3d5408SPeter Wemm/* line graphics */ 3530e3d5408SPeter Wemm 35406bfebdeSXin LI#if @BROKEN_LINKER@ || NCURSES_REENTRANT 3555ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(chtype*, acs_map); 35606bfebdeSXin LI#define acs_map NCURSES_PUBLIC_VAR(acs_map()) 35739f2269fSPeter Wemm#else 3587a69bbfbSPeter Wemmextern NCURSES_EXPORT_VAR(chtype) acs_map[]; 35939f2269fSPeter Wemm#endif 3600e3d5408SPeter Wemm 36173f0a83dSXin LI#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))]) 3624a1a9510SRong-En Fan 3630e3d5408SPeter Wemm/* VT100 symbols begin here */ 3644a1a9510SRong-En Fan#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ 3654a1a9510SRong-En Fan#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */ 3664a1a9510SRong-En Fan#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */ 3674a1a9510SRong-En Fan#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */ 3684a1a9510SRong-En Fan#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */ 3694a1a9510SRong-En Fan#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */ 3704a1a9510SRong-En Fan#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */ 3714a1a9510SRong-En Fan#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */ 3724a1a9510SRong-En Fan#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */ 3734a1a9510SRong-En Fan#define ACS_VLINE NCURSES_ACS('x') /* vertical line */ 3744a1a9510SRong-En Fan#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */ 3754a1a9510SRong-En Fan#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */ 3764a1a9510SRong-En Fan#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */ 3774a1a9510SRong-En Fan#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */ 3784a1a9510SRong-En Fan#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */ 3794a1a9510SRong-En Fan#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */ 3804a1a9510SRong-En Fan#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */ 3814a1a9510SRong-En Fan#define ACS_BULLET NCURSES_ACS('~') /* bullet */ 3820e3d5408SPeter Wemm/* Teletype 5410v1 symbols begin here */ 3834a1a9510SRong-En Fan#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */ 3844a1a9510SRong-En Fan#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */ 3854a1a9510SRong-En Fan#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */ 3864a1a9510SRong-En Fan#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */ 3874a1a9510SRong-En Fan#define ACS_BOARD NCURSES_ACS('h') /* board of squares */ 3884a1a9510SRong-En Fan#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */ 3894a1a9510SRong-En Fan#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */ 3900e3d5408SPeter Wemm/* 3910e3d5408SPeter Wemm * These aren't documented, but a lot of System Vs have them anyway 3920e3d5408SPeter Wemm * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings). 3930e3d5408SPeter Wemm * The ACS_names may not match AT&T's, our source didn't know them. 3940e3d5408SPeter Wemm */ 3954a1a9510SRong-En Fan#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */ 3964a1a9510SRong-En Fan#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */ 3974a1a9510SRong-En Fan#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */ 3984a1a9510SRong-En Fan#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */ 3994a1a9510SRong-En Fan#define ACS_PI NCURSES_ACS('{') /* Pi */ 4004a1a9510SRong-En Fan#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */ 4014a1a9510SRong-En Fan#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */ 4020e3d5408SPeter Wemm 4030e3d5408SPeter Wemm/* 4040e3d5408SPeter Wemm * Line drawing ACS names are of the form ACS_trbl, where t is the top, r 4050e3d5408SPeter Wemm * is the right, b is the bottom, and l is the left. t, r, b, and l might 4060e3d5408SPeter Wemm * be B (blank), S (single), D (double), or T (thick). The subset defined 4070e3d5408SPeter Wemm * here only uses B and S. 4080e3d5408SPeter Wemm */ 4090e3d5408SPeter Wemm#define ACS_BSSB ACS_ULCORNER 4100e3d5408SPeter Wemm#define ACS_SSBB ACS_LLCORNER 4110e3d5408SPeter Wemm#define ACS_BBSS ACS_URCORNER 4120e3d5408SPeter Wemm#define ACS_SBBS ACS_LRCORNER 4130e3d5408SPeter Wemm#define ACS_SBSS ACS_RTEE 4140e3d5408SPeter Wemm#define ACS_SSSB ACS_LTEE 4150e3d5408SPeter Wemm#define ACS_SSBS ACS_BTEE 4160e3d5408SPeter Wemm#define ACS_BSSS ACS_TTEE 4170e3d5408SPeter Wemm#define ACS_BSBS ACS_HLINE 4180e3d5408SPeter Wemm#define ACS_SBSB ACS_VLINE 4190e3d5408SPeter Wemm#define ACS_SSSS ACS_PLUS 4200e3d5408SPeter Wemm 42139f2269fSPeter Wemm#undef ERR 4220e3d5408SPeter Wemm#define ERR (-1) 4230e3d5408SPeter Wemm 42439f2269fSPeter Wemm#undef OK 4250e3d5408SPeter Wemm#define OK (0) 4260e3d5408SPeter Wemm 4270e3d5408SPeter Wemm/* values for the _flags member */ 4280e3d5408SPeter Wemm#define _SUBWIN 0x01 /* is this a sub-window? */ 4290e3d5408SPeter Wemm#define _ENDLINE 0x02 /* is the window flush right? */ 4300e3d5408SPeter Wemm#define _FULLWIN 0x04 /* is the window full-screen? */ 4310e3d5408SPeter Wemm#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */ 4320e3d5408SPeter Wemm#define _ISPAD 0x10 /* is this window a pad? */ 4330e3d5408SPeter Wemm#define _HASMOVED 0x20 /* has cursor moved since last refresh? */ 4340e3d5408SPeter Wemm#define _WRAPPED 0x40 /* cursor was just wrappped */ 4350e3d5408SPeter Wemm 4360e3d5408SPeter Wemm/* 4370e3d5408SPeter Wemm * this value is used in the firstchar and lastchar fields to mark 4380e3d5408SPeter Wemm * unchanged lines 4390e3d5408SPeter Wemm */ 4400e3d5408SPeter Wemm#define _NOCHANGE -1 4410e3d5408SPeter Wemm 4420e3d5408SPeter Wemm/* 4430e3d5408SPeter Wemm * this value is used in the oldindex field to mark lines created by insertions 4440e3d5408SPeter Wemm * and scrolls. 4450e3d5408SPeter Wemm */ 4460e3d5408SPeter Wemm#define _NEWINDEX -1 4470e3d5408SPeter Wemm 448*21817992SBaptiste Daroussin#ifdef NCURSES_INTERNALS 449*21817992SBaptiste Daroussin#undef SCREEN 450*21817992SBaptiste Daroussin#define SCREEN struct screen 451*21817992SBaptiste DaroussinSCREEN; 452*21817992SBaptiste Daroussin#else 4530e3d5408SPeter Wemmtypedef struct screen SCREEN; 454*21817992SBaptiste Daroussin#endif 455*21817992SBaptiste Daroussin 4560e3d5408SPeter Wemmtypedef struct _win_st WINDOW; 4570e3d5408SPeter Wemm 4580e3d5408SPeter Wemmtypedef chtype attr_t; /* ...must be at least as wide as chtype */ 4590e3d5408SPeter Wemm 46073f0a83dSXin LI#if NCURSES_WIDECHAR 46139f2269fSPeter Wemm 46239f2269fSPeter Wemm#if @NCURSES_LIBUTF8@ 46339f2269fSPeter Wemm#ifdef mblen /* libutf8.h defines it w/o undefining first */ 46439f2269fSPeter Wemm#undef mblen 46539f2269fSPeter Wemm#endif 46639f2269fSPeter Wemm#include <libutf8.h> 46739f2269fSPeter Wemm#endif 46839f2269fSPeter Wemm 4694a1a9510SRong-En Fan#if @NEED_WCHAR_H@ 47039f2269fSPeter Wemm#include <wchar.h> /* ...to get mbstate_t, etc. */ 47139f2269fSPeter Wemm#endif 47239f2269fSPeter Wemm 4734a1a9510SRong-En Fan#if @NCURSES_WCHAR_T@ 4744a1a9510SRong-En Fantypedef unsigned short wchar_t@NCURSES_OK_WCHAR_T@; 4754a1a9510SRong-En Fan#endif 4764a1a9510SRong-En Fan 4774a1a9510SRong-En Fan#if @NCURSES_WINT_T@ 4784a1a9510SRong-En Fantypedef unsigned int wint_t@NCURSES_OK_WCHAR_T@; 4794a1a9510SRong-En Fan#endif 4800e3d5408SPeter Wemm 48106bfebdeSXin LI/* 48206bfebdeSXin LI * cchar_t stores an array of CCHARW_MAX wide characters. The first is 48306bfebdeSXin LI * normally a spacing character. The others are non-spacing. If those 48406bfebdeSXin LI * (spacing and nonspacing) do not fill the array, a null L'\0' follows. 48506bfebdeSXin LI * Otherwise, a null is assumed to follow when extracting via getcchar(). 48606bfebdeSXin LI */ 48706bfebdeSXin LI#define CCHARW_MAX @NCURSES_CCHARW_MAX@ 4880e3d5408SPeter Wemmtypedef struct 4890e3d5408SPeter Wemm{ 4900e3d5408SPeter Wemm attr_t attr; 4910e3d5408SPeter Wemm wchar_t chars[CCHARW_MAX]; 4924a1a9510SRong-En Fan#if @NCURSES_EXT_COLORS@ 4935ca44d1cSRong-En Fan#undef NCURSES_EXT_COLORS 4945ca44d1cSRong-En Fan#define NCURSES_EXT_COLORS @NCURSES_PATCH@ 4954a1a9510SRong-En Fan int ext_color; /* color pair, must be more than 16-bits */ 4964a1a9510SRong-En Fan#endif 4970e3d5408SPeter Wemm} 4980e3d5408SPeter Wemmcchar_t; 49939f2269fSPeter Wemm 50006bfebdeSXin LI#endif /* NCURSES_WIDECHAR */ 5010e3d5408SPeter Wemm 5025ca44d1cSRong-En Fan#if !NCURSES_OPAQUE 50339f2269fSPeter Wemmstruct ldat; 5040e3d5408SPeter Wemm 5050e3d5408SPeter Wemmstruct _win_st 5060e3d5408SPeter Wemm{ 50715589c42SPeter Wemm NCURSES_SIZE_T _cury, _curx; /* current cursor position */ 5080e3d5408SPeter Wemm 5090e3d5408SPeter Wemm /* window location and size */ 51015589c42SPeter Wemm NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */ 51115589c42SPeter Wemm NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */ 5120e3d5408SPeter Wemm 5130e3d5408SPeter Wemm short _flags; /* window state flags */ 5140e3d5408SPeter Wemm 5150e3d5408SPeter Wemm /* attribute tracking */ 5160e3d5408SPeter Wemm attr_t _attrs; /* current attribute for non-space character */ 5170e3d5408SPeter Wemm chtype _bkgd; /* current background char/attribute pair */ 5180e3d5408SPeter Wemm 5190e3d5408SPeter Wemm /* option values set by user */ 5200e3d5408SPeter Wemm bool _notimeout; /* no time out on function-key entry? */ 5210e3d5408SPeter Wemm bool _clear; /* consider all data in the window invalid? */ 5220e3d5408SPeter Wemm bool _leaveok; /* OK to not reset cursor on exit? */ 5230e3d5408SPeter Wemm bool _scroll; /* OK to scroll this window? */ 5240e3d5408SPeter Wemm bool _idlok; /* OK to use insert/delete line? */ 5250e3d5408SPeter Wemm bool _idcok; /* OK to use insert/delete char? */ 5260e3d5408SPeter Wemm bool _immed; /* window in immed mode? (not yet used) */ 5270e3d5408SPeter Wemm bool _sync; /* window in sync mode? */ 5280e3d5408SPeter Wemm bool _use_keypad; /* process function keys into KEY_ symbols? */ 5290e3d5408SPeter Wemm int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ 5300e3d5408SPeter Wemm 5310e3d5408SPeter Wemm struct ldat *_line; /* the actual line data */ 5320e3d5408SPeter Wemm 5330e3d5408SPeter Wemm /* global screen state */ 53415589c42SPeter Wemm NCURSES_SIZE_T _regtop; /* top line of scrolling region */ 53515589c42SPeter Wemm NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */ 5360e3d5408SPeter Wemm 5370e3d5408SPeter Wemm /* these are used only if this is a sub-window */ 5380e3d5408SPeter Wemm int _parx; /* x coordinate of this window in parent */ 5390e3d5408SPeter Wemm int _pary; /* y coordinate of this window in parent */ 5400e3d5408SPeter Wemm WINDOW *_parent; /* pointer to parent if a sub-window */ 5410e3d5408SPeter Wemm 5420e3d5408SPeter Wemm /* these are used only if this is a pad */ 5430e3d5408SPeter Wemm struct pdat 5440e3d5408SPeter Wemm { 54515589c42SPeter Wemm NCURSES_SIZE_T _pad_y, _pad_x; 54615589c42SPeter Wemm NCURSES_SIZE_T _pad_top, _pad_left; 54715589c42SPeter Wemm NCURSES_SIZE_T _pad_bottom, _pad_right; 5480e3d5408SPeter Wemm } _pad; 5490e3d5408SPeter Wemm 55015589c42SPeter Wemm NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ 55139f2269fSPeter Wemm 55273f0a83dSXin LI#if NCURSES_WIDECHAR 55339f2269fSPeter Wemm cchar_t _bkgrnd; /* current background char/attribute pair */ 5544a1a9510SRong-En Fan#if @NCURSES_EXT_COLORS@ 5554a1a9510SRong-En Fan int _color; /* current color-pair for non-space character */ 5564a1a9510SRong-En Fan#endif 55739f2269fSPeter Wemm#endif 5580e3d5408SPeter Wemm}; 5595ca44d1cSRong-En Fan#endif /* NCURSES_OPAQUE */ 5600e3d5408SPeter Wemm 5610e3d5408SPeter Wemm/* 5620e3d5408SPeter Wemm * GCC (and some other compilers) define '__attribute__'; we're using this 5630e3d5408SPeter Wemm * macro to alert the compiler to flag inconsistencies in printf/scanf-like 5640e3d5408SPeter Wemm * function calls. Just in case '__attribute__' isn't defined, make a dummy. 5654a1a9510SRong-En Fan * Old versions of G++ do not accept it anyway, at least not consistently with 5664a1a9510SRong-En Fan * GCC. 5670e3d5408SPeter Wemm */ 5684a1a9510SRong-En Fan#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__)) 5690e3d5408SPeter Wemm#define __attribute__(p) /* nothing */ 5700e3d5408SPeter Wemm#endif 5710e3d5408SPeter Wemm 5720e3d5408SPeter Wemm/* 5730e3d5408SPeter Wemm * We cannot define these in ncurses_cfg.h, since they require parameters to be 574*21817992SBaptiste Daroussin * passed (that is non-portable). 5750e3d5408SPeter Wemm */ 57639f2269fSPeter Wemm#ifndef GCC_PRINTFLIKE 577*21817992SBaptiste Daroussin#ifndef printf 5780e3d5408SPeter Wemm#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) 5790e3d5408SPeter Wemm#else 5800e3d5408SPeter Wemm#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ 5810e3d5408SPeter Wemm#endif 58239f2269fSPeter Wemm#endif 5830e3d5408SPeter Wemm 58439f2269fSPeter Wemm#ifndef GCC_SCANFLIKE 585*21817992SBaptiste Daroussin#ifndef scanf 5860e3d5408SPeter Wemm#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) 5870e3d5408SPeter Wemm#else 5880e3d5408SPeter Wemm#define GCC_SCANFLIKE(fmt,var) /*nothing*/ 5890e3d5408SPeter Wemm#endif 59039f2269fSPeter Wemm#endif 5910e3d5408SPeter Wemm 5920e3d5408SPeter Wemm#ifndef GCC_NORETURN 5930e3d5408SPeter Wemm#define GCC_NORETURN /* nothing */ 5940e3d5408SPeter Wemm#endif 5950e3d5408SPeter Wemm 5960e3d5408SPeter Wemm#ifndef GCC_UNUSED 5970e3d5408SPeter Wemm#define GCC_UNUSED /* nothing */ 5980e3d5408SPeter Wemm#endif 5990e3d5408SPeter Wemm 600aae38d10SBaptiste Daroussin#undef GCC_DEPRECATED 6017a656419SBaptiste Daroussin#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS) 602aae38d10SBaptiste Daroussin#define GCC_DEPRECATED(msg) __attribute__((deprecated)) 603aae38d10SBaptiste Daroussin#else 604aae38d10SBaptiste Daroussin#define GCC_DEPRECATED(msg) /* nothing */ 605aae38d10SBaptiste Daroussin#endif 606aae38d10SBaptiste Daroussin 6070e3d5408SPeter Wemm/* 60806bfebdeSXin LI * Curses uses a helper function. Define our type for this to simplify 60906bfebdeSXin LI * extending it for the sp-funcs feature. 61006bfebdeSXin LI */ 61106bfebdeSXin LItypedef int (*NCURSES_OUTC)(int); 61206bfebdeSXin LI 61306bfebdeSXin LI/* 6145ca44d1cSRong-En Fan * Function prototypes. This is the complete X/Open Curses list of required 6150e3d5408SPeter Wemm * functions. Those marked `generated' will have sources generated from the 6160e3d5408SPeter Wemm * macro definitions later in this file, in order to satisfy XPG4.2 6170e3d5408SPeter Wemm * requirements. 6180e3d5408SPeter Wemm */ 6190e3d5408SPeter Wemm 6207a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) addch (const chtype); /* generated */ 6217a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) addchnstr (const chtype *, int); /* generated */ 6227a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) addchstr (const chtype *); /* generated */ 6237a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) addnstr (const char *, int); /* generated */ 6247a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) addstr (const char *); /* generated */ 6257a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ 6267a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ 6277a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ 62873f0a83dSXin LIextern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ 6297a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ 6307a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ 63173f0a83dSXin LIextern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */ 6327a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) baudrate (void); /* implemented */ 6337a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) beep (void); /* implemented */ 6347a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ 6357a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) bkgdset (chtype); /* generated */ 6367a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */ 6377a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ 6387a69bbfbSPeter Wemmextern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ 6397a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) cbreak (void); /* implemented */ 64073f0a83dSXin LIextern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ 6417a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) clear (void); /* generated */ 6427a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ 6437a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) clrtobot (void); /* generated */ 6447a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ 64573f0a83dSXin LIextern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ 64673f0a83dSXin LIextern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */ 6477a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ 6487a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ 6497a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) curs_set (int); /* implemented */ 6507a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) def_prog_mode (void); /* implemented */ 6517a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) def_shell_mode (void); /* implemented */ 6527a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) delay_output (int); /* implemented */ 6537a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) delch (void); /* generated */ 6547a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) delscreen (SCREEN *); /* implemented */ 6557a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) delwin (WINDOW *); /* implemented */ 6567a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) deleteln (void); /* generated */ 6577a69bbfbSPeter Wemmextern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int); /* implemented */ 6587a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) doupdate (void); /* implemented */ 6597a69bbfbSPeter Wemmextern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *); /* implemented */ 6607a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) echo (void); /* implemented */ 6617a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) echochar (const chtype); /* generated */ 6627a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) erase (void); /* generated */ 6637a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) endwin (void); /* implemented */ 6647a69bbfbSPeter Wemmextern NCURSES_EXPORT(char) erasechar (void); /* implemented */ 6657a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) filter (void); /* implemented */ 6667a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) flash (void); /* implemented */ 6677a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) flushinp (void); /* implemented */ 6687a69bbfbSPeter Wemmextern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */ 6697a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) getch (void); /* generated */ 6707a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */ 6717a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) getstr (char *); /* generated */ 6727a69bbfbSPeter Wemmextern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */ 6737a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) halfdelay (int); /* implemented */ 6747a69bbfbSPeter Wemmextern NCURSES_EXPORT(bool) has_colors (void); /* implemented */ 6757a69bbfbSPeter Wemmextern NCURSES_EXPORT(bool) has_ic (void); /* implemented */ 6767a69bbfbSPeter Wemmextern NCURSES_EXPORT(bool) has_il (void); /* implemented */ 6777a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) hline (chtype, int); /* generated */ 6787a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */ 6797a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */ 6807a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */ 6817a69bbfbSPeter Wemmextern NCURSES_EXPORT(chtype) inch (void); /* generated */ 6827a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ 6837a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ 6847a69bbfbSPeter Wemmextern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ 68573f0a83dSXin LIextern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ 68673f0a83dSXin LIextern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ 6877a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ 6887a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) insch (chtype); /* generated */ 6897a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) insdelln (int); /* generated */ 6907a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) insertln (void); /* generated */ 6917a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) insnstr (const char *, int); /* generated */ 6927a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) insstr (const char *); /* generated */ 6937a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) instr (char *); /* generated */ 6947a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */ 6957a69bbfbSPeter Wemmextern NCURSES_EXPORT(bool) isendwin (void); /* implemented */ 6967a69bbfbSPeter Wemmextern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int); /* implemented */ 6977a69bbfbSPeter Wemmextern NCURSES_EXPORT(bool) is_wintouched (WINDOW *); /* implemented */ 6987a69bbfbSPeter Wemmextern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int); /* implemented */ 6997a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */ 7007a69bbfbSPeter Wemmextern NCURSES_EXPORT(char) killchar (void); /* implemented */ 7017a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */ 7027a69bbfbSPeter Wemmextern NCURSES_EXPORT(char *) longname (void); /* implemented */ 7037a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */ 7047a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) move (int, int); /* generated */ 7057a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvaddch (int, int, const chtype); /* generated */ 7067a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* generated */ 7077a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ 7087a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ 7097a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ 71073f0a83dSXin LIextern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ 7117a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ 7127a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ 7137a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ 7147a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */ 7157a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */ 7167a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */ 7177a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */ 7187a69bbfbSPeter Wemmextern NCURSES_EXPORT(chtype) mvinch (int, int); /* generated */ 7197a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int); /* generated */ 7207a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *); /* generated */ 7217a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int); /* generated */ 7227a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvinsch (int, int, chtype); /* generated */ 7237a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */ 7247a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */ 7257a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */ 7264a1a9510SRong-En Fanextern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */ 7270e3d5408SPeter Wemm GCC_PRINTFLIKE(3,4); 728aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...) /* implemented */ 7290e3d5408SPeter Wemm GCC_SCANFLIKE(3,4); 7307a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */ 7317a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype); /* generated */ 7327a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */ 7337a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ 7347a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ 7357a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ 73673f0a83dSXin LIextern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */ 7377a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ 7387a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ 7397a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ 7407a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */ 7417a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */ 7427a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int); /* implemented */ 7437a69bbfbSPeter Wemmextern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int); /* generated */ 7447a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int); /* generated */ 7457a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *); /* generated */ 7467a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int); /* generated */ 7477a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype); /* generated */ 7487a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */ 7497a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */ 7507a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */ 7514a1a9510SRong-En Fanextern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */ 7520e3d5408SPeter Wemm GCC_PRINTFLIKE(4,5); 753aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...) /* implemented */ 7540e3d5408SPeter Wemm GCC_SCANFLIKE(4,5); 7557a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */ 7567a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) napms (int); /* implemented */ 7577a69bbfbSPeter Wemmextern NCURSES_EXPORT(WINDOW *) newpad (int,int); /* implemented */ 758aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *); /* implemented */ 7597a69bbfbSPeter Wemmextern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int); /* implemented */ 7607a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) nl (void); /* implemented */ 7617a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) nocbreak (void); /* implemented */ 7627a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) nodelay (WINDOW *,bool); /* implemented */ 7637a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) noecho (void); /* implemented */ 7647a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) nonl (void); /* implemented */ 7657a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) noqiflush (void); /* implemented */ 7667a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) noraw (void); /* implemented */ 7677a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ 7687a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ 7697a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ 77073f0a83dSXin LIextern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ 7717a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ 7727a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ 7737a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ 7747a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */ 7754a1a9510SRong-En Fanextern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */ 7760e3d5408SPeter Wemm GCC_PRINTFLIKE(1,2); 7777a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */ 7787a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) qiflush (void); /* implemented */ 7797a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) raw (void); /* implemented */ 7807a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) redrawwin (WINDOW *); /* generated */ 7817a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) refresh (void); /* generated */ 7827a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) resetty (void); /* implemented */ 7837a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) reset_prog_mode (void); /* implemented */ 7847a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) reset_shell_mode (void); /* implemented */ 78539f2269fSPeter Wemmextern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int)); /* implemented */ 7867a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) savetty (void); /* implemented */ 787aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) scanw (const char *,...) /* implemented */ 7880e3d5408SPeter Wemm GCC_SCANFLIKE(1,2); 7897a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) scr_dump (const char *); /* implemented */ 7907a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) scr_init (const char *); /* implemented */ 7917a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) scrl (int); /* generated */ 7927a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) scroll (WINDOW *); /* generated */ 7937a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) scrollok (WINDOW *,bool); /* implemented */ 7947a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) scr_restore (const char *); /* implemented */ 7957a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) scr_set (const char *); /* implemented */ 7967a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) setscrreg (int,int); /* generated */ 7977a69bbfbSPeter Wemmextern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *); /* implemented */ 7987a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_attroff (const chtype); /* implemented */ 7997a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *); /* generated:WIDEC */ 8007a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_attron (const chtype); /* implemented */ 8017a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ 8027a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ 8037a69bbfbSPeter Wemmextern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ 80473f0a83dSXin LIextern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */ 8057a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ 80673f0a83dSXin LIextern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */ 8077a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_init (int); /* implemented */ 8087a69bbfbSPeter Wemmextern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ 8097a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ 8107a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_refresh (void); /* implemented */ 8117a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_restore (void); /* implemented */ 8127a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_set (int,const char *,int); /* implemented */ 8137a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) slk_touch (void); /* implemented */ 8147a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) standout (void); /* generated */ 8157a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) standend (void); /* generated */ 8167a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) start_color (void); /* implemented */ 8177a69bbfbSPeter Wemmextern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */ 8187a69bbfbSPeter Wemmextern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */ 8197a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */ 8207a69bbfbSPeter Wemmextern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */ 8217a69bbfbSPeter Wemmextern NCURSES_EXPORT(char *) termname (void); /* implemented */ 8227a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) timeout (int); /* generated */ 8237a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */ 8247a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */ 8257a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) typeahead (int); /* implemented */ 8267a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) ungetch (int); /* implemented */ 8277a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ 8287a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) use_env (bool); /* implemented */ 82973f0a83dSXin LIextern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */ 8307a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ 83106bfebdeSXin LIextern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */ 8327a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ 833*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */ 834*21817992SBaptiste Daroussin GCC_PRINTFLIKE(2,0); 835*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */ 836*21817992SBaptiste Daroussin GCC_PRINTFLIKE(2,0); 837*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */ 838*21817992SBaptiste Daroussin GCC_SCANFLIKE(2,0); 839*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */ 840*21817992SBaptiste Daroussin GCC_SCANFLIKE(2,0); 8417a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */ 8424a1a9510SRong-En Fanextern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */ 8437a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */ 8444a1a9510SRong-En Fanextern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */ 8457a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */ 8467a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ 8477a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ 8487a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ 84973f0a83dSXin LIextern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ 8504a1a9510SRong-En Fanextern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ 8514a1a9510SRong-En Fanextern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ 85273f0a83dSXin LIextern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */ 8534a1a9510SRong-En Fanextern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ 8547a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ 8557a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ 85673f0a83dSXin LIextern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */ 8577a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ 8587a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ 8597a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ 86073f0a83dSXin LIextern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */ 8617a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ 8627a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ 8637a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ 8647a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype); /* implemented */ 8657a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */ 8667a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */ 8677a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */ 8687a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */ 8697a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */ 8707a69bbfbSPeter Wemmextern NCURSES_EXPORT(chtype) winch (WINDOW *); /* implemented */ 8717a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int); /* implemented */ 8727a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *); /* generated */ 8737a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int); /* implemented */ 8747a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) winsch (WINDOW *, chtype); /* implemented */ 8757a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) winsdelln (WINDOW *,int); /* implemented */ 8767a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) winsertln (WINDOW *); /* generated */ 8777a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int); /* implemented */ 8787a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *); /* generated */ 8797a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */ 8807a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */ 8817a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */ 8824a1a9510SRong-En Fanextern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */ 8830e3d5408SPeter Wemm GCC_PRINTFLIKE(2,3); 8847a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */ 8857a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */ 886aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...) /* implemented */ 8870e3d5408SPeter Wemm GCC_SCANFLIKE(2,3); 8887a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wscrl (WINDOW *,int); /* implemented */ 8897a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int); /* implemented */ 8907a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wstandout (WINDOW *); /* generated */ 8917a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wstandend (WINDOW *); /* generated */ 8927a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) wsyncdown (WINDOW *); /* implemented */ 8937a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) wsyncup (WINDOW *); /* implemented */ 8947a69bbfbSPeter Wemmextern NCURSES_EXPORT(void) wtimeout (WINDOW *,int); /* implemented */ 8957a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int); /* implemented */ 8967a69bbfbSPeter Wemmextern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */ 8970e3d5408SPeter Wemm 89839f2269fSPeter Wemm/* 8994a1a9510SRong-En Fan * These are also declared in <term.h>: 9004a1a9510SRong-En Fan */ 901aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) tigetflag (const char *); /* implemented */ 902aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) tigetnum (const char *); /* implemented */ 903aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(char *) tigetstr (const char *); /* implemented */ 9044a1a9510SRong-En Fanextern NCURSES_EXPORT(int) putp (const char *); /* implemented */ 9054a1a9510SRong-En Fan 9064a1a9510SRong-En Fan#if NCURSES_TPARM_VARARGS 907aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ 9084a1a9510SRong-En Fan#else 909aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(char *) tparm (const char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */ 9104a1a9510SRong-En Fan#endif 9114a1a9510SRong-En Fan 91206bfebdeSXin LIextern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ 913*21817992SBaptiste Daroussinextern NCURSES_EXPORT(char *) tiparm_s (int, int, const char *, ...); /* special */ 914*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) tiscan_s (int *, int *, const char *); /* special */ 91506bfebdeSXin LI 9164a1a9510SRong-En Fan/* 9174a1a9510SRong-En Fan * These functions are not in X/Open, but we use them in macro definitions: 9184a1a9510SRong-En Fan */ 9195ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */ 9204a1a9510SRong-En Fanextern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */ 9214a1a9510SRong-En Fanextern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */ 9224a1a9510SRong-En Fanextern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */ 9234a1a9510SRong-En Fanextern NCURSES_EXPORT(int) getbegy (const WINDOW *); /* generated */ 9244a1a9510SRong-En Fanextern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */ 9254a1a9510SRong-En Fanextern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */ 9264a1a9510SRong-En Fanextern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */ 9274a1a9510SRong-En Fanextern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */ 9284a1a9510SRong-En Fan 9294a1a9510SRong-En Fan/* 9305ca44d1cSRong-En Fan * vid_attr() was implemented originally based on a draft of X/Open curses. 93139f2269fSPeter Wemm */ 93273f0a83dSXin LI#if !NCURSES_WIDECHAR 93339f2269fSPeter Wemm#define vid_attr(a,pair,opts) vidattr(a) 93439f2269fSPeter Wemm#endif 9350e3d5408SPeter Wemm 9365ca44d1cSRong-En Fan/* 9375ca44d1cSRong-En Fan * These functions are extensions - not in X/Open Curses. 9385ca44d1cSRong-En Fan */ 9395ca44d1cSRong-En Fan#if @NCURSES_EXT_FUNCS@ 9405ca44d1cSRong-En Fan#undef NCURSES_EXT_FUNCS 9415ca44d1cSRong-En Fan#define NCURSES_EXT_FUNCS @NCURSES_PATCH@ 942aa59d4d4SRong-En Fantypedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *); 943aa59d4d4SRong-En Fantypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *); 944aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) alloc_pair (int, int); 9455ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) assume_default_colors (int, int); 946*21817992SBaptiste Daroussinextern NCURSES_EXPORT(const char *) curses_version (void); 9475ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) define_key (const char *, int); 948aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *); 949aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *); 950aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) extended_slk_color(int); 951aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) find_pair (int, int); 952aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) free_pair (int); 95306bfebdeSXin LIextern NCURSES_EXPORT(int) get_escdelay (void); 954aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) init_extended_color(int, int, int, int); 955aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) init_extended_pair(int, int, int); 956*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) is_cbreak(void); 957*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) is_echo(void); 958*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) is_nl(void); 959*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) is_raw(void); 960*21817992SBaptiste Daroussinextern NCURSES_EXPORT(bool) is_term_resized (int, int); 9615ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) key_defined (const char *); 962*21817992SBaptiste Daroussinextern NCURSES_EXPORT(char *) keybound (int, int); 9635ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) keyok (int, bool); 964*21817992SBaptiste Daroussinextern NCURSES_EXPORT(void) nofilter(void); 965aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(void) reset_color_pairs (void); 9665ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) resize_term (int, int); 9675ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) resizeterm (int, int); 968d8977eafSRong-En Fanextern NCURSES_EXPORT(int) set_escdelay (int); 969d8977eafSRong-En Fanextern NCURSES_EXPORT(int) set_tabsize (int); 9705ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) use_default_colors (void); 9715ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) use_legacy_coding (int); 972aa59d4d4SRong-En Fanextern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *); 973aa59d4d4SRong-En Fanextern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *); 9745ca44d1cSRong-En Fanextern NCURSES_EXPORT(int) wresize (WINDOW *, int, int); 975*21817992SBaptiste Daroussin 976*21817992SBaptiste Daroussin#if @NCURSES_XNAMES@ 977*21817992SBaptiste Daroussin#undef NCURSES_XNAMES 978*21817992SBaptiste Daroussin#define NCURSES_XNAMES @NCURSES_XNAMES@ 979*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) use_extended_names (bool); 980*21817992SBaptiste Daroussin#endif 9815ca44d1cSRong-En Fan 9825ca44d1cSRong-En Fan/* 9835ca44d1cSRong-En Fan * These extensions provide access to information stored in the WINDOW even 9845ca44d1cSRong-En Fan * when NCURSES_OPAQUE is set: 9855ca44d1cSRong-En Fan */ 98606bfebdeSXin LIextern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 98706bfebdeSXin LIextern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 98806bfebdeSXin LIextern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 98906bfebdeSXin LIextern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 99006bfebdeSXin LIextern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 99106bfebdeSXin LIextern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 99206bfebdeSXin LIextern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 99306bfebdeSXin LIextern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 99406bfebdeSXin LIextern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 99506bfebdeSXin LIextern NCURSES_EXPORT(bool) is_pad (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 99606bfebdeSXin LIextern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 99706bfebdeSXin LIextern NCURSES_EXPORT(bool) is_subwin (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 99806bfebdeSXin LIextern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 999aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) wgetdelay (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ 100006bfebdeSXin LIextern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* @GENERATED_EXT_FUNCS@ */ 10015ca44d1cSRong-En Fan 10025ca44d1cSRong-En Fan#else 10035ca44d1cSRong-En Fan#define curses_version() NCURSES_VERSION 10045ca44d1cSRong-En Fan#endif 10055ca44d1cSRong-En Fan 100606bfebdeSXin LI/* 100706bfebdeSXin LI * Extra extension-functions, which pass a SCREEN pointer rather than using 100806bfebdeSXin LI * a global variable SP. 100906bfebdeSXin LI */ 101006bfebdeSXin LI#if @NCURSES_SP_FUNCS@ 101106bfebdeSXin LI#undef NCURSES_SP_FUNCS 101206bfebdeSXin LI#define NCURSES_SP_FUNCS @NCURSES_PATCH@ 101306bfebdeSXin LI#define NCURSES_SP_NAME(name) name##_sp 101406bfebdeSXin LI 101506bfebdeSXin LI/* Define the sp-funcs helper function */ 101606bfebdeSXin LI#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) 101706bfebdeSXin LItypedef int (*NCURSES_SP_OUTC)(SCREEN*, int); 101806bfebdeSXin LI 101906bfebdeSXin LIextern NCURSES_EXPORT(SCREEN *) new_prescr (void); /* implemented:SP_FUNC */ 102006bfebdeSXin LI 102106bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*); /* implemented:SP_FUNC */ 102206bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*); /* implemented:SP_FUNC */ 102306bfebdeSXin LIextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */ 102406bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */ 102506bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */ 102673f0a83dSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ 102706bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ 102806bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ 102906bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */ 103006bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*); /* implemented:SP_FUNC */ 103106bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*); /* implemented:SP_FUNC */ 103206bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*); /* implemented:SP_FUNC */ 103306bfebdeSXin LIextern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);/* implemented:SP_FUNC */ 103406bfebdeSXin LIextern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*); /* implemented:SP_FUNC */ 103506bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*); /* implemented:SP_FUNC */ 103606bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*); /* implemented:SP_FUNC */ 103706bfebdeSXin LIextern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *); /* implemented:SP_FUNC */ 103806bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int); /* implemented:SP_FUNC */ 103906bfebdeSXin LIextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */ 104006bfebdeSXin LIextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */ 104106bfebdeSXin LIextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */ 104273f0a83dSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ 104373f0a83dSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ 104406bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */ 104506bfebdeSXin LIextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */ 104606bfebdeSXin LIextern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */ 104706bfebdeSXin LIextern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*); /* implemented:SP_FUNC */ 104806bfebdeSXin LIextern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*); /* implemented:SP_FUNC */ 104906bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ 105006bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int); /* implemented:SP_FUNC */ 105106bfebdeSXin LIextern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int); /* implemented:SP_FUNC */ 1052aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *); /* implemented:SP_FUNC */ 105306bfebdeSXin LIextern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ 105406bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*); /* implemented:SP_FUNC */ 105506bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*); /* implemented:SP_FUNC */ 105606bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*); /* implemented:SP_FUNC */ 105706bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */ 105806bfebdeSXin LIextern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */ 105906bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */ 106073f0a83dSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ 106106bfebdeSXin LIextern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */ 106206bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */ 106306bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ 106406bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ 106506bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*); /* implemented:SP_FUNC */ 106606bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int)); /* implemented:SP_FUNC */ 106706bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*); /* implemented:SP_FUNC */ 106806bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *); /* implemented:SP_FUNC */ 106906bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *); /* implemented:SP_FUNC */ 107006bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *); /* implemented:SP_FUNC */ 107106bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype); /* implemented:SP_FUNC */ 107206bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */ 107306bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */ 107406bfebdeSXin LIextern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */ 107573f0a83dSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */ 107606bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */ 107773f0a83dSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */ 107806bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */ 107906bfebdeSXin LIextern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */ 108006bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */ 108106bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*); /* implemented:SP_FUNC */ 108206bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*); /* implemented:SP_FUNC */ 108306bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int); /* implemented:SP_FUNC */ 108406bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*); /* implemented:SP_FUNC */ 108506bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*); /* implemented:SP_FUNC */ 108606bfebdeSXin LIextern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*); /* implemented:SP_FUNC */ 108706bfebdeSXin LIextern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*); /* implemented:SP_FUNC */ 108806bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */ 108906bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */ 109006bfebdeSXin LIextern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */ 109173f0a83dSXin LIextern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */ 109206bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */ 109306bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ 109406bfebdeSXin LI#if @NCURSES_EXT_FUNCS@ 1095aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 109606bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 109706bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */ 1098aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */ 1099aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */ 1100aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 1101aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 1102aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 1103*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */ 1104aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */ 1105aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */ 1106*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_cbreak) (SCREEN*); /* implemented:EXT_SP_FUNC */ 1107*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_echo) (SCREEN*); /* implemented:EXT_SP_FUNC */ 1108*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_nl) (SCREEN*); /* implemented:EXT_SP_FUNC */ 1109*21817992SBaptiste Daroussinextern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_raw) (SCREEN*); /* implemented:EXT_SP_FUNC */ 111006bfebdeSXin LIextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 111106bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *); /* implemented:EXT_SP_FUNC */ 1112*21817992SBaptiste Daroussinextern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 111306bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */ 111406bfebdeSXin LIextern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */ 1115aae38d10SBaptiste Daroussinextern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */ 111606bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 111706bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 111806bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 111906bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 112006bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*); /* implemented:EXT_SP_FUNC */ 112106bfebdeSXin LIextern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 112206bfebdeSXin LI#endif 112306bfebdeSXin LI#else 112406bfebdeSXin LI#undef NCURSES_SP_FUNCS 112506bfebdeSXin LI#define NCURSES_SP_FUNCS 0 112606bfebdeSXin LI#define NCURSES_SP_NAME(name) name 112706bfebdeSXin LI#define NCURSES_SP_OUTC NCURSES_OUTC 112806bfebdeSXin LI#endif 112906bfebdeSXin LI 11300e3d5408SPeter Wemm/* attributes */ 11310e3d5408SPeter Wemm 113239f2269fSPeter Wemm#define NCURSES_ATTR_SHIFT 8 113373f0a83dSXin LI#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT)) 11340e3d5408SPeter Wemm 11354a1a9510SRong-En Fan#define A_NORMAL (@cf_cv_1UL@ - @cf_cv_1UL@) 11360e3d5408SPeter Wemm#define A_ATTRIBUTES NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0) 11370e3d5408SPeter Wemm#define A_CHARTEXT (NCURSES_BITS(@cf_cv_1UL@,0) - @cf_cv_1UL@) 11380e3d5408SPeter Wemm#define A_COLOR NCURSES_BITS(((@cf_cv_1UL@) << 8) - @cf_cv_1UL@,0) 11390e3d5408SPeter Wemm#define A_STANDOUT NCURSES_BITS(@cf_cv_1UL@,8) 11400e3d5408SPeter Wemm#define A_UNDERLINE NCURSES_BITS(@cf_cv_1UL@,9) 11410e3d5408SPeter Wemm#define A_REVERSE NCURSES_BITS(@cf_cv_1UL@,10) 11420e3d5408SPeter Wemm#define A_BLINK NCURSES_BITS(@cf_cv_1UL@,11) 11430e3d5408SPeter Wemm#define A_DIM NCURSES_BITS(@cf_cv_1UL@,12) 11440e3d5408SPeter Wemm#define A_BOLD NCURSES_BITS(@cf_cv_1UL@,13) 11450e3d5408SPeter Wemm#define A_ALTCHARSET NCURSES_BITS(@cf_cv_1UL@,14) 11460e3d5408SPeter Wemm#define A_INVIS NCURSES_BITS(@cf_cv_1UL@,15) 11470e3d5408SPeter Wemm#define A_PROTECT NCURSES_BITS(@cf_cv_1UL@,16) 11480e3d5408SPeter Wemm#define A_HORIZONTAL NCURSES_BITS(@cf_cv_1UL@,17) 11490e3d5408SPeter Wemm#define A_LEFT NCURSES_BITS(@cf_cv_1UL@,18) 11500e3d5408SPeter Wemm#define A_LOW NCURSES_BITS(@cf_cv_1UL@,19) 11510e3d5408SPeter Wemm#define A_RIGHT NCURSES_BITS(@cf_cv_1UL@,20) 11520e3d5408SPeter Wemm#define A_TOP NCURSES_BITS(@cf_cv_1UL@,21) 11530e3d5408SPeter Wemm#define A_VERTICAL NCURSES_BITS(@cf_cv_1UL@,22) 11540e3d5408SPeter Wemm 115573f0a83dSXin LI#if @NCURSES_EXT_FUNCS@ 115673f0a83dSXin LI#define A_ITALIC NCURSES_BITS(@cf_cv_1UL@,23) /* ncurses extension */ 115773f0a83dSXin LI#endif 115873f0a83dSXin LI 11594a1a9510SRong-En Fan/* 11604a1a9510SRong-En Fan * Most of the pseudo functions are macros that either provide compatibility 11614a1a9510SRong-En Fan * with older versions of curses, or provide inline functionality to improve 11624a1a9510SRong-En Fan * performance. 11634a1a9510SRong-En Fan */ 11640e3d5408SPeter Wemm 11650e3d5408SPeter Wemm/* 11664a1a9510SRong-En Fan * These pseudo functions are always implemented as macros: 11670e3d5408SPeter Wemm */ 11684a1a9510SRong-En Fan 11694a1a9510SRong-En Fan#define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) 11704a1a9510SRong-En Fan#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) 11714a1a9510SRong-En Fan#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) 11724a1a9510SRong-En Fan#define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) 11734a1a9510SRong-En Fan 1174aa59d4d4SRong-En Fan#define getsyx(y,x) do { if (newscr) { \ 1175aa59d4d4SRong-En Fan if (is_leaveok(newscr)) \ 11765ca44d1cSRong-En Fan (y) = (x) = -1; \ 11775ca44d1cSRong-En Fan else \ 11785ca44d1cSRong-En Fan getyx(newscr,(y), (x)); \ 1179aa59d4d4SRong-En Fan } \ 11804a1a9510SRong-En Fan } while(0) 11815ca44d1cSRong-En Fan 1182aa59d4d4SRong-En Fan#define setsyx(y,x) do { if (newscr) { \ 1183aa59d4d4SRong-En Fan if ((y) == -1 && (x) == -1) \ 11845ca44d1cSRong-En Fan leaveok(newscr, TRUE); \ 11855ca44d1cSRong-En Fan else { \ 11865ca44d1cSRong-En Fan leaveok(newscr, FALSE); \ 11875ca44d1cSRong-En Fan wmove(newscr, (y), (x)); \ 11885ca44d1cSRong-En Fan } \ 1189aa59d4d4SRong-En Fan } \ 11904a1a9510SRong-En Fan } while(0) 11914a1a9510SRong-En Fan 11924a1a9510SRong-En Fan#ifndef NCURSES_NOMACROS 11934a1a9510SRong-En Fan 11944a1a9510SRong-En Fan/* 11954a1a9510SRong-En Fan * These miscellaneous pseudo functions are provided for compatibility: 11964a1a9510SRong-En Fan */ 11974a1a9510SRong-En Fan 11980e3d5408SPeter Wemm#define wgetstr(w, s) wgetnstr(w, s, -1) 119973f0a83dSXin LI#define getnstr(s, n) wgetnstr(stdscr, s, (n)) 12000e3d5408SPeter Wemm 12010e3d5408SPeter Wemm#define setterm(term) setupterm(term, 1, (int *)0) 12020e3d5408SPeter Wemm 12030e3d5408SPeter Wemm#define fixterm() reset_prog_mode() 12040e3d5408SPeter Wemm#define resetterm() reset_shell_mode() 12050e3d5408SPeter Wemm#define saveterm() def_prog_mode() 12060e3d5408SPeter Wemm#define crmode() cbreak() 12070e3d5408SPeter Wemm#define nocrmode() nocbreak() 12080e3d5408SPeter Wemm#define gettmode() 12090e3d5408SPeter Wemm 12100e3d5408SPeter Wemm/* It seems older SYSV curses versions define these */ 12115ca44d1cSRong-En Fan#if !NCURSES_OPAQUE 1212aae38d10SBaptiste Daroussin#define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL) 1213aae38d10SBaptiste Daroussin#define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR) 1214aae38d10SBaptiste Daroussin#define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR) 1215aae38d10SBaptiste Daroussin#define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR) 1216aae38d10SBaptiste Daroussin#define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR) 1217aae38d10SBaptiste Daroussin#define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR) 1218aae38d10SBaptiste Daroussin#define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR) 1219aae38d10SBaptiste Daroussin#define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR) 1220aae38d10SBaptiste Daroussin#define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR) 12215ca44d1cSRong-En Fan#endif /* NCURSES_OPAQUE */ 12220e3d5408SPeter Wemm 12230e3d5408SPeter Wemm#define wstandout(win) (wattrset(win,A_STANDOUT)) 12240e3d5408SPeter Wemm#define wstandend(win) (wattrset(win,A_NORMAL)) 12250e3d5408SPeter Wemm 12264a1a9510SRong-En Fan#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL) 12274a1a9510SRong-En Fan#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) 12284a1a9510SRong-En Fan 12295ca44d1cSRong-En Fan#if !NCURSES_OPAQUE 1230aae38d10SBaptiste Daroussin#if NCURSES_WATTR_MACROS 123173f0a83dSXin LI#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@ 1232aae38d10SBaptiste Daroussin#define wattrset(win,at) \ 1233aae38d10SBaptiste Daroussin (NCURSES_OK_ADDR(win) \ 1234aae38d10SBaptiste Daroussin ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \ 123506bfebdeSXin LI (win)->_attrs = NCURSES_CAST(attr_t, at), \ 123606bfebdeSXin LI OK) \ 123706bfebdeSXin LI : ERR) 12384a1a9510SRong-En Fan#else 1239aae38d10SBaptiste Daroussin#define wattrset(win,at) \ 1240aae38d10SBaptiste Daroussin (NCURSES_OK_ADDR(win) \ 124106bfebdeSXin LI ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \ 124206bfebdeSXin LI OK) \ 124306bfebdeSXin LI : ERR) 12444a1a9510SRong-En Fan#endif 1245aae38d10SBaptiste Daroussin#endif /* NCURSES_WATTR_MACROS */ 12465ca44d1cSRong-En Fan#endif /* NCURSES_OPAQUE */ 12470e3d5408SPeter Wemm 12480e3d5408SPeter Wemm#define scroll(win) wscrl(win,1) 12490e3d5408SPeter Wemm 12500e3d5408SPeter Wemm#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) 12510e3d5408SPeter Wemm#define touchline(win, s, c) wtouchln((win), s, c, 1) 12520e3d5408SPeter Wemm#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) 12530e3d5408SPeter Wemm 12540e3d5408SPeter Wemm#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) 12550e3d5408SPeter Wemm#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) 125673f0a83dSXin LI#define hline(ch, n) whline(stdscr, ch, (n)) 125773f0a83dSXin LI#define vline(ch, n) wvline(stdscr, ch, (n)) 12580e3d5408SPeter Wemm 12590e3d5408SPeter Wemm#define winstr(w, s) winnstr(w, s, -1) 12600e3d5408SPeter Wemm#define winchstr(w, s) winchnstr(w, s, -1) 12610e3d5408SPeter Wemm#define winsstr(w, s) winsnstr(w, s, -1) 12620e3d5408SPeter Wemm 12635ca44d1cSRong-En Fan#if !NCURSES_OPAQUE 1264aae38d10SBaptiste Daroussin#define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1)) 12655ca44d1cSRong-En Fan#endif /* NCURSES_OPAQUE */ 12665ca44d1cSRong-En Fan 12670e3d5408SPeter Wemm#define waddstr(win,str) waddnstr(win,str,-1) 12680e3d5408SPeter Wemm#define waddchstr(win,str) waddchnstr(win,str,-1) 12690e3d5408SPeter Wemm 12700e3d5408SPeter Wemm/* 12714a1a9510SRong-En Fan * These apply to the first 256 color pairs. 12724a1a9510SRong-En Fan */ 1273aae38d10SBaptiste Daroussin#define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR) 127473f0a83dSXin LI#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT))) 12754a1a9510SRong-En Fan 12764a1a9510SRong-En Fan/* 12770e3d5408SPeter Wemm * pseudo functions for standard screen 12780e3d5408SPeter Wemm */ 12790e3d5408SPeter Wemm 128073f0a83dSXin LI#define addch(ch) waddch(stdscr,(ch)) 128173f0a83dSXin LI#define addchnstr(str,n) waddchnstr(stdscr,(str),(n)) 128273f0a83dSXin LI#define addchstr(str) waddchstr(stdscr,(str)) 128373f0a83dSXin LI#define addnstr(str,n) waddnstr(stdscr,(str),(n)) 128473f0a83dSXin LI#define addstr(str) waddnstr(stdscr,(str),-1) 128573f0a83dSXin LI#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) 128673f0a83dSXin LI#define attr_off(a,o) wattr_off(stdscr,(a),(o)) 128773f0a83dSXin LI#define attr_on(a,o) wattr_on(stdscr,(a),(o)) 128873f0a83dSXin LI#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o)) 1289aae38d10SBaptiste Daroussin#define attroff(at) wattroff(stdscr,(at)) 1290aae38d10SBaptiste Daroussin#define attron(at) wattron(stdscr,(at)) 1291aae38d10SBaptiste Daroussin#define attrset(at) wattrset(stdscr,(at)) 129273f0a83dSXin LI#define bkgd(ch) wbkgd(stdscr,(ch)) 129373f0a83dSXin LI#define bkgdset(ch) wbkgdset(stdscr,(ch)) 129473f0a83dSXin LI#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o)) 12950e3d5408SPeter Wemm#define clear() wclear(stdscr) 12960e3d5408SPeter Wemm#define clrtobot() wclrtobot(stdscr) 12970e3d5408SPeter Wemm#define clrtoeol() wclrtoeol(stdscr) 129873f0a83dSXin LI#define color_set(c,o) wcolor_set(stdscr,(c),(o)) 12990e3d5408SPeter Wemm#define delch() wdelch(stdscr) 13000e3d5408SPeter Wemm#define deleteln() winsdelln(stdscr,-1) 130173f0a83dSXin LI#define echochar(c) wechochar(stdscr,(c)) 13020e3d5408SPeter Wemm#define erase() werase(stdscr) 13030e3d5408SPeter Wemm#define getch() wgetch(stdscr) 130473f0a83dSXin LI#define getstr(str) wgetstr(stdscr,(str)) 13050e3d5408SPeter Wemm#define inch() winch(stdscr) 130673f0a83dSXin LI#define inchnstr(s,n) winchnstr(stdscr,(s),(n)) 130773f0a83dSXin LI#define inchstr(s) winchstr(stdscr,(s)) 130873f0a83dSXin LI#define innstr(s,n) winnstr(stdscr,(s),(n)) 130973f0a83dSXin LI#define insch(c) winsch(stdscr,(c)) 131073f0a83dSXin LI#define insdelln(n) winsdelln(stdscr,(n)) 13110e3d5408SPeter Wemm#define insertln() winsdelln(stdscr,1) 131273f0a83dSXin LI#define insnstr(s,n) winsnstr(stdscr,(s),(n)) 131373f0a83dSXin LI#define insstr(s) winsstr(stdscr,(s)) 131473f0a83dSXin LI#define instr(s) winstr(stdscr,(s)) 131573f0a83dSXin LI#define move(y,x) wmove(stdscr,(y),(x)) 13160e3d5408SPeter Wemm#define refresh() wrefresh(stdscr) 131773f0a83dSXin LI#define scrl(n) wscrl(stdscr,(n)) 131873f0a83dSXin LI#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b)) 13190e3d5408SPeter Wemm#define standend() wstandend(stdscr) 13200e3d5408SPeter Wemm#define standout() wstandout(stdscr) 132173f0a83dSXin LI#define timeout(delay) wtimeout(stdscr,(delay)) 13220e3d5408SPeter Wemm#define wdeleteln(win) winsdelln(win,-1) 13230e3d5408SPeter Wemm#define winsertln(win) winsdelln(win,1) 13240e3d5408SPeter Wemm 13250e3d5408SPeter Wemm/* 13260e3d5408SPeter Wemm * mv functions 13270e3d5408SPeter Wemm */ 13280e3d5408SPeter Wemm 132973f0a83dSXin LI#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch))) 133073f0a83dSXin LI#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n))) 133173f0a83dSXin LI#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1)) 133273f0a83dSXin LI#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n))) 133373f0a83dSXin LI#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1)) 133473f0a83dSXin LI#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o))) 1335aae38d10SBaptiste Daroussin#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win)) 133673f0a83dSXin LI#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win)) 133773f0a83dSXin LI#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n))) 133873f0a83dSXin LI#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str))) 133973f0a83dSXin LI#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n))) 134073f0a83dSXin LI#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) 134173f0a83dSXin LI#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n))) 134273f0a83dSXin LI#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s))) 134373f0a83dSXin LI#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n))) 134473f0a83dSXin LI#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c))) 134573f0a83dSXin LI#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n))) 134673f0a83dSXin LI#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s))) 134773f0a83dSXin LI#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s))) 134873f0a83dSXin LI#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n))) 13490e3d5408SPeter Wemm 135073f0a83dSXin LI#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch)) 135173f0a83dSXin LI#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n)) 135273f0a83dSXin LI#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str)) 135373f0a83dSXin LI#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n)) 135473f0a83dSXin LI#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str)) 135573f0a83dSXin LI#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o)) 135673f0a83dSXin LI#define mvdelch(y,x) mvwdelch(stdscr,(y),(x)) 135773f0a83dSXin LI#define mvgetch(y,x) mvwgetch(stdscr,(y),(x)) 135873f0a83dSXin LI#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n)) 135973f0a83dSXin LI#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str)) 136073f0a83dSXin LI#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n)) 136173f0a83dSXin LI#define mvinch(y,x) mvwinch(stdscr,(y),(x)) 136273f0a83dSXin LI#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n)) 136373f0a83dSXin LI#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s)) 136473f0a83dSXin LI#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n)) 136573f0a83dSXin LI#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c)) 136673f0a83dSXin LI#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n)) 136773f0a83dSXin LI#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s)) 136873f0a83dSXin LI#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s)) 136973f0a83dSXin LI#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n)) 13700e3d5408SPeter Wemm 13710e3d5408SPeter Wemm/* 13724a1a9510SRong-En Fan * Some wide-character functions can be implemented without the extensions. 13730e3d5408SPeter Wemm */ 13745ca44d1cSRong-En Fan#if !NCURSES_OPAQUE 1375aae38d10SBaptiste Daroussin#define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0) 13765ca44d1cSRong-En Fan#endif /* NCURSES_OPAQUE */ 13770e3d5408SPeter Wemm 13780e3d5408SPeter Wemm#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) 13790e3d5408SPeter Wemm#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) 13800e3d5408SPeter Wemm 13815ca44d1cSRong-En Fan#if !NCURSES_OPAQUE 1382aae38d10SBaptiste Daroussin#if NCURSES_WATTR_MACROS 138373f0a83dSXin LI#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@ 1384aae38d10SBaptiste Daroussin#define wattr_set(win,a,p,opts) \ 1385aae38d10SBaptiste Daroussin (NCURSES_OK_ADDR(win) \ 1386aae38d10SBaptiste Daroussin ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \ 1387aae38d10SBaptiste Daroussin (win)->_color = (opts) ? *(int *)(opts) : (p)), \ 1388aae38d10SBaptiste Daroussin OK) \ 1389aae38d10SBaptiste Daroussin : ERR) 1390aae38d10SBaptiste Daroussin#define wattr_get(win,a,p,opts) \ 1391aae38d10SBaptiste Daroussin (NCURSES_OK_ADDR(win) \ 1392aae38d10SBaptiste Daroussin ? ((void)(NCURSES_OK_ADDR(a) \ 1393aae38d10SBaptiste Daroussin ? (*(a) = (win)->_attrs) \ 139473f0a83dSXin LI : OK), \ 1395aae38d10SBaptiste Daroussin (void)(NCURSES_OK_ADDR(p) \ 1396aae38d10SBaptiste Daroussin ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \ 139773f0a83dSXin LI : OK), \ 1398aae38d10SBaptiste Daroussin (void)(NCURSES_OK_ADDR(opts) \ 1399aae38d10SBaptiste Daroussin ? (*(int *)(opts) = (win)->_color) \ 1400aae38d10SBaptiste Daroussin : OK), \ 1401aae38d10SBaptiste Daroussin OK) \ 1402aae38d10SBaptiste Daroussin : ERR) 1403aae38d10SBaptiste Daroussin#else /* !(NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ 1404aae38d10SBaptiste Daroussin#define wattr_set(win,a,p,opts) \ 1405aae38d10SBaptiste Daroussin (NCURSES_OK_ADDR(win) \ 1406aae38d10SBaptiste Daroussin ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \ 1407aae38d10SBaptiste Daroussin (attr_t)COLOR_PAIR(p))), \ 1408aae38d10SBaptiste Daroussin OK) \ 1409aae38d10SBaptiste Daroussin : ERR) 1410aae38d10SBaptiste Daroussin#define wattr_get(win,a,p,opts) \ 1411aae38d10SBaptiste Daroussin (NCURSES_OK_ADDR(win) \ 1412aae38d10SBaptiste Daroussin ? ((void)(NCURSES_OK_ADDR(a) \ 1413aae38d10SBaptiste Daroussin ? (*(a) = (win)->_attrs) \ 1414aae38d10SBaptiste Daroussin : OK), \ 1415aae38d10SBaptiste Daroussin (void)(NCURSES_OK_ADDR(p) \ 1416aae38d10SBaptiste Daroussin ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \ 1417aae38d10SBaptiste Daroussin : OK), \ 1418aae38d10SBaptiste Daroussin OK) \ 1419aae38d10SBaptiste Daroussin : ERR) 1420aae38d10SBaptiste Daroussin#endif /* (NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ 1421aae38d10SBaptiste Daroussin#endif /* NCURSES_WATTR_MACROS */ 14225ca44d1cSRong-En Fan#endif /* NCURSES_OPAQUE */ 14230e3d5408SPeter Wemm 14240e3d5408SPeter Wemm/* 14255ca44d1cSRong-En Fan * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use 14260e3d5408SPeter Wemm * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to 14270e3d5408SPeter Wemm * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already 14280e3d5408SPeter Wemm * use stdarg.h, so... 14290e3d5408SPeter Wemm */ 1430aae38d10SBaptiste Daroussin/* define vw_printw vwprintw */ 1431aae38d10SBaptiste Daroussin/* define vw_scanw vwscanw */ 14320e3d5408SPeter Wemm 14330e3d5408SPeter Wemm/* 143439f2269fSPeter Wemm * Export fallback function for use in C++ binding. 143539f2269fSPeter Wemm */ 143639f2269fSPeter Wemm#if !@HAVE_VSSCANF@ 143739f2269fSPeter Wemm#define vsscanf(a,b,c) _nc_vsscanf(a,b,c) 143839f2269fSPeter WemmNCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list); 143939f2269fSPeter Wemm#endif 144039f2269fSPeter Wemm 14415ca44d1cSRong-En Fan/* 14425ca44d1cSRong-En Fan * These macros are extensions - not in X/Open Curses. 14435ca44d1cSRong-En Fan */ 14445ca44d1cSRong-En Fan#if @NCURSES_EXT_FUNCS@ 14455ca44d1cSRong-En Fan#if !NCURSES_OPAQUE 1446aae38d10SBaptiste Daroussin#define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE) 1447aae38d10SBaptiste Daroussin#define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE) 1448aae38d10SBaptiste Daroussin#define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE) 1449aae38d10SBaptiste Daroussin#define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE) 1450aae38d10SBaptiste Daroussin#define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE) 1451aae38d10SBaptiste Daroussin#define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE) 1452aae38d10SBaptiste Daroussin#define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE) 1453aae38d10SBaptiste Daroussin#define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE) 1454aae38d10SBaptiste Daroussin#define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) 1455aae38d10SBaptiste Daroussin#define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE) 1456aae38d10SBaptiste Daroussin#define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) 1457aae38d10SBaptiste Daroussin#define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE) 1458aae38d10SBaptiste Daroussin#define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0) 1459aae38d10SBaptiste Daroussin#define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0) 1460aae38d10SBaptiste Daroussin#define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) 14615ca44d1cSRong-En Fan#endif 14625ca44d1cSRong-En Fan#endif 14635ca44d1cSRong-En Fan 1464aae38d10SBaptiste Daroussin/* 1465aae38d10SBaptiste Daroussin * X/Open says this returns a bool; SVr4 also checked for out-of-range line. 1466aae38d10SBaptiste Daroussin * The macro provides compatibility: 1467aae38d10SBaptiste Daroussin */ 1468aae38d10SBaptiste Daroussin#define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l))) 1469aae38d10SBaptiste Daroussin 14704a1a9510SRong-En Fan#endif /* NCURSES_NOMACROS */ 14714a1a9510SRong-En Fan 147239f2269fSPeter Wemm/* 14735ca44d1cSRong-En Fan * Public variables. 14745ca44d1cSRong-En Fan * 14755ca44d1cSRong-En Fan * Notes: 14765ca44d1cSRong-En Fan * a. ESCDELAY was an undocumented feature under AIX curses. 14775ca44d1cSRong-En Fan * It gives the ESC expire time in milliseconds. 14785ca44d1cSRong-En Fan * b. ttytype is needed for backward compatibility 14795ca44d1cSRong-En Fan */ 148006bfebdeSXin LI#if NCURSES_REENTRANT 14815ca44d1cSRong-En Fan 14825ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(WINDOW *, curscr); 14835ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(WINDOW *, newscr); 14845ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(WINDOW *, stdscr); 14855ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(char *, ttytype); 14865ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(int, COLORS); 14875ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(int, COLOR_PAIRS); 14885ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(int, COLS); 14895ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(int, ESCDELAY); 14905ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(int, LINES); 14915ca44d1cSRong-En FanNCURSES_WRAPPED_VAR(int, TABSIZE); 14925ca44d1cSRong-En Fan 14935ca44d1cSRong-En Fan#define curscr NCURSES_PUBLIC_VAR(curscr()) 14945ca44d1cSRong-En Fan#define newscr NCURSES_PUBLIC_VAR(newscr()) 14955ca44d1cSRong-En Fan#define stdscr NCURSES_PUBLIC_VAR(stdscr()) 14965ca44d1cSRong-En Fan#define ttytype NCURSES_PUBLIC_VAR(ttytype()) 14975ca44d1cSRong-En Fan#define COLORS NCURSES_PUBLIC_VAR(COLORS()) 14985ca44d1cSRong-En Fan#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS()) 14995ca44d1cSRong-En Fan#define COLS NCURSES_PUBLIC_VAR(COLS()) 15005ca44d1cSRong-En Fan#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY()) 15015ca44d1cSRong-En Fan#define LINES NCURSES_PUBLIC_VAR(LINES()) 15025ca44d1cSRong-En Fan#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE()) 15035ca44d1cSRong-En Fan 15045ca44d1cSRong-En Fan#else 15055ca44d1cSRong-En Fan 15065ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(WINDOW *) curscr; 15075ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(WINDOW *) newscr; 15085ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(WINDOW *) stdscr; 15095ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(char) ttytype[]; 15105ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(int) COLORS; 15115ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(int) COLOR_PAIRS; 15125ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(int) COLS; 15135ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(int) ESCDELAY; 15145ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(int) LINES; 15155ca44d1cSRong-En Fanextern NCURSES_EXPORT_VAR(int) TABSIZE; 15165ca44d1cSRong-En Fan 15175ca44d1cSRong-En Fan#endif 15185ca44d1cSRong-En Fan 15195ca44d1cSRong-En Fan/* 15200e3d5408SPeter Wemm * Pseudo-character tokens outside ASCII range. The curses wgetch() function 15210e3d5408SPeter Wemm * will return any given one of these only if the corresponding k- capability 15220e3d5408SPeter Wemm * is defined in your terminal's terminfo entry. 152339f2269fSPeter Wemm * 152439f2269fSPeter Wemm * Some keys (KEY_A1, etc) are arranged like this: 152539f2269fSPeter Wemm * a1 up a3 152639f2269fSPeter Wemm * left b2 right 152739f2269fSPeter Wemm * c1 down c3 152839f2269fSPeter Wemm * 152939f2269fSPeter Wemm * A few key codes do not depend upon the terminfo entry. 15300e3d5408SPeter Wemm */ 15310e3d5408SPeter Wemm#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */ 15320e3d5408SPeter Wemm#define KEY_MIN 0401 /* Minimum curses key */ 15330e3d5408SPeter Wemm#define KEY_BREAK 0401 /* Break key (unreliable) */ 15340e3d5408SPeter Wemm#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */ 15350e3d5408SPeter Wemm#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */ 1536