File indexing completed on 2026-04-19 08:39:52
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038 #ifndef __NCURSES_H
0039 #define __NCURSES_H
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070 #define CURSES 1
0071 #define CURSES_H 1
0072
0073
0074 #define NCURSES_VERSION_MAJOR 6
0075 #define NCURSES_VERSION_MINOR 5
0076 #define NCURSES_VERSION_PATCH 20250705
0077
0078
0079 #undef NCURSES_VERSION
0080 #define NCURSES_VERSION "6.5"
0081
0082
0083
0084
0085 #define NCURSES_MOUSE_VERSION 2
0086
0087
0088
0089
0090 #include <ncursesw/ncurses_dll.h>
0091
0092
0093
0094
0095 #if 1
0096 #include <stdint.h>
0097 #endif
0098
0099 #ifdef __cplusplus
0100 #else
0101 #if 0
0102 #include <stdnoreturn.h>
0103 #undef GCC_NORETURN
0104 #define GCC_NORETURN _Noreturn
0105 #endif
0106 #endif
0107
0108
0109
0110
0111 #ifndef NCURSES_ENABLE_STDBOOL_H
0112 #define NCURSES_ENABLE_STDBOOL_H 1
0113 #endif
0114
0115
0116
0117
0118
0119 #ifndef NCURSES_ATTR_T
0120 #define NCURSES_ATTR_T int
0121 #endif
0122
0123
0124
0125
0126
0127 #undef NCURSES_CONST
0128 #define NCURSES_CONST const
0129
0130 #undef NCURSES_INLINE
0131 #define NCURSES_INLINE inline
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142 #undef NCURSES_COLOR_T
0143 #define NCURSES_COLOR_T short
0144
0145 #undef NCURSES_PAIRS_T
0146 #define NCURSES_PAIRS_T short
0147
0148
0149
0150
0151 #ifndef NCURSES_INTERNALS
0152 #define NCURSES_OPAQUE 1
0153 #define NCURSES_OPAQUE_FORM 1
0154 #define NCURSES_OPAQUE_MENU 1
0155 #define NCURSES_OPAQUE_PANEL 1
0156 #endif
0157
0158
0159
0160
0161
0162
0163 #ifndef NCURSES_WATTR_MACROS
0164 #define NCURSES_WATTR_MACROS 0
0165 #endif
0166
0167
0168
0169
0170 #ifndef NCURSES_REENTRANT
0171 #define NCURSES_REENTRANT 0
0172 #endif
0173
0174
0175
0176
0177
0178 #if 1
0179 #ifndef NCURSES_SIGWINCH
0180 #define NCURSES_SIGWINCH 1
0181 #endif
0182 #else
0183 #undef NCURSES_SIGWINCH
0184 #define NCURSES_SIGWINCH 0
0185 #endif
0186
0187
0188
0189
0190 #undef NCURSES_BROKEN_LINKER
0191 #if 0
0192 #define NCURSES_BROKEN_LINKER 1
0193 #endif
0194
0195
0196
0197
0198 #undef NCURSES_INTEROP_FUNCS
0199 #define NCURSES_INTEROP_FUNCS 1
0200
0201
0202
0203
0204 #undef NCURSES_SIZE_T
0205 #define NCURSES_SIZE_T short
0206
0207
0208
0209
0210 #undef NCURSES_TPARM_VARARGS
0211 #define NCURSES_TPARM_VARARGS 1
0212
0213
0214
0215
0216
0217 #undef NCURSES_TPARM_ARG
0218 #define NCURSES_TPARM_ARG intptr_t
0219
0220
0221
0222
0223
0224 #undef NCURSES_WCWIDTH_GRAPHICS
0225 #define NCURSES_WCWIDTH_GRAPHICS 1
0226
0227
0228
0229
0230
0231
0232 #undef NCURSES_CH_T
0233 #define NCURSES_CH_T cchar_t
0234
0235 #if 1 && defined(_LP64)
0236 typedef unsigned chtype;
0237 typedef unsigned mmask_t;
0238 #else
0239 typedef uint32_t chtype;
0240 typedef uint32_t mmask_t;
0241 #endif
0242
0243
0244
0245
0246 #include <stdio.h>
0247
0248
0249
0250
0251
0252
0253
0254
0255 #ifndef NCURSES_WIDECHAR
0256 #if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500))
0257 #define NCURSES_WIDECHAR 1
0258 #else
0259 #define NCURSES_WIDECHAR 0
0260 #endif
0261 #endif
0262
0263 #include <stdarg.h> /* we need va_list */
0264 #if NCURSES_WIDECHAR
0265 #include <stddef.h> /* we want wchar_t */
0266 #endif
0267
0268
0269
0270
0271
0272
0273
0274
0275
0276
0277
0278
0279
0280 #undef TRUE
0281 #define TRUE 1
0282
0283 #undef FALSE
0284 #define FALSE 0
0285
0286 typedef unsigned char NCURSES_BOOL;
0287
0288 #if defined(__cplusplus)
0289
0290
0291 #define NCURSES_BOOL bool
0292
0293 #else
0294
0295 #if NCURSES_ENABLE_STDBOOL_H
0296 #include <stdbool.h>
0297
0298 #define NCURSES_BOOL bool
0299 #elif !defined(__cplusplus) && !0
0300
0301 #undef bool
0302 #define bool NCURSES_BOOL
0303 #endif
0304
0305 #endif
0306
0307 #ifdef __cplusplus
0308 extern "C" {
0309 #define NCURSES_CAST(type,value) static_cast<type>(value)
0310 #else
0311 #define NCURSES_CAST(type,value) (type)(value)
0312 #endif
0313
0314 #define NCURSES_OK_ADDR(p) (NULL != NCURSES_CAST(const void *, (p)))
0315
0316
0317
0318
0319
0320 #define WA_ATTRIBUTES A_ATTRIBUTES
0321 #define WA_NORMAL A_NORMAL
0322 #define WA_STANDOUT A_STANDOUT
0323 #define WA_UNDERLINE A_UNDERLINE
0324 #define WA_REVERSE A_REVERSE
0325 #define WA_BLINK A_BLINK
0326 #define WA_DIM A_DIM
0327 #define WA_BOLD A_BOLD
0328 #define WA_ALTCHARSET A_ALTCHARSET
0329 #define WA_INVIS A_INVIS
0330 #define WA_PROTECT A_PROTECT
0331 #define WA_HORIZONTAL A_HORIZONTAL
0332 #define WA_LEFT A_LEFT
0333 #define WA_LOW A_LOW
0334 #define WA_RIGHT A_RIGHT
0335 #define WA_TOP A_TOP
0336 #define WA_VERTICAL A_VERTICAL
0337
0338 #if 1
0339 #define WA_ITALIC A_ITALIC
0340 #endif
0341
0342
0343 #define COLOR_BLACK 0
0344 #define COLOR_RED 1
0345 #define COLOR_GREEN 2
0346 #define COLOR_YELLOW 3
0347 #define COLOR_BLUE 4
0348 #define COLOR_MAGENTA 5
0349 #define COLOR_CYAN 6
0350 #define COLOR_WHITE 7
0351
0352
0353
0354 #if 0 || NCURSES_REENTRANT
0355 NCURSES_WRAPPED_VAR(chtype*, acs_map);
0356 #define acs_map NCURSES_PUBLIC_VAR(acs_map())
0357 #else
0358 extern NCURSES_EXPORT_VAR(chtype) acs_map[];
0359 #endif
0360
0361 #define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))])
0362
0363
0364 #define ACS_ULCORNER NCURSES_ACS('l')
0365 #define ACS_LLCORNER NCURSES_ACS('m')
0366 #define ACS_URCORNER NCURSES_ACS('k')
0367 #define ACS_LRCORNER NCURSES_ACS('j')
0368 #define ACS_LTEE NCURSES_ACS('t')
0369 #define ACS_RTEE NCURSES_ACS('u')
0370 #define ACS_BTEE NCURSES_ACS('v')
0371 #define ACS_TTEE NCURSES_ACS('w')
0372 #define ACS_HLINE NCURSES_ACS('q')
0373 #define ACS_VLINE NCURSES_ACS('x')
0374 #define ACS_PLUS NCURSES_ACS('n')
0375 #define ACS_S1 NCURSES_ACS('o')
0376 #define ACS_S9 NCURSES_ACS('s')
0377 #define ACS_DIAMOND NCURSES_ACS('`')
0378 #define ACS_CKBOARD NCURSES_ACS('a')
0379 #define ACS_DEGREE NCURSES_ACS('f')
0380 #define ACS_PLMINUS NCURSES_ACS('g')
0381 #define ACS_BULLET NCURSES_ACS('~')
0382
0383 #define ACS_LARROW NCURSES_ACS(',')
0384 #define ACS_RARROW NCURSES_ACS('+')
0385 #define ACS_DARROW NCURSES_ACS('.')
0386 #define ACS_UARROW NCURSES_ACS('-')
0387 #define ACS_BOARD NCURSES_ACS('h')
0388 #define ACS_LANTERN NCURSES_ACS('i')
0389 #define ACS_BLOCK NCURSES_ACS('0')
0390
0391
0392
0393
0394
0395 #define ACS_S3 NCURSES_ACS('p')
0396 #define ACS_S7 NCURSES_ACS('r')
0397 #define ACS_LEQUAL NCURSES_ACS('y')
0398 #define ACS_GEQUAL NCURSES_ACS('z')
0399 #define ACS_PI NCURSES_ACS('{')
0400 #define ACS_NEQUAL NCURSES_ACS('|')
0401 #define ACS_STERLING NCURSES_ACS('}')
0402
0403
0404
0405
0406
0407
0408
0409 #define ACS_BSSB ACS_ULCORNER
0410 #define ACS_SSBB ACS_LLCORNER
0411 #define ACS_BBSS ACS_URCORNER
0412 #define ACS_SBBS ACS_LRCORNER
0413 #define ACS_SBSS ACS_RTEE
0414 #define ACS_SSSB ACS_LTEE
0415 #define ACS_SSBS ACS_BTEE
0416 #define ACS_BSSS ACS_TTEE
0417 #define ACS_BSBS ACS_HLINE
0418 #define ACS_SBSB ACS_VLINE
0419 #define ACS_SSSS ACS_PLUS
0420
0421 #undef ERR
0422 #define ERR (-1)
0423
0424 #undef OK
0425 #define OK (0)
0426
0427
0428 #define _SUBWIN 0x01
0429 #define _ENDLINE 0x02
0430 #define _FULLWIN 0x04
0431 #define _SCROLLWIN 0x08
0432 #define _ISPAD 0x10
0433 #define _HASMOVED 0x20
0434 #define _WRAPPED 0x40
0435
0436
0437
0438
0439
0440 #define _NOCHANGE -1
0441
0442
0443
0444
0445
0446 #define _NEWINDEX -1
0447
0448 #ifdef NCURSES_INTERNALS
0449 #undef SCREEN
0450 #define SCREEN struct screen
0451 SCREEN;
0452 #else
0453 typedef struct screen SCREEN;
0454 #endif
0455
0456 typedef struct _win_st WINDOW;
0457
0458 typedef chtype attr_t;
0459
0460 #if NCURSES_WIDECHAR
0461
0462 #if 0
0463 #ifdef mblen
0464 #undef mblen
0465 #endif
0466 #include <libutf8.h>
0467 #endif
0468
0469 #if 1
0470 #include <wchar.h> /* ...to get mbstate_t, etc. */
0471 #endif
0472
0473 #if 0
0474 typedef unsigned short wchar_t1;
0475 #endif
0476
0477 #if 0
0478 typedef unsigned int wint_t1;
0479 #endif
0480
0481
0482
0483
0484
0485
0486
0487 #define CCHARW_MAX 5
0488 typedef struct
0489 {
0490 attr_t attr;
0491 wchar_t chars[CCHARW_MAX];
0492 #if 1
0493 #undef NCURSES_EXT_COLORS
0494 #define NCURSES_EXT_COLORS 20250705
0495 int ext_color;
0496 #if 0
0497 int rgb_color;
0498 #endif
0499 #endif
0500 }
0501 cchar_t;
0502
0503 #endif
0504
0505 #if !NCURSES_OPAQUE
0506 struct ldat;
0507
0508 struct _win_st
0509 {
0510 NCURSES_SIZE_T _cury, _curx;
0511
0512
0513 NCURSES_SIZE_T _maxy, _maxx;
0514 NCURSES_SIZE_T _begy, _begx;
0515
0516 short _flags;
0517
0518
0519 attr_t _attrs;
0520 chtype _bkgd;
0521
0522
0523 bool _notimeout;
0524 bool _clear;
0525 bool _leaveok;
0526 bool _scroll;
0527 bool _idlok;
0528 bool _idcok;
0529 bool _immed;
0530 bool _sync;
0531 bool _use_keypad;
0532 int _delay;
0533
0534 struct ldat *_line;
0535
0536
0537 NCURSES_SIZE_T _regtop;
0538 NCURSES_SIZE_T _regbottom;
0539
0540
0541 int _parx;
0542 int _pary;
0543 WINDOW *_parent;
0544
0545
0546 struct pdat
0547 {
0548 NCURSES_SIZE_T _pad_y, _pad_x;
0549 NCURSES_SIZE_T _pad_top, _pad_left;
0550 NCURSES_SIZE_T _pad_bottom, _pad_right;
0551 } _pad;
0552
0553 NCURSES_SIZE_T _yoffset;
0554
0555 #if NCURSES_WIDECHAR
0556 cchar_t _bkgrnd;
0557 #if 1
0558 int _color;
0559 #endif
0560 #endif
0561 };
0562 #endif
0563
0564
0565
0566
0567
0568
0569
0570
0571 #if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__))
0572 #define __attribute__(p)
0573 #endif
0574
0575
0576
0577
0578
0579 #ifndef GCC_PRINTFLIKE
0580 #ifndef printf
0581 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
0582 #else
0583 #define GCC_PRINTFLIKE(fmt,var)
0584 #endif
0585 #endif
0586
0587 #ifndef GCC_SCANFLIKE
0588 #ifndef scanf
0589 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
0590 #else
0591 #define GCC_SCANFLIKE(fmt,var)
0592 #endif
0593 #endif
0594
0595 #ifndef GCC_NORETURN
0596 #define GCC_NORETURN
0597 #endif
0598
0599 #ifndef GCC_UNUSED
0600 #define GCC_UNUSED
0601 #endif
0602
0603 #undef GCC_DEPRECATED
0604 #if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS)
0605 #define GCC_DEPRECATED(msg) __attribute__((deprecated))
0606 #else
0607 #define GCC_DEPRECATED(msg)
0608 #endif
0609
0610
0611
0612
0613
0614 typedef int (*NCURSES_OUTC)(int);
0615
0616
0617
0618
0619
0620
0621
0622
0623 extern NCURSES_EXPORT(int) addch (const chtype);
0624 extern NCURSES_EXPORT(int) addchnstr (const chtype *, int);
0625 extern NCURSES_EXPORT(int) addchstr (const chtype *);
0626 extern NCURSES_EXPORT(int) addnstr (const char *, int);
0627 extern NCURSES_EXPORT(int) addstr (const char *);
0628 extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T);
0629 extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T);
0630 extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T);
0631 extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *);
0632 extern NCURSES_EXPORT(int) attr_off (attr_t, void *);
0633 extern NCURSES_EXPORT(int) attr_on (attr_t, void *);
0634 extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *);
0635 extern NCURSES_EXPORT(int) baudrate (void);
0636 extern NCURSES_EXPORT(int) beep (void);
0637 extern NCURSES_EXPORT(int) bkgd (chtype);
0638 extern NCURSES_EXPORT(void) bkgdset (chtype);
0639 extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);
0640 extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype);
0641 extern NCURSES_EXPORT(bool) can_change_color (void);
0642 extern NCURSES_EXPORT(int) cbreak (void);
0643 extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *);
0644 extern NCURSES_EXPORT(int) clear (void);
0645 extern NCURSES_EXPORT(int) clearok (WINDOW *,bool);
0646 extern NCURSES_EXPORT(int) clrtobot (void);
0647 extern NCURSES_EXPORT(int) clrtoeol (void);
0648 extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*);
0649 extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*);
0650 extern NCURSES_EXPORT(int) COLOR_PAIR (int);
0651 extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int);
0652 extern NCURSES_EXPORT(int) curs_set (int);
0653 extern NCURSES_EXPORT(int) def_prog_mode (void);
0654 extern NCURSES_EXPORT(int) def_shell_mode (void);
0655 extern NCURSES_EXPORT(int) delay_output (int);
0656 extern NCURSES_EXPORT(int) delch (void);
0657 extern NCURSES_EXPORT(void) delscreen (SCREEN *);
0658 extern NCURSES_EXPORT(int) delwin (WINDOW *);
0659 extern NCURSES_EXPORT(int) deleteln (void);
0660 extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int);
0661 extern NCURSES_EXPORT(int) doupdate (void);
0662 extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *);
0663 extern NCURSES_EXPORT(int) echo (void);
0664 extern NCURSES_EXPORT(int) echochar (const chtype);
0665 extern NCURSES_EXPORT(int) erase (void);
0666 extern NCURSES_EXPORT(int) endwin (void);
0667 extern NCURSES_EXPORT(char) erasechar (void);
0668 extern NCURSES_EXPORT(void) filter (void);
0669 extern NCURSES_EXPORT(int) flash (void);
0670 extern NCURSES_EXPORT(int) flushinp (void);
0671 extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *);
0672 extern NCURSES_EXPORT(int) getch (void);
0673 extern NCURSES_EXPORT(int) getnstr (char *, int);
0674 extern NCURSES_EXPORT(int) getstr (char *);
0675 extern NCURSES_EXPORT(WINDOW *) getwin (FILE *);
0676 extern NCURSES_EXPORT(int) halfdelay (int);
0677 extern NCURSES_EXPORT(bool) has_colors (void);
0678 extern NCURSES_EXPORT(bool) has_ic (void);
0679 extern NCURSES_EXPORT(bool) has_il (void);
0680 extern NCURSES_EXPORT(int) hline (chtype, int);
0681 extern NCURSES_EXPORT(void) idcok (WINDOW *, bool);
0682 extern NCURSES_EXPORT(int) idlok (WINDOW *, bool);
0683 extern NCURSES_EXPORT(void) immedok (WINDOW *, bool);
0684 extern NCURSES_EXPORT(chtype) inch (void);
0685 extern NCURSES_EXPORT(int) inchnstr (chtype *, int);
0686 extern NCURSES_EXPORT(int) inchstr (chtype *);
0687 extern NCURSES_EXPORT(WINDOW *) initscr (void);
0688 extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T);
0689 extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T);
0690 extern NCURSES_EXPORT(int) innstr (char *, int);
0691 extern NCURSES_EXPORT(int) insch (chtype);
0692 extern NCURSES_EXPORT(int) insdelln (int);
0693 extern NCURSES_EXPORT(int) insertln (void);
0694 extern NCURSES_EXPORT(int) insnstr (const char *, int);
0695 extern NCURSES_EXPORT(int) insstr (const char *);
0696 extern NCURSES_EXPORT(int) instr (char *);
0697 extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool);
0698 extern NCURSES_EXPORT(bool) isendwin (void);
0699 extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int);
0700 extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *);
0701 extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int);
0702 extern NCURSES_EXPORT(int) keypad (WINDOW *,bool);
0703 extern NCURSES_EXPORT(char) killchar (void);
0704 extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool);
0705 extern NCURSES_EXPORT(char *) longname (void);
0706 extern NCURSES_EXPORT(int) meta (WINDOW *,bool);
0707 extern NCURSES_EXPORT(int) move (int, int);
0708 extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype);
0709 extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int);
0710 extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *);
0711 extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int);
0712 extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *);
0713 extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *);
0714 extern NCURSES_EXPORT(int) mvcur (int,int,int,int);
0715 extern NCURSES_EXPORT(int) mvdelch (int, int);
0716 extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int);
0717 extern NCURSES_EXPORT(int) mvgetch (int, int);
0718 extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int);
0719 extern NCURSES_EXPORT(int) mvgetstr (int, int, char *);
0720 extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int);
0721 extern NCURSES_EXPORT(chtype) mvinch (int, int);
0722 extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int);
0723 extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *);
0724 extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int);
0725 extern NCURSES_EXPORT(int) mvinsch (int, int, chtype);
0726 extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int);
0727 extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *);
0728 extern NCURSES_EXPORT(int) mvinstr (int, int, char *);
0729 extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...)
0730 GCC_PRINTFLIKE(3,4);
0731 extern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...)
0732 GCC_SCANFLIKE(3,4);
0733 extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int);
0734 extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype);
0735 extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);
0736 extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *);
0737 extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int);
0738 extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *);
0739 extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);
0740 extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int);
0741 extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int);
0742 extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int);
0743 extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *);
0744 extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int);
0745 extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int);
0746 extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int);
0747 extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int);
0748 extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *);
0749 extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int);
0750 extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype);
0751 extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int);
0752 extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *);
0753 extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *);
0754 extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...)
0755 GCC_PRINTFLIKE(4,5);
0756 extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...)
0757 GCC_SCANFLIKE(4,5);
0758 extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int);
0759 extern NCURSES_EXPORT(int) napms (int);
0760 extern NCURSES_EXPORT(WINDOW *) newpad (int,int);
0761 extern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *);
0762 extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int);
0763 extern NCURSES_EXPORT(int) nl (void);
0764 extern NCURSES_EXPORT(int) nocbreak (void);
0765 extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool);
0766 extern NCURSES_EXPORT(int) noecho (void);
0767 extern NCURSES_EXPORT(int) nonl (void);
0768 extern NCURSES_EXPORT(void) noqiflush (void);
0769 extern NCURSES_EXPORT(int) noraw (void);
0770 extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool);
0771 extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *);
0772 extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *);
0773 extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*);
0774 extern NCURSES_EXPORT(int) PAIR_NUMBER (int);
0775 extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype);
0776 extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);
0777 extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int);
0778 extern NCURSES_EXPORT(int) printw (const char *,...)
0779 GCC_PRINTFLIKE(1,2);
0780 extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *);
0781 extern NCURSES_EXPORT(void) qiflush (void);
0782 extern NCURSES_EXPORT(int) raw (void);
0783 extern NCURSES_EXPORT(int) redrawwin (WINDOW *);
0784 extern NCURSES_EXPORT(int) refresh (void);
0785 extern NCURSES_EXPORT(int) resetty (void);
0786 extern NCURSES_EXPORT(int) reset_prog_mode (void);
0787 extern NCURSES_EXPORT(int) reset_shell_mode (void);
0788 extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int));
0789 extern NCURSES_EXPORT(int) savetty (void);
0790 extern NCURSES_EXPORT(int) scanw (const char *,...)
0791 GCC_SCANFLIKE(1,2);
0792 extern NCURSES_EXPORT(int) scr_dump (const char *);
0793 extern NCURSES_EXPORT(int) scr_init (const char *);
0794 extern NCURSES_EXPORT(int) scrl (int);
0795 extern NCURSES_EXPORT(int) scroll (WINDOW *);
0796 extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool);
0797 extern NCURSES_EXPORT(int) scr_restore (const char *);
0798 extern NCURSES_EXPORT(int) scr_set (const char *);
0799 extern NCURSES_EXPORT(int) setscrreg (int,int);
0800 extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *);
0801 extern NCURSES_EXPORT(int) slk_attroff (const chtype);
0802 extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *);
0803 extern NCURSES_EXPORT(int) slk_attron (const chtype);
0804 extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*);
0805 extern NCURSES_EXPORT(int) slk_attrset (const chtype);
0806 extern NCURSES_EXPORT(attr_t) slk_attr (void);
0807 extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*);
0808 extern NCURSES_EXPORT(int) slk_clear (void);
0809 extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T);
0810 extern NCURSES_EXPORT(int) slk_init (int);
0811 extern NCURSES_EXPORT(char *) slk_label (int);
0812 extern NCURSES_EXPORT(int) slk_noutrefresh (void);
0813 extern NCURSES_EXPORT(int) slk_refresh (void);
0814 extern NCURSES_EXPORT(int) slk_restore (void);
0815 extern NCURSES_EXPORT(int) slk_set (int,const char *,int);
0816 extern NCURSES_EXPORT(int) slk_touch (void);
0817 extern NCURSES_EXPORT(int) standout (void);
0818 extern NCURSES_EXPORT(int) standend (void);
0819 extern NCURSES_EXPORT(int) start_color (void);
0820 extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int);
0821 extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int);
0822 extern NCURSES_EXPORT(int) syncok (WINDOW *, bool);
0823 extern NCURSES_EXPORT(chtype) termattrs (void);
0824 extern NCURSES_EXPORT(char *) termname (void);
0825 extern NCURSES_EXPORT(void) timeout (int);
0826 extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int);
0827 extern NCURSES_EXPORT(int) touchwin (WINDOW *);
0828 extern NCURSES_EXPORT(int) typeahead (int);
0829 extern NCURSES_EXPORT(int) ungetch (int);
0830 extern NCURSES_EXPORT(int) untouchwin (WINDOW *);
0831 extern NCURSES_EXPORT(void) use_env (bool);
0832 extern NCURSES_EXPORT(void) use_tioctl (bool);
0833 extern NCURSES_EXPORT(int) vidattr (chtype);
0834 extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC);
0835 extern NCURSES_EXPORT(int) vline (chtype, int);
0836 extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw)
0837 GCC_PRINTFLIKE(2,0);
0838 extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list)
0839 GCC_PRINTFLIKE(2,0);
0840 extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw)
0841 GCC_SCANFLIKE(2,0);
0842 extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list)
0843 GCC_SCANFLIKE(2,0);
0844 extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype);
0845 extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int);
0846 extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *);
0847 extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int);
0848 extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *);
0849 extern NCURSES_EXPORT(int) wattron (WINDOW *, int);
0850 extern NCURSES_EXPORT(int) wattroff (WINDOW *, int);
0851 extern NCURSES_EXPORT(int) wattrset (WINDOW *, int);
0852 extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *);
0853 extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *);
0854 extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *);
0855 extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *);
0856 extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype);
0857 extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype);
0858 extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);
0859 extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);
0860 extern NCURSES_EXPORT(int) wclear (WINDOW *);
0861 extern NCURSES_EXPORT(int) wclrtobot (WINDOW *);
0862 extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *);
0863 extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*);
0864 extern NCURSES_EXPORT(void) wcursyncup (WINDOW *);
0865 extern NCURSES_EXPORT(int) wdelch (WINDOW *);
0866 extern NCURSES_EXPORT(int) wdeleteln (WINDOW *);
0867 extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype);
0868 extern NCURSES_EXPORT(int) werase (WINDOW *);
0869 extern NCURSES_EXPORT(int) wgetch (WINDOW *);
0870 extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);
0871 extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *);
0872 extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int);
0873 extern NCURSES_EXPORT(chtype) winch (WINDOW *);
0874 extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int);
0875 extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *);
0876 extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);
0877 extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype);
0878 extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int);
0879 extern NCURSES_EXPORT(int) winsertln (WINDOW *);
0880 extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int);
0881 extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *);
0882 extern NCURSES_EXPORT(int) winstr (WINDOW *, char *);
0883 extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int);
0884 extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *);
0885 extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...)
0886 GCC_PRINTFLIKE(2,3);
0887 extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int);
0888 extern NCURSES_EXPORT(int) wrefresh (WINDOW *);
0889 extern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...)
0890 GCC_SCANFLIKE(2,3);
0891 extern NCURSES_EXPORT(int) wscrl (WINDOW *,int);
0892 extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int);
0893 extern NCURSES_EXPORT(int) wstandout (WINDOW *);
0894 extern NCURSES_EXPORT(int) wstandend (WINDOW *);
0895 extern NCURSES_EXPORT(void) wsyncdown (WINDOW *);
0896 extern NCURSES_EXPORT(void) wsyncup (WINDOW *);
0897 extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int);
0898 extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int);
0899 extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int);
0900
0901
0902
0903
0904 extern NCURSES_EXPORT(int) tigetflag (const char *);
0905 extern NCURSES_EXPORT(int) tigetnum (const char *);
0906 extern NCURSES_EXPORT(char *) tigetstr (const char *);
0907 extern NCURSES_EXPORT(int) putp (const char *);
0908
0909 #if NCURSES_TPARM_VARARGS
0910 extern NCURSES_EXPORT(char *) tparm (const char *, ...);
0911 #else
0912 extern 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);
0913 #endif
0914
0915 extern NCURSES_EXPORT(char *) tiparm (const char *, ...);
0916 extern NCURSES_EXPORT(char *) tiparm_s (int, int, const char *, ...);
0917 extern NCURSES_EXPORT(int) tiscan_s (int *, int *, const char *);
0918
0919
0920
0921
0922 extern NCURSES_EXPORT(int) getattrs (const WINDOW *);
0923 extern NCURSES_EXPORT(int) getcurx (const WINDOW *);
0924 extern NCURSES_EXPORT(int) getcury (const WINDOW *);
0925 extern NCURSES_EXPORT(int) getbegx (const WINDOW *);
0926 extern NCURSES_EXPORT(int) getbegy (const WINDOW *);
0927 extern NCURSES_EXPORT(int) getmaxx (const WINDOW *);
0928 extern NCURSES_EXPORT(int) getmaxy (const WINDOW *);
0929 extern NCURSES_EXPORT(int) getparx (const WINDOW *);
0930 extern NCURSES_EXPORT(int) getpary (const WINDOW *);
0931
0932
0933
0934
0935 #if !NCURSES_WIDECHAR
0936 #define vid_attr(a,pair,opts) vidattr(a)
0937 #endif
0938
0939
0940
0941
0942 #if 1
0943 #undef NCURSES_EXT_FUNCS
0944 #define NCURSES_EXT_FUNCS 20250705
0945 typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
0946 typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
0947 extern NCURSES_EXPORT(int) alloc_pair (int, int);
0948 extern NCURSES_EXPORT(int) assume_default_colors (int, int);
0949 extern NCURSES_EXPORT(const char *) curses_version (void);
0950 extern NCURSES_EXPORT(int) define_key (const char *, int);
0951 extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *);
0952 extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *);
0953 extern NCURSES_EXPORT(int) extended_slk_color(int);
0954 extern NCURSES_EXPORT(int) find_pair (int, int);
0955 extern NCURSES_EXPORT(int) free_pair (int);
0956 extern NCURSES_EXPORT(int) get_escdelay (void);
0957 extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int);
0958 extern NCURSES_EXPORT(int) init_extended_pair(int, int, int);
0959 extern NCURSES_EXPORT(int) is_cbreak(void);
0960 extern NCURSES_EXPORT(int) is_echo(void);
0961 extern NCURSES_EXPORT(int) is_nl(void);
0962 extern NCURSES_EXPORT(int) is_raw(void);
0963 extern NCURSES_EXPORT(bool) is_term_resized (int, int);
0964 extern NCURSES_EXPORT(int) key_defined (const char *);
0965 extern NCURSES_EXPORT(char *) keybound (int, int);
0966 extern NCURSES_EXPORT(int) keyok (int, bool);
0967 extern NCURSES_EXPORT(void) nofilter(void);
0968 extern NCURSES_EXPORT(void) reset_color_pairs (void);
0969 extern NCURSES_EXPORT(int) resize_term (int, int);
0970 extern NCURSES_EXPORT(int) resizeterm (int, int);
0971 extern NCURSES_EXPORT(int) set_escdelay (int);
0972 extern NCURSES_EXPORT(int) set_tabsize (int);
0973 extern NCURSES_EXPORT(int) use_default_colors (void);
0974 extern NCURSES_EXPORT(int) use_legacy_coding (int);
0975 extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *);
0976 extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *);
0977 extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
0978
0979 #if 1
0980 #undef NCURSES_XNAMES
0981 #define NCURSES_XNAMES 1
0982 extern NCURSES_EXPORT(int) use_extended_names (bool);
0983 #endif
0984
0985
0986
0987
0988
0989 extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *);
0990 extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *);
0991 extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *);
0992 extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *);
0993 extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *);
0994 extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *);
0995 extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *);
0996 extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *);
0997 extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *);
0998 extern NCURSES_EXPORT(bool) is_pad (const WINDOW *);
0999 extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *);
1000 extern NCURSES_EXPORT(bool) is_subwin (const WINDOW *);
1001 extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *);
1002 extern NCURSES_EXPORT(int) wgetdelay (const WINDOW *);
1003 extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *);
1004
1005 #else
1006 #define curses_version() NCURSES_VERSION
1007 #endif
1008
1009
1010
1011
1012
1013 #if 1
1014 #undef NCURSES_SP_FUNCS
1015 #define NCURSES_SP_FUNCS 20250705
1016 #define NCURSES_SP_NAME(name) name##_sp
1017
1018
1019 #define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC)
1020 typedef int (*NCURSES_SP_OUTC)(SCREEN*, int);
1021
1022 extern NCURSES_EXPORT(SCREEN *) new_prescr (void);
1023
1024 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*);
1025 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*);
1026 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*);
1027 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*);
1028 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int);
1029 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*);
1030 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*);
1031 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*);
1032 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int);
1033 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*);
1034 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*);
1035 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*);
1036 extern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);
1037 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*);
1038 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*);
1039 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*);
1040 extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *);
1041 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int);
1042 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*);
1043 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*);
1044 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*);
1045 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T);
1046 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T);
1047 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool);
1048 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*);
1049 extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int);
1050 extern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*);
1051 extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*);
1052 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int);
1053 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int);
1054 extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int);
1055 extern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *);
1056 extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int);
1057 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*);
1058 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*);
1059 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*);
1060 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*);
1061 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*);
1062 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*);
1063 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*);
1064 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*);
1065 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*);
1066 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*);
1067 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*);
1068 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*);
1069 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int));
1070 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*);
1071 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *);
1072 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *);
1073 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *);
1074 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype);
1075 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype);
1076 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype);
1077 extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*);
1078 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*);
1079 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*);
1080 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T);
1081 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int);
1082 extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int);
1083 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*);
1084 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*);
1085 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*);
1086 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int);
1087 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*);
1088 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*);
1089 extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*);
1090 extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*);
1091 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int);
1092 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int);
1093 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool);
1094 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool);
1095 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype);
1096 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC);
1097 #if 1
1098 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int);
1099 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int);
1100 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int);
1101 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *);
1102 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *);
1103 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int);
1104 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int);
1105 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int);
1106 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*);
1107 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int);
1108 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int);
1109 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_cbreak) (SCREEN*);
1110 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_echo) (SCREEN*);
1111 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_nl) (SCREEN*);
1112 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_raw) (SCREEN*);
1113 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int);
1114 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *);
1115 extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int);
1116 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool);
1117 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*);
1118 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*);
1119 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int);
1120 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int);
1121 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int);
1122 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int);
1123 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*);
1124 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int);
1125 #endif
1126 #else
1127 #undef NCURSES_SP_FUNCS
1128 #define NCURSES_SP_FUNCS 0
1129 #define NCURSES_SP_NAME(name) name
1130 #define NCURSES_SP_OUTC NCURSES_OUTC
1131 #endif
1132
1133
1134
1135 #define NCURSES_ATTR_SHIFT 8
1136 #define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT))
1137
1138 #define A_NORMAL (1U - 1U)
1139 #define A_ATTRIBUTES NCURSES_BITS(~(1U - 1U),0)
1140 #define A_CHARTEXT (NCURSES_BITS(1U,0) - 1U)
1141 #define A_COLOR NCURSES_BITS(((1U) << 8) - 1U,0)
1142 #define A_STANDOUT NCURSES_BITS(1U,8)
1143 #define A_UNDERLINE NCURSES_BITS(1U,9)
1144 #define A_REVERSE NCURSES_BITS(1U,10)
1145 #define A_BLINK NCURSES_BITS(1U,11)
1146 #define A_DIM NCURSES_BITS(1U,12)
1147 #define A_BOLD NCURSES_BITS(1U,13)
1148 #define A_ALTCHARSET NCURSES_BITS(1U,14)
1149
1150
1151 #define A_INVIS NCURSES_BITS(1U,15)
1152 #define A_PROTECT NCURSES_BITS(1U,16)
1153
1154
1155 #define A_HORIZONTAL NCURSES_BITS(1U,17)
1156 #define A_LEFT NCURSES_BITS(1U,18)
1157 #define A_LOW NCURSES_BITS(1U,19)
1158 #define A_RIGHT NCURSES_BITS(1U,20)
1159 #define A_TOP NCURSES_BITS(1U,21)
1160 #define A_VERTICAL NCURSES_BITS(1U,22)
1161
1162 #if 1
1163 #define A_ITALIC NCURSES_BITS(1U,23)
1164 #if 0
1165 #define A_FOREGROUND NCURSES_BITS(1U,17)
1166 #define A_BACKGROUND NCURSES_BITS(1U,18)
1167 #define A_DIRECT (A_FOREGROUND|A_BACKGROUND)
1168 #endif
1169 #endif
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181 #define getyx(win,y,x) (y = getcury(win), x = getcurx(win))
1182 #define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win))
1183 #define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win))
1184 #define getparyx(win,y,x) (y = getpary(win), x = getparx(win))
1185
1186 #define getsyx(y,x) do { if (newscr) { \
1187 if (is_leaveok(newscr)) \
1188 (y) = (x) = -1; \
1189 else \
1190 getyx(newscr,(y), (x)); \
1191 } \
1192 } while(0)
1193
1194 #define setsyx(y,x) do { if (newscr) { \
1195 if ((y) == -1 && (x) == -1) \
1196 leaveok(newscr, TRUE); \
1197 else { \
1198 leaveok(newscr, FALSE); \
1199 wmove(newscr, (y), (x)); \
1200 } \
1201 } \
1202 } while(0)
1203
1204 #ifndef NCURSES_NOMACROS
1205
1206
1207
1208
1209
1210 #define wgetstr(w, s) wgetnstr(w, s, -1)
1211 #define getnstr(s, n) wgetnstr(stdscr, s, (n))
1212
1213 #define setterm(term) setupterm(term, 1, (int *)0)
1214
1215 #define fixterm() reset_prog_mode()
1216 #define resetterm() reset_shell_mode()
1217 #define saveterm() def_prog_mode()
1218 #define crmode() cbreak()
1219 #define nocrmode() nocbreak()
1220 #define gettmode()
1221
1222
1223 #if !NCURSES_OPAQUE
1224 #define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL)
1225 #define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR)
1226 #define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR)
1227 #define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR)
1228 #define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR)
1229 #define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR)
1230 #define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR)
1231 #define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR)
1232 #define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR)
1233 #endif
1234
1235 #define wstandout(win) (wattrset(win,A_STANDOUT))
1236 #define wstandend(win) (wattrset(win,A_NORMAL))
1237
1238 #define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL)
1239 #define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
1240
1241 #if !NCURSES_OPAQUE
1242 #if NCURSES_WATTR_MACROS
1243 #if NCURSES_WIDECHAR && 1
1244 #define wattrset(win,at) \
1245 (NCURSES_OK_ADDR(win) \
1246 ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \
1247 (win)->_attrs = NCURSES_CAST(attr_t, at), \
1248 OK) \
1249 : ERR)
1250 #else
1251 #define wattrset(win,at) \
1252 (NCURSES_OK_ADDR(win) \
1253 ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \
1254 OK) \
1255 : ERR)
1256 #endif
1257 #endif
1258 #endif
1259
1260 #define scroll(win) wscrl(win,1)
1261
1262 #define touchwin(win) wtouchln((win), 0, getmaxy(win), 1)
1263 #define touchline(win, s, c) wtouchln((win), s, c, 1)
1264 #define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0)
1265
1266 #define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0)
1267 #define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br)
1268 #define hline(ch, n) whline(stdscr, ch, (n))
1269 #define vline(ch, n) wvline(stdscr, ch, (n))
1270
1271 #define winstr(w, s) winnstr(w, s, -1)
1272 #define winchstr(w, s) winchnstr(w, s, -1)
1273 #define winsstr(w, s) winsnstr(w, s, -1)
1274
1275 #if !NCURSES_OPAQUE
1276 #define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1))
1277 #endif
1278
1279 #define waddstr(win,str) waddnstr(win,str,-1)
1280 #define waddchstr(win,str) waddchnstr(win,str,-1)
1281
1282
1283
1284
1285 #define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR)
1286 #define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
1287
1288
1289
1290
1291
1292 #define addch(ch) waddch(stdscr,(ch))
1293 #define addchnstr(str,n) waddchnstr(stdscr,(str),(n))
1294 #define addchstr(str) waddchstr(stdscr,(str))
1295 #define addnstr(str,n) waddnstr(stdscr,(str),(n))
1296 #define addstr(str) waddnstr(stdscr,(str),-1)
1297 #define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o))
1298 #define attr_off(a,o) wattr_off(stdscr,(a),(o))
1299 #define attr_on(a,o) wattr_on(stdscr,(a),(o))
1300 #define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o))
1301 #define attroff(at) wattroff(stdscr,(at))
1302 #define attron(at) wattron(stdscr,(at))
1303 #define attrset(at) wattrset(stdscr,(at))
1304 #define bkgd(ch) wbkgd(stdscr,(ch))
1305 #define bkgdset(ch) wbkgdset(stdscr,(ch))
1306 #define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o))
1307 #define clear() wclear(stdscr)
1308 #define clrtobot() wclrtobot(stdscr)
1309 #define clrtoeol() wclrtoeol(stdscr)
1310 #define color_set(c,o) wcolor_set(stdscr,(c),(o))
1311 #define delch() wdelch(stdscr)
1312 #define deleteln() winsdelln(stdscr,-1)
1313 #define echochar(c) wechochar(stdscr,(c))
1314 #define erase() werase(stdscr)
1315 #define getch() wgetch(stdscr)
1316 #define getstr(str) wgetstr(stdscr,(str))
1317 #define inch() winch(stdscr)
1318 #define inchnstr(s,n) winchnstr(stdscr,(s),(n))
1319 #define inchstr(s) winchstr(stdscr,(s))
1320 #define innstr(s,n) winnstr(stdscr,(s),(n))
1321 #define insch(c) winsch(stdscr,(c))
1322 #define insdelln(n) winsdelln(stdscr,(n))
1323 #define insertln() winsdelln(stdscr,1)
1324 #define insnstr(s,n) winsnstr(stdscr,(s),(n))
1325 #define insstr(s) winsstr(stdscr,(s))
1326 #define instr(s) winstr(stdscr,(s))
1327 #define move(y,x) wmove(stdscr,(y),(x))
1328 #define refresh() wrefresh(stdscr)
1329 #define scrl(n) wscrl(stdscr,(n))
1330 #define setscrreg(t,b) wsetscrreg(stdscr,(t),(b))
1331 #define standend() wstandend(stdscr)
1332 #define standout() wstandout(stdscr)
1333 #define timeout(delay) wtimeout(stdscr,(delay))
1334 #define wdeleteln(win) winsdelln(win,-1)
1335 #define winsertln(win) winsdelln(win,1)
1336
1337
1338
1339
1340
1341 #define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch)))
1342 #define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n)))
1343 #define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1))
1344 #define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n)))
1345 #define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1))
1346 #define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o)))
1347 #define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win))
1348 #define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win))
1349 #define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n)))
1350 #define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str)))
1351 #define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n)))
1352 #define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
1353 #define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n)))
1354 #define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s)))
1355 #define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n)))
1356 #define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c)))
1357 #define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n)))
1358 #define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s)))
1359 #define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s)))
1360 #define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n)))
1361
1362 #define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch))
1363 #define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n))
1364 #define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str))
1365 #define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n))
1366 #define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str))
1367 #define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o))
1368 #define mvdelch(y,x) mvwdelch(stdscr,(y),(x))
1369 #define mvgetch(y,x) mvwgetch(stdscr,(y),(x))
1370 #define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n))
1371 #define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str))
1372 #define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n))
1373 #define mvinch(y,x) mvwinch(stdscr,(y),(x))
1374 #define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n))
1375 #define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s))
1376 #define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n))
1377 #define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c))
1378 #define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n))
1379 #define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s))
1380 #define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s))
1381 #define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n))
1382
1383
1384
1385
1386 #if !NCURSES_OPAQUE
1387 #define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0)
1388 #endif
1389
1390 #define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))
1391 #define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
1392
1393 #if !NCURSES_OPAQUE
1394 #if NCURSES_WATTR_MACROS
1395 #if NCURSES_WIDECHAR && 1
1396 #define wattr_set(win,a,p,opts) \
1397 (NCURSES_OK_ADDR(win) \
1398 ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \
1399 (win)->_color = (opts) ? *(int *)(opts) : (p)), \
1400 OK) \
1401 : ERR)
1402 #define wattr_get(win,a,p,opts) \
1403 (NCURSES_OK_ADDR(win) \
1404 ? ((void)(NCURSES_OK_ADDR(a) \
1405 ? (*(a) = (win)->_attrs) \
1406 : OK), \
1407 (void)(NCURSES_OK_ADDR(p) \
1408 ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \
1409 : OK), \
1410 (void)(NCURSES_OK_ADDR(opts) \
1411 ? (*(int *)(opts) = (win)->_color) \
1412 : OK), \
1413 OK) \
1414 : ERR)
1415 #else
1416 #define wattr_set(win,a,p,opts) \
1417 (NCURSES_OK_ADDR(win) \
1418 ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \
1419 (attr_t)COLOR_PAIR(p))), \
1420 OK) \
1421 : ERR)
1422 #define wattr_get(win,a,p,opts) \
1423 (NCURSES_OK_ADDR(win) \
1424 ? ((void)(NCURSES_OK_ADDR(a) \
1425 ? (*(a) = (win)->_attrs) \
1426 : OK), \
1427 (void)(NCURSES_OK_ADDR(p) \
1428 ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \
1429 : OK), \
1430 OK) \
1431 : ERR)
1432 #endif
1433 #endif
1434 #endif
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448 #if !1
1449 #define vsscanf(a,b,c) _nc_vsscanf(a,b,c)
1450 NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
1451 #endif
1452
1453
1454
1455
1456 #if 1
1457 #if !NCURSES_OPAQUE
1458 #define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE)
1459 #define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE)
1460 #define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE)
1461 #define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE)
1462 #define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE)
1463 #define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE)
1464 #define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE)
1465 #define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE)
1466 #define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE)
1467 #define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE)
1468 #define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE)
1469 #define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE)
1470 #define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0)
1471 #define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0)
1472 #define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR)
1473 #endif
1474 #endif
1475
1476
1477
1478
1479
1480 #define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l)))
1481
1482 #endif
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492 #if NCURSES_REENTRANT
1493
1494 NCURSES_WRAPPED_VAR(WINDOW *, curscr);
1495 NCURSES_WRAPPED_VAR(WINDOW *, newscr);
1496 NCURSES_WRAPPED_VAR(WINDOW *, stdscr);
1497 NCURSES_WRAPPED_VAR(char *, ttytype);
1498 NCURSES_WRAPPED_VAR(int, COLORS);
1499 NCURSES_WRAPPED_VAR(int, COLOR_PAIRS);
1500 NCURSES_WRAPPED_VAR(int, COLS);
1501 NCURSES_WRAPPED_VAR(int, ESCDELAY);
1502 NCURSES_WRAPPED_VAR(int, LINES);
1503 NCURSES_WRAPPED_VAR(int, TABSIZE);
1504
1505 #define curscr NCURSES_PUBLIC_VAR(curscr())
1506 #define newscr NCURSES_PUBLIC_VAR(newscr())
1507 #define stdscr NCURSES_PUBLIC_VAR(stdscr())
1508 #define ttytype NCURSES_PUBLIC_VAR(ttytype())
1509 #define COLORS NCURSES_PUBLIC_VAR(COLORS())
1510 #define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS())
1511 #define COLS NCURSES_PUBLIC_VAR(COLS())
1512 #define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY())
1513 #define LINES NCURSES_PUBLIC_VAR(LINES())
1514 #define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE())
1515
1516 #else
1517
1518 extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
1519 extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
1520 extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
1521 extern NCURSES_EXPORT_VAR(char) ttytype[];
1522 extern NCURSES_EXPORT_VAR(int) COLORS;
1523 extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
1524 extern NCURSES_EXPORT_VAR(int) COLS;
1525 extern NCURSES_EXPORT_VAR(int) ESCDELAY;
1526 extern NCURSES_EXPORT_VAR(int) LINES;
1527 extern NCURSES_EXPORT_VAR(int) TABSIZE;
1528
1529 #endif
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543 #define KEY_CODE_YES 0400
1544 #define KEY_MIN 0401
1545 #define KEY_BREAK 0401
1546 #define KEY_SRESET 0530
1547 #define KEY_RESET 0531
1548
1549
1550
1551 #define KEY_DOWN 0402
1552 #define KEY_UP 0403
1553 #define KEY_LEFT 0404
1554 #define KEY_RIGHT 0405
1555 #define KEY_HOME 0406
1556 #define KEY_BACKSPACE 0407
1557 #define KEY_F0 0410
1558 #define KEY_F(n) (KEY_F0+(n))
1559 #define KEY_DL 0510
1560 #define KEY_IL 0511
1561 #define KEY_DC 0512
1562 #define KEY_IC 0513
1563 #define KEY_EIC 0514
1564 #define KEY_CLEAR 0515
1565 #define KEY_EOS 0516
1566 #define KEY_EOL 0517
1567 #define KEY_SF 0520
1568 #define KEY_SR 0521
1569 #define KEY_NPAGE 0522
1570 #define KEY_PPAGE 0523
1571 #define KEY_STAB 0524
1572 #define KEY_CTAB 0525
1573 #define KEY_CATAB 0526
1574 #define KEY_ENTER 0527
1575 #define KEY_PRINT 0532
1576 #define KEY_LL 0533
1577 #define KEY_A1 0534
1578 #define KEY_A3 0535
1579 #define KEY_B2 0536
1580 #define KEY_C1 0537
1581 #define KEY_C3 0540
1582 #define KEY_BTAB 0541
1583 #define KEY_BEG 0542
1584 #define KEY_CANCEL 0543
1585 #define KEY_CLOSE 0544
1586 #define KEY_COMMAND 0545
1587 #define KEY_COPY 0546
1588 #define KEY_CREATE 0547
1589 #define KEY_END 0550
1590 #define KEY_EXIT 0551
1591 #define KEY_FIND 0552
1592 #define KEY_HELP 0553
1593 #define KEY_MARK 0554
1594 #define KEY_MESSAGE 0555
1595 #define KEY_MOVE 0556
1596 #define KEY_NEXT 0557
1597 #define KEY_OPEN 0560
1598 #define KEY_OPTIONS 0561
1599 #define KEY_PREVIOUS 0562
1600 #define KEY_REDO 0563
1601 #define KEY_REFERENCE 0564
1602 #define KEY_REFRESH 0565
1603 #define KEY_REPLACE 0566
1604 #define KEY_RESTART 0567
1605 #define KEY_RESUME 0570
1606 #define KEY_SAVE 0571
1607 #define KEY_SBEG 0572
1608 #define KEY_SCANCEL 0573
1609 #define KEY_SCOMMAND 0574
1610 #define KEY_SCOPY 0575
1611 #define KEY_SCREATE 0576
1612 #define KEY_SDC 0577
1613 #define KEY_SDL 0600
1614 #define KEY_SELECT 0601
1615 #define KEY_SEND 0602
1616 #define KEY_SEOL 0603
1617 #define KEY_SEXIT 0604
1618 #define KEY_SFIND 0605
1619 #define KEY_SHELP 0606
1620 #define KEY_SHOME 0607
1621 #define KEY_SIC 0610
1622 #define KEY_SLEFT 0611
1623 #define KEY_SMESSAGE 0612
1624 #define KEY_SMOVE 0613
1625 #define KEY_SNEXT 0614
1626 #define KEY_SOPTIONS 0615
1627 #define KEY_SPREVIOUS 0616
1628 #define KEY_SPRINT 0617
1629 #define KEY_SREDO 0620
1630 #define KEY_SREPLACE 0621
1631 #define KEY_SRIGHT 0622
1632 #define KEY_SRSUME 0623
1633 #define KEY_SSAVE 0624
1634 #define KEY_SSUSPEND 0625
1635 #define KEY_SUNDO 0626
1636 #define KEY_SUSPEND 0627
1637 #define KEY_UNDO 0630
1638 #define KEY_MOUSE 0631
1639
1640 #if NCURSES_SIGWINCH
1641 #define KEY_RESIZE 0632
1642 #endif
1643
1644 #define KEY_MAX 0777
1645
1646
1647
1648
1649
1650
1651 #define _XOPEN_CURSES 1
1652
1653 #if NCURSES_WIDECHAR
1654
1655 extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
1656
1657 #define NCURSES_WACS(c) (&_nc_wacs[NCURSES_CAST(unsigned char,(c))])
1658
1659 #define WACS_BSSB NCURSES_WACS('l')
1660 #define WACS_SSBB NCURSES_WACS('m')
1661 #define WACS_BBSS NCURSES_WACS('k')
1662 #define WACS_SBBS NCURSES_WACS('j')
1663 #define WACS_SBSS NCURSES_WACS('u')
1664 #define WACS_SSSB NCURSES_WACS('t')
1665 #define WACS_SSBS NCURSES_WACS('v')
1666 #define WACS_BSSS NCURSES_WACS('w')
1667 #define WACS_BSBS NCURSES_WACS('q')
1668 #define WACS_SBSB NCURSES_WACS('x')
1669 #define WACS_SSSS NCURSES_WACS('n')
1670
1671 #define WACS_ULCORNER WACS_BSSB
1672 #define WACS_LLCORNER WACS_SSBB
1673 #define WACS_URCORNER WACS_BBSS
1674 #define WACS_LRCORNER WACS_SBBS
1675 #define WACS_RTEE WACS_SBSS
1676 #define WACS_LTEE WACS_SSSB
1677 #define WACS_BTEE WACS_SSBS
1678 #define WACS_TTEE WACS_BSSS
1679 #define WACS_HLINE WACS_BSBS
1680 #define WACS_VLINE WACS_SBSB
1681 #define WACS_PLUS WACS_SSSS
1682
1683 #define WACS_S1 NCURSES_WACS('o')
1684 #define WACS_S9 NCURSES_WACS('s')
1685 #define WACS_DIAMOND NCURSES_WACS('`')
1686 #define WACS_CKBOARD NCURSES_WACS('a')
1687 #define WACS_DEGREE NCURSES_WACS('f')
1688 #define WACS_PLMINUS NCURSES_WACS('g')
1689 #define WACS_BULLET NCURSES_WACS('~')
1690
1691
1692 #define WACS_LARROW NCURSES_WACS(',')
1693 #define WACS_RARROW NCURSES_WACS('+')
1694 #define WACS_DARROW NCURSES_WACS('.')
1695 #define WACS_UARROW NCURSES_WACS('-')
1696 #define WACS_BOARD NCURSES_WACS('h')
1697 #define WACS_LANTERN NCURSES_WACS('i')
1698 #define WACS_BLOCK NCURSES_WACS('0')
1699
1700
1701 #define WACS_S3 NCURSES_WACS('p')
1702 #define WACS_S7 NCURSES_WACS('r')
1703 #define WACS_LEQUAL NCURSES_WACS('y')
1704 #define WACS_GEQUAL NCURSES_WACS('z')
1705 #define WACS_PI NCURSES_WACS('{')
1706 #define WACS_NEQUAL NCURSES_WACS('|')
1707 #define WACS_STERLING NCURSES_WACS('}')
1708
1709
1710 #define WACS_BDDB NCURSES_WACS('C')
1711 #define WACS_DDBB NCURSES_WACS('D')
1712 #define WACS_BBDD NCURSES_WACS('B')
1713 #define WACS_DBBD NCURSES_WACS('A')
1714 #define WACS_DBDD NCURSES_WACS('G')
1715 #define WACS_DDDB NCURSES_WACS('F')
1716 #define WACS_DDBD NCURSES_WACS('H')
1717 #define WACS_BDDD NCURSES_WACS('I')
1718 #define WACS_BDBD NCURSES_WACS('R')
1719 #define WACS_DBDB NCURSES_WACS('Y')
1720 #define WACS_DDDD NCURSES_WACS('E')
1721
1722 #define WACS_D_ULCORNER WACS_BDDB
1723 #define WACS_D_LLCORNER WACS_DDBB
1724 #define WACS_D_URCORNER WACS_BBDD
1725 #define WACS_D_LRCORNER WACS_DBBD
1726 #define WACS_D_RTEE WACS_DBDD
1727 #define WACS_D_LTEE WACS_DDDB
1728 #define WACS_D_BTEE WACS_DDBD
1729 #define WACS_D_TTEE WACS_BDDD
1730 #define WACS_D_HLINE WACS_BDBD
1731 #define WACS_D_VLINE WACS_DBDB
1732 #define WACS_D_PLUS WACS_DDDD
1733
1734
1735 #define WACS_BTTB NCURSES_WACS('L')
1736 #define WACS_TTBB NCURSES_WACS('M')
1737 #define WACS_BBTT NCURSES_WACS('K')
1738 #define WACS_TBBT NCURSES_WACS('J')
1739 #define WACS_TBTT NCURSES_WACS('U')
1740 #define WACS_TTTB NCURSES_WACS('T')
1741 #define WACS_TTBT NCURSES_WACS('V')
1742 #define WACS_BTTT NCURSES_WACS('W')
1743 #define WACS_BTBT NCURSES_WACS('Q')
1744 #define WACS_TBTB NCURSES_WACS('X')
1745 #define WACS_TTTT NCURSES_WACS('N')
1746
1747 #define WACS_T_ULCORNER WACS_BTTB
1748 #define WACS_T_LLCORNER WACS_TTBB
1749 #define WACS_T_URCORNER WACS_BBTT
1750 #define WACS_T_LRCORNER WACS_TBBT
1751 #define WACS_T_RTEE WACS_TBTT
1752 #define WACS_T_LTEE WACS_TTTB
1753 #define WACS_T_BTEE WACS_TTBT
1754 #define WACS_T_TTEE WACS_BTTT
1755 #define WACS_T_HLINE WACS_BTBT
1756 #define WACS_T_VLINE WACS_TBTB
1757 #define WACS_T_PLUS WACS_TTTT
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768 extern NCURSES_EXPORT(int) add_wch (const cchar_t *);
1769 extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int);
1770 extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *);
1771 extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int);
1772 extern NCURSES_EXPORT(int) addwstr (const wchar_t *);
1773 extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *);
1774 extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *);
1775 extern NCURSES_EXPORT(int) border_set (const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*);
1776 extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *);
1777 extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *);
1778 extern NCURSES_EXPORT(int) erasewchar (wchar_t*);
1779 extern NCURSES_EXPORT(int) get_wch (wint_t *);
1780 extern NCURSES_EXPORT(int) get_wstr (wint_t *);
1781 extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *);
1782 extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, NCURSES_PAIRS_T*, void*);
1783 extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int);
1784 extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int);
1785 extern NCURSES_EXPORT(int) in_wch (cchar_t *);
1786 extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int);
1787 extern NCURSES_EXPORT(int) in_wchstr (cchar_t *);
1788 extern NCURSES_EXPORT(int) innwstr (wchar_t *, int);
1789 extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int);
1790 extern NCURSES_EXPORT(int) ins_wch (const cchar_t *);
1791 extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *);
1792 extern NCURSES_EXPORT(int) inwstr (wchar_t *);
1793 extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t);
1794 extern NCURSES_EXPORT(int) killwchar (wchar_t *);
1795 extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *);
1796 extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);
1797 extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *);
1798 extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int);
1799 extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *);
1800 extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *);
1801 extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *);
1802 extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int);
1803 extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int);
1804 extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *);
1805 extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int);
1806 extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *);
1807 extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int);
1808 extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int);
1809 extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *);
1810 extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *);
1811 extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *);
1812 extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int);
1813 extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *);
1814 extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int);
1815 extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *);
1816 extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);
1817 extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *);
1818 extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *);
1819 extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *);
1820 extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);
1821 extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);
1822 extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *);
1823 extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int);
1824 extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *);
1825 extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int);
1826 extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int);
1827 extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *);
1828 extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *);
1829 extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *);
1830 extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int);
1831 extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *);
1832 extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, NCURSES_PAIRS_T, const void *);
1833 extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int);
1834 extern NCURSES_EXPORT(attr_t) term_attrs (void);
1835 extern NCURSES_EXPORT(int) unget_wch (const wchar_t);
1836 extern NCURSES_EXPORT(int) vid_attr (attr_t, NCURSES_PAIRS_T, void *);
1837 extern NCURSES_EXPORT(int) vid_puts (attr_t, NCURSES_PAIRS_T, void *, NCURSES_OUTC);
1838 extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int);
1839 extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *);
1840 extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int);
1841 extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *);
1842 extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int);
1843 extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *);
1844 extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *);
1845 extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *);
1846 extern NCURSES_EXPORT(int) wborder_set (WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*);
1847 extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *);
1848 extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *);
1849 extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *);
1850 extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *);
1851 extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *, wint_t *, int);
1852 extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int);
1853 extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *);
1854 extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int);
1855 extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *);
1856 extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int);
1857 extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int);
1858 extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *);
1859 extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *);
1860 extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *);
1861 extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *);
1862 extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int);
1863
1864 #if NCURSES_SP_FUNCS
1865 extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(term_attrs) (SCREEN*);
1866 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(erasewchar) (SCREEN*, wchar_t *);
1867 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(killwchar) (SCREEN*, wchar_t *);
1868 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(unget_wch) (SCREEN*, const wchar_t);
1869 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *);
1870 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *, NCURSES_SP_OUTC);
1871 extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *);
1872 #endif
1873
1874 #ifndef NCURSES_NOMACROS
1875
1876
1877
1878
1879 #define add_wch(c) wadd_wch(stdscr,(c))
1880 #define add_wchnstr(str,n) wadd_wchnstr(stdscr,(str),(n))
1881 #define add_wchstr(str) wadd_wchstr(stdscr,(str))
1882 #define addnwstr(wstr,n) waddnwstr(stdscr,(wstr),(n))
1883 #define addwstr(wstr) waddwstr(stdscr,(wstr))
1884 #define bkgrnd(c) wbkgrnd(stdscr,(c))
1885 #define bkgrndset(c) wbkgrndset(stdscr,(c))
1886 #define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,(l),(r),(t),(b),tl,tr,bl,br)
1887 #define box_set(w,v,h) wborder_set((w),(v),(v),(h),(h),NULL,NULL,NULL,NULL)
1888 #define echo_wchar(c) wecho_wchar(stdscr,(c))
1889 #define get_wch(c) wget_wch(stdscr,(c))
1890 #define get_wstr(t) wget_wstr(stdscr,(t))
1891 #define getbkgrnd(wch) wgetbkgrnd(stdscr,(wch))
1892 #define getn_wstr(t,n) wgetn_wstr(stdscr,(t),(n))
1893 #define hline_set(c,n) whline_set(stdscr,(c),(n))
1894 #define in_wch(c) win_wch(stdscr,(c))
1895 #define in_wchnstr(c,n) win_wchnstr(stdscr,(c),(n))
1896 #define in_wchstr(c) win_wchstr(stdscr,(c))
1897 #define innwstr(c,n) winnwstr(stdscr,(c),(n))
1898 #define ins_nwstr(t,n) wins_nwstr(stdscr,(t),(n))
1899 #define ins_wch(c) wins_wch(stdscr,(c))
1900 #define ins_wstr(t) wins_wstr(stdscr,(t))
1901 #define inwstr(c) winwstr(stdscr,(c))
1902 #define vline_set(c,n) wvline_set(stdscr,(c),(n))
1903 #define wadd_wchstr(win,str) wadd_wchnstr((win),(str),-1)
1904 #define waddwstr(win,wstr) waddnwstr((win),(wstr),-1)
1905 #define wget_wstr(w,t) wgetn_wstr((w),(t),-1)
1906 #define win_wchstr(w,c) win_wchnstr((w),(c),-1)
1907 #define wins_wstr(w,t) wins_nwstr((w),(t),-1)
1908 #define winwstr(w,c) winnwstr((w),(c),-1)
1909
1910 #if !NCURSES_OPAQUE
1911 #define wgetbkgrnd(win,wch) (NCURSES_OK_ADDR(wch) ? ((win) ? (*(wch) = (win)->_bkgrnd) : *(wch), OK) : ERR)
1912 #endif
1913
1914 #define mvadd_wch(y,x,c) mvwadd_wch(stdscr,(y),(x),(c))
1915 #define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,(y),(x),(s),(n))
1916 #define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,(y),(x),(s))
1917 #define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,(y),(x),(wstr),(n))
1918 #define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,(y),(x),(wstr))
1919 #define mvget_wch(y,x,c) mvwget_wch(stdscr,(y),(x),(c))
1920 #define mvget_wstr(y,x,t) mvwget_wstr(stdscr,(y),(x),(t))
1921 #define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,(y),(x),(t),(n))
1922 #define mvhline_set(y,x,c,n) mvwhline_set(stdscr,(y),(x),(c),(n))
1923 #define mvin_wch(y,x,c) mvwin_wch(stdscr,(y),(x),(c))
1924 #define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,(y),(x),(c),(n))
1925 #define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,(y),(x),(c))
1926 #define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,(y),(x),(c),(n))
1927 #define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,(y),(x),(t),(n))
1928 #define mvins_wch(y,x,c) mvwins_wch(stdscr,(y),(x),(c))
1929 #define mvins_wstr(y,x,t) mvwins_wstr(stdscr,(y),(x),(t))
1930 #define mvinwstr(y,x,c) mvwinwstr(stdscr,(y),(x),(c))
1931 #define mvvline_set(y,x,c,n) mvwvline_set(stdscr,(y),(x),(c),(n))
1932
1933 #define mvwadd_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wch((win),(c)))
1934 #define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchnstr((win),(s),(n)))
1935 #define mvwadd_wchstr(win,y,x,s) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchstr((win),(s)))
1936 #define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,(y),(x)) == ERR ? ERR : waddnwstr((win),(wstr),(n)))
1937 #define mvwaddwstr(win,y,x,wstr) (wmove(win,(y),(x)) == ERR ? ERR : waddwstr((win),(wstr)))
1938 #define mvwget_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wget_wch((win),(c)))
1939 #define mvwget_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wget_wstr((win),(t)))
1940 #define mvwgetn_wstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wgetn_wstr((win),(t),(n)))
1941 #define mvwhline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : whline_set((win),(c),(n)))
1942 #define mvwin_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wch((win),(c)))
1943 #define mvwin_wchnstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : win_wchnstr((win),(c),(n)))
1944 #define mvwin_wchstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wchstr((win),(c)))
1945 #define mvwinnwstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : winnwstr((win),(c),(n)))
1946 #define mvwins_nwstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wins_nwstr((win),(t),(n)))
1947 #define mvwins_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wins_wch((win),(c)))
1948 #define mvwins_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wins_wstr((win),(t)))
1949 #define mvwinwstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : winwstr((win),(c)))
1950 #define mvwvline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : wvline_set((win),(c),(n)))
1951
1952 #endif
1953
1954 #if defined(TRACE) || defined(NCURSES_TEST)
1955 extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
1956 extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *);
1957 #endif
1958
1959 #endif
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969 #if NCURSES_MOUSE_VERSION > 1
1970 #define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5))
1971 #else
1972 #define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6))
1973 #endif
1974
1975 #define NCURSES_BUTTON_RELEASED 001UL
1976 #define NCURSES_BUTTON_PRESSED 002UL
1977 #define NCURSES_BUTTON_CLICKED 004UL
1978 #define NCURSES_DOUBLE_CLICKED 010UL
1979 #define NCURSES_TRIPLE_CLICKED 020UL
1980 #define NCURSES_RESERVED_EVENT 040UL
1981
1982
1983 #define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)
1984 #define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED)
1985 #define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED)
1986 #define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED)
1987 #define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED)
1988
1989 #define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED)
1990 #define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED)
1991 #define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED)
1992 #define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED)
1993 #define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED)
1994
1995 #define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED)
1996 #define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED)
1997 #define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED)
1998 #define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED)
1999 #define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED)
2000
2001 #define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED)
2002 #define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED)
2003 #define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED)
2004 #define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED)
2005 #define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED)
2006
2007
2008
2009
2010
2011 #if NCURSES_MOUSE_VERSION > 1
2012
2013 #define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED)
2014 #define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED)
2015 #define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED)
2016 #define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED)
2017 #define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED)
2018
2019 #define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L)
2020 #define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L)
2021 #define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L)
2022 #define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L)
2023
2024
2025
2026
2027
2028 #if NCURSES_MOUSE_VERSION > 2
2029
2030 #define BUTTON6_RELEASED NCURSES_MOUSE_MASK(6, NCURSES_BUTTON_RELEASED)
2031 #define BUTTON6_PRESSED NCURSES_MOUSE_MASK(6, NCURSES_BUTTON_PRESSED)
2032 #define BUTTON6_CLICKED NCURSES_MOUSE_MASK(6, NCURSES_BUTTON_CLICKED)
2033 #define BUTTON6_DOUBLE_CLICKED NCURSES_MOUSE_MASK(6, NCURSES_DOUBLE_CLICKED)
2034 #define BUTTON6_TRIPLE_CLICKED NCURSES_MOUSE_MASK(6, NCURSES_TRIPLE_CLICKED)
2035
2036 #define BUTTON7_RELEASED NCURSES_MOUSE_MASK(7, NCURSES_BUTTON_RELEASED)
2037 #define BUTTON7_PRESSED NCURSES_MOUSE_MASK(7, NCURSES_BUTTON_PRESSED)
2038 #define BUTTON7_CLICKED NCURSES_MOUSE_MASK(7, NCURSES_BUTTON_CLICKED)
2039 #define BUTTON7_DOUBLE_CLICKED NCURSES_MOUSE_MASK(7, NCURSES_DOUBLE_CLICKED)
2040 #define BUTTON7_TRIPLE_CLICKED NCURSES_MOUSE_MASK(7, NCURSES_TRIPLE_CLICKED)
2041
2042 #define BUTTON8_RELEASED NCURSES_MOUSE_MASK(8, NCURSES_BUTTON_RELEASED)
2043 #define BUTTON8_PRESSED NCURSES_MOUSE_MASK(8, NCURSES_BUTTON_PRESSED)
2044 #define BUTTON8_CLICKED NCURSES_MOUSE_MASK(8, NCURSES_BUTTON_CLICKED)
2045 #define BUTTON8_DOUBLE_CLICKED NCURSES_MOUSE_MASK(8, NCURSES_DOUBLE_CLICKED)
2046 #define BUTTON8_TRIPLE_CLICKED NCURSES_MOUSE_MASK(8, NCURSES_TRIPLE_CLICKED)
2047
2048 #define BUTTON9_RELEASED NCURSES_MOUSE_MASK(9, NCURSES_BUTTON_RELEASED)
2049 #define BUTTON9_PRESSED NCURSES_MOUSE_MASK(9, NCURSES_BUTTON_PRESSED)
2050 #define BUTTON9_CLICKED NCURSES_MOUSE_MASK(9, NCURSES_BUTTON_CLICKED)
2051 #define BUTTON9_DOUBLE_CLICKED NCURSES_MOUSE_MASK(9, NCURSES_DOUBLE_CLICKED)
2052 #define BUTTON9_TRIPLE_CLICKED NCURSES_MOUSE_MASK(9, NCURSES_TRIPLE_CLICKED)
2053
2054 #define BUTTON10_RELEASED NCURSES_MOUSE_MASK(10, NCURSES_BUTTON_RELEASED)
2055 #define BUTTON10_PRESSED NCURSES_MOUSE_MASK(10, NCURSES_BUTTON_PRESSED)
2056 #define BUTTON10_CLICKED NCURSES_MOUSE_MASK(10, NCURSES_BUTTON_CLICKED)
2057 #define BUTTON10_DOUBLE_CLICKED NCURSES_MOUSE_MASK(10, NCURSES_DOUBLE_CLICKED)
2058 #define BUTTON10_TRIPLE_CLICKED NCURSES_MOUSE_MASK(10, NCURSES_TRIPLE_CLICKED)
2059
2060 #define BUTTON11_RELEASED NCURSES_MOUSE_MASK(11, NCURSES_BUTTON_RELEASED)
2061 #define BUTTON11_PRESSED NCURSES_MOUSE_MASK(11, NCURSES_BUTTON_PRESSED)
2062 #define BUTTON11_CLICKED NCURSES_MOUSE_MASK(11, NCURSES_BUTTON_CLICKED)
2063 #define BUTTON11_DOUBLE_CLICKED NCURSES_MOUSE_MASK(11, NCURSES_DOUBLE_CLICKED)
2064 #define BUTTON11_TRIPLE_CLICKED NCURSES_MOUSE_MASK(11, NCURSES_TRIPLE_CLICKED)
2065
2066 #endif
2067
2068 #else
2069
2070 #define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT)
2071 #define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT)
2072 #define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT)
2073 #define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT)
2074
2075 #define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L)
2076 #define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L)
2077 #define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L)
2078 #define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L)
2079
2080 #endif
2081
2082 #define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1)
2083
2084
2085 #define BUTTON_RELEASE(e, x) ((e) & NCURSES_MOUSE_MASK(x, 001))
2086 #define BUTTON_PRESS(e, x) ((e) & NCURSES_MOUSE_MASK(x, 002))
2087 #define BUTTON_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 004))
2088 #define BUTTON_DOUBLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 010))
2089 #define BUTTON_TRIPLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 020))
2090 #define BUTTON_RESERVED_EVENT(e, x) ((e) & NCURSES_MOUSE_MASK(x, 040))
2091
2092 typedef struct
2093 {
2094 short id;
2095 int x, y, z;
2096 mmask_t bstate;
2097 }
2098 MEVENT;
2099
2100 extern NCURSES_EXPORT(bool) has_mouse(void);
2101 extern NCURSES_EXPORT(int) getmouse (MEVENT *);
2102 extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);
2103 extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);
2104 extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);
2105 extern NCURSES_EXPORT(int) mouseinterval (int);
2106 extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool);
2107 extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool);
2108
2109 #if NCURSES_SP_FUNCS
2110 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_mouse) (SCREEN*);
2111 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(getmouse) (SCREEN*, MEVENT *);
2112 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetmouse) (SCREEN*,MEVENT *);
2113 extern NCURSES_EXPORT(mmask_t) NCURSES_SP_NAME(mousemask) (SCREEN*, mmask_t, mmask_t *);
2114 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mouseinterval) (SCREEN*, int);
2115 #endif
2116
2117 #ifndef NCURSES_NOMACROS
2118 #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
2119 #endif
2120
2121
2122
2123 extern NCURSES_EXPORT(int) mcprint (char *, int);
2124 extern NCURSES_EXPORT(int) has_key (int);
2125
2126 #if NCURSES_SP_FUNCS
2127 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN*, int);
2128 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mcprint) (SCREEN*, char *, int);
2129 #endif
2130
2131
2132
2133 extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
2134 extern NCURSES_EXPORT(char *) _traceattr (attr_t);
2135 extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype);
2136 extern NCURSES_EXPORT(char *) _tracechar (int);
2137 extern NCURSES_EXPORT(char *) _tracechtype (chtype);
2138 extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);
2139 #if NCURSES_WIDECHAR
2140 #define _tracech_t _tracecchar_t
2141 extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *);
2142 #define _tracech_t2 _tracecchar_t2
2143 extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *);
2144 #else
2145 #define _tracech_t _tracechtype
2146 #define _tracech_t2 _tracechtype2
2147 #endif
2148 extern NCURSES_EXPORT(void) trace (const unsigned) GCC_DEPRECATED("use curses_trace");
2149 extern NCURSES_EXPORT(unsigned) curses_trace (const unsigned);
2150
2151
2152 #define TRACE_DISABLE 0x0000
2153 #define TRACE_TIMES 0x0001
2154 #define TRACE_TPUTS 0x0002
2155 #define TRACE_UPDATE 0x0004
2156 #define TRACE_MOVE 0x0008
2157 #define TRACE_CHARPUT 0x0010
2158 #define TRACE_ORDINARY 0x001F
2159 #define TRACE_CALLS 0x0020
2160 #define TRACE_VIRTPUT 0x0040
2161 #define TRACE_IEVENT 0x0080
2162 #define TRACE_BITS 0x0100
2163 #define TRACE_ICALLS 0x0200
2164 #define TRACE_CCALLS 0x0400
2165 #define TRACE_DATABASE 0x0800
2166 #define TRACE_ATTRS 0x1000
2167
2168 #define TRACE_SHIFT 13
2169 #define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1)
2170
2171 #if defined(TRACE) || defined(NCURSES_TEST)
2172 extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable;
2173 extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
2174 #define OPTIMIZE_MVCUR 0x01
2175 #define OPTIMIZE_HASHMAP 0x02
2176 #define OPTIMIZE_SCROLL 0x04
2177 #define OPTIMIZE_ALL 0xff
2178 #endif
2179
2180 extern GCC_NORETURN NCURSES_EXPORT(void) exit_curses (int);
2181
2182 #include <ncursesw/unctrl.h>
2183
2184 #ifdef __cplusplus
2185
2186 #ifndef NCURSES_NOMACROS
2187
2188
2189 #undef box
2190 #undef clear
2191 #undef erase
2192 #undef move
2193 #undef refresh
2194
2195 #endif
2196
2197 }
2198 #endif
2199
2200 #endif