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