File indexing completed on 2025-01-18 10:02:11
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 20240427
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 #else
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) (0 != 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 20240427
0495 int ext_color;
0496 #endif
0497 }
0498 cchar_t;
0499
0500 #endif
0501
0502 #if !NCURSES_OPAQUE
0503 struct ldat;
0504
0505 struct _win_st
0506 {
0507 NCURSES_SIZE_T _cury, _curx;
0508
0509
0510 NCURSES_SIZE_T _maxy, _maxx;
0511 NCURSES_SIZE_T _begy, _begx;
0512
0513 short _flags;
0514
0515
0516 attr_t _attrs;
0517 chtype _bkgd;
0518
0519
0520 bool _notimeout;
0521 bool _clear;
0522 bool _leaveok;
0523 bool _scroll;
0524 bool _idlok;
0525 bool _idcok;
0526 bool _immed;
0527 bool _sync;
0528 bool _use_keypad;
0529 int _delay;
0530
0531 struct ldat *_line;
0532
0533
0534 NCURSES_SIZE_T _regtop;
0535 NCURSES_SIZE_T _regbottom;
0536
0537
0538 int _parx;
0539 int _pary;
0540 WINDOW *_parent;
0541
0542
0543 struct pdat
0544 {
0545 NCURSES_SIZE_T _pad_y, _pad_x;
0546 NCURSES_SIZE_T _pad_top, _pad_left;
0547 NCURSES_SIZE_T _pad_bottom, _pad_right;
0548 } _pad;
0549
0550 NCURSES_SIZE_T _yoffset;
0551
0552 #if NCURSES_WIDECHAR
0553 cchar_t _bkgrnd;
0554 #if 1
0555 int _color;
0556 #endif
0557 #endif
0558 };
0559 #endif
0560
0561
0562
0563
0564
0565
0566
0567
0568 #if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__))
0569 #define __attribute__(p)
0570 #endif
0571
0572
0573
0574
0575
0576 #ifndef GCC_PRINTFLIKE
0577 #ifndef printf
0578 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
0579 #else
0580 #define GCC_PRINTFLIKE(fmt,var)
0581 #endif
0582 #endif
0583
0584 #ifndef GCC_SCANFLIKE
0585 #ifndef scanf
0586 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
0587 #else
0588 #define GCC_SCANFLIKE(fmt,var)
0589 #endif
0590 #endif
0591
0592 #ifndef GCC_NORETURN
0593 #define GCC_NORETURN
0594 #endif
0595
0596 #ifndef GCC_UNUSED
0597 #define GCC_UNUSED
0598 #endif
0599
0600 #undef GCC_DEPRECATED
0601 #if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS)
0602 #define GCC_DEPRECATED(msg) __attribute__((deprecated))
0603 #else
0604 #define GCC_DEPRECATED(msg)
0605 #endif
0606
0607
0608
0609
0610
0611 typedef int (*NCURSES_OUTC)(int);
0612
0613
0614
0615
0616
0617
0618
0619
0620 extern NCURSES_EXPORT(int) addch (const chtype);
0621 extern NCURSES_EXPORT(int) addchnstr (const chtype *, int);
0622 extern NCURSES_EXPORT(int) addchstr (const chtype *);
0623 extern NCURSES_EXPORT(int) addnstr (const char *, int);
0624 extern NCURSES_EXPORT(int) addstr (const char *);
0625 extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T);
0626 extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T);
0627 extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T);
0628 extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *);
0629 extern NCURSES_EXPORT(int) attr_off (attr_t, void *);
0630 extern NCURSES_EXPORT(int) attr_on (attr_t, void *);
0631 extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *);
0632 extern NCURSES_EXPORT(int) baudrate (void);
0633 extern NCURSES_EXPORT(int) beep (void);
0634 extern NCURSES_EXPORT(int) bkgd (chtype);
0635 extern NCURSES_EXPORT(void) bkgdset (chtype);
0636 extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);
0637 extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype);
0638 extern NCURSES_EXPORT(bool) can_change_color (void);
0639 extern NCURSES_EXPORT(int) cbreak (void);
0640 extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *);
0641 extern NCURSES_EXPORT(int) clear (void);
0642 extern NCURSES_EXPORT(int) clearok (WINDOW *,bool);
0643 extern NCURSES_EXPORT(int) clrtobot (void);
0644 extern NCURSES_EXPORT(int) clrtoeol (void);
0645 extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*);
0646 extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*);
0647 extern NCURSES_EXPORT(int) COLOR_PAIR (int);
0648 extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int);
0649 extern NCURSES_EXPORT(int) curs_set (int);
0650 extern NCURSES_EXPORT(int) def_prog_mode (void);
0651 extern NCURSES_EXPORT(int) def_shell_mode (void);
0652 extern NCURSES_EXPORT(int) delay_output (int);
0653 extern NCURSES_EXPORT(int) delch (void);
0654 extern NCURSES_EXPORT(void) delscreen (SCREEN *);
0655 extern NCURSES_EXPORT(int) delwin (WINDOW *);
0656 extern NCURSES_EXPORT(int) deleteln (void);
0657 extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int);
0658 extern NCURSES_EXPORT(int) doupdate (void);
0659 extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *);
0660 extern NCURSES_EXPORT(int) echo (void);
0661 extern NCURSES_EXPORT(int) echochar (const chtype);
0662 extern NCURSES_EXPORT(int) erase (void);
0663 extern NCURSES_EXPORT(int) endwin (void);
0664 extern NCURSES_EXPORT(char) erasechar (void);
0665 extern NCURSES_EXPORT(void) filter (void);
0666 extern NCURSES_EXPORT(int) flash (void);
0667 extern NCURSES_EXPORT(int) flushinp (void);
0668 extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *);
0669 extern NCURSES_EXPORT(int) getch (void);
0670 extern NCURSES_EXPORT(int) getnstr (char *, int);
0671 extern NCURSES_EXPORT(int) getstr (char *);
0672 extern NCURSES_EXPORT(WINDOW *) getwin (FILE *);
0673 extern NCURSES_EXPORT(int) halfdelay (int);
0674 extern NCURSES_EXPORT(bool) has_colors (void);
0675 extern NCURSES_EXPORT(bool) has_ic (void);
0676 extern NCURSES_EXPORT(bool) has_il (void);
0677 extern NCURSES_EXPORT(int) hline (chtype, int);
0678 extern NCURSES_EXPORT(void) idcok (WINDOW *, bool);
0679 extern NCURSES_EXPORT(int) idlok (WINDOW *, bool);
0680 extern NCURSES_EXPORT(void) immedok (WINDOW *, bool);
0681 extern NCURSES_EXPORT(chtype) inch (void);
0682 extern NCURSES_EXPORT(int) inchnstr (chtype *, int);
0683 extern NCURSES_EXPORT(int) inchstr (chtype *);
0684 extern NCURSES_EXPORT(WINDOW *) initscr (void);
0685 extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T);
0686 extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T);
0687 extern NCURSES_EXPORT(int) innstr (char *, int);
0688 extern NCURSES_EXPORT(int) insch (chtype);
0689 extern NCURSES_EXPORT(int) insdelln (int);
0690 extern NCURSES_EXPORT(int) insertln (void);
0691 extern NCURSES_EXPORT(int) insnstr (const char *, int);
0692 extern NCURSES_EXPORT(int) insstr (const char *);
0693 extern NCURSES_EXPORT(int) instr (char *);
0694 extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool);
0695 extern NCURSES_EXPORT(bool) isendwin (void);
0696 extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int);
0697 extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *);
0698 extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int);
0699 extern NCURSES_EXPORT(int) keypad (WINDOW *,bool);
0700 extern NCURSES_EXPORT(char) killchar (void);
0701 extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool);
0702 extern NCURSES_EXPORT(char *) longname (void);
0703 extern NCURSES_EXPORT(int) meta (WINDOW *,bool);
0704 extern NCURSES_EXPORT(int) move (int, int);
0705 extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype);
0706 extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int);
0707 extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *);
0708 extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int);
0709 extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *);
0710 extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *);
0711 extern NCURSES_EXPORT(int) mvcur (int,int,int,int);
0712 extern NCURSES_EXPORT(int) mvdelch (int, int);
0713 extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int);
0714 extern NCURSES_EXPORT(int) mvgetch (int, int);
0715 extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int);
0716 extern NCURSES_EXPORT(int) mvgetstr (int, int, char *);
0717 extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int);
0718 extern NCURSES_EXPORT(chtype) mvinch (int, int);
0719 extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int);
0720 extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *);
0721 extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int);
0722 extern NCURSES_EXPORT(int) mvinsch (int, int, chtype);
0723 extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int);
0724 extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *);
0725 extern NCURSES_EXPORT(int) mvinstr (int, int, char *);
0726 extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...)
0727 GCC_PRINTFLIKE(3,4);
0728 extern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...)
0729 GCC_SCANFLIKE(3,4);
0730 extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int);
0731 extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype);
0732 extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);
0733 extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *);
0734 extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int);
0735 extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *);
0736 extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);
0737 extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int);
0738 extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int);
0739 extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int);
0740 extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *);
0741 extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int);
0742 extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int);
0743 extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int);
0744 extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int);
0745 extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *);
0746 extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int);
0747 extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype);
0748 extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int);
0749 extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *);
0750 extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *);
0751 extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...)
0752 GCC_PRINTFLIKE(4,5);
0753 extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...)
0754 GCC_SCANFLIKE(4,5);
0755 extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int);
0756 extern NCURSES_EXPORT(int) napms (int);
0757 extern NCURSES_EXPORT(WINDOW *) newpad (int,int);
0758 extern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *);
0759 extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int);
0760 extern NCURSES_EXPORT(int) nl (void);
0761 extern NCURSES_EXPORT(int) nocbreak (void);
0762 extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool);
0763 extern NCURSES_EXPORT(int) noecho (void);
0764 extern NCURSES_EXPORT(int) nonl (void);
0765 extern NCURSES_EXPORT(void) noqiflush (void);
0766 extern NCURSES_EXPORT(int) noraw (void);
0767 extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool);
0768 extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *);
0769 extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *);
0770 extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*);
0771 extern NCURSES_EXPORT(int) PAIR_NUMBER (int);
0772 extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype);
0773 extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);
0774 extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int);
0775 extern NCURSES_EXPORT(int) printw (const char *,...)
0776 GCC_PRINTFLIKE(1,2);
0777 extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *);
0778 extern NCURSES_EXPORT(void) qiflush (void);
0779 extern NCURSES_EXPORT(int) raw (void);
0780 extern NCURSES_EXPORT(int) redrawwin (WINDOW *);
0781 extern NCURSES_EXPORT(int) refresh (void);
0782 extern NCURSES_EXPORT(int) resetty (void);
0783 extern NCURSES_EXPORT(int) reset_prog_mode (void);
0784 extern NCURSES_EXPORT(int) reset_shell_mode (void);
0785 extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int));
0786 extern NCURSES_EXPORT(int) savetty (void);
0787 extern NCURSES_EXPORT(int) scanw (const char *,...)
0788 GCC_SCANFLIKE(1,2);
0789 extern NCURSES_EXPORT(int) scr_dump (const char *);
0790 extern NCURSES_EXPORT(int) scr_init (const char *);
0791 extern NCURSES_EXPORT(int) scrl (int);
0792 extern NCURSES_EXPORT(int) scroll (WINDOW *);
0793 extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool);
0794 extern NCURSES_EXPORT(int) scr_restore (const char *);
0795 extern NCURSES_EXPORT(int) scr_set (const char *);
0796 extern NCURSES_EXPORT(int) setscrreg (int,int);
0797 extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *);
0798 extern NCURSES_EXPORT(int) slk_attroff (const chtype);
0799 extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *);
0800 extern NCURSES_EXPORT(int) slk_attron (const chtype);
0801 extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*);
0802 extern NCURSES_EXPORT(int) slk_attrset (const chtype);
0803 extern NCURSES_EXPORT(attr_t) slk_attr (void);
0804 extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*);
0805 extern NCURSES_EXPORT(int) slk_clear (void);
0806 extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T);
0807 extern NCURSES_EXPORT(int) slk_init (int);
0808 extern NCURSES_EXPORT(char *) slk_label (int);
0809 extern NCURSES_EXPORT(int) slk_noutrefresh (void);
0810 extern NCURSES_EXPORT(int) slk_refresh (void);
0811 extern NCURSES_EXPORT(int) slk_restore (void);
0812 extern NCURSES_EXPORT(int) slk_set (int,const char *,int);
0813 extern NCURSES_EXPORT(int) slk_touch (void);
0814 extern NCURSES_EXPORT(int) standout (void);
0815 extern NCURSES_EXPORT(int) standend (void);
0816 extern NCURSES_EXPORT(int) start_color (void);
0817 extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int);
0818 extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int);
0819 extern NCURSES_EXPORT(int) syncok (WINDOW *, bool);
0820 extern NCURSES_EXPORT(chtype) termattrs (void);
0821 extern NCURSES_EXPORT(char *) termname (void);
0822 extern NCURSES_EXPORT(void) timeout (int);
0823 extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int);
0824 extern NCURSES_EXPORT(int) touchwin (WINDOW *);
0825 extern NCURSES_EXPORT(int) typeahead (int);
0826 extern NCURSES_EXPORT(int) ungetch (int);
0827 extern NCURSES_EXPORT(int) untouchwin (WINDOW *);
0828 extern NCURSES_EXPORT(void) use_env (bool);
0829 extern NCURSES_EXPORT(void) use_tioctl (bool);
0830 extern NCURSES_EXPORT(int) vidattr (chtype);
0831 extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC);
0832 extern NCURSES_EXPORT(int) vline (chtype, int);
0833 extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw)
0834 GCC_PRINTFLIKE(2,0);
0835 extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list)
0836 GCC_PRINTFLIKE(2,0);
0837 extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw)
0838 GCC_SCANFLIKE(2,0);
0839 extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list)
0840 GCC_SCANFLIKE(2,0);
0841 extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype);
0842 extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int);
0843 extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *);
0844 extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int);
0845 extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *);
0846 extern NCURSES_EXPORT(int) wattron (WINDOW *, int);
0847 extern NCURSES_EXPORT(int) wattroff (WINDOW *, int);
0848 extern NCURSES_EXPORT(int) wattrset (WINDOW *, int);
0849 extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *);
0850 extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *);
0851 extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *);
0852 extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *);
0853 extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype);
0854 extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype);
0855 extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);
0856 extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);
0857 extern NCURSES_EXPORT(int) wclear (WINDOW *);
0858 extern NCURSES_EXPORT(int) wclrtobot (WINDOW *);
0859 extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *);
0860 extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*);
0861 extern NCURSES_EXPORT(void) wcursyncup (WINDOW *);
0862 extern NCURSES_EXPORT(int) wdelch (WINDOW *);
0863 extern NCURSES_EXPORT(int) wdeleteln (WINDOW *);
0864 extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype);
0865 extern NCURSES_EXPORT(int) werase (WINDOW *);
0866 extern NCURSES_EXPORT(int) wgetch (WINDOW *);
0867 extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);
0868 extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *);
0869 extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int);
0870 extern NCURSES_EXPORT(chtype) winch (WINDOW *);
0871 extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int);
0872 extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *);
0873 extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);
0874 extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype);
0875 extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int);
0876 extern NCURSES_EXPORT(int) winsertln (WINDOW *);
0877 extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int);
0878 extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *);
0879 extern NCURSES_EXPORT(int) winstr (WINDOW *, char *);
0880 extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int);
0881 extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *);
0882 extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...)
0883 GCC_PRINTFLIKE(2,3);
0884 extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int);
0885 extern NCURSES_EXPORT(int) wrefresh (WINDOW *);
0886 extern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...)
0887 GCC_SCANFLIKE(2,3);
0888 extern NCURSES_EXPORT(int) wscrl (WINDOW *,int);
0889 extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int);
0890 extern NCURSES_EXPORT(int) wstandout (WINDOW *);
0891 extern NCURSES_EXPORT(int) wstandend (WINDOW *);
0892 extern NCURSES_EXPORT(void) wsyncdown (WINDOW *);
0893 extern NCURSES_EXPORT(void) wsyncup (WINDOW *);
0894 extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int);
0895 extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int);
0896 extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int);
0897
0898
0899
0900
0901 extern NCURSES_EXPORT(int) tigetflag (const char *);
0902 extern NCURSES_EXPORT(int) tigetnum (const char *);
0903 extern NCURSES_EXPORT(char *) tigetstr (const char *);
0904 extern NCURSES_EXPORT(int) putp (const char *);
0905
0906 #if NCURSES_TPARM_VARARGS
0907 extern NCURSES_EXPORT(char *) tparm (const char *, ...);
0908 #else
0909 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);
0910 #endif
0911
0912 extern NCURSES_EXPORT(char *) tiparm (const char *, ...);
0913 extern NCURSES_EXPORT(char *) tiparm_s (int, int, const char *, ...);
0914 extern NCURSES_EXPORT(int) tiscan_s (int *, int *, const char *);
0915
0916
0917
0918
0919 extern NCURSES_EXPORT(int) getattrs (const WINDOW *);
0920 extern NCURSES_EXPORT(int) getcurx (const WINDOW *);
0921 extern NCURSES_EXPORT(int) getcury (const WINDOW *);
0922 extern NCURSES_EXPORT(int) getbegx (const WINDOW *);
0923 extern NCURSES_EXPORT(int) getbegy (const WINDOW *);
0924 extern NCURSES_EXPORT(int) getmaxx (const WINDOW *);
0925 extern NCURSES_EXPORT(int) getmaxy (const WINDOW *);
0926 extern NCURSES_EXPORT(int) getparx (const WINDOW *);
0927 extern NCURSES_EXPORT(int) getpary (const WINDOW *);
0928
0929
0930
0931
0932 #if !NCURSES_WIDECHAR
0933 #define vid_attr(a,pair,opts) vidattr(a)
0934 #endif
0935
0936
0937
0938
0939 #if 1
0940 #undef NCURSES_EXT_FUNCS
0941 #define NCURSES_EXT_FUNCS 20240427
0942 typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
0943 typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
0944 extern NCURSES_EXPORT(int) alloc_pair (int, int);
0945 extern NCURSES_EXPORT(int) assume_default_colors (int, int);
0946 extern NCURSES_EXPORT(const char *) curses_version (void);
0947 extern NCURSES_EXPORT(int) define_key (const char *, int);
0948 extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *);
0949 extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *);
0950 extern NCURSES_EXPORT(int) extended_slk_color(int);
0951 extern NCURSES_EXPORT(int) find_pair (int, int);
0952 extern NCURSES_EXPORT(int) free_pair (int);
0953 extern NCURSES_EXPORT(int) get_escdelay (void);
0954 extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int);
0955 extern NCURSES_EXPORT(int) init_extended_pair(int, int, int);
0956 extern NCURSES_EXPORT(int) is_cbreak(void);
0957 extern NCURSES_EXPORT(int) is_echo(void);
0958 extern NCURSES_EXPORT(int) is_nl(void);
0959 extern NCURSES_EXPORT(int) is_raw(void);
0960 extern NCURSES_EXPORT(bool) is_term_resized (int, int);
0961 extern NCURSES_EXPORT(int) key_defined (const char *);
0962 extern NCURSES_EXPORT(char *) keybound (int, int);
0963 extern NCURSES_EXPORT(int) keyok (int, bool);
0964 extern NCURSES_EXPORT(void) nofilter(void);
0965 extern NCURSES_EXPORT(void) reset_color_pairs (void);
0966 extern NCURSES_EXPORT(int) resize_term (int, int);
0967 extern NCURSES_EXPORT(int) resizeterm (int, int);
0968 extern NCURSES_EXPORT(int) set_escdelay (int);
0969 extern NCURSES_EXPORT(int) set_tabsize (int);
0970 extern NCURSES_EXPORT(int) use_default_colors (void);
0971 extern NCURSES_EXPORT(int) use_legacy_coding (int);
0972 extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *);
0973 extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *);
0974 extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
0975
0976 #if 1
0977 #undef NCURSES_XNAMES
0978 #define NCURSES_XNAMES 1
0979 extern NCURSES_EXPORT(int) use_extended_names (bool);
0980 #endif
0981
0982
0983
0984
0985
0986 extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *);
0987 extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *);
0988 extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *);
0989 extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *);
0990 extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *);
0991 extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *);
0992 extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *);
0993 extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *);
0994 extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *);
0995 extern NCURSES_EXPORT(bool) is_pad (const WINDOW *);
0996 extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *);
0997 extern NCURSES_EXPORT(bool) is_subwin (const WINDOW *);
0998 extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *);
0999 extern NCURSES_EXPORT(int) wgetdelay (const WINDOW *);
1000 extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *);
1001
1002 #else
1003 #define curses_version() NCURSES_VERSION
1004 #endif
1005
1006
1007
1008
1009
1010 #if 1
1011 #undef NCURSES_SP_FUNCS
1012 #define NCURSES_SP_FUNCS 20240427
1013 #define NCURSES_SP_NAME(name) name##_sp
1014
1015
1016 #define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC)
1017 typedef int (*NCURSES_SP_OUTC)(SCREEN*, int);
1018
1019 extern NCURSES_EXPORT(SCREEN *) new_prescr (void);
1020
1021 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*);
1022 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*);
1023 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*);
1024 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*);
1025 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int);
1026 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*);
1027 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*);
1028 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*);
1029 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int);
1030 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*);
1031 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*);
1032 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*);
1033 extern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);
1034 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*);
1035 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*);
1036 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*);
1037 extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *);
1038 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int);
1039 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*);
1040 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*);
1041 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*);
1042 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T);
1043 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T);
1044 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool);
1045 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*);
1046 extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int);
1047 extern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*);
1048 extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*);
1049 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int);
1050 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int);
1051 extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int);
1052 extern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *);
1053 extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int);
1054 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*);
1055 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*);
1056 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*);
1057 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*);
1058 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*);
1059 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*);
1060 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*);
1061 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*);
1062 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*);
1063 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*);
1064 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*);
1065 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*);
1066 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int));
1067 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*);
1068 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *);
1069 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *);
1070 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *);
1071 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype);
1072 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype);
1073 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype);
1074 extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*);
1075 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*);
1076 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*);
1077 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T);
1078 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int);
1079 extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int);
1080 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*);
1081 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*);
1082 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*);
1083 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int);
1084 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*);
1085 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*);
1086 extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*);
1087 extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*);
1088 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int);
1089 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int);
1090 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool);
1091 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool);
1092 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype);
1093 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC);
1094 #if 1
1095 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int);
1096 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int);
1097 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int);
1098 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *);
1099 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *);
1100 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int);
1101 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int);
1102 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int);
1103 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*);
1104 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int);
1105 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int);
1106 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_cbreak) (SCREEN*);
1107 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_echo) (SCREEN*);
1108 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_nl) (SCREEN*);
1109 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_raw) (SCREEN*);
1110 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int);
1111 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *);
1112 extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int);
1113 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool);
1114 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*);
1115 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*);
1116 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int);
1117 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int);
1118 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int);
1119 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int);
1120 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*);
1121 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int);
1122 #endif
1123 #else
1124 #undef NCURSES_SP_FUNCS
1125 #define NCURSES_SP_FUNCS 0
1126 #define NCURSES_SP_NAME(name) name
1127 #define NCURSES_SP_OUTC NCURSES_OUTC
1128 #endif
1129
1130
1131
1132 #define NCURSES_ATTR_SHIFT 8
1133 #define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT))
1134
1135 #define A_NORMAL (1U - 1U)
1136 #define A_ATTRIBUTES NCURSES_BITS(~(1U - 1U),0)
1137 #define A_CHARTEXT (NCURSES_BITS(1U,0) - 1U)
1138 #define A_COLOR NCURSES_BITS(((1U) << 8) - 1U,0)
1139 #define A_STANDOUT NCURSES_BITS(1U,8)
1140 #define A_UNDERLINE NCURSES_BITS(1U,9)
1141 #define A_REVERSE NCURSES_BITS(1U,10)
1142 #define A_BLINK NCURSES_BITS(1U,11)
1143 #define A_DIM NCURSES_BITS(1U,12)
1144 #define A_BOLD NCURSES_BITS(1U,13)
1145 #define A_ALTCHARSET NCURSES_BITS(1U,14)
1146 #define A_INVIS NCURSES_BITS(1U,15)
1147 #define A_PROTECT NCURSES_BITS(1U,16)
1148 #define A_HORIZONTAL NCURSES_BITS(1U,17)
1149 #define A_LEFT NCURSES_BITS(1U,18)
1150 #define A_LOW NCURSES_BITS(1U,19)
1151 #define A_RIGHT NCURSES_BITS(1U,20)
1152 #define A_TOP NCURSES_BITS(1U,21)
1153 #define A_VERTICAL NCURSES_BITS(1U,22)
1154
1155 #if 1
1156 #define A_ITALIC NCURSES_BITS(1U,23)
1157 #endif
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169 #define getyx(win,y,x) (y = getcury(win), x = getcurx(win))
1170 #define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win))
1171 #define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win))
1172 #define getparyx(win,y,x) (y = getpary(win), x = getparx(win))
1173
1174 #define getsyx(y,x) do { if (newscr) { \
1175 if (is_leaveok(newscr)) \
1176 (y) = (x) = -1; \
1177 else \
1178 getyx(newscr,(y), (x)); \
1179 } \
1180 } while(0)
1181
1182 #define setsyx(y,x) do { if (newscr) { \
1183 if ((y) == -1 && (x) == -1) \
1184 leaveok(newscr, TRUE); \
1185 else { \
1186 leaveok(newscr, FALSE); \
1187 wmove(newscr, (y), (x)); \
1188 } \
1189 } \
1190 } while(0)
1191
1192 #ifndef NCURSES_NOMACROS
1193
1194
1195
1196
1197
1198 #define wgetstr(w, s) wgetnstr(w, s, -1)
1199 #define getnstr(s, n) wgetnstr(stdscr, s, (n))
1200
1201 #define setterm(term) setupterm(term, 1, (int *)0)
1202
1203 #define fixterm() reset_prog_mode()
1204 #define resetterm() reset_shell_mode()
1205 #define saveterm() def_prog_mode()
1206 #define crmode() cbreak()
1207 #define nocrmode() nocbreak()
1208 #define gettmode()
1209
1210
1211 #if !NCURSES_OPAQUE
1212 #define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL)
1213 #define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR)
1214 #define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR)
1215 #define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR)
1216 #define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR)
1217 #define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR)
1218 #define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR)
1219 #define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR)
1220 #define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR)
1221 #endif
1222
1223 #define wstandout(win) (wattrset(win,A_STANDOUT))
1224 #define wstandend(win) (wattrset(win,A_NORMAL))
1225
1226 #define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL)
1227 #define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
1228
1229 #if !NCURSES_OPAQUE
1230 #if NCURSES_WATTR_MACROS
1231 #if NCURSES_WIDECHAR && 1
1232 #define wattrset(win,at) \
1233 (NCURSES_OK_ADDR(win) \
1234 ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \
1235 (win)->_attrs = NCURSES_CAST(attr_t, at), \
1236 OK) \
1237 : ERR)
1238 #else
1239 #define wattrset(win,at) \
1240 (NCURSES_OK_ADDR(win) \
1241 ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \
1242 OK) \
1243 : ERR)
1244 #endif
1245 #endif
1246 #endif
1247
1248 #define scroll(win) wscrl(win,1)
1249
1250 #define touchwin(win) wtouchln((win), 0, getmaxy(win), 1)
1251 #define touchline(win, s, c) wtouchln((win), s, c, 1)
1252 #define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0)
1253
1254 #define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0)
1255 #define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br)
1256 #define hline(ch, n) whline(stdscr, ch, (n))
1257 #define vline(ch, n) wvline(stdscr, ch, (n))
1258
1259 #define winstr(w, s) winnstr(w, s, -1)
1260 #define winchstr(w, s) winchnstr(w, s, -1)
1261 #define winsstr(w, s) winsnstr(w, s, -1)
1262
1263 #if !NCURSES_OPAQUE
1264 #define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1))
1265 #endif
1266
1267 #define waddstr(win,str) waddnstr(win,str,-1)
1268 #define waddchstr(win,str) waddchnstr(win,str,-1)
1269
1270
1271
1272
1273 #define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR)
1274 #define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
1275
1276
1277
1278
1279
1280 #define addch(ch) waddch(stdscr,(ch))
1281 #define addchnstr(str,n) waddchnstr(stdscr,(str),(n))
1282 #define addchstr(str) waddchstr(stdscr,(str))
1283 #define addnstr(str,n) waddnstr(stdscr,(str),(n))
1284 #define addstr(str) waddnstr(stdscr,(str),-1)
1285 #define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o))
1286 #define attr_off(a,o) wattr_off(stdscr,(a),(o))
1287 #define attr_on(a,o) wattr_on(stdscr,(a),(o))
1288 #define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o))
1289 #define attroff(at) wattroff(stdscr,(at))
1290 #define attron(at) wattron(stdscr,(at))
1291 #define attrset(at) wattrset(stdscr,(at))
1292 #define bkgd(ch) wbkgd(stdscr,(ch))
1293 #define bkgdset(ch) wbkgdset(stdscr,(ch))
1294 #define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o))
1295 #define clear() wclear(stdscr)
1296 #define clrtobot() wclrtobot(stdscr)
1297 #define clrtoeol() wclrtoeol(stdscr)
1298 #define color_set(c,o) wcolor_set(stdscr,(c),(o))
1299 #define delch() wdelch(stdscr)
1300 #define deleteln() winsdelln(stdscr,-1)
1301 #define echochar(c) wechochar(stdscr,(c))
1302 #define erase() werase(stdscr)
1303 #define getch() wgetch(stdscr)
1304 #define getstr(str) wgetstr(stdscr,(str))
1305 #define inch() winch(stdscr)
1306 #define inchnstr(s,n) winchnstr(stdscr,(s),(n))
1307 #define inchstr(s) winchstr(stdscr,(s))
1308 #define innstr(s,n) winnstr(stdscr,(s),(n))
1309 #define insch(c) winsch(stdscr,(c))
1310 #define insdelln(n) winsdelln(stdscr,(n))
1311 #define insertln() winsdelln(stdscr,1)
1312 #define insnstr(s,n) winsnstr(stdscr,(s),(n))
1313 #define insstr(s) winsstr(stdscr,(s))
1314 #define instr(s) winstr(stdscr,(s))
1315 #define move(y,x) wmove(stdscr,(y),(x))
1316 #define refresh() wrefresh(stdscr)
1317 #define scrl(n) wscrl(stdscr,(n))
1318 #define setscrreg(t,b) wsetscrreg(stdscr,(t),(b))
1319 #define standend() wstandend(stdscr)
1320 #define standout() wstandout(stdscr)
1321 #define timeout(delay) wtimeout(stdscr,(delay))
1322 #define wdeleteln(win) winsdelln(win,-1)
1323 #define winsertln(win) winsdelln(win,1)
1324
1325
1326
1327
1328
1329 #define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch)))
1330 #define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n)))
1331 #define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1))
1332 #define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n)))
1333 #define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1))
1334 #define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o)))
1335 #define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win))
1336 #define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win))
1337 #define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n)))
1338 #define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str)))
1339 #define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n)))
1340 #define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
1341 #define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n)))
1342 #define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s)))
1343 #define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n)))
1344 #define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c)))
1345 #define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n)))
1346 #define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s)))
1347 #define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s)))
1348 #define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n)))
1349
1350 #define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch))
1351 #define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n))
1352 #define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str))
1353 #define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n))
1354 #define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str))
1355 #define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o))
1356 #define mvdelch(y,x) mvwdelch(stdscr,(y),(x))
1357 #define mvgetch(y,x) mvwgetch(stdscr,(y),(x))
1358 #define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n))
1359 #define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str))
1360 #define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n))
1361 #define mvinch(y,x) mvwinch(stdscr,(y),(x))
1362 #define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n))
1363 #define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s))
1364 #define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n))
1365 #define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c))
1366 #define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n))
1367 #define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s))
1368 #define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s))
1369 #define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n))
1370
1371
1372
1373
1374 #if !NCURSES_OPAQUE
1375 #define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0)
1376 #endif
1377
1378 #define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))
1379 #define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
1380
1381 #if !NCURSES_OPAQUE
1382 #if NCURSES_WATTR_MACROS
1383 #if NCURSES_WIDECHAR && 1
1384 #define wattr_set(win,a,p,opts) \
1385 (NCURSES_OK_ADDR(win) \
1386 ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \
1387 (win)->_color = (opts) ? *(int *)(opts) : (p)), \
1388 OK) \
1389 : ERR)
1390 #define wattr_get(win,a,p,opts) \
1391 (NCURSES_OK_ADDR(win) \
1392 ? ((void)(NCURSES_OK_ADDR(a) \
1393 ? (*(a) = (win)->_attrs) \
1394 : OK), \
1395 (void)(NCURSES_OK_ADDR(p) \
1396 ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \
1397 : OK), \
1398 (void)(NCURSES_OK_ADDR(opts) \
1399 ? (*(int *)(opts) = (win)->_color) \
1400 : OK), \
1401 OK) \
1402 : ERR)
1403 #else
1404 #define wattr_set(win,a,p,opts) \
1405 (NCURSES_OK_ADDR(win) \
1406 ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \
1407 (attr_t)COLOR_PAIR(p))), \
1408 OK) \
1409 : ERR)
1410 #define wattr_get(win,a,p,opts) \
1411 (NCURSES_OK_ADDR(win) \
1412 ? ((void)(NCURSES_OK_ADDR(a) \
1413 ? (*(a) = (win)->_attrs) \
1414 : OK), \
1415 (void)(NCURSES_OK_ADDR(p) \
1416 ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \
1417 : OK), \
1418 OK) \
1419 : ERR)
1420 #endif
1421 #endif
1422 #endif
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436 #if !1
1437 #define vsscanf(a,b,c) _nc_vsscanf(a,b,c)
1438 NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
1439 #endif
1440
1441
1442
1443
1444 #if 1
1445 #if !NCURSES_OPAQUE
1446 #define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE)
1447 #define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE)
1448 #define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE)
1449 #define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE)
1450 #define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE)
1451 #define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE)
1452 #define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE)
1453 #define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE)
1454 #define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE)
1455 #define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE)
1456 #define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE)
1457 #define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE)
1458 #define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0)
1459 #define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0)
1460 #define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR)
1461 #endif
1462 #endif
1463
1464
1465
1466
1467
1468 #define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l)))
1469
1470 #endif
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480 #if NCURSES_REENTRANT
1481
1482 NCURSES_WRAPPED_VAR(WINDOW *, curscr);
1483 NCURSES_WRAPPED_VAR(WINDOW *, newscr);
1484 NCURSES_WRAPPED_VAR(WINDOW *, stdscr);
1485 NCURSES_WRAPPED_VAR(char *, ttytype);
1486 NCURSES_WRAPPED_VAR(int, COLORS);
1487 NCURSES_WRAPPED_VAR(int, COLOR_PAIRS);
1488 NCURSES_WRAPPED_VAR(int, COLS);
1489 NCURSES_WRAPPED_VAR(int, ESCDELAY);
1490 NCURSES_WRAPPED_VAR(int, LINES);
1491 NCURSES_WRAPPED_VAR(int, TABSIZE);
1492
1493 #define curscr NCURSES_PUBLIC_VAR(curscr())
1494 #define newscr NCURSES_PUBLIC_VAR(newscr())
1495 #define stdscr NCURSES_PUBLIC_VAR(stdscr())
1496 #define ttytype NCURSES_PUBLIC_VAR(ttytype())
1497 #define COLORS NCURSES_PUBLIC_VAR(COLORS())
1498 #define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS())
1499 #define COLS NCURSES_PUBLIC_VAR(COLS())
1500 #define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY())
1501 #define LINES NCURSES_PUBLIC_VAR(LINES())
1502 #define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE())
1503
1504 #else
1505
1506 extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
1507 extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
1508 extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
1509 extern NCURSES_EXPORT_VAR(char) ttytype[];
1510 extern NCURSES_EXPORT_VAR(int) COLORS;
1511 extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
1512 extern NCURSES_EXPORT_VAR(int) COLS;
1513 extern NCURSES_EXPORT_VAR(int) ESCDELAY;
1514 extern NCURSES_EXPORT_VAR(int) LINES;
1515 extern NCURSES_EXPORT_VAR(int) TABSIZE;
1516
1517 #endif
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531 #define KEY_CODE_YES 0400
1532 #define KEY_MIN 0401
1533 #define KEY_BREAK 0401
1534 #define KEY_SRESET 0530
1535 #define KEY_RESET 0531
1536
1537
1538
1539 #define KEY_DOWN 0402
1540 #define KEY_UP 0403
1541 #define KEY_LEFT 0404
1542 #define KEY_RIGHT 0405
1543 #define KEY_HOME 0406
1544 #define KEY_BACKSPACE 0407
1545 #define KEY_F0 0410
1546 #define KEY_F(n) (KEY_F0+(n))
1547 #define KEY_DL 0510
1548 #define KEY_IL 0511
1549 #define KEY_DC 0512
1550 #define KEY_IC 0513
1551 #define KEY_EIC 0514
1552 #define KEY_CLEAR 0515
1553 #define KEY_EOS 0516
1554 #define KEY_EOL 0517
1555 #define KEY_SF 0520
1556 #define KEY_SR 0521
1557 #define KEY_NPAGE 0522
1558 #define KEY_PPAGE 0523
1559 #define KEY_STAB 0524
1560 #define KEY_CTAB 0525
1561 #define KEY_CATAB 0526
1562 #define KEY_ENTER 0527
1563 #define KEY_PRINT 0532
1564 #define KEY_LL 0533
1565 #define KEY_A1 0534
1566 #define KEY_A3 0535
1567 #define KEY_B2 0536
1568 #define KEY_C1 0537
1569 #define KEY_C3 0540
1570 #define KEY_BTAB 0541
1571 #define KEY_BEG 0542
1572 #define KEY_CANCEL 0543
1573 #define KEY_CLOSE 0544
1574 #define KEY_COMMAND 0545
1575 #define KEY_COPY 0546
1576 #define KEY_CREATE 0547
1577 #define KEY_END 0550
1578 #define KEY_EXIT 0551
1579 #define KEY_FIND 0552
1580 #define KEY_HELP 0553
1581 #define KEY_MARK 0554
1582 #define KEY_MESSAGE 0555
1583 #define KEY_MOVE 0556
1584 #define KEY_NEXT 0557
1585 #define KEY_OPEN 0560
1586 #define KEY_OPTIONS 0561
1587 #define KEY_PREVIOUS 0562
1588 #define KEY_REDO 0563
1589 #define KEY_REFERENCE 0564
1590 #define KEY_REFRESH 0565
1591 #define KEY_REPLACE 0566
1592 #define KEY_RESTART 0567
1593 #define KEY_RESUME 0570
1594 #define KEY_SAVE 0571
1595 #define KEY_SBEG 0572
1596 #define KEY_SCANCEL 0573
1597 #define KEY_SCOMMAND 0574
1598 #define KEY_SCOPY 0575
1599 #define KEY_SCREATE 0576
1600 #define KEY_SDC 0577
1601 #define KEY_SDL 0600
1602 #define KEY_SELECT 0601
1603 #define KEY_SEND 0602
1604 #define KEY_SEOL 0603
1605 #define KEY_SEXIT 0604
1606 #define KEY_SFIND 0605
1607 #define KEY_SHELP 0606
1608 #define KEY_SHOME 0607
1609 #define KEY_SIC 0610
1610 #define KEY_SLEFT 0611
1611 #define KEY_SMESSAGE 0612
1612 #define KEY_SMOVE 0613
1613 #define KEY_SNEXT 0614
1614 #define KEY_SOPTIONS 0615
1615 #define KEY_SPREVIOUS 0616
1616 #define KEY_SPRINT 0617
1617 #define KEY_SREDO 0620
1618 #define KEY_SREPLACE 0621
1619 #define KEY_SRIGHT 0622
1620 #define KEY_SRSUME 0623
1621 #define KEY_SSAVE 0624
1622 #define KEY_SSUSPEND 0625
1623 #define KEY_SUNDO 0626
1624 #define KEY_SUSPEND 0627
1625 #define KEY_UNDO 0630
1626 #define KEY_MOUSE 0631
1627
1628 #if NCURSES_SIGWINCH
1629 #define KEY_RESIZE 0632
1630 #endif
1631
1632 #define KEY_MAX 0777
1633
1634
1635
1636
1637
1638
1639 #define _XOPEN_CURSES 1
1640
1641 #if NCURSES_WIDECHAR
1642
1643 extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
1644
1645 #define NCURSES_WACS(c) (&_nc_wacs[NCURSES_CAST(unsigned char,(c))])
1646
1647 #define WACS_BSSB NCURSES_WACS('l')
1648 #define WACS_SSBB NCURSES_WACS('m')
1649 #define WACS_BBSS NCURSES_WACS('k')
1650 #define WACS_SBBS NCURSES_WACS('j')
1651 #define WACS_SBSS NCURSES_WACS('u')
1652 #define WACS_SSSB NCURSES_WACS('t')
1653 #define WACS_SSBS NCURSES_WACS('v')
1654 #define WACS_BSSS NCURSES_WACS('w')
1655 #define WACS_BSBS NCURSES_WACS('q')
1656 #define WACS_SBSB NCURSES_WACS('x')
1657 #define WACS_SSSS NCURSES_WACS('n')
1658
1659 #define WACS_ULCORNER WACS_BSSB
1660 #define WACS_LLCORNER WACS_SSBB
1661 #define WACS_URCORNER WACS_BBSS
1662 #define WACS_LRCORNER WACS_SBBS
1663 #define WACS_RTEE WACS_SBSS
1664 #define WACS_LTEE WACS_SSSB
1665 #define WACS_BTEE WACS_SSBS
1666 #define WACS_TTEE WACS_BSSS
1667 #define WACS_HLINE WACS_BSBS
1668 #define WACS_VLINE WACS_SBSB
1669 #define WACS_PLUS WACS_SSSS
1670
1671 #define WACS_S1 NCURSES_WACS('o')
1672 #define WACS_S9 NCURSES_WACS('s')
1673 #define WACS_DIAMOND NCURSES_WACS('`')
1674 #define WACS_CKBOARD NCURSES_WACS('a')
1675 #define WACS_DEGREE NCURSES_WACS('f')
1676 #define WACS_PLMINUS NCURSES_WACS('g')
1677 #define WACS_BULLET NCURSES_WACS('~')
1678
1679
1680 #define WACS_LARROW NCURSES_WACS(',')
1681 #define WACS_RARROW NCURSES_WACS('+')
1682 #define WACS_DARROW NCURSES_WACS('.')
1683 #define WACS_UARROW NCURSES_WACS('-')
1684 #define WACS_BOARD NCURSES_WACS('h')
1685 #define WACS_LANTERN NCURSES_WACS('i')
1686 #define WACS_BLOCK NCURSES_WACS('0')
1687
1688
1689 #define WACS_S3 NCURSES_WACS('p')
1690 #define WACS_S7 NCURSES_WACS('r')
1691 #define WACS_LEQUAL NCURSES_WACS('y')
1692 #define WACS_GEQUAL NCURSES_WACS('z')
1693 #define WACS_PI NCURSES_WACS('{')
1694 #define WACS_NEQUAL NCURSES_WACS('|')
1695 #define WACS_STERLING NCURSES_WACS('}')
1696
1697
1698 #define WACS_BDDB NCURSES_WACS('C')
1699 #define WACS_DDBB NCURSES_WACS('D')
1700 #define WACS_BBDD NCURSES_WACS('B')
1701 #define WACS_DBBD NCURSES_WACS('A')
1702 #define WACS_DBDD NCURSES_WACS('G')
1703 #define WACS_DDDB NCURSES_WACS('F')
1704 #define WACS_DDBD NCURSES_WACS('H')
1705 #define WACS_BDDD NCURSES_WACS('I')
1706 #define WACS_BDBD NCURSES_WACS('R')
1707 #define WACS_DBDB NCURSES_WACS('Y')
1708 #define WACS_DDDD NCURSES_WACS('E')
1709
1710 #define WACS_D_ULCORNER WACS_BDDB
1711 #define WACS_D_LLCORNER WACS_DDBB
1712 #define WACS_D_URCORNER WACS_BBDD
1713 #define WACS_D_LRCORNER WACS_DBBD
1714 #define WACS_D_RTEE WACS_DBDD
1715 #define WACS_D_LTEE WACS_DDDB
1716 #define WACS_D_BTEE WACS_DDBD
1717 #define WACS_D_TTEE WACS_BDDD
1718 #define WACS_D_HLINE WACS_BDBD
1719 #define WACS_D_VLINE WACS_DBDB
1720 #define WACS_D_PLUS WACS_DDDD
1721
1722
1723 #define WACS_BTTB NCURSES_WACS('L')
1724 #define WACS_TTBB NCURSES_WACS('M')
1725 #define WACS_BBTT NCURSES_WACS('K')
1726 #define WACS_TBBT NCURSES_WACS('J')
1727 #define WACS_TBTT NCURSES_WACS('U')
1728 #define WACS_TTTB NCURSES_WACS('T')
1729 #define WACS_TTBT NCURSES_WACS('V')
1730 #define WACS_BTTT NCURSES_WACS('W')
1731 #define WACS_BTBT NCURSES_WACS('Q')
1732 #define WACS_TBTB NCURSES_WACS('X')
1733 #define WACS_TTTT NCURSES_WACS('N')
1734
1735 #define WACS_T_ULCORNER WACS_BTTB
1736 #define WACS_T_LLCORNER WACS_TTBB
1737 #define WACS_T_URCORNER WACS_BBTT
1738 #define WACS_T_LRCORNER WACS_TBBT
1739 #define WACS_T_RTEE WACS_TBTT
1740 #define WACS_T_LTEE WACS_TTTB
1741 #define WACS_T_BTEE WACS_TTBT
1742 #define WACS_T_TTEE WACS_BTTT
1743 #define WACS_T_HLINE WACS_BTBT
1744 #define WACS_T_VLINE WACS_TBTB
1745 #define WACS_T_PLUS WACS_TTTT
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756 extern NCURSES_EXPORT(int) add_wch (const cchar_t *);
1757 extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int);
1758 extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *);
1759 extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int);
1760 extern NCURSES_EXPORT(int) addwstr (const wchar_t *);
1761 extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *);
1762 extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *);
1763 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*);
1764 extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *);
1765 extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *);
1766 extern NCURSES_EXPORT(int) erasewchar (wchar_t*);
1767 extern NCURSES_EXPORT(int) get_wch (wint_t *);
1768 extern NCURSES_EXPORT(int) get_wstr (wint_t *);
1769 extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *);
1770 extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, NCURSES_PAIRS_T*, void*);
1771 extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int);
1772 extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int);
1773 extern NCURSES_EXPORT(int) in_wch (cchar_t *);
1774 extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int);
1775 extern NCURSES_EXPORT(int) in_wchstr (cchar_t *);
1776 extern NCURSES_EXPORT(int) innwstr (wchar_t *, int);
1777 extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int);
1778 extern NCURSES_EXPORT(int) ins_wch (const cchar_t *);
1779 extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *);
1780 extern NCURSES_EXPORT(int) inwstr (wchar_t *);
1781 extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t);
1782 extern NCURSES_EXPORT(int) killwchar (wchar_t *);
1783 extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *);
1784 extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);
1785 extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *);
1786 extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int);
1787 extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *);
1788 extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *);
1789 extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *);
1790 extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int);
1791 extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int);
1792 extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *);
1793 extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int);
1794 extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *);
1795 extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int);
1796 extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int);
1797 extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *);
1798 extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *);
1799 extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *);
1800 extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int);
1801 extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *);
1802 extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int);
1803 extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *);
1804 extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);
1805 extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *);
1806 extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *);
1807 extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *);
1808 extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);
1809 extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);
1810 extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *);
1811 extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int);
1812 extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *);
1813 extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int);
1814 extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int);
1815 extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *);
1816 extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *);
1817 extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *);
1818 extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int);
1819 extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *);
1820 extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, NCURSES_PAIRS_T, const void *);
1821 extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int);
1822 extern NCURSES_EXPORT(attr_t) term_attrs (void);
1823 extern NCURSES_EXPORT(int) unget_wch (const wchar_t);
1824 extern NCURSES_EXPORT(int) vid_attr (attr_t, NCURSES_PAIRS_T, void *);
1825 extern NCURSES_EXPORT(int) vid_puts (attr_t, NCURSES_PAIRS_T, void *, NCURSES_OUTC);
1826 extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int);
1827 extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *);
1828 extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int);
1829 extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *);
1830 extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int);
1831 extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *);
1832 extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *);
1833 extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *);
1834 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*);
1835 extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *);
1836 extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *);
1837 extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *);
1838 extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *);
1839 extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *, wint_t *, int);
1840 extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int);
1841 extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *);
1842 extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int);
1843 extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *);
1844 extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int);
1845 extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int);
1846 extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *);
1847 extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *);
1848 extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *);
1849 extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *);
1850 extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int);
1851
1852 #if NCURSES_SP_FUNCS
1853 extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(term_attrs) (SCREEN*);
1854 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(erasewchar) (SCREEN*, wchar_t *);
1855 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(killwchar) (SCREEN*, wchar_t *);
1856 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(unget_wch) (SCREEN*, const wchar_t);
1857 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *);
1858 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *, NCURSES_SP_OUTC);
1859 extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *);
1860 #endif
1861
1862 #ifndef NCURSES_NOMACROS
1863
1864
1865
1866
1867 #define add_wch(c) wadd_wch(stdscr,(c))
1868 #define add_wchnstr(str,n) wadd_wchnstr(stdscr,(str),(n))
1869 #define add_wchstr(str) wadd_wchstr(stdscr,(str))
1870 #define addnwstr(wstr,n) waddnwstr(stdscr,(wstr),(n))
1871 #define addwstr(wstr) waddwstr(stdscr,(wstr))
1872 #define bkgrnd(c) wbkgrnd(stdscr,(c))
1873 #define bkgrndset(c) wbkgrndset(stdscr,(c))
1874 #define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,(l),(r),(t),(b),tl,tr,bl,br)
1875 #define box_set(w,v,h) wborder_set((w),(v),(v),(h),(h),0,0,0,0)
1876 #define echo_wchar(c) wecho_wchar(stdscr,(c))
1877 #define get_wch(c) wget_wch(stdscr,(c))
1878 #define get_wstr(t) wget_wstr(stdscr,(t))
1879 #define getbkgrnd(wch) wgetbkgrnd(stdscr,(wch))
1880 #define getn_wstr(t,n) wgetn_wstr(stdscr,(t),(n))
1881 #define hline_set(c,n) whline_set(stdscr,(c),(n))
1882 #define in_wch(c) win_wch(stdscr,(c))
1883 #define in_wchnstr(c,n) win_wchnstr(stdscr,(c),(n))
1884 #define in_wchstr(c) win_wchstr(stdscr,(c))
1885 #define innwstr(c,n) winnwstr(stdscr,(c),(n))
1886 #define ins_nwstr(t,n) wins_nwstr(stdscr,(t),(n))
1887 #define ins_wch(c) wins_wch(stdscr,(c))
1888 #define ins_wstr(t) wins_wstr(stdscr,(t))
1889 #define inwstr(c) winwstr(stdscr,(c))
1890 #define vline_set(c,n) wvline_set(stdscr,(c),(n))
1891 #define wadd_wchstr(win,str) wadd_wchnstr((win),(str),-1)
1892 #define waddwstr(win,wstr) waddnwstr((win),(wstr),-1)
1893 #define wget_wstr(w,t) wgetn_wstr((w),(t),-1)
1894 #define win_wchstr(w,c) win_wchnstr((w),(c),-1)
1895 #define wins_wstr(w,t) wins_nwstr((w),(t),-1)
1896
1897 #if !NCURSES_OPAQUE
1898 #define wgetbkgrnd(win,wch) (NCURSES_OK_ADDR(wch) ? ((win) ? (*(wch) = (win)->_bkgrnd) : *(wch), OK) : ERR)
1899 #endif
1900
1901 #define mvadd_wch(y,x,c) mvwadd_wch(stdscr,(y),(x),(c))
1902 #define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,(y),(x),(s),(n))
1903 #define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,(y),(x),(s))
1904 #define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,(y),(x),(wstr),(n))
1905 #define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,(y),(x),(wstr))
1906 #define mvget_wch(y,x,c) mvwget_wch(stdscr,(y),(x),(c))
1907 #define mvget_wstr(y,x,t) mvwget_wstr(stdscr,(y),(x),(t))
1908 #define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,(y),(x),(t),(n))
1909 #define mvhline_set(y,x,c,n) mvwhline_set(stdscr,(y),(x),(c),(n))
1910 #define mvin_wch(y,x,c) mvwin_wch(stdscr,(y),(x),(c))
1911 #define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,(y),(x),(c),(n))
1912 #define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,(y),(x),(c))
1913 #define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,(y),(x),(c),(n))
1914 #define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,(y),(x),(t),(n))
1915 #define mvins_wch(y,x,c) mvwins_wch(stdscr,(y),(x),(c))
1916 #define mvins_wstr(y,x,t) mvwins_wstr(stdscr,(y),(x),(t))
1917 #define mvinwstr(y,x,c) mvwinwstr(stdscr,(y),(x),(c))
1918 #define mvvline_set(y,x,c,n) mvwvline_set(stdscr,(y),(x),(c),(n))
1919
1920 #define mvwadd_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wch((win),(c)))
1921 #define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchnstr((win),(s),(n)))
1922 #define mvwadd_wchstr(win,y,x,s) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchstr((win),(s)))
1923 #define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,(y),(x)) == ERR ? ERR : waddnwstr((win),(wstr),(n)))
1924 #define mvwaddwstr(win,y,x,wstr) (wmove(win,(y),(x)) == ERR ? ERR : waddwstr((win),(wstr)))
1925 #define mvwget_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wget_wch((win),(c)))
1926 #define mvwget_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wget_wstr((win),(t)))
1927 #define mvwgetn_wstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wgetn_wstr((win),(t),(n)))
1928 #define mvwhline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : whline_set((win),(c),(n)))
1929 #define mvwin_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wch((win),(c)))
1930 #define mvwin_wchnstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : win_wchnstr((win),(c),(n)))
1931 #define mvwin_wchstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wchstr((win),(c)))
1932 #define mvwinnwstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : winnwstr((win),(c),(n)))
1933 #define mvwins_nwstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wins_nwstr((win),(t),(n)))
1934 #define mvwins_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wins_wch((win),(c)))
1935 #define mvwins_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wins_wstr((win),(t)))
1936 #define mvwinwstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : winwstr((win),(c)))
1937 #define mvwvline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : wvline_set((win),(c),(n)))
1938
1939 #endif
1940
1941 #if defined(TRACE) || defined(NCURSES_TEST)
1942 extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
1943 extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *);
1944 #endif
1945
1946 #endif
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956 #if NCURSES_MOUSE_VERSION > 1
1957 #define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5))
1958 #else
1959 #define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6))
1960 #endif
1961
1962 #define NCURSES_BUTTON_RELEASED 001UL
1963 #define NCURSES_BUTTON_PRESSED 002UL
1964 #define NCURSES_BUTTON_CLICKED 004UL
1965 #define NCURSES_DOUBLE_CLICKED 010UL
1966 #define NCURSES_TRIPLE_CLICKED 020UL
1967 #define NCURSES_RESERVED_EVENT 040UL
1968
1969
1970 #define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)
1971 #define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED)
1972 #define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED)
1973 #define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED)
1974 #define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED)
1975
1976 #define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED)
1977 #define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED)
1978 #define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED)
1979 #define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED)
1980 #define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED)
1981
1982 #define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED)
1983 #define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED)
1984 #define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED)
1985 #define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED)
1986 #define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED)
1987
1988 #define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED)
1989 #define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED)
1990 #define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED)
1991 #define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED)
1992 #define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED)
1993
1994
1995
1996
1997
1998 #if NCURSES_MOUSE_VERSION > 1
1999
2000 #define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED)
2001 #define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED)
2002 #define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED)
2003 #define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED)
2004 #define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED)
2005
2006 #define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L)
2007 #define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L)
2008 #define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L)
2009 #define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L)
2010
2011 #else
2012
2013 #define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT)
2014 #define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT)
2015 #define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT)
2016 #define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT)
2017
2018 #define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L)
2019 #define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L)
2020 #define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L)
2021 #define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L)
2022
2023 #endif
2024
2025 #define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1)
2026
2027
2028 #define BUTTON_RELEASE(e, x) ((e) & NCURSES_MOUSE_MASK(x, 001))
2029 #define BUTTON_PRESS(e, x) ((e) & NCURSES_MOUSE_MASK(x, 002))
2030 #define BUTTON_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 004))
2031 #define BUTTON_DOUBLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 010))
2032 #define BUTTON_TRIPLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 020))
2033 #define BUTTON_RESERVED_EVENT(e, x) ((e) & NCURSES_MOUSE_MASK(x, 040))
2034
2035 typedef struct
2036 {
2037 short id;
2038 int x, y, z;
2039 mmask_t bstate;
2040 }
2041 MEVENT;
2042
2043 extern NCURSES_EXPORT(bool) has_mouse(void);
2044 extern NCURSES_EXPORT(int) getmouse (MEVENT *);
2045 extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);
2046 extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);
2047 extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);
2048 extern NCURSES_EXPORT(int) mouseinterval (int);
2049 extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool);
2050 extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool);
2051
2052 #if NCURSES_SP_FUNCS
2053 extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_mouse) (SCREEN*);
2054 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(getmouse) (SCREEN*, MEVENT *);
2055 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetmouse) (SCREEN*,MEVENT *);
2056 extern NCURSES_EXPORT(mmask_t) NCURSES_SP_NAME(mousemask) (SCREEN*, mmask_t, mmask_t *);
2057 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mouseinterval) (SCREEN*, int);
2058 #endif
2059
2060 #ifndef NCURSES_NOMACROS
2061 #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
2062 #endif
2063
2064
2065
2066 extern NCURSES_EXPORT(int) mcprint (char *, int);
2067 extern NCURSES_EXPORT(int) has_key (int);
2068
2069 #if NCURSES_SP_FUNCS
2070 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN*, int);
2071 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mcprint) (SCREEN*, char *, int);
2072 #endif
2073
2074
2075
2076 extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
2077 extern NCURSES_EXPORT(char *) _traceattr (attr_t);
2078 extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype);
2079 extern NCURSES_EXPORT(char *) _tracechar (int);
2080 extern NCURSES_EXPORT(char *) _tracechtype (chtype);
2081 extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);
2082 #if NCURSES_WIDECHAR
2083 #define _tracech_t _tracecchar_t
2084 extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *);
2085 #define _tracech_t2 _tracecchar_t2
2086 extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *);
2087 #else
2088 #define _tracech_t _tracechtype
2089 #define _tracech_t2 _tracechtype2
2090 #endif
2091 extern NCURSES_EXPORT(void) trace (const unsigned) GCC_DEPRECATED("use curses_trace");
2092 extern NCURSES_EXPORT(unsigned) curses_trace (const unsigned);
2093
2094
2095 #define TRACE_DISABLE 0x0000
2096 #define TRACE_TIMES 0x0001
2097 #define TRACE_TPUTS 0x0002
2098 #define TRACE_UPDATE 0x0004
2099 #define TRACE_MOVE 0x0008
2100 #define TRACE_CHARPUT 0x0010
2101 #define TRACE_ORDINARY 0x001F
2102 #define TRACE_CALLS 0x0020
2103 #define TRACE_VIRTPUT 0x0040
2104 #define TRACE_IEVENT 0x0080
2105 #define TRACE_BITS 0x0100
2106 #define TRACE_ICALLS 0x0200
2107 #define TRACE_CCALLS 0x0400
2108 #define TRACE_DATABASE 0x0800
2109 #define TRACE_ATTRS 0x1000
2110
2111 #define TRACE_SHIFT 13
2112 #define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1)
2113
2114 #if defined(TRACE) || defined(NCURSES_TEST)
2115 extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable;
2116 extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
2117 #define OPTIMIZE_MVCUR 0x01
2118 #define OPTIMIZE_HASHMAP 0x02
2119 #define OPTIMIZE_SCROLL 0x04
2120 #define OPTIMIZE_ALL 0xff
2121 #endif
2122
2123 extern GCC_NORETURN NCURSES_EXPORT(void) exit_curses (int);
2124
2125 #include <ncursesw/unctrl.h>
2126
2127 #ifdef __cplusplus
2128
2129 #ifndef NCURSES_NOMACROS
2130
2131
2132 #undef box
2133 #undef clear
2134 #undef erase
2135 #undef move
2136 #undef refresh
2137
2138 #endif
2139
2140 }
2141 #endif
2142
2143 #endif