17d1ab061SEirik Nygaard/**************************************************************************** 2*2ff0cc30SDaniel Fojt * Copyright 2018-2019,2020 Thomas E. Dickey * 3*2ff0cc30SDaniel Fojt * Copyright 1998-2016,2017 Free Software Foundation, Inc. * 47d1ab061SEirik Nygaard * * 57d1ab061SEirik Nygaard * Permission is hereby granted, free of charge, to any person obtaining a * 67d1ab061SEirik Nygaard * copy of this software and associated documentation files (the * 77d1ab061SEirik Nygaard * "Software"), to deal in the Software without restriction, including * 87d1ab061SEirik Nygaard * without limitation the rights to use, copy, modify, merge, publish, * 97d1ab061SEirik Nygaard * distribute, distribute with modifications, sublicense, and/or sell * 107d1ab061SEirik Nygaard * copies of the Software, and to permit persons to whom the Software is * 117d1ab061SEirik Nygaard * furnished to do so, subject to the following conditions: * 127d1ab061SEirik Nygaard * * 137d1ab061SEirik Nygaard * The above copyright notice and this permission notice shall be included * 147d1ab061SEirik Nygaard * in all copies or substantial portions of the Software. * 157d1ab061SEirik Nygaard * * 167d1ab061SEirik Nygaard * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 177d1ab061SEirik Nygaard * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 187d1ab061SEirik Nygaard * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 197d1ab061SEirik Nygaard * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 207d1ab061SEirik Nygaard * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 217d1ab061SEirik Nygaard * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 227d1ab061SEirik Nygaard * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 237d1ab061SEirik Nygaard * * 247d1ab061SEirik Nygaard * Except as contained in this notice, the name(s) of the above copyright * 257d1ab061SEirik Nygaard * holders shall not be used in advertising or otherwise to promote the * 267d1ab061SEirik Nygaard * sale, use or other dealings in this Software without prior written * 277d1ab061SEirik Nygaard * authorization. * 287d1ab061SEirik Nygaard ****************************************************************************/ 297d1ab061SEirik Nygaard 307d1ab061SEirik Nygaard/**************************************************************************** 317d1ab061SEirik Nygaard * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 * 327d1ab061SEirik Nygaard * and: Eric S. Raymond <esr@snark.thyrsus.com> * 337d1ab061SEirik Nygaard * and: Thomas E. Dickey 1996-on * 347d1ab061SEirik Nygaard ****************************************************************************/ 357d1ab061SEirik Nygaard 36*2ff0cc30SDaniel Fojt/* $Id: curses.h.in,v 1.266 2020/02/08 10:51:53 tom Exp $ */ 377d1ab061SEirik Nygaard 387d1ab061SEirik Nygaard#ifndef __NCURSES_H 397d1ab061SEirik Nygaard#define __NCURSES_H 407d1ab061SEirik Nygaard 417d1ab061SEirik Nygaard#define CURSES 1 427d1ab061SEirik Nygaard#define CURSES_H 1 437d1ab061SEirik Nygaard 447d1ab061SEirik Nygaard/* These are defined only in curses.h, and are used for conditional compiles */ 453eec8774SJohn Marino#define NCURSES_VERSION_MAJOR 6 46*2ff0cc30SDaniel Fojt#define NCURSES_VERSION_MINOR 2 47*2ff0cc30SDaniel Fojt#define NCURSES_VERSION_PATCH 20200212 487d1ab061SEirik Nygaard 497d1ab061SEirik Nygaard/* This is defined in more than one ncurses header, for identification */ 507d1ab061SEirik Nygaard#undef NCURSES_VERSION 51*2ff0cc30SDaniel Fojt#define NCURSES_VERSION "6.2" 527d1ab061SEirik Nygaard 53946ecb11SJan Lentfer/* 54946ecb11SJan Lentfer * Identify the mouse encoding version. 55946ecb11SJan Lentfer */ 563eec8774SJohn Marino#define NCURSES_MOUSE_VERSION 2 57946ecb11SJan Lentfer 58946ecb11SJan Lentfer/* 59946ecb11SJan Lentfer * Definitions to facilitate DLL's. 60946ecb11SJan Lentfer */ 617d1ab061SEirik Nygaard#include <ncurses_dll.h> 62946ecb11SJan Lentfer 633eec8774SJohn Marino#if 1 643eec8774SJohn Marino#include <stdint.h> 653eec8774SJohn Marino#endif 663eec8774SJohn Marino 67946ecb11SJan Lentfer/* 68946ecb11SJan Lentfer * User-definable tweak to disable the include of <stdbool.h>. 69946ecb11SJan Lentfer */ 70946ecb11SJan Lentfer#ifndef NCURSES_ENABLE_STDBOOL_H 71946ecb11SJan Lentfer#define NCURSES_ENABLE_STDBOOL_H 1 727d1ab061SEirik Nygaard#endif 737d1ab061SEirik Nygaard 747d1ab061SEirik Nygaard/* 757d1ab061SEirik Nygaard * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses 767d1ab061SEirik Nygaard * configured using --disable-macros. 777d1ab061SEirik Nygaard */ 787d1ab061SEirik Nygaard#ifndef NCURSES_ATTR_T 797d1ab061SEirik Nygaard#define NCURSES_ATTR_T int 807d1ab061SEirik Nygaard#endif 817d1ab061SEirik Nygaard 827d1ab061SEirik Nygaard/* 837d1ab061SEirik Nygaard * Expands to 'const' if ncurses is configured using --enable-const. Note that 847d1ab061SEirik Nygaard * doing so makes it incompatible with other implementations of X/Open Curses. 857d1ab061SEirik Nygaard */ 867d1ab061SEirik Nygaard#undef NCURSES_CONST 8731a6c863SJoerg Sonnenberger#define NCURSES_CONST const 887d1ab061SEirik Nygaard 89946ecb11SJan Lentfer#undef NCURSES_INLINE 90946ecb11SJan Lentfer#define NCURSES_INLINE inline 91946ecb11SJan Lentfer 927d1ab061SEirik Nygaard/* 93*2ff0cc30SDaniel Fojt * The standard type used for color values, and for color-pairs. The latter 943eec8774SJohn Marino * allows the curses library to enumerate the combinations of foreground and 953eec8774SJohn Marino * background colors used by an application, and is normally the product of the 963eec8774SJohn Marino * total foreground and background colors. 973eec8774SJohn Marino * 983eec8774SJohn Marino * X/Open uses "short" for both of these types, ultimately because they are 99*2ff0cc30SDaniel Fojt * numbers from the SVr4 terminal database, which uses 16-bit signed values. 1007d1ab061SEirik Nygaard */ 1017d1ab061SEirik Nygaard#undef NCURSES_COLOR_T 1027d1ab061SEirik Nygaard#define NCURSES_COLOR_T short 1037d1ab061SEirik Nygaard 1043eec8774SJohn Marino#undef NCURSES_PAIRS_T 1053eec8774SJohn Marino#define NCURSES_PAIRS_T short 1063eec8774SJohn Marino 1077d1ab061SEirik Nygaard/* 108*2ff0cc30SDaniel Fojt * Definitions used to make WINDOW and similar structs opaque. 109946ecb11SJan Lentfer */ 110*2ff0cc30SDaniel Fojt#ifndef NCURSES_INTERNALS 111946ecb11SJan Lentfer#define NCURSES_OPAQUE 0 112*2ff0cc30SDaniel Fojt#define NCURSES_OPAQUE_FORM 0 113*2ff0cc30SDaniel Fojt#define NCURSES_OPAQUE_MENU 0 114*2ff0cc30SDaniel Fojt#define NCURSES_OPAQUE_PANEL 0 115*2ff0cc30SDaniel Fojt#endif 116*2ff0cc30SDaniel Fojt 117*2ff0cc30SDaniel Fojt/* 118*2ff0cc30SDaniel Fojt * Definition used to optionally suppress wattr* macros to help with the 119*2ff0cc30SDaniel Fojt * transition from ncurses5 to ncurses6 by allowing the header files to 120*2ff0cc30SDaniel Fojt * be shared across development packages for ncursesw in both ABIs. 121*2ff0cc30SDaniel Fojt */ 122*2ff0cc30SDaniel Fojt#ifndef NCURSES_WATTR_MACROS 123*2ff0cc30SDaniel Fojt#define NCURSES_WATTR_MACROS 1 124946ecb11SJan Lentfer#endif 125946ecb11SJan Lentfer 126946ecb11SJan Lentfer/* 127ee39cac4SJohn Marino * The reentrant code relies on the opaque setting, but adds features. 128ee39cac4SJohn Marino */ 129ee39cac4SJohn Marino#ifndef NCURSES_REENTRANT 130ee39cac4SJohn Marino#define NCURSES_REENTRANT 0 131ee39cac4SJohn Marino#endif 132ee39cac4SJohn Marino 133ee39cac4SJohn Marino/* 134*2ff0cc30SDaniel Fojt * In certain environments, we must work around linker problems for data 135*2ff0cc30SDaniel Fojt */ 136*2ff0cc30SDaniel Fojt#undef NCURSES_BROKEN_LINKER 137*2ff0cc30SDaniel Fojt#if 0 138*2ff0cc30SDaniel Fojt#define NCURSES_BROKEN_LINKER 1 139*2ff0cc30SDaniel Fojt#endif 140*2ff0cc30SDaniel Fojt 141*2ff0cc30SDaniel Fojt/* 142ee39cac4SJohn Marino * Control whether bindings for interop support are added. 143ee39cac4SJohn Marino */ 144ee39cac4SJohn Marino#undef NCURSES_INTEROP_FUNCS 1453eec8774SJohn Marino#define NCURSES_INTEROP_FUNCS 1 146ee39cac4SJohn Marino 147ee39cac4SJohn Marino/* 1487d1ab061SEirik Nygaard * The internal type used for window dimensions. 1497d1ab061SEirik Nygaard */ 1507d1ab061SEirik Nygaard#undef NCURSES_SIZE_T 1517d1ab061SEirik Nygaard#define NCURSES_SIZE_T short 1527d1ab061SEirik Nygaard 1537d1ab061SEirik Nygaard/* 154946ecb11SJan Lentfer * Control whether tparm() supports varargs or fixed-parameter list. 155946ecb11SJan Lentfer */ 156946ecb11SJan Lentfer#undef NCURSES_TPARM_VARARGS 157946ecb11SJan Lentfer#define NCURSES_TPARM_VARARGS 1 158946ecb11SJan Lentfer 159946ecb11SJan Lentfer/* 1603eec8774SJohn Marino * Control type used for tparm's arguments. While X/Open equates long and 1613eec8774SJohn Marino * char* values, this is not always workable for 64-bit platforms. 1623eec8774SJohn Marino */ 1633eec8774SJohn Marino#undef NCURSES_TPARM_ARG 1643eec8774SJohn Marino#define NCURSES_TPARM_ARG intptr_t 1653eec8774SJohn Marino 1663eec8774SJohn Marino/* 1673eec8774SJohn Marino * Control whether ncurses uses wcwidth() for checking width of line-drawing 1683eec8774SJohn Marino * characters. 1693eec8774SJohn Marino */ 1703eec8774SJohn Marino#undef NCURSES_WCWIDTH_GRAPHICS 1713eec8774SJohn Marino#define NCURSES_WCWIDTH_GRAPHICS 1 1723eec8774SJohn Marino 1733eec8774SJohn Marino/* 1747d1ab061SEirik Nygaard * NCURSES_CH_T is used in building the library, but not used otherwise in 1757d1ab061SEirik Nygaard * this header file, since that would make the normal/wide-character versions 1767d1ab061SEirik Nygaard * of the header incompatible. 1777d1ab061SEirik Nygaard */ 1787d1ab061SEirik Nygaard#undef NCURSES_CH_T 179a42c8ee5SJohn Marino#define NCURSES_CH_T SET_NCURSES_CH_T 1807d1ab061SEirik Nygaard 1813eec8774SJohn Marino#if 1 && defined(_LP64) 182946ecb11SJan Lentfertypedef unsigned chtype; 183946ecb11SJan Lentfertypedef unsigned mmask_t; 184946ecb11SJan Lentfer#else 1853eec8774SJohn Marinotypedef uint32_t chtype; 1863eec8774SJohn Marinotypedef uint32_t mmask_t; 187946ecb11SJan Lentfer#endif 1887d1ab061SEirik Nygaard 189ee39cac4SJohn Marino/* 190ee39cac4SJohn Marino * We need FILE, etc. Include this before checking any feature symbols. 191ee39cac4SJohn Marino */ 1927d1ab061SEirik Nygaard#include <stdio.h> 193ee39cac4SJohn Marino 194ee39cac4SJohn Marino/* 195ee39cac4SJohn Marino * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or 1963eec8774SJohn Marino * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is 1973eec8774SJohn Marino * not already defined, e.g., if the platform relies upon nonstandard feature 1983eec8774SJohn Marino * test macros, define it at this point if the standard feature test macros 1993eec8774SJohn Marino * indicate that it should be defined. 200ee39cac4SJohn Marino */ 2013eec8774SJohn Marino#ifndef NCURSES_WIDECHAR 2023eec8774SJohn Marino#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) 2033eec8774SJohn Marino#define NCURSES_WIDECHAR 1 2043eec8774SJohn Marino#else 2053eec8774SJohn Marino#define NCURSES_WIDECHAR 0 206ee39cac4SJohn Marino#endif 2073eec8774SJohn Marino#endif /* NCURSES_WIDECHAR */ 208ee39cac4SJohn Marino 2097d1ab061SEirik Nygaard#include <stdarg.h> /* we need va_list */ 2103eec8774SJohn Marino#if NCURSES_WIDECHAR 2117d1ab061SEirik Nygaard#include <stddef.h> /* we want wchar_t */ 212ee39cac4SJohn Marino#endif 2137d1ab061SEirik Nygaard 214946ecb11SJan Lentfer/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also 2157d1ab061SEirik Nygaard * implement it. If so, we must use the C++ compiler's type to avoid conflict 2167d1ab061SEirik Nygaard * with other interfaces. 2177d1ab061SEirik Nygaard * 2187d1ab061SEirik Nygaard * A further complication is that <stdbool.h> may declare 'bool' to be a 2197d1ab061SEirik Nygaard * different type, such as an enum which is not necessarily compatible with 2207d1ab061SEirik Nygaard * C++. If we have <stdbool.h>, make 'bool' a macro, so users may #undef it. 2217d1ab061SEirik Nygaard * Otherwise, let it remain a typedef to avoid conflicts with other #define's. 2227d1ab061SEirik Nygaard * In either case, make a typedef for NCURSES_BOOL which can be used if needed 2237d1ab061SEirik Nygaard * from either C or C++. 2247d1ab061SEirik Nygaard */ 2257d1ab061SEirik Nygaard 2267d1ab061SEirik Nygaard#undef TRUE 2277d1ab061SEirik Nygaard#define TRUE 1 2287d1ab061SEirik Nygaard 2297d1ab061SEirik Nygaard#undef FALSE 2307d1ab061SEirik Nygaard#define FALSE 0 2317d1ab061SEirik Nygaard 2327d1ab061SEirik Nygaardtypedef unsigned char NCURSES_BOOL; 2337d1ab061SEirik Nygaard 2347d1ab061SEirik Nygaard#if defined(__cplusplus) /* __cplusplus, etc. */ 2357d1ab061SEirik Nygaard 2367d1ab061SEirik Nygaard/* use the C++ compiler's bool type */ 2377d1ab061SEirik Nygaard#define NCURSES_BOOL bool 2387d1ab061SEirik Nygaard 2397d1ab061SEirik Nygaard#else /* c89, c99, etc. */ 2407d1ab061SEirik Nygaard 241946ecb11SJan Lentfer#if NCURSES_ENABLE_STDBOOL_H 2427d1ab061SEirik Nygaard#include <stdbool.h> 2437d1ab061SEirik Nygaard/* use whatever the C compiler decides bool really is */ 2447d1ab061SEirik Nygaard#define NCURSES_BOOL bool 2457d1ab061SEirik Nygaard#else 2467d1ab061SEirik Nygaard/* there is no predefined bool - use our own */ 2477d1ab061SEirik Nygaard#undef bool 2487d1ab061SEirik Nygaard#define bool NCURSES_BOOL 2497d1ab061SEirik Nygaard#endif 2507d1ab061SEirik Nygaard 2517d1ab061SEirik Nygaard#endif /* !__cplusplus, etc. */ 2527d1ab061SEirik Nygaard 2537d1ab061SEirik Nygaard#ifdef __cplusplus 2547d1ab061SEirik Nygaardextern "C" { 255946ecb11SJan Lentfer#define NCURSES_CAST(type,value) static_cast<type>(value) 256946ecb11SJan Lentfer#else 257946ecb11SJan Lentfer#define NCURSES_CAST(type,value) (type)(value) 2587d1ab061SEirik Nygaard#endif 2597d1ab061SEirik Nygaard 260*2ff0cc30SDaniel Fojt#define NCURSES_OK_ADDR(p) (0 != NCURSES_CAST(const void *, (p))) 261*2ff0cc30SDaniel Fojt 2627d1ab061SEirik Nygaard/* 263946ecb11SJan Lentfer * X/Open attributes. In the ncurses implementation, they are identical to the 2647d1ab061SEirik Nygaard * A_ attributes. 2657d1ab061SEirik Nygaard */ 2667d1ab061SEirik Nygaard#define WA_ATTRIBUTES A_ATTRIBUTES 2677d1ab061SEirik Nygaard#define WA_NORMAL A_NORMAL 2687d1ab061SEirik Nygaard#define WA_STANDOUT A_STANDOUT 2697d1ab061SEirik Nygaard#define WA_UNDERLINE A_UNDERLINE 2707d1ab061SEirik Nygaard#define WA_REVERSE A_REVERSE 2717d1ab061SEirik Nygaard#define WA_BLINK A_BLINK 2727d1ab061SEirik Nygaard#define WA_DIM A_DIM 2737d1ab061SEirik Nygaard#define WA_BOLD A_BOLD 2747d1ab061SEirik Nygaard#define WA_ALTCHARSET A_ALTCHARSET 2757d1ab061SEirik Nygaard#define WA_INVIS A_INVIS 2767d1ab061SEirik Nygaard#define WA_PROTECT A_PROTECT 2777d1ab061SEirik Nygaard#define WA_HORIZONTAL A_HORIZONTAL 2787d1ab061SEirik Nygaard#define WA_LEFT A_LEFT 2797d1ab061SEirik Nygaard#define WA_LOW A_LOW 2807d1ab061SEirik Nygaard#define WA_RIGHT A_RIGHT 2817d1ab061SEirik Nygaard#define WA_TOP A_TOP 2827d1ab061SEirik Nygaard#define WA_VERTICAL A_VERTICAL 2837d1ab061SEirik Nygaard 2843eec8774SJohn Marino#if 1 2853eec8774SJohn Marino#define WA_ITALIC A_ITALIC /* ncurses extension */ 2863eec8774SJohn Marino#endif 2873eec8774SJohn Marino 2887d1ab061SEirik Nygaard/* colors */ 2897d1ab061SEirik Nygaard#define COLOR_BLACK 0 2907d1ab061SEirik Nygaard#define COLOR_RED 1 2917d1ab061SEirik Nygaard#define COLOR_GREEN 2 2927d1ab061SEirik Nygaard#define COLOR_YELLOW 3 2937d1ab061SEirik Nygaard#define COLOR_BLUE 4 2947d1ab061SEirik Nygaard#define COLOR_MAGENTA 5 2957d1ab061SEirik Nygaard#define COLOR_CYAN 6 2967d1ab061SEirik Nygaard#define COLOR_WHITE 7 2977d1ab061SEirik Nygaard 2987d1ab061SEirik Nygaard/* line graphics */ 2997d1ab061SEirik Nygaard 300ee39cac4SJohn Marino#if 0 || NCURSES_REENTRANT 301946ecb11SJan LentferNCURSES_WRAPPED_VAR(chtype*, acs_map); 302ee39cac4SJohn Marino#define acs_map NCURSES_PUBLIC_VAR(acs_map()) 3037d1ab061SEirik Nygaard#else 3047d1ab061SEirik Nygaardextern NCURSES_EXPORT_VAR(chtype) acs_map[]; 3057d1ab061SEirik Nygaard#endif 3067d1ab061SEirik Nygaard 3073eec8774SJohn Marino#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))]) 3087d1ab061SEirik Nygaard 3097d1ab061SEirik Nygaard/* VT100 symbols begin here */ 3107d1ab061SEirik Nygaard#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ 3117d1ab061SEirik Nygaard#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */ 3127d1ab061SEirik Nygaard#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */ 3137d1ab061SEirik Nygaard#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */ 3147d1ab061SEirik Nygaard#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */ 3157d1ab061SEirik Nygaard#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */ 3167d1ab061SEirik Nygaard#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */ 3177d1ab061SEirik Nygaard#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */ 3187d1ab061SEirik Nygaard#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */ 3197d1ab061SEirik Nygaard#define ACS_VLINE NCURSES_ACS('x') /* vertical line */ 3207d1ab061SEirik Nygaard#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */ 3217d1ab061SEirik Nygaard#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */ 3227d1ab061SEirik Nygaard#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */ 3237d1ab061SEirik Nygaard#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */ 3247d1ab061SEirik Nygaard#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */ 3257d1ab061SEirik Nygaard#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */ 3267d1ab061SEirik Nygaard#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */ 3277d1ab061SEirik Nygaard#define ACS_BULLET NCURSES_ACS('~') /* bullet */ 3287d1ab061SEirik Nygaard/* Teletype 5410v1 symbols begin here */ 3297d1ab061SEirik Nygaard#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */ 3307d1ab061SEirik Nygaard#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */ 3317d1ab061SEirik Nygaard#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */ 3327d1ab061SEirik Nygaard#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */ 3337d1ab061SEirik Nygaard#define ACS_BOARD NCURSES_ACS('h') /* board of squares */ 3347d1ab061SEirik Nygaard#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */ 3357d1ab061SEirik Nygaard#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */ 3367d1ab061SEirik Nygaard/* 3377d1ab061SEirik Nygaard * These aren't documented, but a lot of System Vs have them anyway 3387d1ab061SEirik Nygaard * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings). 3397d1ab061SEirik Nygaard * The ACS_names may not match AT&T's, our source didn't know them. 3407d1ab061SEirik Nygaard */ 3417d1ab061SEirik Nygaard#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */ 3427d1ab061SEirik Nygaard#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */ 3437d1ab061SEirik Nygaard#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */ 3447d1ab061SEirik Nygaard#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */ 3457d1ab061SEirik Nygaard#define ACS_PI NCURSES_ACS('{') /* Pi */ 3467d1ab061SEirik Nygaard#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */ 3477d1ab061SEirik Nygaard#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */ 3487d1ab061SEirik Nygaard 3497d1ab061SEirik Nygaard/* 3507d1ab061SEirik Nygaard * Line drawing ACS names are of the form ACS_trbl, where t is the top, r 3517d1ab061SEirik Nygaard * is the right, b is the bottom, and l is the left. t, r, b, and l might 3527d1ab061SEirik Nygaard * be B (blank), S (single), D (double), or T (thick). The subset defined 3537d1ab061SEirik Nygaard * here only uses B and S. 3547d1ab061SEirik Nygaard */ 3557d1ab061SEirik Nygaard#define ACS_BSSB ACS_ULCORNER 3567d1ab061SEirik Nygaard#define ACS_SSBB ACS_LLCORNER 3577d1ab061SEirik Nygaard#define ACS_BBSS ACS_URCORNER 3587d1ab061SEirik Nygaard#define ACS_SBBS ACS_LRCORNER 3597d1ab061SEirik Nygaard#define ACS_SBSS ACS_RTEE 3607d1ab061SEirik Nygaard#define ACS_SSSB ACS_LTEE 3617d1ab061SEirik Nygaard#define ACS_SSBS ACS_BTEE 3627d1ab061SEirik Nygaard#define ACS_BSSS ACS_TTEE 3637d1ab061SEirik Nygaard#define ACS_BSBS ACS_HLINE 3647d1ab061SEirik Nygaard#define ACS_SBSB ACS_VLINE 3657d1ab061SEirik Nygaard#define ACS_SSSS ACS_PLUS 3667d1ab061SEirik Nygaard 3677d1ab061SEirik Nygaard#undef ERR 3687d1ab061SEirik Nygaard#define ERR (-1) 3697d1ab061SEirik Nygaard 3707d1ab061SEirik Nygaard#undef OK 3717d1ab061SEirik Nygaard#define OK (0) 3727d1ab061SEirik Nygaard 3737d1ab061SEirik Nygaard/* values for the _flags member */ 3747d1ab061SEirik Nygaard#define _SUBWIN 0x01 /* is this a sub-window? */ 3757d1ab061SEirik Nygaard#define _ENDLINE 0x02 /* is the window flush right? */ 3767d1ab061SEirik Nygaard#define _FULLWIN 0x04 /* is the window full-screen? */ 3777d1ab061SEirik Nygaard#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */ 3787d1ab061SEirik Nygaard#define _ISPAD 0x10 /* is this window a pad? */ 3797d1ab061SEirik Nygaard#define _HASMOVED 0x20 /* has cursor moved since last refresh? */ 3807d1ab061SEirik Nygaard#define _WRAPPED 0x40 /* cursor was just wrappped */ 3817d1ab061SEirik Nygaard 3827d1ab061SEirik Nygaard/* 3837d1ab061SEirik Nygaard * this value is used in the firstchar and lastchar fields to mark 3847d1ab061SEirik Nygaard * unchanged lines 3857d1ab061SEirik Nygaard */ 3867d1ab061SEirik Nygaard#define _NOCHANGE -1 3877d1ab061SEirik Nygaard 3887d1ab061SEirik Nygaard/* 3897d1ab061SEirik Nygaard * this value is used in the oldindex field to mark lines created by insertions 3907d1ab061SEirik Nygaard * and scrolls. 3917d1ab061SEirik Nygaard */ 3927d1ab061SEirik Nygaard#define _NEWINDEX -1 3937d1ab061SEirik Nygaard 3947d1ab061SEirik Nygaardtypedef struct screen SCREEN; 3957d1ab061SEirik Nygaardtypedef struct _win_st WINDOW; 3967d1ab061SEirik Nygaard 3977d1ab061SEirik Nygaardtypedef chtype attr_t; /* ...must be at least as wide as chtype */ 3987d1ab061SEirik Nygaard 3993eec8774SJohn Marino#if NCURSES_WIDECHAR 4007d1ab061SEirik Nygaard 4017d1ab061SEirik Nygaard#if 0 4027d1ab061SEirik Nygaard#ifdef mblen /* libutf8.h defines it w/o undefining first */ 4037d1ab061SEirik Nygaard#undef mblen 4047d1ab061SEirik Nygaard#endif 4057d1ab061SEirik Nygaard#include <libutf8.h> 4067d1ab061SEirik Nygaard#endif 4077d1ab061SEirik Nygaard 408a42c8ee5SJohn Marino#if SET_NEED_WCHAR_H 4097d1ab061SEirik Nygaard#include <wchar.h> /* ...to get mbstate_t, etc. */ 410e27e6728SJohn Marino#else 411e27e6728SJohn Marinotypedef int wint_t; 4127d1ab061SEirik Nygaard#endif 4137d1ab061SEirik Nygaard 4147d1ab061SEirik Nygaard#if 0 415*2ff0cc30SDaniel Fojttypedef unsigned short wchar_t; 4167d1ab061SEirik Nygaard#endif 4177d1ab061SEirik Nygaard 4187d1ab061SEirik Nygaard#if 0 419*2ff0cc30SDaniel Fojttypedef unsigned int wint_t; 4207d1ab061SEirik Nygaard#endif 4217d1ab061SEirik Nygaard 422ee39cac4SJohn Marino/* 423ee39cac4SJohn Marino * cchar_t stores an array of CCHARW_MAX wide characters. The first is 424ee39cac4SJohn Marino * normally a spacing character. The others are non-spacing. If those 425ee39cac4SJohn Marino * (spacing and nonspacing) do not fill the array, a null L'\0' follows. 426ee39cac4SJohn Marino * Otherwise, a null is assumed to follow when extracting via getcchar(). 427ee39cac4SJohn Marino */ 4287d1ab061SEirik Nygaard#define CCHARW_MAX 5 4297d1ab061SEirik Nygaardtypedef struct 4307d1ab061SEirik Nygaard{ 4317d1ab061SEirik Nygaard attr_t attr; 4327d1ab061SEirik Nygaard wchar_t chars[CCHARW_MAX]; 4333eec8774SJohn Marino#if SET_NEED_WCHAR_H 434946ecb11SJan Lentfer#undef NCURSES_EXT_COLORS 435*2ff0cc30SDaniel Fojt#define NCURSES_EXT_COLORS 20200212 436946ecb11SJan Lentfer int ext_color; /* color pair, must be more than 16-bits */ 437946ecb11SJan Lentfer#endif 4387d1ab061SEirik Nygaard} 4397d1ab061SEirik Nygaardcchar_t; 4407d1ab061SEirik Nygaard 441ee39cac4SJohn Marino#endif /* NCURSES_WIDECHAR */ 4427d1ab061SEirik Nygaard 443946ecb11SJan Lentfer#if !NCURSES_OPAQUE 4447d1ab061SEirik Nygaardstruct ldat; 4457d1ab061SEirik Nygaard 4467d1ab061SEirik Nygaardstruct _win_st 4477d1ab061SEirik Nygaard{ 4487d1ab061SEirik Nygaard NCURSES_SIZE_T _cury, _curx; /* current cursor position */ 4497d1ab061SEirik Nygaard 4507d1ab061SEirik Nygaard /* window location and size */ 4517d1ab061SEirik Nygaard NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */ 4527d1ab061SEirik Nygaard NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */ 4537d1ab061SEirik Nygaard 4547d1ab061SEirik Nygaard short _flags; /* window state flags */ 4557d1ab061SEirik Nygaard 4567d1ab061SEirik Nygaard /* attribute tracking */ 4577d1ab061SEirik Nygaard attr_t _attrs; /* current attribute for non-space character */ 4587d1ab061SEirik Nygaard chtype _bkgd; /* current background char/attribute pair */ 4597d1ab061SEirik Nygaard 4607d1ab061SEirik Nygaard /* option values set by user */ 4617d1ab061SEirik Nygaard bool _notimeout; /* no time out on function-key entry? */ 4627d1ab061SEirik Nygaard bool _clear; /* consider all data in the window invalid? */ 4637d1ab061SEirik Nygaard bool _leaveok; /* OK to not reset cursor on exit? */ 4647d1ab061SEirik Nygaard bool _scroll; /* OK to scroll this window? */ 4657d1ab061SEirik Nygaard bool _idlok; /* OK to use insert/delete line? */ 4667d1ab061SEirik Nygaard bool _idcok; /* OK to use insert/delete char? */ 4677d1ab061SEirik Nygaard bool _immed; /* window in immed mode? (not yet used) */ 4687d1ab061SEirik Nygaard bool _sync; /* window in sync mode? */ 4697d1ab061SEirik Nygaard bool _use_keypad; /* process function keys into KEY_ symbols? */ 4707d1ab061SEirik Nygaard int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ 4717d1ab061SEirik Nygaard 4727d1ab061SEirik Nygaard struct ldat *_line; /* the actual line data */ 4737d1ab061SEirik Nygaard 4747d1ab061SEirik Nygaard /* global screen state */ 4757d1ab061SEirik Nygaard NCURSES_SIZE_T _regtop; /* top line of scrolling region */ 4767d1ab061SEirik Nygaard NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */ 4777d1ab061SEirik Nygaard 4787d1ab061SEirik Nygaard /* these are used only if this is a sub-window */ 4797d1ab061SEirik Nygaard int _parx; /* x coordinate of this window in parent */ 4807d1ab061SEirik Nygaard int _pary; /* y coordinate of this window in parent */ 4817d1ab061SEirik Nygaard WINDOW *_parent; /* pointer to parent if a sub-window */ 4827d1ab061SEirik Nygaard 4837d1ab061SEirik Nygaard /* these are used only if this is a pad */ 4847d1ab061SEirik Nygaard struct pdat 4857d1ab061SEirik Nygaard { 4867d1ab061SEirik Nygaard NCURSES_SIZE_T _pad_y, _pad_x; 4877d1ab061SEirik Nygaard NCURSES_SIZE_T _pad_top, _pad_left; 4887d1ab061SEirik Nygaard NCURSES_SIZE_T _pad_bottom, _pad_right; 4897d1ab061SEirik Nygaard } _pad; 4907d1ab061SEirik Nygaard 4917d1ab061SEirik Nygaard NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ 4927d1ab061SEirik Nygaard 4933eec8774SJohn Marino#if NCURSES_WIDECHAR 4947d1ab061SEirik Nygaard cchar_t _bkgrnd; /* current background char/attribute pair */ 4953eec8774SJohn Marino#if SET_NEED_WCHAR_H 496946ecb11SJan Lentfer int _color; /* current color-pair for non-space character */ 497946ecb11SJan Lentfer#endif 4987d1ab061SEirik Nygaard#endif 4997d1ab061SEirik Nygaard}; 500946ecb11SJan Lentfer#endif /* NCURSES_OPAQUE */ 5017d1ab061SEirik Nygaard 5027d1ab061SEirik Nygaard/* 5037d1ab061SEirik Nygaard * This is an extension to support events... 5047d1ab061SEirik Nygaard */ 5057d1ab061SEirik Nygaard#if 1 5067d1ab061SEirik Nygaard#ifdef NCURSES_WGETCH_EVENTS 507946ecb11SJan Lentfer#if !defined(__BEOS__) || defined(__HAIKU__) 508946ecb11SJan Lentfer /* Fix _nc_timed_wait() on BEOS... */ 5097d1ab061SEirik Nygaard# define NCURSES_EVENT_VERSION 1 5107d1ab061SEirik Nygaard#endif /* !defined(__BEOS__) */ 5117d1ab061SEirik Nygaard 5127d1ab061SEirik Nygaard/* 5137d1ab061SEirik Nygaard * Bits to set in _nc_event.data.flags 5147d1ab061SEirik Nygaard */ 5157d1ab061SEirik Nygaard# define _NC_EVENT_TIMEOUT_MSEC 1 5167d1ab061SEirik Nygaard# define _NC_EVENT_FILE 2 5177d1ab061SEirik Nygaard# define _NC_EVENT_FILE_READABLE 2 5187d1ab061SEirik Nygaard# if 0 /* Not supported yet... */ 5197d1ab061SEirik Nygaard# define _NC_EVENT_FILE_WRITABLE 4 5207d1ab061SEirik Nygaard# define _NC_EVENT_FILE_EXCEPTION 8 5217d1ab061SEirik Nygaard# endif 5227d1ab061SEirik Nygaard 5237d1ab061SEirik Nygaardtypedef struct 5247d1ab061SEirik Nygaard{ 5257d1ab061SEirik Nygaard int type; 5267d1ab061SEirik Nygaard union 5277d1ab061SEirik Nygaard { 5287d1ab061SEirik Nygaard long timeout_msec; /* _NC_EVENT_TIMEOUT_MSEC */ 5297d1ab061SEirik Nygaard struct 5307d1ab061SEirik Nygaard { 5317d1ab061SEirik Nygaard unsigned int flags; 5327d1ab061SEirik Nygaard int fd; 5337d1ab061SEirik Nygaard unsigned int result; 5347d1ab061SEirik Nygaard } fev; /* _NC_EVENT_FILE */ 5357d1ab061SEirik Nygaard } data; 5367d1ab061SEirik Nygaard} _nc_event; 5377d1ab061SEirik Nygaard 5387d1ab061SEirik Nygaardtypedef struct 5397d1ab061SEirik Nygaard{ 5407d1ab061SEirik Nygaard int count; 5417d1ab061SEirik Nygaard int result_flags; /* _NC_EVENT_TIMEOUT_MSEC or _NC_EVENT_FILE_READABLE */ 5427d1ab061SEirik Nygaard _nc_event *events[1]; 5437d1ab061SEirik Nygaard} _nc_eventlist; 5447d1ab061SEirik Nygaard 5457d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wgetch_events (WINDOW *, _nc_eventlist *); /* experimental */ 5467d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *);/* experimental */ 5477d1ab061SEirik Nygaard 5487d1ab061SEirik Nygaard#endif /* NCURSES_WGETCH_EVENTS */ 5497d1ab061SEirik Nygaard#endif /* NCURSES_EXT_FUNCS */ 5507d1ab061SEirik Nygaard 5517d1ab061SEirik Nygaard/* 5527d1ab061SEirik Nygaard * GCC (and some other compilers) define '__attribute__'; we're using this 5537d1ab061SEirik Nygaard * macro to alert the compiler to flag inconsistencies in printf/scanf-like 5547d1ab061SEirik Nygaard * function calls. Just in case '__attribute__' isn't defined, make a dummy. 5557d1ab061SEirik Nygaard * Old versions of G++ do not accept it anyway, at least not consistently with 5567d1ab061SEirik Nygaard * GCC. 5577d1ab061SEirik Nygaard */ 5587d1ab061SEirik Nygaard#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__)) 5597d1ab061SEirik Nygaard#define __attribute__(p) /* nothing */ 5607d1ab061SEirik Nygaard#endif 5617d1ab061SEirik Nygaard 5627d1ab061SEirik Nygaard/* 5637d1ab061SEirik Nygaard * We cannot define these in ncurses_cfg.h, since they require parameters to be 564946ecb11SJan Lentfer * passed (that is non-portable). If you happen to be using gcc with warnings 565946ecb11SJan Lentfer * enabled, define 566946ecb11SJan Lentfer * GCC_PRINTF 567946ecb11SJan Lentfer * GCC_SCANF 568946ecb11SJan Lentfer * to improve checking of calls to printw(), etc. 5697d1ab061SEirik Nygaard */ 5707d1ab061SEirik Nygaard#ifndef GCC_PRINTFLIKE 5717d1ab061SEirik Nygaard#if defined(GCC_PRINTF) && !defined(printf) 5727d1ab061SEirik Nygaard#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) 5737d1ab061SEirik Nygaard#else 5747d1ab061SEirik Nygaard#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ 5757d1ab061SEirik Nygaard#endif 5767d1ab061SEirik Nygaard#endif 5777d1ab061SEirik Nygaard 5787d1ab061SEirik Nygaard#ifndef GCC_SCANFLIKE 5797d1ab061SEirik Nygaard#if defined(GCC_SCANF) && !defined(scanf) 5807d1ab061SEirik Nygaard#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) 5817d1ab061SEirik Nygaard#else 5827d1ab061SEirik Nygaard#define GCC_SCANFLIKE(fmt,var) /*nothing*/ 5837d1ab061SEirik Nygaard#endif 5847d1ab061SEirik Nygaard#endif 5857d1ab061SEirik Nygaard 5867d1ab061SEirik Nygaard#ifndef GCC_NORETURN 5877d1ab061SEirik Nygaard#define GCC_NORETURN /* nothing */ 5887d1ab061SEirik Nygaard#endif 5897d1ab061SEirik Nygaard 5907d1ab061SEirik Nygaard#ifndef GCC_UNUSED 5917d1ab061SEirik Nygaard#define GCC_UNUSED /* nothing */ 5927d1ab061SEirik Nygaard#endif 5937d1ab061SEirik Nygaard 594*2ff0cc30SDaniel Fojt#undef GCC_DEPRECATED 595*2ff0cc30SDaniel Fojt#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) 596*2ff0cc30SDaniel Fojt#define GCC_DEPRECATED(msg) __attribute__((deprecated)) 597*2ff0cc30SDaniel Fojt#else 598*2ff0cc30SDaniel Fojt#define GCC_DEPRECATED(msg) /* nothing */ 599*2ff0cc30SDaniel Fojt#endif 600*2ff0cc30SDaniel Fojt 6017d1ab061SEirik Nygaard/* 602ee39cac4SJohn Marino * Curses uses a helper function. Define our type for this to simplify 603ee39cac4SJohn Marino * extending it for the sp-funcs feature. 604ee39cac4SJohn Marino */ 605ee39cac4SJohn Marinotypedef int (*NCURSES_OUTC)(int); 606ee39cac4SJohn Marino 607ee39cac4SJohn Marino/* 608946ecb11SJan Lentfer * Function prototypes. This is the complete X/Open Curses list of required 6097d1ab061SEirik Nygaard * functions. Those marked `generated' will have sources generated from the 6107d1ab061SEirik Nygaard * macro definitions later in this file, in order to satisfy XPG4.2 6117d1ab061SEirik Nygaard * requirements. 6127d1ab061SEirik Nygaard */ 6137d1ab061SEirik Nygaard 6147d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) addch (const chtype); /* generated */ 6157d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) addchnstr (const chtype *, int); /* generated */ 6167d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) addchstr (const chtype *); /* generated */ 6177d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) addnstr (const char *, int); /* generated */ 6187d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) addstr (const char *); /* generated */ 6197d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ 6207d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ 6217d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ 6223eec8774SJohn Marinoextern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ 6237d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ 6247d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ 6253eec8774SJohn Marinoextern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */ 6267d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) baudrate (void); /* implemented */ 6277d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) beep (void); /* implemented */ 6287d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ 6297d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) bkgdset (chtype); /* generated */ 6307d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */ 6317d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ 6327d1ab061SEirik Nygaardextern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ 6337d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) cbreak (void); /* implemented */ 6343eec8774SJohn Marinoextern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ 6357d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) clear (void); /* generated */ 6367d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ 6377d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) clrtobot (void); /* generated */ 6387d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ 6393eec8774SJohn Marinoextern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ 6403eec8774SJohn Marinoextern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */ 6417d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ 6427d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ 6437d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) curs_set (int); /* implemented */ 6447d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) def_prog_mode (void); /* implemented */ 6457d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) def_shell_mode (void); /* implemented */ 6467d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) delay_output (int); /* implemented */ 6477d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) delch (void); /* generated */ 6487d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) delscreen (SCREEN *); /* implemented */ 6497d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) delwin (WINDOW *); /* implemented */ 6507d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) deleteln (void); /* generated */ 6517d1ab061SEirik Nygaardextern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int); /* implemented */ 6527d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) doupdate (void); /* implemented */ 6537d1ab061SEirik Nygaardextern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *); /* implemented */ 6547d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) echo (void); /* implemented */ 6557d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) echochar (const chtype); /* generated */ 6567d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) erase (void); /* generated */ 6577d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) endwin (void); /* implemented */ 6587d1ab061SEirik Nygaardextern NCURSES_EXPORT(char) erasechar (void); /* implemented */ 6597d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) filter (void); /* implemented */ 6607d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) flash (void); /* implemented */ 6617d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) flushinp (void); /* implemented */ 6627d1ab061SEirik Nygaardextern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */ 6637d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) getch (void); /* generated */ 6647d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */ 6657d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) getstr (char *); /* generated */ 6667d1ab061SEirik Nygaardextern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */ 6677d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) halfdelay (int); /* implemented */ 6687d1ab061SEirik Nygaardextern NCURSES_EXPORT(bool) has_colors (void); /* implemented */ 6697d1ab061SEirik Nygaardextern NCURSES_EXPORT(bool) has_ic (void); /* implemented */ 6707d1ab061SEirik Nygaardextern NCURSES_EXPORT(bool) has_il (void); /* implemented */ 6717d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) hline (chtype, int); /* generated */ 6727d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */ 6737d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */ 6747d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */ 6757d1ab061SEirik Nygaardextern NCURSES_EXPORT(chtype) inch (void); /* generated */ 6767d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ 6777d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ 6787d1ab061SEirik Nygaardextern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ 6793eec8774SJohn Marinoextern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ 6803eec8774SJohn Marinoextern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ 6817d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ 6827d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) insch (chtype); /* generated */ 6837d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) insdelln (int); /* generated */ 6847d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) insertln (void); /* generated */ 6857d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) insnstr (const char *, int); /* generated */ 6867d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) insstr (const char *); /* generated */ 6877d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) instr (char *); /* generated */ 6887d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */ 6897d1ab061SEirik Nygaardextern NCURSES_EXPORT(bool) isendwin (void); /* implemented */ 6907d1ab061SEirik Nygaardextern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int); /* implemented */ 6917d1ab061SEirik Nygaardextern NCURSES_EXPORT(bool) is_wintouched (WINDOW *); /* implemented */ 6927d1ab061SEirik Nygaardextern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int); /* implemented */ 6937d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */ 6947d1ab061SEirik Nygaardextern NCURSES_EXPORT(char) killchar (void); /* implemented */ 6957d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */ 6967d1ab061SEirik Nygaardextern NCURSES_EXPORT(char *) longname (void); /* implemented */ 6977d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */ 6987d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) move (int, int); /* generated */ 6997d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvaddch (int, int, const chtype); /* generated */ 7007d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* generated */ 7017d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ 7027d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ 7037d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ 7043eec8774SJohn Marinoextern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ 7057d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ 7067d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ 7077d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ 7087d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */ 7097d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */ 7107d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */ 7117d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */ 7127d1ab061SEirik Nygaardextern NCURSES_EXPORT(chtype) mvinch (int, int); /* generated */ 7137d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int); /* generated */ 7147d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *); /* generated */ 7157d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int); /* generated */ 7167d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvinsch (int, int, chtype); /* generated */ 7177d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */ 7187d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */ 7197d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */ 7207d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */ 7217d1ab061SEirik Nygaard GCC_PRINTFLIKE(3,4); 722*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...) /* implemented */ 7237d1ab061SEirik Nygaard GCC_SCANFLIKE(3,4); 7247d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */ 7257d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype); /* generated */ 7267d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */ 7277d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ 7287d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ 7297d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ 7303eec8774SJohn Marinoextern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */ 7317d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ 7327d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ 7337d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ 7347d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */ 7357d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */ 7367d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int); /* implemented */ 7377d1ab061SEirik Nygaardextern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int); /* generated */ 7387d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int); /* generated */ 7397d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *); /* generated */ 7407d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int); /* generated */ 7417d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype); /* generated */ 7427d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */ 7437d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */ 7447d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */ 7457d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */ 7467d1ab061SEirik Nygaard GCC_PRINTFLIKE(4,5); 747*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...) /* implemented */ 7487d1ab061SEirik Nygaard GCC_SCANFLIKE(4,5); 7497d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */ 7507d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) napms (int); /* implemented */ 7517d1ab061SEirik Nygaardextern NCURSES_EXPORT(WINDOW *) newpad (int,int); /* implemented */ 752*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *); /* implemented */ 7537d1ab061SEirik Nygaardextern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int); /* implemented */ 7547d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) nl (void); /* implemented */ 7557d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) nocbreak (void); /* implemented */ 7567d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) nodelay (WINDOW *,bool); /* implemented */ 7577d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) noecho (void); /* implemented */ 7587d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) nonl (void); /* implemented */ 7597d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) noqiflush (void); /* implemented */ 7607d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) noraw (void); /* implemented */ 7617d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ 7627d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ 7637d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ 7643eec8774SJohn Marinoextern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ 7657d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ 7667d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ 7677d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ 7687d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */ 7697d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */ 7707d1ab061SEirik Nygaard GCC_PRINTFLIKE(1,2); 7717d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */ 7727d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) qiflush (void); /* implemented */ 7737d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) raw (void); /* implemented */ 7747d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) redrawwin (WINDOW *); /* generated */ 7757d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) refresh (void); /* generated */ 7767d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) resetty (void); /* implemented */ 7777d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) reset_prog_mode (void); /* implemented */ 7787d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) reset_shell_mode (void); /* implemented */ 7797d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int)); /* implemented */ 7807d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) savetty (void); /* implemented */ 781*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) scanw (const char *,...) /* implemented */ 7827d1ab061SEirik Nygaard GCC_SCANFLIKE(1,2); 7837d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) scr_dump (const char *); /* implemented */ 7847d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) scr_init (const char *); /* implemented */ 7857d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) scrl (int); /* generated */ 7867d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) scroll (WINDOW *); /* generated */ 7877d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) scrollok (WINDOW *,bool); /* implemented */ 7887d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) scr_restore (const char *); /* implemented */ 7897d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) scr_set (const char *); /* implemented */ 7907d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) setscrreg (int,int); /* generated */ 7917d1ab061SEirik Nygaardextern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *); /* implemented */ 7927d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_attroff (const chtype); /* implemented */ 7937d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *); /* generated:WIDEC */ 7947d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_attron (const chtype); /* implemented */ 7957d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ 7967d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ 7977d1ab061SEirik Nygaardextern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ 7983eec8774SJohn Marinoextern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */ 7997d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ 8003eec8774SJohn Marinoextern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */ 8017d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_init (int); /* implemented */ 8027d1ab061SEirik Nygaardextern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ 8037d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ 8047d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_refresh (void); /* implemented */ 8057d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_restore (void); /* implemented */ 8067d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_set (int,const char *,int); /* implemented */ 8077d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) slk_touch (void); /* implemented */ 8087d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) standout (void); /* generated */ 8097d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) standend (void); /* generated */ 8107d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) start_color (void); /* implemented */ 8117d1ab061SEirik Nygaardextern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */ 8127d1ab061SEirik Nygaardextern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */ 8137d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */ 8147d1ab061SEirik Nygaardextern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */ 8157d1ab061SEirik Nygaardextern NCURSES_EXPORT(char *) termname (void); /* implemented */ 8167d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) timeout (int); /* generated */ 8177d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */ 8187d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */ 8197d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) typeahead (int); /* implemented */ 8207d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) ungetch (int); /* implemented */ 8217d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ 8227d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) use_env (bool); /* implemented */ 8233eec8774SJohn Marinoextern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */ 8247d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ 825ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */ 8267d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ 827*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *,va_list) GCC_DEPRECATED(use vw_printw); /* implemented */ 828*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *,va_list); /* implemented */ 829*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *,va_list) GCC_DEPRECATED(use vw_scanw); /* implemented */ 830*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *,va_list); /* implemented */ 8317d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */ 8327d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */ 8337d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */ 8347d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */ 8357d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */ 8367d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ 8377d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ 8387d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ 8393eec8774SJohn Marinoextern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ 8407d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ 8417d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ 8423eec8774SJohn Marinoextern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */ 8437d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ 8447d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ 8457d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ 8463eec8774SJohn Marinoextern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */ 8477d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ 8487d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ 8497d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ 8503eec8774SJohn Marinoextern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */ 8517d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ 8527d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ 8537d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ 8547d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype); /* implemented */ 8557d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */ 8567d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */ 8577d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */ 8587d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */ 8597d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */ 8607d1ab061SEirik Nygaardextern NCURSES_EXPORT(chtype) winch (WINDOW *); /* implemented */ 8617d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int); /* implemented */ 8627d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *); /* generated */ 8637d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int); /* implemented */ 8647d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) winsch (WINDOW *, chtype); /* implemented */ 8657d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) winsdelln (WINDOW *,int); /* implemented */ 8667d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) winsertln (WINDOW *); /* generated */ 8677d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int); /* implemented */ 8687d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *); /* generated */ 8697d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */ 8707d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */ 8717d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */ 8727d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */ 8737d1ab061SEirik Nygaard GCC_PRINTFLIKE(2,3); 8747d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */ 8757d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */ 876*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...) /* implemented */ 8777d1ab061SEirik Nygaard GCC_SCANFLIKE(2,3); 8787d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wscrl (WINDOW *,int); /* implemented */ 8797d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int); /* implemented */ 8807d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wstandout (WINDOW *); /* generated */ 8817d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wstandend (WINDOW *); /* generated */ 8827d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) wsyncdown (WINDOW *); /* implemented */ 8837d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) wsyncup (WINDOW *); /* implemented */ 8847d1ab061SEirik Nygaardextern NCURSES_EXPORT(void) wtimeout (WINDOW *,int); /* implemented */ 8857d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int); /* implemented */ 8867d1ab061SEirik Nygaardextern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */ 8877d1ab061SEirik Nygaard 8887d1ab061SEirik Nygaard/* 889946ecb11SJan Lentfer * These are also declared in <term.h>: 890946ecb11SJan Lentfer */ 891*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) tigetflag (const char *); /* implemented */ 892*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) tigetnum (const char *); /* implemented */ 893*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(char *) tigetstr (const char *); /* implemented */ 894946ecb11SJan Lentferextern NCURSES_EXPORT(int) putp (const char *); /* implemented */ 895946ecb11SJan Lentfer 896946ecb11SJan Lentfer#if NCURSES_TPARM_VARARGS 897*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ 898946ecb11SJan Lentfer#else 899*2ff0cc30SDaniel Fojtextern 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 */ 900*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(char *) tparm_varargs (const char *, ...); /* special */ 901946ecb11SJan Lentfer#endif 902946ecb11SJan Lentfer 903ee39cac4SJohn Marinoextern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ 904ee39cac4SJohn Marino 905946ecb11SJan Lentfer/* 906946ecb11SJan Lentfer * These functions are not in X/Open, but we use them in macro definitions: 907946ecb11SJan Lentfer */ 908946ecb11SJan Lentferextern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */ 909946ecb11SJan Lentferextern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */ 910946ecb11SJan Lentferextern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */ 911946ecb11SJan Lentferextern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */ 912946ecb11SJan Lentferextern NCURSES_EXPORT(int) getbegy (const WINDOW *); /* generated */ 913946ecb11SJan Lentferextern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */ 914946ecb11SJan Lentferextern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */ 915946ecb11SJan Lentferextern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */ 916946ecb11SJan Lentferextern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */ 917946ecb11SJan Lentfer 918946ecb11SJan Lentfer/* 919946ecb11SJan Lentfer * vid_attr() was implemented originally based on a draft of X/Open curses. 9207d1ab061SEirik Nygaard */ 9213eec8774SJohn Marino#if !NCURSES_WIDECHAR 9227d1ab061SEirik Nygaard#define vid_attr(a,pair,opts) vidattr(a) 9237d1ab061SEirik Nygaard#endif 9247d1ab061SEirik Nygaard 925946ecb11SJan Lentfer/* 926946ecb11SJan Lentfer * These functions are extensions - not in X/Open Curses. 927946ecb11SJan Lentfer */ 928946ecb11SJan Lentfer#if 1 929946ecb11SJan Lentfer#undef NCURSES_EXT_FUNCS 930*2ff0cc30SDaniel Fojt#define NCURSES_EXT_FUNCS 20200212 931946ecb11SJan Lentfertypedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *); 932946ecb11SJan Lentfertypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *); 933946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_term_resized (int, int); 934946ecb11SJan Lentferextern NCURSES_EXPORT(char *) keybound (int, int); 935946ecb11SJan Lentferextern NCURSES_EXPORT(const char *) curses_version (void); 936*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) alloc_pair (int, int); 937946ecb11SJan Lentferextern NCURSES_EXPORT(int) assume_default_colors (int, int); 938946ecb11SJan Lentferextern NCURSES_EXPORT(int) define_key (const char *, int); 939*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *); 940*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *); 941*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) extended_slk_color(int); 942*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) find_pair (int, int); 943*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) free_pair (int); 944ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) get_escdelay (void); 945*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) init_extended_color(int, int, int, int); 946*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) init_extended_pair(int, int, int); 947946ecb11SJan Lentferextern NCURSES_EXPORT(int) key_defined (const char *); 948946ecb11SJan Lentferextern NCURSES_EXPORT(int) keyok (int, bool); 949*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(void) reset_color_pairs (void); 950946ecb11SJan Lentferextern NCURSES_EXPORT(int) resize_term (int, int); 951946ecb11SJan Lentferextern NCURSES_EXPORT(int) resizeterm (int, int); 952946ecb11SJan Lentferextern NCURSES_EXPORT(int) set_escdelay (int); 953946ecb11SJan Lentferextern NCURSES_EXPORT(int) set_tabsize (int); 954946ecb11SJan Lentferextern NCURSES_EXPORT(int) use_default_colors (void); 955946ecb11SJan Lentferextern NCURSES_EXPORT(int) use_extended_names (bool); 956946ecb11SJan Lentferextern NCURSES_EXPORT(int) use_legacy_coding (int); 957946ecb11SJan Lentferextern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *); 958946ecb11SJan Lentferextern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *); 959946ecb11SJan Lentferextern NCURSES_EXPORT(int) wresize (WINDOW *, int, int); 960946ecb11SJan Lentferextern NCURSES_EXPORT(void) nofilter(void); 961946ecb11SJan Lentfer 962946ecb11SJan Lentfer/* 963946ecb11SJan Lentfer * These extensions provide access to information stored in the WINDOW even 964946ecb11SJan Lentfer * when NCURSES_OPAQUE is set: 965946ecb11SJan Lentfer */ 966946ecb11SJan Lentferextern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* generated */ 967946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* generated */ 968946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* generated */ 969946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* generated */ 970946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* generated */ 971946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* generated */ 972946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* generated */ 973946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* generated */ 974946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* generated */ 975ee39cac4SJohn Marinoextern NCURSES_EXPORT(bool) is_pad (const WINDOW *); /* generated */ 976946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* generated */ 977ee39cac4SJohn Marinoextern NCURSES_EXPORT(bool) is_subwin (const WINDOW *); /* generated */ 978946ecb11SJan Lentferextern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* generated */ 9793eec8774SJohn Marinoextern NCURSES_EXPORT(int) wgetdelay (const WINDOW *); /* generated */ 980946ecb11SJan Lentferextern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */ 981946ecb11SJan Lentfer 982946ecb11SJan Lentfer#else 983946ecb11SJan Lentfer#define curses_version() NCURSES_VERSION 984946ecb11SJan Lentfer#endif 985946ecb11SJan Lentfer 986ee39cac4SJohn Marino/* 987ee39cac4SJohn Marino * Extra extension-functions, which pass a SCREEN pointer rather than using 988ee39cac4SJohn Marino * a global variable SP. 989ee39cac4SJohn Marino */ 9903eec8774SJohn Marino#if 1 991ee39cac4SJohn Marino#undef NCURSES_SP_FUNCS 992*2ff0cc30SDaniel Fojt#define NCURSES_SP_FUNCS 20200212 993ee39cac4SJohn Marino#define NCURSES_SP_NAME(name) name##_sp 994ee39cac4SJohn Marino 995ee39cac4SJohn Marino/* Define the sp-funcs helper function */ 996ee39cac4SJohn Marino#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) 997ee39cac4SJohn Marinotypedef int (*NCURSES_SP_OUTC)(SCREEN*, int); 998ee39cac4SJohn Marino 999ee39cac4SJohn Marinoextern NCURSES_EXPORT(SCREEN *) new_prescr (void); /* implemented:SP_FUNC */ 1000ee39cac4SJohn Marino 1001ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*); /* implemented:SP_FUNC */ 1002ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*); /* implemented:SP_FUNC */ 1003ee39cac4SJohn Marinoextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */ 1004ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */ 1005ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */ 10063eec8774SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ 1007ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ 1008ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ 1009ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */ 1010ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*); /* implemented:SP_FUNC */ 1011ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*); /* implemented:SP_FUNC */ 1012ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*); /* implemented:SP_FUNC */ 1013ee39cac4SJohn Marinoextern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);/* implemented:SP_FUNC */ 1014ee39cac4SJohn Marinoextern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*); /* implemented:SP_FUNC */ 1015ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*); /* implemented:SP_FUNC */ 1016ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*); /* implemented:SP_FUNC */ 1017ee39cac4SJohn Marinoextern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *); /* implemented:SP_FUNC */ 1018ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int); /* implemented:SP_FUNC */ 1019ee39cac4SJohn Marinoextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */ 1020ee39cac4SJohn Marinoextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */ 1021ee39cac4SJohn Marinoextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */ 10223eec8774SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ 10233eec8774SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ 1024ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */ 1025ee39cac4SJohn Marinoextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */ 1026ee39cac4SJohn Marinoextern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */ 1027ee39cac4SJohn Marinoextern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*); /* implemented:SP_FUNC */ 1028ee39cac4SJohn Marinoextern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*); /* implemented:SP_FUNC */ 1029ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ 1030ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int); /* implemented:SP_FUNC */ 1031ee39cac4SJohn Marinoextern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int); /* implemented:SP_FUNC */ 1032*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *); /* implemented:SP_FUNC */ 1033ee39cac4SJohn Marinoextern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ 1034ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*); /* implemented:SP_FUNC */ 1035ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*); /* implemented:SP_FUNC */ 1036ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*); /* implemented:SP_FUNC */ 1037ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */ 1038ee39cac4SJohn Marinoextern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */ 1039ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */ 10403eec8774SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ 1041ee39cac4SJohn Marinoextern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */ 1042ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */ 1043ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ 1044ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ 1045ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*); /* implemented:SP_FUNC */ 1046ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int)); /* implemented:SP_FUNC */ 1047ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*); /* implemented:SP_FUNC */ 1048ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *); /* implemented:SP_FUNC */ 1049ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *); /* implemented:SP_FUNC */ 1050ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *); /* implemented:SP_FUNC */ 1051ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype); /* implemented:SP_FUNC */ 1052ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */ 1053ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */ 1054ee39cac4SJohn Marinoextern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */ 10553eec8774SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */ 1056ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */ 10573eec8774SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */ 1058ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */ 1059ee39cac4SJohn Marinoextern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */ 1060ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */ 1061ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*); /* implemented:SP_FUNC */ 1062ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*); /* implemented:SP_FUNC */ 1063ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int); /* implemented:SP_FUNC */ 1064ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*); /* implemented:SP_FUNC */ 1065ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*); /* implemented:SP_FUNC */ 1066ee39cac4SJohn Marinoextern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*); /* implemented:SP_FUNC */ 1067ee39cac4SJohn Marinoextern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*); /* implemented:SP_FUNC */ 1068ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */ 1069ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */ 1070ee39cac4SJohn Marinoextern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */ 10713eec8774SJohn Marinoextern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */ 1072ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */ 1073ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ 1074ee39cac4SJohn Marino#if 1 1075ee39cac4SJohn Marinoextern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 1076*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 1077ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 1078ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */ 1079*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */ 1080*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */ 1081*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 1082ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */ 1083*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 1084*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 1085*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */ 1086*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */ 1087ee39cac4SJohn Marinoextern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 1088ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *); /* implemented:EXT_SP_FUNC */ 1089ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */ 1090ee39cac4SJohn Marinoextern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */ 1091*2ff0cc30SDaniel Fojtextern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */ 1092ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 1093ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ 1094ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 1095ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 1096ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*); /* implemented:EXT_SP_FUNC */ 1097ee39cac4SJohn Marinoextern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ 1098ee39cac4SJohn Marino#endif 1099ee39cac4SJohn Marino#else 1100ee39cac4SJohn Marino#undef NCURSES_SP_FUNCS 1101ee39cac4SJohn Marino#define NCURSES_SP_FUNCS 0 1102ee39cac4SJohn Marino#define NCURSES_SP_NAME(name) name 1103ee39cac4SJohn Marino#define NCURSES_SP_OUTC NCURSES_OUTC 1104ee39cac4SJohn Marino#endif 1105ee39cac4SJohn Marino 11067d1ab061SEirik Nygaard/* attributes */ 11077d1ab061SEirik Nygaard 11087d1ab061SEirik Nygaard#define NCURSES_ATTR_SHIFT 8 11093eec8774SJohn Marino#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT)) 11107d1ab061SEirik Nygaard 1111946ecb11SJan Lentfer#define A_NORMAL (1U - 1U) 1112946ecb11SJan Lentfer#define A_ATTRIBUTES NCURSES_BITS(~(1U - 1U),0) 1113946ecb11SJan Lentfer#define A_CHARTEXT (NCURSES_BITS(1U,0) - 1U) 1114946ecb11SJan Lentfer#define A_COLOR NCURSES_BITS(((1U) << 8) - 1U,0) 1115946ecb11SJan Lentfer#define A_STANDOUT NCURSES_BITS(1U,8) 1116946ecb11SJan Lentfer#define A_UNDERLINE NCURSES_BITS(1U,9) 1117946ecb11SJan Lentfer#define A_REVERSE NCURSES_BITS(1U,10) 1118946ecb11SJan Lentfer#define A_BLINK NCURSES_BITS(1U,11) 1119946ecb11SJan Lentfer#define A_DIM NCURSES_BITS(1U,12) 1120946ecb11SJan Lentfer#define A_BOLD NCURSES_BITS(1U,13) 1121946ecb11SJan Lentfer#define A_ALTCHARSET NCURSES_BITS(1U,14) 1122946ecb11SJan Lentfer#define A_INVIS NCURSES_BITS(1U,15) 1123946ecb11SJan Lentfer#define A_PROTECT NCURSES_BITS(1U,16) 1124946ecb11SJan Lentfer#define A_HORIZONTAL NCURSES_BITS(1U,17) 1125946ecb11SJan Lentfer#define A_LEFT NCURSES_BITS(1U,18) 1126946ecb11SJan Lentfer#define A_LOW NCURSES_BITS(1U,19) 1127946ecb11SJan Lentfer#define A_RIGHT NCURSES_BITS(1U,20) 1128946ecb11SJan Lentfer#define A_TOP NCURSES_BITS(1U,21) 1129946ecb11SJan Lentfer#define A_VERTICAL NCURSES_BITS(1U,22) 11307d1ab061SEirik Nygaard 11313eec8774SJohn Marino#if 1 11323eec8774SJohn Marino#define A_ITALIC NCURSES_BITS(1U,23) /* ncurses extension */ 11333eec8774SJohn Marino#endif 11343eec8774SJohn Marino 11357d1ab061SEirik Nygaard/* 1136946ecb11SJan Lentfer * Most of the pseudo functions are macros that either provide compatibility 1137946ecb11SJan Lentfer * with older versions of curses, or provide inline functionality to improve 1138946ecb11SJan Lentfer * performance. 11397d1ab061SEirik Nygaard */ 1140946ecb11SJan Lentfer 1141946ecb11SJan Lentfer/* 1142946ecb11SJan Lentfer * These pseudo functions are always implemented as macros: 1143946ecb11SJan Lentfer */ 1144946ecb11SJan Lentfer 1145946ecb11SJan Lentfer#define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) 1146946ecb11SJan Lentfer#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) 1147946ecb11SJan Lentfer#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) 1148946ecb11SJan Lentfer#define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) 1149946ecb11SJan Lentfer 1150946ecb11SJan Lentfer#define getsyx(y,x) do { if (newscr) { \ 1151946ecb11SJan Lentfer if (is_leaveok(newscr)) \ 1152946ecb11SJan Lentfer (y) = (x) = -1; \ 1153946ecb11SJan Lentfer else \ 1154946ecb11SJan Lentfer getyx(newscr,(y), (x)); \ 1155946ecb11SJan Lentfer } \ 1156946ecb11SJan Lentfer } while(0) 1157946ecb11SJan Lentfer 1158946ecb11SJan Lentfer#define setsyx(y,x) do { if (newscr) { \ 1159946ecb11SJan Lentfer if ((y) == -1 && (x) == -1) \ 1160946ecb11SJan Lentfer leaveok(newscr, TRUE); \ 1161946ecb11SJan Lentfer else { \ 1162946ecb11SJan Lentfer leaveok(newscr, FALSE); \ 1163946ecb11SJan Lentfer wmove(newscr, (y), (x)); \ 1164946ecb11SJan Lentfer } \ 1165946ecb11SJan Lentfer } \ 1166946ecb11SJan Lentfer } while(0) 1167946ecb11SJan Lentfer 1168946ecb11SJan Lentfer#ifndef NCURSES_NOMACROS 1169946ecb11SJan Lentfer 1170946ecb11SJan Lentfer/* 1171946ecb11SJan Lentfer * These miscellaneous pseudo functions are provided for compatibility: 1172946ecb11SJan Lentfer */ 1173946ecb11SJan Lentfer 11747d1ab061SEirik Nygaard#define wgetstr(w, s) wgetnstr(w, s, -1) 11753eec8774SJohn Marino#define getnstr(s, n) wgetnstr(stdscr, s, (n)) 11767d1ab061SEirik Nygaard 11777d1ab061SEirik Nygaard#define setterm(term) setupterm(term, 1, (int *)0) 11787d1ab061SEirik Nygaard 11797d1ab061SEirik Nygaard#define fixterm() reset_prog_mode() 11807d1ab061SEirik Nygaard#define resetterm() reset_shell_mode() 11817d1ab061SEirik Nygaard#define saveterm() def_prog_mode() 11827d1ab061SEirik Nygaard#define crmode() cbreak() 11837d1ab061SEirik Nygaard#define nocrmode() nocbreak() 11847d1ab061SEirik Nygaard#define gettmode() 11857d1ab061SEirik Nygaard 11867d1ab061SEirik Nygaard/* It seems older SYSV curses versions define these */ 1187946ecb11SJan Lentfer#if !NCURSES_OPAQUE 1188*2ff0cc30SDaniel Fojt#define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL) 1189*2ff0cc30SDaniel Fojt#define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR) 1190*2ff0cc30SDaniel Fojt#define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR) 1191*2ff0cc30SDaniel Fojt#define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR) 1192*2ff0cc30SDaniel Fojt#define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR) 1193*2ff0cc30SDaniel Fojt#define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR) 1194*2ff0cc30SDaniel Fojt#define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR) 1195*2ff0cc30SDaniel Fojt#define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR) 1196*2ff0cc30SDaniel Fojt#define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR) 1197946ecb11SJan Lentfer#endif /* NCURSES_OPAQUE */ 11987d1ab061SEirik Nygaard 11997d1ab061SEirik Nygaard#define wstandout(win) (wattrset(win,A_STANDOUT)) 12007d1ab061SEirik Nygaard#define wstandend(win) (wattrset(win,A_NORMAL)) 12017d1ab061SEirik Nygaard 1202946ecb11SJan Lentfer#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL) 1203946ecb11SJan Lentfer#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) 1204946ecb11SJan Lentfer 1205946ecb11SJan Lentfer#if !NCURSES_OPAQUE 1206*2ff0cc30SDaniel Fojt#if NCURSES_WATTR_MACROS 12073eec8774SJohn Marino#if NCURSES_WIDECHAR && SET_NEED_WCHAR_H 1208*2ff0cc30SDaniel Fojt#define wattrset(win,at) \ 1209*2ff0cc30SDaniel Fojt (NCURSES_OK_ADDR(win) \ 12103eec8774SJohn Marino ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \ 1211ee39cac4SJohn Marino (win)->_attrs = NCURSES_CAST(attr_t, at), \ 1212ee39cac4SJohn Marino OK) \ 1213ee39cac4SJohn Marino : ERR) 1214946ecb11SJan Lentfer#else 1215*2ff0cc30SDaniel Fojt#define wattrset(win,at) \ 1216*2ff0cc30SDaniel Fojt (NCURSES_OK_ADDR(win) \ 1217ee39cac4SJohn Marino ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \ 1218ee39cac4SJohn Marino OK) \ 1219ee39cac4SJohn Marino : ERR) 1220946ecb11SJan Lentfer#endif 1221*2ff0cc30SDaniel Fojt#endif /* NCURSES_WATTR_MACROS */ 1222946ecb11SJan Lentfer#endif /* NCURSES_OPAQUE */ 12237d1ab061SEirik Nygaard 12247d1ab061SEirik Nygaard#define scroll(win) wscrl(win,1) 12257d1ab061SEirik Nygaard 12267d1ab061SEirik Nygaard#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) 12277d1ab061SEirik Nygaard#define touchline(win, s, c) wtouchln((win), s, c, 1) 12287d1ab061SEirik Nygaard#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) 12297d1ab061SEirik Nygaard 12307d1ab061SEirik Nygaard#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) 12317d1ab061SEirik Nygaard#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) 12323eec8774SJohn Marino#define hline(ch, n) whline(stdscr, ch, (n)) 12333eec8774SJohn Marino#define vline(ch, n) wvline(stdscr, ch, (n)) 12347d1ab061SEirik Nygaard 12357d1ab061SEirik Nygaard#define winstr(w, s) winnstr(w, s, -1) 12367d1ab061SEirik Nygaard#define winchstr(w, s) winchnstr(w, s, -1) 12377d1ab061SEirik Nygaard#define winsstr(w, s) winsnstr(w, s, -1) 12387d1ab061SEirik Nygaard 1239946ecb11SJan Lentfer#if !NCURSES_OPAQUE 1240*2ff0cc30SDaniel Fojt#define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1)) 1241946ecb11SJan Lentfer#endif /* NCURSES_OPAQUE */ 1242946ecb11SJan Lentfer 12437d1ab061SEirik Nygaard#define waddstr(win,str) waddnstr(win,str,-1) 12447d1ab061SEirik Nygaard#define waddchstr(win,str) waddchnstr(win,str,-1) 12457d1ab061SEirik Nygaard 12467d1ab061SEirik Nygaard/* 1247946ecb11SJan Lentfer * These apply to the first 256 color pairs. 1248946ecb11SJan Lentfer */ 1249*2ff0cc30SDaniel Fojt#define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR) 12503eec8774SJohn Marino#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT))) 1251946ecb11SJan Lentfer 1252946ecb11SJan Lentfer/* 12537d1ab061SEirik Nygaard * pseudo functions for standard screen 12547d1ab061SEirik Nygaard */ 12557d1ab061SEirik Nygaard 12563eec8774SJohn Marino#define addch(ch) waddch(stdscr,(ch)) 12573eec8774SJohn Marino#define addchnstr(str,n) waddchnstr(stdscr,(str),(n)) 12583eec8774SJohn Marino#define addchstr(str) waddchstr(stdscr,(str)) 12593eec8774SJohn Marino#define addnstr(str,n) waddnstr(stdscr,(str),(n)) 12603eec8774SJohn Marino#define addstr(str) waddnstr(stdscr,(str),-1) 12613eec8774SJohn Marino#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) 12623eec8774SJohn Marino#define attr_off(a,o) wattr_off(stdscr,(a),(o)) 12633eec8774SJohn Marino#define attr_on(a,o) wattr_on(stdscr,(a),(o)) 12643eec8774SJohn Marino#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o)) 12653eec8774SJohn Marino#define attroff(at) wattroff(stdscr,(at)) 12663eec8774SJohn Marino#define attron(at) wattron(stdscr,(at)) 12673eec8774SJohn Marino#define attrset(at) wattrset(stdscr,(at)) 12683eec8774SJohn Marino#define bkgd(ch) wbkgd(stdscr,(ch)) 12693eec8774SJohn Marino#define bkgdset(ch) wbkgdset(stdscr,(ch)) 12703eec8774SJohn Marino#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o)) 12717d1ab061SEirik Nygaard#define clear() wclear(stdscr) 12727d1ab061SEirik Nygaard#define clrtobot() wclrtobot(stdscr) 12737d1ab061SEirik Nygaard#define clrtoeol() wclrtoeol(stdscr) 12743eec8774SJohn Marino#define color_set(c,o) wcolor_set(stdscr,(c),(o)) 12757d1ab061SEirik Nygaard#define delch() wdelch(stdscr) 12767d1ab061SEirik Nygaard#define deleteln() winsdelln(stdscr,-1) 12773eec8774SJohn Marino#define echochar(c) wechochar(stdscr,(c)) 12787d1ab061SEirik Nygaard#define erase() werase(stdscr) 12797d1ab061SEirik Nygaard#define getch() wgetch(stdscr) 12803eec8774SJohn Marino#define getstr(str) wgetstr(stdscr,(str)) 12817d1ab061SEirik Nygaard#define inch() winch(stdscr) 12823eec8774SJohn Marino#define inchnstr(s,n) winchnstr(stdscr,(s),(n)) 12833eec8774SJohn Marino#define inchstr(s) winchstr(stdscr,(s)) 12843eec8774SJohn Marino#define innstr(s,n) winnstr(stdscr,(s),(n)) 12853eec8774SJohn Marino#define insch(c) winsch(stdscr,(c)) 12863eec8774SJohn Marino#define insdelln(n) winsdelln(stdscr,(n)) 12877d1ab061SEirik Nygaard#define insertln() winsdelln(stdscr,1) 12883eec8774SJohn Marino#define insnstr(s,n) winsnstr(stdscr,(s),(n)) 12893eec8774SJohn Marino#define insstr(s) winsstr(stdscr,(s)) 12903eec8774SJohn Marino#define instr(s) winstr(stdscr,(s)) 12913eec8774SJohn Marino#define move(y,x) wmove(stdscr,(y),(x)) 12927d1ab061SEirik Nygaard#define refresh() wrefresh(stdscr) 12933eec8774SJohn Marino#define scrl(n) wscrl(stdscr,(n)) 12943eec8774SJohn Marino#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b)) 12957d1ab061SEirik Nygaard#define standend() wstandend(stdscr) 12967d1ab061SEirik Nygaard#define standout() wstandout(stdscr) 12973eec8774SJohn Marino#define timeout(delay) wtimeout(stdscr,(delay)) 12987d1ab061SEirik Nygaard#define wdeleteln(win) winsdelln(win,-1) 12997d1ab061SEirik Nygaard#define winsertln(win) winsdelln(win,1) 13007d1ab061SEirik Nygaard 13017d1ab061SEirik Nygaard/* 13027d1ab061SEirik Nygaard * mv functions 13037d1ab061SEirik Nygaard */ 13047d1ab061SEirik Nygaard 13053eec8774SJohn Marino#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch))) 13063eec8774SJohn Marino#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n))) 13073eec8774SJohn Marino#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1)) 13083eec8774SJohn Marino#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n))) 13093eec8774SJohn Marino#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1)) 13103eec8774SJohn Marino#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o))) 13113eec8774SJohn Marino#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win)) 13123eec8774SJohn Marino#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win)) 13133eec8774SJohn Marino#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n))) 13143eec8774SJohn Marino#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str))) 13153eec8774SJohn Marino#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n))) 13163eec8774SJohn Marino#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) 13173eec8774SJohn Marino#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n))) 13183eec8774SJohn Marino#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s))) 13193eec8774SJohn Marino#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n))) 13203eec8774SJohn Marino#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c))) 13213eec8774SJohn Marino#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n))) 13223eec8774SJohn Marino#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s))) 13233eec8774SJohn Marino#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s))) 13243eec8774SJohn Marino#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n))) 13257d1ab061SEirik Nygaard 13263eec8774SJohn Marino#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch)) 13273eec8774SJohn Marino#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n)) 13283eec8774SJohn Marino#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str)) 13293eec8774SJohn Marino#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n)) 13303eec8774SJohn Marino#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str)) 13313eec8774SJohn Marino#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o)) 13323eec8774SJohn Marino#define mvdelch(y,x) mvwdelch(stdscr,(y),(x)) 13333eec8774SJohn Marino#define mvgetch(y,x) mvwgetch(stdscr,(y),(x)) 13343eec8774SJohn Marino#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n)) 13353eec8774SJohn Marino#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str)) 13363eec8774SJohn Marino#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n)) 13373eec8774SJohn Marino#define mvinch(y,x) mvwinch(stdscr,(y),(x)) 13383eec8774SJohn Marino#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n)) 13393eec8774SJohn Marino#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s)) 13403eec8774SJohn Marino#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n)) 13413eec8774SJohn Marino#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c)) 13423eec8774SJohn Marino#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n)) 13433eec8774SJohn Marino#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s)) 13443eec8774SJohn Marino#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s)) 13453eec8774SJohn Marino#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n)) 13467d1ab061SEirik Nygaard 13477d1ab061SEirik Nygaard/* 1348946ecb11SJan Lentfer * Some wide-character functions can be implemented without the extensions. 13497d1ab061SEirik Nygaard */ 1350946ecb11SJan Lentfer#if !NCURSES_OPAQUE 1351*2ff0cc30SDaniel Fojt#define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0) 1352946ecb11SJan Lentfer#endif /* NCURSES_OPAQUE */ 13537d1ab061SEirik Nygaard 13547d1ab061SEirik Nygaard#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) 13557d1ab061SEirik Nygaard#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) 13567d1ab061SEirik Nygaard 1357946ecb11SJan Lentfer#if !NCURSES_OPAQUE 1358*2ff0cc30SDaniel Fojt#if NCURSES_WATTR_MACROS 13593eec8774SJohn Marino#if NCURSES_WIDECHAR && SET_NEED_WCHAR_H 1360*2ff0cc30SDaniel Fojt#define wattr_set(win,a,p,opts) \ 1361*2ff0cc30SDaniel Fojt (NCURSES_OK_ADDR(win) \ 1362*2ff0cc30SDaniel Fojt ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \ 1363*2ff0cc30SDaniel Fojt (win)->_color = (opts) ? *(int *)(opts) : (p)), \ 1364*2ff0cc30SDaniel Fojt OK) \ 1365*2ff0cc30SDaniel Fojt : ERR) 1366*2ff0cc30SDaniel Fojt#define wattr_get(win,a,p,opts) \ 1367*2ff0cc30SDaniel Fojt (NCURSES_OK_ADDR(win) \ 1368*2ff0cc30SDaniel Fojt ? ((void)(NCURSES_OK_ADDR(a) \ 1369*2ff0cc30SDaniel Fojt ? (*(a) = (win)->_attrs) \ 13703eec8774SJohn Marino : OK), \ 1371*2ff0cc30SDaniel Fojt (void)(NCURSES_OK_ADDR(p) \ 1372*2ff0cc30SDaniel Fojt ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \ 13733eec8774SJohn Marino : OK), \ 1374*2ff0cc30SDaniel Fojt (void)(NCURSES_OK_ADDR(opts) \ 1375*2ff0cc30SDaniel Fojt ? (*(int *)(opts) = (win)->_color) \ 1376*2ff0cc30SDaniel Fojt : OK), \ 1377*2ff0cc30SDaniel Fojt OK) \ 1378*2ff0cc30SDaniel Fojt : ERR) 1379*2ff0cc30SDaniel Fojt#else /* !(NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ 1380*2ff0cc30SDaniel Fojt#define wattr_set(win,a,p,opts) \ 1381*2ff0cc30SDaniel Fojt (NCURSES_OK_ADDR(win) \ 1382*2ff0cc30SDaniel Fojt ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \ 1383*2ff0cc30SDaniel Fojt (attr_t)COLOR_PAIR(p))), \ 1384*2ff0cc30SDaniel Fojt OK) \ 1385*2ff0cc30SDaniel Fojt : ERR) 1386*2ff0cc30SDaniel Fojt#define wattr_get(win,a,p,opts) \ 1387*2ff0cc30SDaniel Fojt (NCURSES_OK_ADDR(win) \ 1388*2ff0cc30SDaniel Fojt ? ((void)(NCURSES_OK_ADDR(a) \ 1389*2ff0cc30SDaniel Fojt ? (*(a) = (win)->_attrs) \ 1390*2ff0cc30SDaniel Fojt : OK), \ 1391*2ff0cc30SDaniel Fojt (void)(NCURSES_OK_ADDR(p) \ 1392*2ff0cc30SDaniel Fojt ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \ 1393*2ff0cc30SDaniel Fojt : OK), \ 1394*2ff0cc30SDaniel Fojt OK) \ 1395*2ff0cc30SDaniel Fojt : ERR) 1396*2ff0cc30SDaniel Fojt#endif /* (NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ 1397*2ff0cc30SDaniel Fojt#endif /* NCURSES_WATTR_MACROS */ 1398946ecb11SJan Lentfer#endif /* NCURSES_OPAQUE */ 13997d1ab061SEirik Nygaard 14007d1ab061SEirik Nygaard/* 1401946ecb11SJan Lentfer * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use 14027d1ab061SEirik Nygaard * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to 14037d1ab061SEirik Nygaard * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already 14047d1ab061SEirik Nygaard * use stdarg.h, so... 14057d1ab061SEirik Nygaard */ 1406*2ff0cc30SDaniel Fojt/* define vw_printw vwprintw */ 1407*2ff0cc30SDaniel Fojt/* define vw_scanw vwscanw */ 14087d1ab061SEirik Nygaard 14097d1ab061SEirik Nygaard/* 14107d1ab061SEirik Nygaard * Export fallback function for use in C++ binding. 14117d1ab061SEirik Nygaard */ 14127d1ab061SEirik Nygaard#if !1 14137d1ab061SEirik Nygaard#define vsscanf(a,b,c) _nc_vsscanf(a,b,c) 14147d1ab061SEirik NygaardNCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list); 14157d1ab061SEirik Nygaard#endif 14167d1ab061SEirik Nygaard 14177d1ab061SEirik Nygaard/* 1418946ecb11SJan Lentfer * These macros are extensions - not in X/Open Curses. 1419946ecb11SJan Lentfer */ 1420946ecb11SJan Lentfer#if 1 1421946ecb11SJan Lentfer#if !NCURSES_OPAQUE 1422*2ff0cc30SDaniel Fojt#define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE) 1423*2ff0cc30SDaniel Fojt#define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE) 1424*2ff0cc30SDaniel Fojt#define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE) 1425*2ff0cc30SDaniel Fojt#define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE) 1426*2ff0cc30SDaniel Fojt#define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE) 1427*2ff0cc30SDaniel Fojt#define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE) 1428*2ff0cc30SDaniel Fojt#define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE) 1429*2ff0cc30SDaniel Fojt#define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE) 1430*2ff0cc30SDaniel Fojt#define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) 1431*2ff0cc30SDaniel Fojt#define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE) 1432*2ff0cc30SDaniel Fojt#define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) 1433*2ff0cc30SDaniel Fojt#define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE) 1434*2ff0cc30SDaniel Fojt#define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0) 1435*2ff0cc30SDaniel Fojt#define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0) 1436*2ff0cc30SDaniel Fojt#define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) 1437946ecb11SJan Lentfer#endif 1438946ecb11SJan Lentfer#endif 1439946ecb11SJan Lentfer 1440*2ff0cc30SDaniel Fojt/* 1441*2ff0cc30SDaniel Fojt * X/Open says this returns a bool; SVr4 also checked for out-of-range line. 1442*2ff0cc30SDaniel Fojt * The macro provides compatibility: 1443*2ff0cc30SDaniel Fojt */ 1444*2ff0cc30SDaniel Fojt#define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l))) 1445*2ff0cc30SDaniel Fojt 1446946ecb11SJan Lentfer#endif /* NCURSES_NOMACROS */ 1447946ecb11SJan Lentfer 1448946ecb11SJan Lentfer/* 1449946ecb11SJan Lentfer * Public variables. 1450946ecb11SJan Lentfer * 1451946ecb11SJan Lentfer * Notes: 1452946ecb11SJan Lentfer * a. ESCDELAY was an undocumented feature under AIX curses. 1453946ecb11SJan Lentfer * It gives the ESC expire time in milliseconds. 1454946ecb11SJan Lentfer * b. ttytype is needed for backward compatibility 1455946ecb11SJan Lentfer */ 1456ee39cac4SJohn Marino#if NCURSES_REENTRANT 1457946ecb11SJan Lentfer 1458946ecb11SJan LentferNCURSES_WRAPPED_VAR(WINDOW *, curscr); 1459946ecb11SJan LentferNCURSES_WRAPPED_VAR(WINDOW *, newscr); 1460946ecb11SJan LentferNCURSES_WRAPPED_VAR(WINDOW *, stdscr); 1461946ecb11SJan LentferNCURSES_WRAPPED_VAR(char *, ttytype); 1462946ecb11SJan LentferNCURSES_WRAPPED_VAR(int, COLORS); 1463946ecb11SJan LentferNCURSES_WRAPPED_VAR(int, COLOR_PAIRS); 1464946ecb11SJan LentferNCURSES_WRAPPED_VAR(int, COLS); 1465946ecb11SJan LentferNCURSES_WRAPPED_VAR(int, ESCDELAY); 1466946ecb11SJan LentferNCURSES_WRAPPED_VAR(int, LINES); 1467946ecb11SJan LentferNCURSES_WRAPPED_VAR(int, TABSIZE); 1468946ecb11SJan Lentfer 1469946ecb11SJan Lentfer#define curscr NCURSES_PUBLIC_VAR(curscr()) 1470946ecb11SJan Lentfer#define newscr NCURSES_PUBLIC_VAR(newscr()) 1471946ecb11SJan Lentfer#define stdscr NCURSES_PUBLIC_VAR(stdscr()) 1472946ecb11SJan Lentfer#define ttytype NCURSES_PUBLIC_VAR(ttytype()) 1473946ecb11SJan Lentfer#define COLORS NCURSES_PUBLIC_VAR(COLORS()) 1474946ecb11SJan Lentfer#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS()) 1475946ecb11SJan Lentfer#define COLS NCURSES_PUBLIC_VAR(COLS()) 1476946ecb11SJan Lentfer#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY()) 1477946ecb11SJan Lentfer#define LINES NCURSES_PUBLIC_VAR(LINES()) 1478946ecb11SJan Lentfer#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE()) 1479946ecb11SJan Lentfer 1480946ecb11SJan Lentfer#else 1481946ecb11SJan Lentfer 1482946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(WINDOW *) curscr; 1483946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(WINDOW *) newscr; 1484946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(WINDOW *) stdscr; 1485946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(char) ttytype[]; 1486946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(int) COLORS; 1487946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(int) COLOR_PAIRS; 1488946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(int) COLS; 1489946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(int) ESCDELAY; 1490946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(int) LINES; 1491946ecb11SJan Lentferextern NCURSES_EXPORT_VAR(int) TABSIZE; 1492946ecb11SJan Lentfer 1493946ecb11SJan Lentfer#endif 1494946ecb11SJan Lentfer 1495946ecb11SJan Lentfer/* 14967d1ab061SEirik Nygaard * Pseudo-character tokens outside ASCII range. The curses wgetch() function 14977d1ab061SEirik Nygaard * will return any given one of these only if the corresponding k- capability 14987d1ab061SEirik Nygaard * is defined in your terminal's terminfo entry. 14997d1ab061SEirik Nygaard * 15007d1ab061SEirik Nygaard * Some keys (KEY_A1, etc) are arranged like this: 15017d1ab061SEirik Nygaard * a1 up a3 15027d1ab061SEirik Nygaard * left b2 right 15037d1ab061SEirik Nygaard * c1 down c3 15047d1ab061SEirik Nygaard * 15057d1ab061SEirik Nygaard * A few key codes do not depend upon the terminfo entry. 15067d1ab061SEirik Nygaard */ 15077d1ab061SEirik Nygaard#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */ 15087d1ab061SEirik Nygaard#define KEY_MIN 0401 /* Minimum curses key */ 15097d1ab061SEirik Nygaard#define KEY_BREAK 0401 /* Break key (unreliable) */ 15107d1ab061SEirik Nygaard#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */ 15117d1ab061SEirik Nygaard#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */ 1512