home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / uccs / root.11 / usr / include / stdcurses.h
C/C++ Source or Header  |  1998-08-19  |  56KB  |  1,737 lines

  1. #ifdef IDENT
  2. #ident    "@(#)icurses:screen/term/curses.ed    1.53.1.2"
  3. #endif /* IDENT */
  4.  
  5. /*
  6.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  7.  *                                                                         
  8.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  9.  *                   SANTA CRUZ OPERATION INC.                             
  10.  *                                                                         
  11.  *   The copyright notice above does not evidence any actual or intended   
  12.  *   publication of such source code.                                      
  13.  */
  14.  
  15. /*        copyright    "%c%"     */
  16.  
  17. /*
  18.  *    Copyright (c) 1982, 1986, 1988
  19.  *    The Regents of the University of California
  20.  *    All Rights Reserved.
  21.  *    Portions of this document are derived from
  22.  *    software developed by the University of
  23.  *    California, Berkeley, and its contributors.
  24.  */
  25.  
  26. #ident  "$Header: copyright.h 1.2 91/06/26 $"
  27.  
  28. /*
  29.  * curses.h - this file is automatically made from caps and
  30.  *    curses.ed. Don't make changes directly to curses.h!
  31.  */
  32. #ifndef _CURSES_H
  33.  
  34. #define _CURSES_H    /* define prevents multiple includes */
  35.  
  36. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1))
  37. #define    CURSES_H    /* for backward compatibility */
  38. #endif
  39.  
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43.  
  44. #include <stddef.h>    /* get definition of wchar_t */
  45. #include <stdio.h>    /* get definition of FILE */
  46.  
  47. #ifndef _ATTR_T
  48. #define _ATTR_T
  49. typedef unsigned long    attr_t;
  50. #endif
  51.  
  52. #ifndef _CCHAR_T
  53. #define _CCHAR_T
  54. #define _ZLC_MOD_MAX    5
  55.  
  56. typedef struct {
  57.     attr_t    _a;
  58.     wchar_t    _c;
  59.     wchar_t _z[_ZLC_MOD_MAX];
  60. } cchar_t;
  61. #endif
  62.  
  63. #define _CSMAX    4
  64.  
  65. #ifndef _BOOL
  66. typedef    char bool;
  67. #endif
  68.  
  69. #define _VR3_COMPAT_CODE
  70. /*
  71.  * chtype is the type used to store a character together with attributes.
  72.  * It can be set to "char" to save space, or "long" to get more attributes.
  73.  */
  74. #ifndef    _CHTYPE_T
  75. #define _CHTYPE_T
  76. #ifdef    CHTYPE
  77.     typedef    CHTYPE chtype;
  78. #else
  79.     typedef unsigned long chtype;
  80. #endif /* CHTYPE */
  81. #endif /* _CHTYPE_T */
  82.  
  83. #ifndef _WINT_T
  84. #   define _WINT_T
  85.         typedef long    wint_t;
  86. #endif /* _WINT_T */
  87.  
  88. #ifndef WEOF
  89. #    define WEOF (-1)
  90. #endif
  91.  
  92. /*
  93.     Define for the 'old' definition of chtype is required
  94.     when we are running in compatibility mode
  95. */
  96. #ifdef _VR3_COMPAT_CODE
  97. typedef unsigned short _ochtype;
  98. #endif
  99.  
  100. /* TRUE and FALSE get defined so many times, */
  101. /* let's not get in the way of other definitions. */
  102. #if    !defined(TRUE) || ((TRUE) != 1)
  103. #define TRUE    (1)
  104. #endif
  105. #if    !defined(FALSE) || ((FALSE) != 0)
  106. #define FALSE    (0)
  107. #endif
  108. #if    !defined(ERR) || ((ERR) != -1)
  109. #define ERR    (-1)
  110. #endif
  111. #if    !defined(OK) || ((OK) != 0)
  112. #define OK    (0)
  113. #endif
  114.  
  115. /* short-hand notations */
  116. typedef struct _win_st    WINDOW;
  117. typedef struct _screen    SCREEN;
  118.  
  119. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1))
  120. typedef struct _Mouse    MOUSE_STATUS;
  121. #endif
  122.  
  123. struct _win_st
  124. {
  125.     short        _cury, _curx;    /* current coordinates */
  126.     short        _maxy, _maxx;    /* max coordinates */
  127.     short        _begy, _begx;    /* (0,0) screen coordinates */
  128.     char        _flags;
  129.     short        _yoffset;    /* actual begy is _begy+_yoffset */
  130.     bool        _clear,        /* clearok() info */
  131.             _leave,        /* leaveok() info */
  132.             _immed,        /* window in immediate mode */
  133.             _sync;        /* auto syncup of parent */
  134.     WINDOW        *_padwin;    /* "pad" area for current window */
  135.     short        *_firstch;    /* first change in line */
  136.     short        *_lastch;    /* last change in line */
  137.     short        _tmarg, _bmarg;    /* scrolling region bounds */
  138.                     /* MUST stay at this offset in WINDOW */
  139.     unsigned    _scroll        : 1;    /* scrollok() info */
  140.     unsigned    _use_idl    : 1;    
  141.     unsigned    _use_keypad    : 1;
  142.     unsigned    _notimeout    : 1;
  143.     unsigned    _use_idc    : 1;    
  144.     attr_t        _attrs;        /* current window attributes */
  145.     cchar_t        _bkgd;        /* background, normally blank */
  146.     int        _delay;        /* delay period on wgetch
  147.                      * 0:  for nodelay
  148.                      * <0: for infinite delay
  149.                      * >0: delay time in units of millisec
  150.                      */
  151.     short        _ndescs;    /* number of descendants */
  152.     short        _parx, _pary;    /* coords relative to parent (0,0) */
  153.     WINDOW        *_parent;    /* the parent if this is a subwin */
  154.     cchar_t        **_y;        /* lines of data */
  155.  
  156.     unsigned char    _waitc[_CSMAX+1];/*array to store partial m-width char*/
  157.     char        _index;
  158. #define _WAITC_FREE    0
  159. #define _WAITC_IN    1
  160. #define _WAITC_ADD    2
  161. #define _WAITC_INS    3
  162.     char        _inuse;
  163. };
  164.  
  165. /* _lastch is initially set to this, _firstch is set to win->_maxx */
  166. #define _NOCHANGE    -1
  167. #define _INFINITY    16000    /* no line can be longer than this */
  168.  
  169. /* values for win->_flags */
  170. #define _ISPAD        001
  171. #define _WINCHANGED    002
  172. #define _WINMOVED    004
  173. #define _WINSDEL    010
  174. #define _CANT_BE_IMMED    020
  175. #define _WIN_ADD_ONE    040
  176. #define _WIN_INS_ONE    100
  177.  
  178. struct _Mouse {
  179.     int _x, _y;
  180.     short _button[3];
  181.     int   _changes;
  182. };
  183.  
  184. /*
  185.  * Various tricks to shut up lint about things that are perfectly fine.
  186.  */
  187. #if defined(_XOPEN_SOURCE) || defined(lint) && !defined(CURSES) /* if not internal to curses source */
  188.  struct _screen {
  189.      int _nobody_;
  190.  };
  191. #endif /* lint */
  192.  
  193. /* common external variables */
  194.  
  195. extern    int    LINES, COLS, COLORS, COLOR_PAIRS;
  196.  
  197. extern    WINDOW    *stdscr, *curscr;
  198.  
  199. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1))
  200.  
  201. extern  MOUSE_STATUS    Mouse_status;
  202.  
  203. #endif /* (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1)) */
  204.  
  205. extern    cchar_t    *_wacs_map;
  206.  
  207. #ifdef    _VR3_COMPAT_CODE
  208.  
  209. extern _ochtype    _acs_map[];
  210. extern chtype    _acs32map[];
  211.  
  212. /* definitions for Vr3 source compatibility */
  213.  
  214. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1))
  215. #define initscr        _initscr32
  216. #define newterm        _newterm32
  217. #define waddch        _w32addch
  218. #define wechochar    _w32echochar
  219. #define pechochar    _p32echochar
  220. #define winsch        _w32insch
  221. #define vidputs        _vid32puts
  222. #define vidattr        _vid32attr
  223. #define wattroff    _w32attroff
  224. #define wattron        _w32attron
  225. #define wattrset    _w32attrset
  226. #define box        _box32
  227. #endif /* (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1)) */ 
  228.  
  229. #define _acs_map    _acs32map
  230.  
  231. #else    /* _VR3_COMPAT_CODE */
  232.  
  233. extern    chtype    _acs_map[];
  234.  
  235. #endif    /* _VR3_COMPAT_CODE */
  236.  
  237. #ifdef __STDC__
  238.  
  239. SCREEN *newterm(char *, FILE *, FILE *);
  240. WINDOW *derwin(WINDOW *, int, int, int, int);
  241. WINDOW *dupwin(WINDOW *);
  242. WINDOW *getwin(FILE *);
  243. WINDOW *initscr(void);
  244. WINDOW *newpad(int, int);
  245. WINDOW *newwin(int, int, int, int);
  246. WINDOW *subpad(WINDOW *, int, int, int, int);
  247. WINDOW *subwin(WINDOW *, int, int, int, int);
  248. attr_t term_attrs(void);
  249. bool can_change_color(void);
  250. bool has_colors(void);
  251. bool has_ic(void);
  252. bool has_il(void);
  253. bool is_linetouched(WINDOW *, int);
  254. bool is_wintouched(WINDOW *);
  255. bool isendwin(void);
  256. char *key_name(wchar_t);
  257. char *keyname(int);
  258. char *longname(void);
  259. char *slk_label(int);
  260. #if defined(_XOPEN_SOURCE)
  261. char *tparm(char *, long, long, long, long, long, long, long, long, long);
  262. #else
  263. char *tparm(char *, ...);
  264. #endif
  265. char *termname(void);
  266. char *tigetstr(char *);
  267. char erasechar(void);
  268. char killchar(void);
  269. chtype termattrs(void);
  270. chtype winch(WINDOW *);
  271. int _getsyx(int *, int *);
  272. int _meta(bool);
  273. int _overlay (WINDOW *, WINDOW *, int);
  274. int _ring(int);
  275. int _setecho(int);
  276. int _setnonl(int);
  277. int add_wch(const cchar_t *);
  278. int add_wchnstr(const cchar_t *, int);
  279. int add_wchstr(const cchar_t *);
  280. int baudrate(void);
  281. int bkgrnd(const cchar_t *);
  282. 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 *);
  283. int box(WINDOW *, chtype, chtype);
  284. int box_set(WINDOW *, const cchar_t *, const cchar_t *);
  285. int cbreak(void); 
  286. int clearok(WINDOW *, bool);
  287. int color_content(short, short *, short *, short *);
  288. int copywin(const WINDOW *, WINDOW *, int, int, int, int, int, int, int);
  289. int curs_set(int);
  290. int def_prog_mode(void);
  291. int def_shell_mode(void);
  292. int delay_output(int);
  293. int delwin(WINDOW *);
  294. int doupdate(void);
  295. int echo_wchar(const cchar_t *);
  296. int endwin(void);
  297. int erasewchar(wchar_t *);
  298. int flushinp(void);
  299. int getbkgrnd(cchar_t *);
  300. int getcchar(const cchar_t *, wchar_t *, attr_t *, short *, void *);
  301. int getn_wstr(wint_t *, int);
  302. int get_wch(wint_t *);
  303. int get_wstr(wint_t *);
  304. int halfdelay(int);
  305. int hline_set(const cchar_t *, int);
  306. int idlok(WINDOW *, bool);
  307. int init_color(short, short, short, short);
  308. int init_pair(short, short, short);
  309. int intrflush(WINDOW *, bool);
  310. int keypad(WINDOW *, bool);
  311. int killwchar(wchar_t *);
  312. int leaveok(WINDOW *, bool);
  313. int mvadd_wch(int, int, const cchar_t *);
  314. int mvadd_wchnstr(int, int, const cchar_t *, int);
  315. int mvadd_wchstr(int, int, const cchar_t *);
  316. int mvcur(int, int, int, int);
  317. int mvderwin(WINDOW *, int, int);
  318. int mvgetn_wstr(int, int, wint_t *, int);
  319. int mvget_wch(int, int, wint_t *);
  320. int mvget_wstr(int, int, wint_t *);
  321. int mvhline_set(int, int, const cchar_t *, int);
  322. int mvprintw(int, int, char *,  ...);
  323. int mvscanw(int, int, char *, ...);
  324. int mvvline_set(int, int, const cchar_t *, int);
  325. int mvwadd_wch(WINDOW *, int, int, const cchar_t *);
  326. int mvwadd_wchnstr(WINDOW *, int, int, const cchar_t *, int);
  327. int mvwadd_wchstr(WINDOW *, int, int, const cchar_t *);
  328. int mvwgetn_wstr(WINDOW *, int, int, wint_t *, int);
  329. int mvwget_wch(WINDOW *, int, int, wint_t *);
  330. int mvwget_wstr(WINDOW *, int, int, wint_t *);
  331. int mvwhline_set(WINDOW *, int, int, const cchar_t *, int);
  332. int mvwin(WINDOW *, int, int);
  333. int mvwprintw(WINDOW *, int, int, char *, ...);
  334. int mvwscanw(WINDOW *, int, int, char *, ...);
  335. int mvwvline_set(WINDOW *, int, int, const cchar_t *, int);
  336. int napms(int);
  337. int nocbreak(void);
  338. int nodelay(WINDOW *, bool);
  339. int noraw(void);
  340. int notimeout(WINDOW *, bool);
  341. int overlay(const WINDOW *, WINDOW *);
  342. int overwrite(const WINDOW *, WINDOW *);
  343. int pair_content(short, short *, short *);
  344. int pechochar(WINDOW *, chtype);
  345. int pecho_wchar(WINDOW *, const cchar_t*);
  346. int pnoutrefresh(WINDOW *, int, int, int, int, int, int);
  347. int prefresh(WINDOW *, int, int, int, int, int, int);
  348. int printw(char *, ...);
  349. int putp(const char *);
  350. int putwin(WINDOW *, FILE *);
  351. int raw(void);
  352. int redrawwin(WINDOW *);
  353. int reset_prog_mode(void);
  354. int reset_shell_mode(void);
  355. int resetty(void);
  356. int ripoffline(int, int (*)(WINDOW *, int));
  357. int savetty(void);
  358. int scanw(char *, ...);
  359. int scr_dump(const char *);
  360. int scr_init(const char *);
  361. int scr_restore(const char *);
  362. int scr_set(const char *);
  363. int scrollok(WINDOW *, bool);
  364. int setupterm(char *, int, int *);
  365. int setcchar(cchar_t*, const wchar_t*, const attr_t, short, const void*);
  366. int slk_attroff(const chtype);
  367. int slk_attron(const chtype);
  368. int slk_attrset(const chtype);
  369. int slk_attr_off(const attr_t, void *);
  370. int slk_attr_on(const attr_t, void *);
  371. int slk_attr_set(const attr_t, short, void *);
  372. int slk_clear(void);
  373. int slk_color(short);
  374. int slk_noutrefresh(void);
  375. int slk_refresh(void);
  376. int slk_restore(void);
  377. int slk_set(int, const char *, int);
  378. int slk_touch(void);
  379. int slk_wset(int, const wchar_t *, int);
  380. int start_color(void);
  381. int syncok(WINDOW *, bool);
  382. int tigetflag(char *);
  383. int tigetnum(char *);
  384. int touchwin(WINDOW *);
  385. int typeahead(int);
  386. int unget_wch(const wchar_t);
  387. int ungetch(int);
  388. int untouchwin(WINDOW *);
  389. int vid_attr(attr_t, short, void *);
  390. int vid_puts(attr_t, short, void *, int (*)(int));
  391. int vidattr(chtype);
  392. int vidputs(chtype, int (*)(int));
  393. int vline_set(const cchar_t *, int);
  394.  
  395. /* in the following 2 functions 'void *' is really va_list */
  396. /* however, we cannot include <stdarg.h> in curses.h,      */
  397. /* because some applications may be using <varargs.h> that */
  398. /* conflicts with <stdarg.h>                   */
  399.  
  400. int vw_printw(WINDOW *, char *, void *);
  401. int vw_scanw(WINDOW *, char *, void *);
  402. int vwprintw(WINDOW *, char *, void *);
  403. int vwscanw(WINDOW *, char *, void *);
  404. int wadd_wch(WINDOW *, const cchar_t *);
  405. int wadd_wchnstr(WINDOW *, const cchar_t *, int);
  406. int wadd_wchstr(WINDOW *, const cchar_t *);
  407. int waddch(WINDOW *, const chtype);
  408. int waddchnstr(WINDOW *, const chtype *, int);
  409. int waddnstr(WINDOW *, const char *, int);
  410. int waddnwstr(WINDOW *, const wchar_t *, int);
  411. int wattr_get(WINDOW *, attr_t *, short *, void *);
  412. int wattr_off(WINDOW *, attr_t, void *);
  413. int wattr_on(WINDOW *, attr_t, void *);
  414. int wattr_set(WINDOW *, attr_t, short, void *);
  415. int wattroff(WINDOW *, int);
  416. int wattron(WINDOW *, int);
  417. int wattrset(WINDOW *, int);
  418. int wbkgd(WINDOW *, chtype);
  419. int wbkgrnd(WINDOW *, const cchar_t *);
  420. int wborder(WINDOW *, chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype);
  421. 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 *);
  422. int wchgat(WINDOW *, int, attr_t, short, const void *);
  423. int wclrtobot(WINDOW *);
  424. int wclrtoeol(WINDOW *);
  425. int wcolor_set(WINDOW *, short, void *);
  426. int wdelch(WINDOW *);
  427. int wecho_wchar(WINDOW *, const cchar_t *);
  428. int wechochar(WINDOW *, const chtype);
  429. int wget_wch(WINDOW *, wint_t *);
  430. int wget_wstr(WINDOW *, wint_t *);
  431. int wgetbkgrnd(WINDOW *, cchar_t *);
  432. int wgetch(WINDOW *);
  433. int wgetn_wstr(WINDOW *, wint_t *, int);
  434. int wgetnstr(WINDOW *, char *, int);
  435. int wgetstr(WINDOW *, char *);
  436. int whline(WINDOW *, chtype, int);
  437. int whline_set(WINDOW *, const cchar_t *, int);
  438. int win_wch(WINDOW *, cchar_t *);
  439. int win_wchnstr(WINDOW *, cchar_t *, int);
  440. int winchnstr(WINDOW *, chtype *, int);
  441. int winnstr(WINDOW *, char *, int);
  442. int winnwstr(WINDOW *, wchar_t *, int);
  443. int wins_nwstr(WINDOW *, const wchar_t *, int);
  444. int wins_wch(WINDOW *, const cchar_t *);
  445. int winsch(WINDOW *, chtype);
  446. int winsdelln(WINDOW *, int);
  447. int winsnstr(WINDOW *, const char *, int);
  448. int winstr(WINDOW *, char *);
  449. int winwstr(WINDOW *, wchar_t *);
  450. int wmove(WINDOW *, int, int);
  451. int wnoutrefresh(WINDOW *);
  452. int wprintw(WINDOW *, char *, ...);
  453. int wredrawln(WINDOW *, int, int);
  454. int wrefresh(WINDOW *);
  455. int wscanw(WINDOW *, char *, ...);
  456. int wscrl(WINDOW *, int);
  457. int wsetscrreg(WINDOW *, int, int);
  458. int wstandend(WINDOW *);
  459. int wstandout(WINDOW *);
  460. int wtouchln(WINDOW *, int, int, int);
  461. int wvline(WINDOW *, chtype, int);
  462. int wvline_set(WINDOW *, const cchar_t *, int);
  463. void _setqiflush(bool);
  464. void bkgrndset(const cchar_t *);
  465. void delscreen(SCREEN *); 
  466. void filter(void);
  467. void idcok(WINDOW *, bool);
  468. void immedok(WINDOW *, bool);
  469. void use_env(bool);
  470. void wbkgdset(WINDOW *, chtype);
  471. void wbkgrndset(WINDOW *, const cchar_t *);
  472. void wcursyncup(WINDOW *);
  473. void wsyncup(WINDOW *), wsyncdown(WINDOW *);
  474. void wtimeout(WINDOW *, int);
  475. wchar_t *wunctrl(cchar_t *);
  476.  
  477. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >=1))
  478. SCREEN *newscreen(char *, int, int, int, FILE *, FILE *);
  479. SCREEN *setcurscreen(SCREEN *);
  480. char *unctrl(int);
  481. chtype wgetbkgd(WINDOW *);
  482. chtype winwch(WINDOW *);
  483. int draino(int);
  484. int map_button(unsigned long);
  485. int mouse_off(long int);
  486. int mouse_on(long int);
  487. int mouse_set(long int);
  488. int newkey(char *, int, int);
  489. int pechowchar(WINDOW *, chtype);
  490. int request_mouse_pos(void);
  491. int setsyx(int, int);
  492. int slk_start(int, int *);
  493. int traceoff(void);
  494. int traceon(void);
  495. int ungetwch(wchar_t);
  496. int waddwch(WINDOW *, chtype);
  497. int waddwchnstr(WINDOW *, const chtype *, int);
  498. int wechowchar(WINDOW *, chtype);
  499. int wgetnwstr(WINDOW *, wchar_t *, int);
  500. int wgetwch(WINDOW *);
  501. int wgetwstr(WINDOW *, wchar_t *);
  502. int winsnwstr(WINDOW *, wchar_t *, int);
  503. int winswch(WINDOW *, chtype);
  504. int winwchnstr(WINDOW *, chtype *, int);
  505. unsigned long getbmap(void);
  506. unsigned long getmouse(void);
  507. void curserr(void);
  508. void vidupdate(chtype, chtype, int (*)(int));
  509. void wmouse_position (WINDOW *, int *, int *);
  510. #endif  /* !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >=1)) */
  511.  
  512. #else /* __STDC__ */
  513.  
  514. extern SCREEN *newterm();
  515. extern WINDOW *derwin();
  516. extern WINDOW *dupwin();
  517. extern WINDOW *getwin();
  518. extern WINDOW *initscr();
  519. extern WINDOW *newpad();
  520. extern WINDOW *newwin();
  521. extern WINDOW *subpad();
  522. extern WINDOW *subwin();
  523. extern attr_t term_attrs();
  524. extern bool can_change_color();
  525. extern bool has_colors();
  526. extern bool has_ic();
  527. extern bool has_il();
  528. extern bool is_linetouched();
  529. extern bool is_wintouched();
  530. extern bool isendwin();
  531. extern char *key_name();
  532. extern char *keyname();
  533. extern char *longname();
  534. extern char *slk_label();
  535. extern char *tparm();
  536. extern char *termname();
  537. extern char *tigetstr();
  538. extern char erasechar();
  539. extern char killchar();
  540. extern chtype termattrs();
  541. extern chtype winch();
  542. extern int _getsyx();
  543. extern int _meta();
  544. extern int _overlay ();
  545. extern int _ring();
  546. extern int _setecho();
  547. extern int _setnonl();
  548. extern int add_wch();
  549. extern int add_wchnstr();
  550. extern int add_wchstr();
  551. extern int baudrate();
  552. extern int bkgrnd();
  553. extern int border_set();
  554. extern int box();
  555. extern int box_set();
  556. extern int cbreak(); 
  557. extern int clearok();
  558. extern int color_content();
  559. extern int copywin();
  560. extern int curs_set();
  561. extern int def_prog_mode();
  562. extern int def_shell_mode();
  563. extern int delay_output();
  564. extern int delwin();
  565. extern int doupdate();
  566. extern int echo_wchar();
  567. extern int endwin();
  568. extern int erasewchar();
  569. extern int flushinp();
  570. extern int getbkgrnd();
  571. extern int getcchar();
  572. extern int getn_wstr();
  573. extern int get_wch();
  574. extern int get_wstr();
  575. extern int halfdelay();
  576. extern int hline_set();
  577. extern int idlok();
  578. extern int init_color();
  579. extern int init_pair();
  580. extern int intrflush();
  581. extern int keypad();
  582. extern int killwchar();
  583. extern int leaveok();
  584. extern int mvadd_wch();
  585. extern int mvadd_wchnstr();
  586. extern int mvadd_wchstr();
  587. extern int mvcur();
  588. extern int mvderwin();
  589. extern int mvgetn_wstr();
  590. extern int mvget_wch();
  591. extern int mvget_wstr();
  592. extern int mvhline_set();
  593. extern int mvprintw();
  594. extern int mvscanw();
  595. extern int mvvline_set();
  596. extern int mvwadd_wch();
  597. extern int mvwadd_wchnstr();
  598. extern int mvwadd_wchstr();
  599. extern int mvwgetn_wstr();
  600. extern int mvwget_wch();
  601. extern int mvwget_wstr();
  602. extern int mvwhline_set();
  603. extern int mvwin();
  604. extern int mvwprintw();
  605. extern int mvwscanw();
  606. extern int mvwvline_set();
  607. extern int napms();
  608. extern int nocbreak();
  609. extern int nodelay();
  610. extern int noraw();
  611. extern int notimeout();
  612. extern int overlay();
  613. extern int overwrite();
  614. extern int pair_content();
  615. extern int pechochar();
  616. extern int pecho_wchar();
  617. extern int pnoutrefresh();
  618. extern int prefresh();
  619. extern int printw();
  620. extern int putp();
  621. extern int putwin();
  622. extern int raw();
  623. extern int redrawwin();
  624. extern int reset_prog_mode();
  625. extern int reset_shell_mode();
  626. extern int resetty();
  627. extern int ripoffline();
  628. extern int savetty();
  629. extern int scanw();
  630. extern int scr_dump();
  631. extern int scr_init();
  632. extern int scr_restore();
  633. extern int scr_set();
  634. extern int scrollok();
  635. extern int setupterm();
  636. extern int setcchar();
  637. extern int slk_attroff();
  638. extern int slk_attron();
  639. extern int slk_attrset();
  640. extern int slk_clear();
  641. extern int slk_attr_off();
  642. extern int slk_attr_on();
  643. extern int slk_attr_set();
  644. extern int slk_color();
  645. extern int slk_noutrefresh();
  646. extern int slk_refresh();
  647. extern int slk_restore();
  648. extern int slk_set();
  649. extern int slk_touch();
  650. extern int slk_wset();
  651. extern int start_color();
  652. extern int syncok();
  653. extern int tigetflag();
  654. extern int tigetnum();
  655. extern int touchwin();
  656. extern int typeahead();
  657. extern int unget_wch();
  658. extern int ungetch();
  659. extern int untouchwin();
  660. extern int vid_attr();
  661. extern int vid_puts();
  662. extern int vidattr();
  663. extern int vidputs();
  664. extern int vline_set();
  665. extern int vw_printw();
  666. extern int vw_scanw();
  667. extern int vwprintw();
  668. extern int vwscanw();
  669. extern int wadd_wch();
  670. extern int wadd_wchnstr();
  671. extern int wadd_wchstr();
  672. extern int waddch();
  673. extern int waddchnstr();
  674. extern int waddnstr();
  675. extern int waddnwstr();
  676. extern int wattr_get();
  677. extern int wattr_off();
  678. extern int wattr_on();
  679. extern int wattr_set();
  680. extern int wattroff();
  681. extern int wattron();
  682. extern int wattrset();
  683. extern int wbkgd();
  684. extern int wbkgrnd();
  685. extern int wborder();
  686. extern int wborder_set();
  687. extern int wchgat();
  688. extern int wclrtobot();
  689. extern int wclrtoeol();
  690. extern int wcolor_set();
  691. extern int wdelch();
  692. extern int wecho_wchar();
  693. extern int wechochar();
  694. extern int wget_wch();
  695. extern int wget_wstr();
  696. extern int wgetbkgrnd();
  697. extern int wgetch();
  698. extern int wgetn_wstr();
  699. extern int wgetnstr();
  700. extern int wgetstr();
  701. extern int whline();
  702. extern int whline_set();
  703. extern int win_wch();
  704. extern int win_wchnstr();
  705. extern int winchnstr();
  706. extern int winnstr();
  707. extern int winnwstr();
  708. extern int wins_nwstr();
  709. extern int wins_wch();
  710. extern int winsch();
  711. extern int winsdelln();
  712. extern int winsnstr();
  713. extern int winstr();
  714. extern int winwstr();
  715. extern int wmove();
  716. extern int wnoutrefresh();
  717. extern int wprintw();
  718. extern int wredrawln();
  719. extern int wrefresh();
  720. extern int wscanw();
  721. extern int wscrl();
  722. extern int wsetscrreg();
  723. extern int wstandend();
  724. extern int wstandout();
  725. extern int wtouchln();
  726. extern int wvline();
  727. extern int wvline_set();
  728. extern void _setqiflush();
  729. extern void bkgrndset();
  730. extern void delscreen();
  731. extern void filter();
  732. extern void idcok();
  733. extern void immedok();
  734. extern void use_env();
  735. extern void wbkgdset();
  736. extern void wbkgrndset();
  737. extern void wcursyncup();
  738. extern void wsyncup();
  739. extern void wtimeout();
  740. extern wchar_t *wunctrl();
  741.  
  742. extern SCREEN *newscreen();
  743. extern SCREEN *setcurscreen();
  744. extern chtype wgetbkgd();
  745. extern char *unctrl();
  746. extern chtype winwch();
  747. extern int draino();
  748. extern int map_button();
  749. extern int mouse_off();
  750. extern int mouse_on();
  751. extern int mouse_set();
  752. extern int newkey();
  753. extern int pechowchar();
  754. extern int request_mouse_pos();
  755. extern int setsyx();
  756. extern int slk_start();
  757. extern int traceoff();
  758. extern int traceon();
  759. extern int ungetwch();
  760. extern int waddwch();
  761. extern int waddwchnstr();
  762. extern int wechowchar();
  763. extern int wgetnwstr();
  764. extern int wgetwch();
  765. extern int wgetwstr();
  766. extern int winswch();
  767. extern int winsnwstr();
  768. extern int winwchnstr();
  769. extern unsigned long getbmap();
  770. extern unsigned long getmouse();
  771. extern void curserr();
  772. extern void vidupdate();
  773. extern void wmouse_position ();
  774.  
  775. #endif /* __STDC__ */
  776.  
  777. /* 
  778.  * Functions to get at the window structure.
  779.  */
  780.  
  781. #define getsyx(y,x)    _getsyx(&(y),&(x))
  782. #define getyx(w,y,x)    ((y) = getcury(w), (x) = getcurx(w))
  783. #define getbegyx(w,y,x)    ((y) = getbegy(w), (x) = getbegx(w))
  784. #define getmaxyx(w,y,x)    ((y) = getmaxy(w), (x) = getmaxx(w))
  785. #define getparyx(w,y,x)    ((y) = getpary(w), (x) = getparx(w))
  786.  
  787. #ifdef __STDC__
  788.  
  789. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >=1))
  790. int getcury(WINDOW *);
  791. int getcurx(WINDOW *);
  792. int getbegy(WINDOW *);
  793. int getbegx(WINDOW *);
  794. int getmaxy(WINDOW *);
  795. int getmaxx(WINDOW *);
  796. int getpary(WINDOW *);
  797. int getparx(WINDOW *);
  798. chtype getattrs(WINDOW *);
  799. #endif /* !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >=1)) */
  800.  
  801. chtype getbkgd(WINDOW *);
  802.  
  803. #else  /* __STDC__ */
  804.  
  805. extern int getcury();
  806. extern int getcurx();
  807. extern int getbegy();
  808. extern int getbegx(),
  809. extern int getmaxy();
  810. extern int getmaxx();
  811. extern int getpary();
  812. extern int getparx();
  813. extern chtype getattrs();
  814.  
  815. extern chtype getbkgd();
  816.  
  817. #endif  /* __STDC__ */
  818.  
  819. #if    defined(NOMACROS) || defined(lint) || defined(_XOPEN_SOURCE)
  820.  
  821. #ifdef __STDC__
  822.  
  823. SCREEN *set_term(SCREEN *);
  824. chtype inch(void);
  825. chtype mvinch(int, int);
  826. chtype mvwinch(WINDOW *, int, int);
  827. int COLOR_PAIR(int);
  828. int PAIR_NUMBER(int);
  829. int addch(const chtype);
  830. int addchnstr(const chtype *, int);
  831. int addchstr(const chtype *);
  832. int addnstr(const char *, int);
  833. int addnwstr(const wchar_t *, int);
  834. int addstr(const char *);
  835. int addwstr(const wchar_t *);
  836. int attr_get(attr_t *, short *, void *);
  837. int attr_off(attr_t, void *);
  838. int attr_on(attr_t, void *);
  839. int attr_set(attr_t, short, void *);
  840. int attroff(int);
  841. int attron(int);
  842. int attrset(int);
  843. int beep(void);
  844. int bkgd(chtype);
  845. int border(chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype);
  846. int chgat(int, attr_t, short, const void *);
  847. int clear(void);
  848. int clrtobot(void);
  849. int clrtoeol(void);
  850. int color_set(short,void *);
  851. int delch(void);
  852. int deleteln(void);
  853. int echo(void);
  854. int echochar(const chtype);
  855. int erase(void);
  856. int flash(void);
  857. int getch(void);
  858. int getstr(char *);
  859. int getnstr(char *, int);
  860. int hline(chtype, int);
  861. int in_wch(cchar_t *);
  862. int in_wchnstr(cchar_t *, int);
  863. int in_wchstr(cchar_t *);
  864. int inchnstr(chtype *, int);
  865. int inchstr(chtype *);
  866. int innstr(char *, int);
  867. int innwstr(wchar_t *, int);
  868. int ins_nwstr(const wchar_t *, int);
  869. int ins_wch(const cchar_t *);
  870. int ins_wstr(const wchar_t *);
  871. int insch(chtype);
  872. int insdelln(int);
  873. int insertln(void);
  874. int insnstr(const char *, int);
  875. int insstr(const char *);
  876. int instr(char *);
  877. int inwstr(wchar_t *);
  878. int meta(WINDOW *, bool);
  879. int move(int, int);
  880. int mvaddch(int, int, const chtype);
  881. int mvaddchnstr(int, int, const chtype *, int);
  882. int mvaddchstr(int, int, const chtype *);
  883. int mvaddnstr(int, int, const char *, int);
  884. int mvaddnwstr(int, int, const wchar_t *, int);
  885. int mvaddstr(int, int, const char *);
  886. int mvaddwstr(int, int, const wchar_t *);
  887. int mvchgat(int, int, int, attr_t, short, const void *);
  888. int mvdelch(int, int);
  889. int mvgetch(int, int);
  890. int mvgetnstr(int, int, char *, int);
  891. int mvgetstr(int, int, char *);
  892. int mvhline(int, int, chtype, int);
  893. int mvin_wch(int, int, cchar_t *);
  894. int mvin_wchnstr(int, int, cchar_t *, int);
  895. int mvin_wchstr(int, int, cchar_t *);
  896. int mvinchnstr(int, int, chtype *, int);
  897. int mvinchstr(int, int, chtype *);
  898. int mvinnstr(int, int, char *, int);
  899. int mvinnwstr(int, int, wchar_t *, int);
  900. int mvins_nwstr(int, int, const wchar_t *, int);
  901. int mvins_wch(int, int, const cchar_t *);
  902. int mvins_wstr(int, int, const wchar_t *);
  903. int mvinsch(int, int, chtype);
  904. int mvinsnstr(int, int, const char *, int);
  905. int mvinsstr(int, int, const char *);
  906. int mvinstr(int, int, char *);
  907. int mvinwstr(int, int, wchar_t *);
  908. int mvvline(int, int, chtype, int);
  909. int mvwaddch(WINDOW *, int, int, const chtype);
  910. int mvwaddchnstr(WINDOW *, int, int, const chtype *, int);
  911. int mvwaddchstr(WINDOW *, int, int, const chtype *);
  912. int mvwaddnstr(WINDOW *, int, int, const char *, int);
  913. int mvwaddnwstr(WINDOW *, int, int, const wchar_t *, int);
  914. int mvwaddstr(WINDOW *, int, int, const char *);
  915. int mvwaddwstr(WINDOW *, int, int, const wchar_t *);
  916. int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *);
  917. int mvwdelch(WINDOW *, int, int);
  918. int mvwgetch(WINDOW *, int, int);
  919. int mvwgetnstr(WINDOW *, int, int, char *, int);
  920. int mvwgetstr(WINDOW *, int, int, char *);
  921. int mvwhline(WINDOW *, int, int, chtype, int);
  922. int mvwin_wch(WINDOW *, int, int, cchar_t *);
  923. int mvwin_wchnstr(WINDOW *, int, int, cchar_t *, int);
  924. int mvwin_wchstr(WINDOW *, int, int, cchar_t *);
  925. int mvwinchnstr(WINDOW *, int, int, chtype *, int);
  926. int mvwinchstr(WINDOW *, int, int, chtype *);
  927. int mvwinnstr(WINDOW *, int, int, char *, int);
  928. int mvwinnwstr(WINDOW *, int, int, wchar_t *, int);
  929. int mvwins_nwstr(WINDOW *, int, int, const wchar_t *, int);
  930. int mvwins_wch(WINDOW *, int, int, const cchar_t *);
  931. int mvwins_wstr(WINDOW *, int, int, const wchar_t *);
  932. int mvwinsch(WINDOW *, int, int, chtype);
  933. int mvwinsnstr(WINDOW *, int, int, const char *, int);
  934. int mvwinsstr(WINDOW *, int, int, const char *);
  935. int mvwinstr(WINDOW *, int, int, char *);
  936. int mvwinwstr(WINDOW *, int, int, wchar_t *);
  937. int mvwvline(WINDOW *, int, int, chtype, int);
  938. int nl(void);
  939. int noecho(void);
  940. int nonl(void);
  941. int refresh(void);
  942. int scrl(int);
  943. int scroll(WINDOW *);
  944. int setscrreg(int, int);
  945. int slk_init(int);
  946. int standend(void);
  947. int standout(void);
  948. int touchline(WINDOW *, int, int);
  949. int vline(chtype, int);
  950. int waddchstr(WINDOW *, const chtype *);
  951. int waddstr(WINDOW *, const char *);
  952. int waddwstr(WINDOW *, const wchar_t *);
  953. int wclear(WINDOW *);
  954. int wdeleteln(WINDOW *);
  955. int werase(WINDOW *);
  956. int win_wchstr(WINDOW *, cchar_t *);
  957. int winchstr(WINDOW *, chtype *);
  958. int wins_wstr(WINDOW *, const wchar_t *);
  959. int winsertln(WINDOW *);
  960. int winsstr(WINDOW *, const char *);
  961. int wstandend(WINDOW *);
  962. int wstandout(WINDOW *);
  963. void bkgdset(chtype);
  964. void noqiflush(void);
  965. void qiflush(void);
  966. void timeout(int);
  967.  
  968. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >=1))
  969.  
  970. chtype inwch(void);
  971. chtype mvinwch(int, int);
  972. chtype mvwinwch(WINDOW *, int, int);
  973. int addwch(chtype);
  974. int addwchnstr(chtype *, int);
  975. int addwchstr(chtype *);
  976. int crmode(void);
  977. int echowchar(chtype);
  978. int fixterm(void);
  979. int garbagedlines(WINDOW *, int, int);
  980. int garbagedwin(WINDOW *);
  981. int getnwstr(wchar_t *, int);
  982. int gettmode(void);
  983. int getwch(void);
  984. int getwstr(wchar_t *);
  985. int insnwstr(wchar_t *, int);
  986. int inswch(chtype);
  987. int inswstr(wchar_t *);
  988. int inwchnstr(chtype *, int);
  989. int inwchstr(chtype *);
  990. int mvaddwch(int, int, chtype);
  991. int mvaddwchnstr(int, int, chtype *, int);
  992. int mvaddwchstr(int, int, chtype *);
  993. int mvgetnwstr(int, int, wchar_t *, int);
  994. int mvgetwch(int, int);
  995. int mvgetwstr(int, int, wchar_t *);
  996. int mvinsnwstr(int, int, wchar_t *, int);
  997. int mvinswch(int, int, chtype);
  998. int mvinswstr(int, int, wchar_t *);
  999. int mvinwchnstr(int, int, chtype *, int);
  1000. int mvinwchstr(int, int, chtype *);
  1001. int mvwaddwch(WINDOW *, int, int, chtype);
  1002. int mvwaddwchnstr(WINDOW *, int, int, chtype *, int);
  1003. int mvwaddwchstr(WINDOW *, int, int, chtype *);
  1004. int mvwgetnwstr(WINDOW *, int, int, wchar_t *, int);
  1005. int mvwgetwch(WINDOW *, int, int);
  1006. int mvwgetwstr(WINDOW *, int, int, wchar_t *);
  1007. int mvwinsnwstr(WINDOW *, int, int, wchar_t *, int);
  1008. int mvwinswch(WINDOW *, int, int, chtype);
  1009. int mvwinswstr(WINDOW *, int, int, wchar_t *);
  1010. int mvwinwchnstr(WINDOW *, int, int, chtype *, int);
  1011. int mvwinwchstr(WINDOW *, int, int, chtype *);
  1012. int nocrmode(void);
  1013. int resetterm(void);
  1014. int saveterm(void);
  1015. int setterm(char *);
  1016. int waddwchstr(WINDOW *, chtype *);
  1017. int winswstr(WINDOW *, wchar_t *);
  1018. int winwchstr(WINDOW *, chtype *);
  1019.  
  1020. #endif  /*  !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >=1)) */
  1021.  
  1022. #else /* __STDC__ */
  1023.  
  1024. extern SCREEN *set_term();
  1025. extern chtype inch();
  1026. extern chtype mvinch();
  1027. extern chtype mvwinch();
  1028. extern int COLOR_PAIR();
  1029. extern int PAIR_NUMBER();
  1030. extern int addch();
  1031. extern int addchnstr();
  1032. extern int addchstr();
  1033. extern int addnstr();
  1034. extern int addnwstr();
  1035. extern int addstr();
  1036. extern int addwstr();
  1037. extern int attr_get();
  1038. extern int attr_off();
  1039. extern int attr_on();
  1040. extern int attr_set();
  1041. extern int attroff();
  1042. extern int attron();
  1043. extern int attrset();
  1044. extern int beep();
  1045. extern int bkgd();
  1046. extern int border();
  1047. extern int chgat();
  1048. extern int clear();
  1049. extern int clrtobot();
  1050. extern int clrtoeol();
  1051. extern int color_set();
  1052. extern int delch();
  1053. extern int deleteln();
  1054. extern int echo();
  1055. extern int echochar();
  1056. extern int erase();
  1057. extern int flash();
  1058. extern int getch();
  1059. extern int getstr();
  1060. extern int getnstr();
  1061. extern int hline();
  1062. extern int in_wch();
  1063. extern int in_wchnstr();
  1064. extern int in_wchstr();
  1065. extern int inchnstr();
  1066. extern int inchstr();
  1067. extern int innstr();
  1068. extern int innwstr();
  1069. extern int ins_nwstr();
  1070. extern int ins_wch();
  1071. extern int ins_wstr();
  1072. extern int insch();
  1073. extern int insdelln();
  1074. extern int insertln();
  1075. extern int insnstr();
  1076. extern int insstr();
  1077. extern int instr();
  1078. extern int inwstr();
  1079. extern int meta();
  1080. extern int move();
  1081. extern int mvaddch();
  1082. extern int mvaddchnstr();
  1083. extern int mvaddchstr();
  1084. extern int mvaddnstr();
  1085. extern int mvaddnwstr();
  1086. extern int mvaddstr();
  1087. extern int mvaddwstr();
  1088. extern int mvchgat();
  1089. extern int mvdelch();
  1090. extern int mvgetch();
  1091. extern int mvgetnstr();
  1092. extern int mvgetstr();
  1093. extern int mvhline();
  1094. extern int mvin_wch();
  1095. extern int mvin_wchnstr();
  1096. extern int mvin_wchstr();
  1097. extern int mvinchnstr();
  1098. extern int mvinchstr();
  1099. extern int mvinnstr();
  1100. extern int mvinnwstr();
  1101. extern int mvins_nwstr();
  1102. extern int mvins_wch();
  1103. extern int mvins_wstr();
  1104. extern int mvinsch();
  1105. extern int mvinsnstr();
  1106. extern int mvinsstr();
  1107. extern int mvinstr();
  1108. extern int mvinwstr();
  1109. extern int mvvline();
  1110. extern int mvwaddch();
  1111. extern int mvwaddchnstr();
  1112. extern int mvwaddchstr();
  1113. extern int mvwaddnstr();
  1114. extern int mvwaddnwstr();
  1115. extern int mvwaddstr();
  1116. extern int mvwaddwstr();
  1117. extern int mvwchgat();
  1118. extern int mvwdelch();
  1119. extern int mvwgetch();
  1120. extern int mvwgetnstr();
  1121. extern int mvwgetstr();
  1122. extern int mvwhline();
  1123. extern int mvwin_wch();
  1124. extern int mvwin_wchnstr();
  1125. extern int mvwin_wchstr();
  1126. extern int mvwinchnstr();
  1127. extern int mvwinchstr();
  1128. extern int mvwinnstr();
  1129. extern int mvwinnwstr();
  1130. extern int mvwins_nwstr();
  1131. extern int mvwins_wch();
  1132. extern int mvwins_wstr();
  1133. extern int mvwinsch();
  1134. extern int mvwinsnstr();
  1135. extern int mvwinsstr();
  1136. extern int mvwinstr();
  1137. extern int mvwinwstr();
  1138. extern int mvwvline();
  1139. extern int nl();
  1140. extern int noecho();
  1141. extern int nonl();
  1142. extern int refresh();
  1143. extern int scrl();
  1144. extern int scroll();
  1145. extern int setscrreg();
  1146. extern int slk_init();
  1147. extern int standend();
  1148. extern int standout();
  1149. extern int touchline();
  1150. extern int vline();
  1151. extern int waddchstr();
  1152. extern int waddstr();
  1153. extern int waddwstr();
  1154. extern int wclear();
  1155. extern int wdeleteln();
  1156. extern int werase();
  1157. extern int win_wchstr();
  1158. extern int winchstr();
  1159. extern int wins_wstr();
  1160. extern int winsertln();
  1161. extern int winsstr();
  1162. extern int wstandend();
  1163. extern int wstandout();
  1164. extern void bkgdset();
  1165. extern void noqiflush();
  1166. extern void qiflush();
  1167. extern void timeout();
  1168.  
  1169. extern chtype inwch();
  1170. extern chtype mvinwch();
  1171. extern chtype mvwinwch();
  1172. extern int addwch();
  1173. extern int addwchnstr();
  1174. extern int addwchstr();
  1175. extern int crmode();
  1176. extern int echowchar();
  1177. extern int fixterm();
  1178. extern int garbagedlines();
  1179. extern int garbagedwin();
  1180. extern int getnwstr();
  1181. extern int gettmode();
  1182. extern int getwch();
  1183. extern int getwstr();
  1184. extern int insnwstr();
  1185. extern int inswch();
  1186. extern int inswstr();
  1187. extern int inwchnstr();
  1188. extern int inwchstr();
  1189. extern int nocrmode();
  1190. extern int mvaddwch();
  1191. extern int mvaddwchnstr();
  1192. extern int mvaddwchstr();
  1193. extern int mvgetnwstr();
  1194. extern int mvgetwch();
  1195. extern int mvgetwstr();
  1196. extern int mvinsnwstr();
  1197. extern int mvinswch();
  1198. extern int mvinswstr();
  1199. extern int mvinwchnstr();
  1200. extern int mvinwchstr();
  1201. extern int mvwaddwch();
  1202. extern int mvwaddwchnstr();
  1203. extern int mvwaddwchstr();
  1204. extern int mvwgetnwstr();
  1205. extern int mvwgetwch();
  1206. extern int mvwgetwstr();
  1207. extern int mvwinsnwstr();
  1208. extern int mvwinswstr();
  1209. extern int mvwinswch();
  1210. extern int mvwinwchnstr();
  1211. extern int mvwinwchstr();
  1212. extern int resetterm();
  1213. extern int saveterm();
  1214. extern int setterm();
  1215. extern int waddwchstr();
  1216. extern int winwchstr();
  1217. extern int winswstr();
  1218.  
  1219. #endif /* __STDC__ */
  1220.  
  1221. #else    /* NOMACROS || lint || _XOPEN_SOURCE */
  1222.  
  1223. /*
  1224.  * The defines from here down to the #endif for NOMACROS
  1225.  * define macros, which may be more efficient than their
  1226.  * function versions. The functions may be accessed by defining
  1227.  * NOMACROS in C code. This is useful for debugging purposes.
  1228.  */
  1229.  
  1230. #include  <unctrl.h>
  1231.  
  1232. #define COLOR_PAIR(n)    ((n) << 25)
  1233. #define PAIR_NUMBER(n)    (((n) & A_COLOR) >> 25)
  1234.  
  1235. #define waddchstr(w,s)        waddchnstr((w),(s),-1)
  1236. #define waddstr(w,s)        waddnstr((w),(s),-1)
  1237. #define waddwstr(w,ws)        waddnwstr(w,ws,-1)
  1238. #define wclear(w)        (clearok((w),TRUE), werase(w))
  1239. #define wdeleteln(w)        winsdelln((w),-1)
  1240. #define werase(w)        (wmove((w),0,0), wclrtobot(w))
  1241. #define win_wchstr(w,s)        win_wchnstr(w,s,-1)
  1242. #define winchstr(w,s)        winchnstr((w),(s),-1)
  1243. #define wins_wstr(w,ws)        wins_nwstr(w,ws,-1)
  1244. #define winsertln(w)        winsdelln((w),1)
  1245. #define winsstr(w,s)        winsnstr((w),(s),-1)
  1246. #define wstandend(w)        wattrset((w),A_NORMAL)
  1247. #define wstandout(w)        wattron((w),A_STANDOUT)
  1248.  
  1249. /* pseudo functions for stdscr */
  1250. #define addch(ch)        waddch(stdscr, ch)
  1251. #define addchnstr(s,n)        waddchnstr(stdscr,s,n)
  1252. #define addchstr(s)        waddchstr(stdscr,s)
  1253. #define addnstr(s,n)        waddnstr(stdscr,s,n)
  1254. #define addnwstr(ws,n)        waddnwstr(stdscr,ws,n)
  1255. #define addstr(s)        waddstr(stdscr, s)
  1256. #define addwstr(ws)        waddwstr(stdscr,ws)
  1257. #define attr_get(a,b,c)        wattr_get(stdscr,(a),(b),(c))
  1258. #define attr_off(at,v)        wattr_off(stdscr,at,v)
  1259. #define attr_on(at,v)        wattr_on(stdscr,at,v)
  1260. #define attr_set(at,c,v)    wattr_set(stdscr,at,c,v)
  1261. #define attroff(at)        wattroff(stdscr,at)
  1262. #define attron(at)        wattron(stdscr,at)
  1263. #define attrset(at)        wattrset(stdscr,at)
  1264. #define bkgd(c)            wbkgd(stdscr,c)
  1265. #define bkgdset(c)        wbkgdset(stdscr,c)
  1266. #define border(a,b,c,d,e,f,g,h) wborder(stdscr,a,b,c,d,e,f,g,h)    
  1267. #define chgat(n,a,c,r)        wchgat(stdscr,n,a,c,r);
  1268. #define clear()            wclear(stdscr)
  1269. #define clrtobot()        wclrtobot(stdscr)
  1270. #define clrtoeol()        wclrtoeol(stdscr)
  1271. #define color_set(c,v)        wcolor_set(stdscr,c,v)
  1272. #define delch()            wdelch(stdscr)
  1273. #define deleteln()        wdeleteln(stdscr)
  1274. #define echochar(ch)        wechochar(stdscr,ch)
  1275. #define erase()            werase(stdscr)
  1276. #define getch()            wgetch(stdscr)
  1277. #define getstr(s)        wgetstr(stdscr,s)
  1278. #define getnstr(ws,n)        wgetnstr(stdscr,ws,n)
  1279. #define hline(c,num)        whline(stdscr,c,num)
  1280. #define inch()            winch(stdscr)
  1281. #define inchnstr(s,n)        winchnstr(stdscr,s,n)
  1282. #define inchstr(s)        winchstr(stdscr,s)
  1283. #define innstr(s,n)        winnstr(stdscr,(s),(n))
  1284. #define innwstr(ws,n)        winnwstr(stdscr,ws,n)
  1285. #define ins_nwstr(ws,n)        wins_nwstr(stdscr,ws,n)
  1286. #define ins_wch(c)        wins_wch(stdscr,c)
  1287. #define ins_wstr(ws)        wins_wstr(stdscr,ws)
  1288. #define insch(c)        winsch(stdscr,c)
  1289. #define insdelln(id)        winsdelln(stdscr,id)
  1290. #define insertln()        winsertln(stdscr)
  1291. #define insnstr(s,n)        winsnstr(stdscr,s,n)
  1292. #define insstr(s)        winsstr(stdscr,s)
  1293. #define instr(s)        winstr(stdscr,(s))
  1294. #define in_wch(wch)        win_wch(stdscr,wch)
  1295. #define in_wchnstr(s,n)        win_wchnstr(stdscr,s,n)
  1296. #define in_wchstr(s)        win_wchstr(stdscr,s)
  1297. #define inwstr(ws)        winwstr(stdscr,ws)
  1298. #define move(y,x)        wmove(stdscr,y,x)
  1299. #define mvaddch(y,x,ch)        mvwaddch(stdscr,y,x,ch)
  1300. #define mvaddnstr(y,x,s,n)    mvwaddnstr(stdscr,y,x,s,n)
  1301. #define mvaddstr(y,x,s)        mvwaddstr(stdscr,y,x,s)
  1302. #define mvdelch(y,x)        mvwdelch(stdscr,y,x)
  1303. #define mvgetch(y,x)        mvwgetch(stdscr,y,x)
  1304. #define mvgetstr(y,x,s)        mvwgetstr(stdscr,y,x,s)
  1305. #define mvinch(y,x)        mvwinch(stdscr,y,x)
  1306. #define mvins_wch(y,x,c)    mvwins_wch(stdscr,y,x,c)
  1307. #define mvinsch(y,x,c)        mvwinsch(stdscr,y,x,c)
  1308. #define mvinsnstr(y,x,s,n)    mvwinsnstr(stdscr,y,x,s,n)
  1309. #define mvinsstr(y,x,s)        mvwinsstr(stdscr,y,x,s)
  1310. #define mvaddchstr(y,x,s)    mvwaddchstr(stdscr,y,x,s)
  1311. #define mvaddchnstr(y,x,s,n)    mvwaddchnstr(stdscr,y,x,s,n)
  1312. #define mvinstr(y,x,s)        mvwinstr(stdscr,y,x,(s))
  1313. #define mvinnstr(y,x,s,n)    mvwinnstr(stdscr,y,x,(s),(n))
  1314. #define mvinchstr(y,x,s)    mvwinchstr(stdscr,y,x,s)
  1315. #define mvinchnstr(y,x,s,n)    mvwinchnstr(stdscr,y,x,s,n)
  1316. #define mvhline(y,x,c,num)    mvwhline(stdscr,y,x,c,num)
  1317. #define mvin_wch(y,x,wc)    mvwin_wch(stdscr,y,x,wc)
  1318. #define mvvline(y,x,c,num)    mvwvline(stdscr,y,x,c,num)
  1319. #define mvaddnwstr(y,x,ws,n)    mvwaddnwstr(stdscr,y,x,ws,n)
  1320. #define mvaddwstr(y,x,ws)    mvwaddwstr(stdscr,y,x,ws)
  1321. #define mvchgat(y,x,n,a,c,r)    mvwchgat(stdscr,y,x,n,a,c,r)
  1322. #define mvgetnstr(y,x,s,n)    mvwgetnstr(stdscr,y,x,s,n)
  1323. #define mvins_nwstr(y,x,ws,n)    mvwins_nwstr(stdscr,y,x,ws,n)
  1324. #define mvins_wstr(y,x,ws)    mvwins_wstr(stdscr,y,x,ws)
  1325. #define mvin_wchnstr(y,x,s,n)    mvwin_wchnstr(stdscr,y,x,s,n)
  1326. #define mvin_wchstr(y,x,s)    mvwin_wchstr(stdscr,y,x,s)
  1327. #define mvinnwstr(y,x,ws,n)    mvwinnwstr(stdscr,y,x,ws,n)
  1328. #define mvinwstr(y,x,ws)    mvwinwstr(stdscr,y,x,ws)
  1329. #define mvwaddch(w,y,x,ch)    (wmove(w,y,x)==ERR?ERR:waddch(w,ch))
  1330. #define mvwaddnstr(w,y,x,s,n)    (wmove(w,y,x)==ERR?ERR:waddnstr(w,s,n))
  1331. #define mvwaddstr(w,y,x,s)    (wmove(w,y,x)==ERR?ERR:waddstr(w,s))
  1332. #define mvwchgat(w,y,x,n,a,c,r)    (wmove(w,y,x)==ERR?ERR:wchgat(w,n,a,c,r))
  1333. #define mvwdelch(w,y,x)        (wmove(w,y,x)==ERR?ERR:wdelch(w))
  1334. #define mvwgetch(w,y,x)        (wmove(w,y,x)==ERR?ERR:wgetch(w))
  1335. #define mvwgetstr(w,y,x,s)    (wmove(w,y,x)==ERR?ERR:wgetstr(w,s))
  1336. #define mvwin_wch(w,y,wc)    (wmove(w,y,x)==ERR?ERR:win_wch(w,wc))
  1337. #define mvwinch(w,y,x)        (wmove(w,y,x)==ERR?(chtype) ERR:winch(w))
  1338. #define mvwinsch(w,y,x,c)    (wmove(w,y,x)==ERR?ERR:winsch(w,c))
  1339. #define mvwinsnstr(w,y,x,s,n)    (wmove(w,y,x)==ERR?ERR:winsnstr(w,s,n))
  1340. #define mvwinsstr(w,y,x,s)    (wmove(w,y,x)==ERR?ERR:winsstr(w,s))
  1341. #define mvwhline(w,y,x,c,num)    (wmove(w,y,x)==ERR?ERR:whline(w,c,num))
  1342. #define mvwvline(w,y,x,c,num)    (wmove(w,y,x)==ERR?ERR:wvline(w,c,num))
  1343. #define mvwaddchstr(w,y,x,s)    (wmove(w,y,x)==ERR?ERR:waddchstr(w,s))
  1344. #define mvwaddchnstr(w,y,x,s,n)    (wmove(w,y,x)==ERR?ERR:waddchnstr(w,s,n))
  1345. #define mvwinstr(w,y,x,s)    (wmove(w,y,x)==ERR?ERR:winstr(w,s))
  1346. #define mvwinnstr(w,y,x,s,n)    (wmove(w,y,x)==ERR?ERR:winnstr(w,s,n))
  1347. #define mvwinchstr(w,y,x,s)    (wmove(w,y,x)==ERR?ERR:winchstr(w,s))
  1348. #define mvwinchnstr(w,y,x,s,n)    (wmove(w,y,x)==ERR?ERR:winchnstr(w,s,n))
  1349. #define mvwaddnwstr(w,y,x,ws,n) (wmove(w,y,x)==ERR?ERR:waddnwstr(w,ws,n))
  1350. #define mvwaddwstr(w,y,x,ws)    (wmove(w,y,x)==ERR?ERR:waddwstr(w,ws))
  1351. #define mvwgetnstr(w,y,x,ws,n)  (wmove(w,y,x)==ERR?ERR:wgetnstr(w,ws,n))
  1352. #define mvwinnwstr(w,y,x,ws,n)    (wmove(w,y,x)==ERR?ERR:winnwstr(w,ws,n))
  1353. #define mvwins_nwstr(w,y,x,ws,n) (wmove(w,y,x)==ERR?ERR:wins_nwstr(w,ws,n))
  1354. #define mvwins_wch(w,y,x,c)    (wmove(w,y,x)==ERR?ERR:wins_wch(w,c))
  1355. #define mvwins_wstr(w,y,x,ws)    (wmove(w,y,x)==ERR?ERR:wins_wstr(w,ws))
  1356. #define mvwin_wchnstr(w,y,x,s,n) (wmove(w,y,x)==ERR?ERR:win_wchnstr(w,s,n))
  1357. #define mvwin_wchstr(w,y,x,s)    (wmove(w,y,x)==ERR?ERR:win_wchstr(w,s))
  1358. #define mvwinwstr(w,y,x,ws)    (wmove(w,y,x)==ERR?ERR:winwstr(w,ws))
  1359.  
  1360. #define refresh()        wrefresh(stdscr)
  1361. #define scrl(n)            wscrl(stdscr,n)
  1362. #define setscrreg(t,b)        wsetscrreg(stdscr,t,b)
  1363. #define standend()        wstandend(stdscr)
  1364. #define standout()        wstandout(stdscr)
  1365. #define timeout(tm)        wtimeout(stdscr,tm)
  1366. #define vline(c,num)        wvline(stdscr,c,num)
  1367.  
  1368. #define beep()            _ring(TRUE)
  1369. #define flash()            _ring(FALSE)
  1370. #define scroll(w)        wscrl((w),1)
  1371. #define slk_init(f)        slk_start(((f == 0) ? 3 : 2),NULL)
  1372. #define touchline(w,y,n)    wtouchln((w),(y),(n),TRUE)
  1373. #define meta(w,flag)        _meta(flag)
  1374. #define echo()            _setecho(TRUE)
  1375. #define noecho()        _setecho(FALSE)
  1376. #define nl()            _setnonl(FALSE)
  1377. #define nonl()            _setnonl(TRUE)
  1378. #define qiflush()        _setqiflush(TRUE)
  1379. #define noqiflush()        _setqiflush(FALSE)
  1380.  
  1381. #define set_term        setcurscreen
  1382.  
  1383. #define inwch()            winwch(stdscr)
  1384. #define mvinwch(y,x)        mvwinwch(stdscr,y,x)
  1385. #define mvwinwch(w,y,x)        (wmove(w,y,x)==ERR?(chtype)ERR:winwch(w))
  1386.  
  1387. #define addwch(ch)        waddwch(stdscr,ch)
  1388. #define addwchnstr(s,n)        waddwchnstr(stdscr,s,n)
  1389. #define addwchstr(s)        waddwchstr(stdscr,s)
  1390. #define crmode            cbreak
  1391. #define echowchar(ch)        wechowchar(stdscr,ch)
  1392. #define fixterm            reset_prog_mode
  1393. #define garbagedlines        wredrawln
  1394. #define garbagedwin        redrawwin
  1395. #define getnwstr(ws,n)        wgetnwstr(stdscr,ws,n)
  1396. #define gettmode()        (OK)
  1397. #define getwch()        wgetwch(stdscr)
  1398. #define getwstr(ws)        wgetwstr(stdscr,ws)
  1399. #define insnwstr(ws,n)        winsnwstr(stdscr,ws,n)
  1400. #define inswch(c)        winswch(stdscr,c)
  1401. #define inswstr(ws)        winswstr(stdscr,ws)
  1402. #define inwchnstr(s,n)        winwchnstr(stdscr,s,n)
  1403. #define inwchstr(s)        winwchstr(stdscr,s)
  1404. #define mvaddwch(y,x,ch)    mvwaddwch(stdscr,y,x,ch)
  1405. #define mvaddwchnstr(y,x,s,n)    mvwaddwchnstr(stdscr,y,x,s,n)
  1406. #define mvaddwchstr(y,x,s)    mvwaddwchstr(stdscr,y,x,s)
  1407. #define mvgetnwstr(y,x,ws,n)    mvwgetnwstr(stdscr,y,x,ws,n)
  1408. #define mvgetwch(y,x)        mvwgetwch(stdscr,y,x)
  1409. #define mvgetwstr(y,x,ws)    mvwgetwstr(stdscr,y,x,ws)
  1410. #define mvinsnwstr(y,x,ws,n)    mvwinsnwstr(stdscr,y,x,ws,n)
  1411. #define mvinswch(y,x,c)        mvwinswch(stdscr,y,x,c)
  1412. #define mvinswstr(y,x,ws)    mvwinswstr(stdscr,y,x,ws)
  1413. #define mvinwchnstr(y,x,s,n)    mvwinwchnstr(stdscr,y,x,s,n)
  1414. #define mvinwchstr(y,x,s)    mvwinwchstr(stdscr,y,x,s)
  1415. #define mvwaddwch(w,y,x,ch)    (wmove(w,y,x)==ERR?ERR:waddwch(w,ch))
  1416. #define mvwaddwchnstr(w,y,x,s,n) (wmove(w,y,x)==ERR?ERR:waddwchnstr(w,s,n))
  1417. #define mvwaddwchstr(w,y,x,s)    (wmove(w,y,x)==ERR?ERR:waddwchstr(w,s))
  1418. #define mvwgetwch(w,y,x)    (wmove(w,y,x)==ERR?ERR:wgetwch(w))
  1419. #define mvwgetwstr(w,y,x,ws)    (wmove(w,y,x)==ERR?ERR:wgetwstr(w,ws))
  1420. #define mvwgetnwstr(w,y,x,ws,n) (wmove(w,y,x)==ERR?ERR:wgetnwstr(w,ws,n))
  1421. #define mvwinsnwstr(w,y,x,ws,n) (wmove(w,y,x)==ERR?ERR:winsnwstr(w,ws,n))
  1422. #define mvwinswstr(w,y,x,ws)    (wmove(w,y,x)==ERR?ERR:winswstr(w,ws))
  1423. #define mvwinswch(w,y,x,c)    (wmove(w,y,x)==ERR?ERR:winswch(w,c))
  1424. #define mvwinwchnstr(w,y,x,s,n) (wmove(w,y,x)==ERR?ERR:winwchnstr(w,s,n))
  1425. #define mvwinwchstr(w,y,x,s)    (wmove(w,y,x)==ERR?ERR:winwchstr(w,s))
  1426. #define nocrmode        nocbreak
  1427. #define resetterm        reset_shell_mode
  1428. #define saveterm        def_prog_mode
  1429. #define setterm(name)        setupterm((name),1,(char*)NULL)
  1430. #define waddwchstr(w,s)        waddwchnstr(w,s,-1)
  1431. #define winwchstr(w,s)        winwchnstr(w,s,-1)
  1432. #define winswstr(w,ws)        winsnwstr(w,ws,-1)
  1433.  
  1434. #endif    /* NOMACROS || lint || _XOPEN_SOURCE */
  1435.  
  1436. /*
  1437.  * Standard alternate character set.  The current ACS world is evolving,
  1438.  * so we support only a widely available subset: the line drawing characters
  1439.  * from the VT100, plus a few from the Teletype 5410v1.  Eventually there
  1440.  * may be support of more sophisticated ACS line drawing, such as that
  1441.  * in the Teletype 5410, the HP line drawing set, and the like.  There may
  1442.  * be support for some non line oriented characters as well.
  1443.  *
  1444.  * Line drawing ACS names are of the form ACS_trbl, where t is the top, r
  1445.  * is the right, b is the bottom, and l is the left.  t, r, b, and l might
  1446.  * be B (blank), S (single), D (double), or T (thick).  The subset defined
  1447.  * here only uses B and S.
  1448.  */
  1449.  
  1450. #define ACS_BSSB    (_acs_map['l'])
  1451. #define ACS_SSBB    (_acs_map['m'])
  1452. #define ACS_BBSS    (_acs_map['k'])
  1453. #define ACS_SBBS    (_acs_map['j'])
  1454. #define ACS_SBSS    (_acs_map['u'])
  1455. #define ACS_SSSB    (_acs_map['t'])
  1456. #define ACS_SSBS    (_acs_map['v'])
  1457. #define ACS_BSSS    (_acs_map['w'])
  1458. #define ACS_BSBS    (_acs_map['q'])
  1459. #define ACS_SBSB    (_acs_map['x'])
  1460. #define ACS_SSSS    (_acs_map['n'])
  1461.  
  1462. #define WACS_BSSB    (&(_wacs_map['l']))
  1463. #define WACS_SSBB    (&(_wacs_map['m']))
  1464. #define WACS_BBSS    (&(_wacs_map['k']))
  1465. #define WACS_SBBS    (&(_wacs_map['j']))
  1466. #define WACS_SBSS    (&(_wacs_map['u']))
  1467. #define WACS_SSSB    (&(_wacs_map['t']))
  1468. #define WACS_SSBS    (&(_wacs_map['v']))
  1469. #define WACS_BSSS    (&(_wacs_map['w']))
  1470. #define WACS_BSBS    (&(_wacs_map['q']))
  1471. #define WACS_SBSB    (&(_wacs_map['x']))
  1472. #define WACS_SSSS    (&(_wacs_map['n']))
  1473.  
  1474. /*
  1475.  * Human readable names for the most commonly used characters.
  1476.  * "Upper", "right", etc. are chosen to be consistent with the vt100 manual.
  1477.  */
  1478.  
  1479. #define WACS_ULCORNER    WACS_BSSB
  1480. #define WACS_LLCORNER    WACS_SSBB
  1481. #define WACS_URCORNER    WACS_BBSS
  1482. #define WACS_LRCORNER    WACS_SBBS
  1483. #define WACS_RTEE    WACS_SBSS
  1484. #define WACS_LTEE    WACS_SSSB
  1485. #define WACS_BTEE    WACS_SSBS
  1486. #define WACS_TTEE    WACS_BSSS
  1487. #define WACS_HLINE    WACS_BSBS
  1488. #define WACS_VLINE    WACS_SBSB
  1489. #define WACS_PLUS    WACS_SSSS
  1490.  
  1491. #define ACS_ULCORNER    ACS_BSSB
  1492. #define ACS_LLCORNER    ACS_SSBB
  1493. #define ACS_URCORNER    ACS_BBSS
  1494. #define ACS_LRCORNER    ACS_SBBS
  1495. #define ACS_RTEE    ACS_SBSS
  1496. #define ACS_LTEE    ACS_SSSB
  1497. #define ACS_BTEE    ACS_SSBS
  1498. #define ACS_TTEE    ACS_BSSS
  1499. #define ACS_HLINE    ACS_BSBS
  1500. #define ACS_VLINE    ACS_SBSB
  1501. #define ACS_PLUS    ACS_SSSS
  1502.  
  1503. #define ACS_S1        (_acs_map['o']) /* scan line 1 */
  1504. #define ACS_S9         (_acs_map['s']) /* scan line 9 */
  1505. #define ACS_DIAMOND    (_acs_map['`']) /* diamond */
  1506. #define ACS_CKBOARD    (_acs_map['a']) /* checker board */
  1507. #define ACS_DEGREE    (_acs_map['f']) /* degree symbol */
  1508. #define ACS_PLMINUS    (_acs_map['g']) /* plus/minus */
  1509. #define ACS_BULLET    (_acs_map['~']) /* bullet */
  1510.  
  1511. #define WACS_S1        (&(_wacs_map['o'])) /* scan line 1 */
  1512. #define WACS_S9     (&(_wacs_map['s'])) /* scan line 9 */
  1513. #define WACS_DIAMOND    (&(_wacs_map['`'])) /* diamond */
  1514. #define WACS_CKBOARD    (&(_wacs_map['a'])) /* checker board */
  1515. #define WACS_DEGREE    (&(_wacs_map['f'])) /* degree symbol */
  1516. #define WACS_PLMINUS    (&(_wacs_map['g'])) /* plus/minus */
  1517. #define WACS_BULLET    (&(_wacs_map['~'])) /* bullet */
  1518.  
  1519.     /* Teletype 5410v1 symbols */
  1520. #define ACS_LARROW    (_acs_map[',']) /* arrow left */
  1521. #define ACS_RARROW    (_acs_map['+']) /* arrow right */
  1522. #define ACS_DARROW    (_acs_map['.']) /* arrow down */
  1523. #define ACS_UARROW    (_acs_map['-']) /* arrow up */
  1524. #define ACS_BOARD    (_acs_map['h']) /* board of squares */
  1525. #define ACS_LANTERN    (_acs_map['i']) /* lantern symbol */
  1526. #define ACS_BLOCK    (_acs_map['0']) /* solid square block */
  1527.  
  1528. #define WACS_LARROW    (&(_wacs_map[','])) /* arrow left */
  1529. #define WACS_RARROW    (&(_wacs_map['+'])) /* arrow right */
  1530. #define WACS_DARROW    (&(_wacs_map['.'])) /* arrow down */
  1531. #define WACS_UARROW    (&(_wacs_map['-'])) /* arrow up */
  1532. #define WACS_BOARD    (&(_wacs_map['h'])) /* board of squares */
  1533. #define WACS_LANTERN    (&(_wacs_map['i'])) /* lantern symbol */
  1534. #define WACS_BLOCK    (&(_wacs_map['0'])) /* solid square block */
  1535.  
  1536. /* Funny "characters" enabled for various special function keys for input */
  1537. /* This list is created from caps and curses.ed. Do not edit it! */
  1538. #define KEY_CODE_YES    0377        /* A key was returned */
  1539. #define KEY_MIN        0401        /* Minimum curses key */
  1540. #define KEY_BREAK    0401        /* break key (unreliable) */
  1541. #define KEY_DOWN    0402        /* Sent by terminal down arrow key */
  1542. #define KEY_UP        0403        /* Sent by terminal up arrow key */
  1543. #define KEY_LEFT    0404        /* Sent by terminal left arrow key */
  1544. #define KEY_RIGHT    0405        /* Sent by terminal right arrow key */
  1545. #define KEY_HOME    0406        /* Sent by home key. */
  1546. #define KEY_BACKSPACE    0407        /* Sent by backspace key */
  1547. #define KEY_F0        0410        /* function key f0. */
  1548. #define KEY_F(n)    (KEY_F0+(n))    /* Space for 64 function keys is reserved. */
  1549. #define KEY_DL        0510        /* Sent by delete line key. */
  1550. #define KEY_IL        0511        /* Sent by insert line. */
  1551. #define KEY_DC        0512        /* Sent by delete character key. */
  1552. #define KEY_IC        0513        /* Sent by ins char/enter ins mode key. */
  1553. #define KEY_EIC        0514        /* Sent by rmir or smir in insert mode. */
  1554. #define KEY_CLEAR    0515        /* Sent by clear screen or erase key. */
  1555. #define KEY_EOS        0516        /* Sent by clear-to-end-of-screen key. */
  1556. #define KEY_EOL        0517        /* Sent by clear-to-end-of-line key. */
  1557. #define KEY_SF        0520        /* Sent by scroll-forward/down key */
  1558. #define KEY_SR        0521        /* Sent by scroll-backward/up key */
  1559. #define KEY_NPAGE    0522        /* Sent by next-page key */
  1560. #define KEY_PPAGE    0523        /* Sent by previous-page key */
  1561. #define KEY_STAB    0524        /* Sent by set-tab key */
  1562. #define KEY_CTAB    0525        /* Sent by clear-tab key */
  1563. #define KEY_CATAB    0526        /* Sent by clear-all-tabs key. */
  1564. #define KEY_ENTER    0527        /* Enter/send (unreliable) */
  1565. #define KEY_SRESET    0530        /* soft (partial) reset (unreliable) */
  1566. #define KEY_RESET    0531        /* reset or hard reset (unreliable) */
  1567. #define KEY_PRINT    0532        /* print or copy */
  1568. #define KEY_LL        0533        /* Sent by home-down key */
  1569.                     /* The keypad is arranged like this: */
  1570.                     /*    a1    up    a3   */
  1571.                     /*   left   b2  right  */
  1572.                     /*    c1   down   c3   */
  1573. #define KEY_A1        0534        /* Upper left of keypad */
  1574. #define KEY_A3        0535        /* Upper right of keypad */
  1575. #define KEY_B2        0536        /* Center of keypad */
  1576. #define KEY_C1        0537        /* Lower left of keypad */
  1577. #define KEY_C3        0540        /* Lower right of keypad */
  1578. #define KEY_BTAB    0541        /* Back tab key */
  1579. #define KEY_BEG        0542        /* beg(inning) key */
  1580. #define KEY_CANCEL    0543        /* cancel key */
  1581. #define KEY_CLOSE    0544        /* close key */
  1582. #define KEY_COMMAND    0545        /* cmd (command) key */
  1583. #define KEY_COPY    0546        /* copy key */
  1584. #define KEY_CREATE    0547        /* create key */
  1585. #define KEY_END        0550        /* end key */
  1586. #define KEY_EXIT    0551        /* exit key */
  1587. #define KEY_FIND    0552        /* find key */
  1588. #define KEY_HELP    0553        /* help key */
  1589. #define KEY_MARK    0554        /* mark key */
  1590. #define KEY_MESSAGE    0555        /* message key */
  1591. #define KEY_MOVE    0556        /* move key */
  1592. #define KEY_NEXT    0557        /* next object key */
  1593. #define KEY_OPEN    0560        /* open key */
  1594. #define KEY_OPTIONS    0561        /* options key */
  1595. #define KEY_PREVIOUS    0562        /* previous object key */
  1596. #define KEY_REDO    0563        /* redo key */
  1597. #define KEY_REFERENCE    0564        /* ref(erence) key */
  1598. #define KEY_REFRESH    0565        /* refresh key */
  1599. #define KEY_REPLACE    0566        /* replace key */
  1600. #define KEY_RESTART    0567        /* restart key */
  1601. #define KEY_RESUME    0570        /* resume key */
  1602. #define KEY_SAVE    0571        /* save key */
  1603. #define KEY_SBEG    0572        /* shifted beginning key */
  1604. #define KEY_SCANCEL    0573        /* shifted cancel key */
  1605. #define KEY_SCOMMAND    0574        /* shifted command key */
  1606. #define KEY_SCOPY    0575        /* shifted copy key */
  1607. #define KEY_SCREATE    0576        /* shifted create key */
  1608. #define KEY_SDC        0577        /* shifted delete char key */
  1609. #define KEY_SDL        0600        /* shifted delete line key */
  1610. #define KEY_SELECT    0601        /* select key */
  1611. #define KEY_SEND    0602        /* shifted end key */
  1612. #define KEY_SEOL    0603        /* shifted clear line key */
  1613. #define KEY_SEXIT    0604        /* shifted exit key */
  1614. #define KEY_SFIND    0605        /* shifted find key */
  1615. #define KEY_SHELP    0606        /* shifted help key */
  1616. #define KEY_SHOME    0607        /* shifted home key */
  1617. #define KEY_SIC        0610        /* shifted input key */
  1618. #define KEY_SLEFT    0611        /* shifted left arrow key */
  1619. #define KEY_SMESSAGE    0612        /* shifted message key */
  1620. #define KEY_SMOVE    0613        /* shifted move key */
  1621. #define KEY_SNEXT    0614        /* shifted next key */
  1622. #define KEY_SOPTIONS    0615        /* shifted options key */
  1623. #define KEY_SPREVIOUS    0616        /* shifted prev key */
  1624. #define KEY_SPRINT    0617        /* shifted print key */
  1625. #define KEY_SREDO    0620        /* shifted redo key */
  1626. #define KEY_SREPLACE    0621        /* shifted replace key */
  1627. #define KEY_SRIGHT    0622        /* shifted right arrow */
  1628. #define KEY_SRSUME    0623        /* shifted resume key */
  1629. #define KEY_SSAVE    0624        /* shifted save key */
  1630. #define KEY_SSUSPEND    0625        /* shifted suspend key */
  1631. #define KEY_SUNDO    0626        /* shifted undo key */
  1632. #define KEY_SUSPEND    0627        /* suspend key */
  1633. #define KEY_UNDO    0630        /* undo key */
  1634. #define KEY_MOUSE    0631        /* Mouse event has occured */
  1635. #define KEY_MAX        0777        /* Maximum curses key */
  1636.  
  1637. /*
  1638.     The definition for 'reg' is not standard, and is provided for
  1639.     compatibility reasons. User's are discouraged from using this.
  1640. */
  1641. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1))
  1642. #define reg    register
  1643. #endif /* !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1)) */
  1644.  
  1645. /* Various video attributes */
  1646. #define A_STANDOUT    000000200000L    /* Terminal's best highlighting mode */
  1647. #define _STANDOUT    A_STANDOUT    /* for compatability with old curses */
  1648. #define A_UNDERLINE    000000400000L    /* Underlining */
  1649. #define A_REVERSE    000001000000L    /* Reverse video */
  1650. #define A_BLINK        000002000000L    /* Blinking */
  1651. #define A_DIM        000004000000L    /* Half bright */
  1652. #define A_BOLD        000010000000L    /* Extra bright or bold */
  1653. #define A_ALTCHARSET    000100000000L    /* Alternate character set */
  1654.  
  1655. /* The next two are subject to change so don't depend on them */
  1656. #define A_INVIS        000020000000L
  1657. #define A_PROTECT    000040000000L
  1658.  
  1659. #define A_NORMAL    000000000000L
  1660. #define A_ATTRIBUTES    037777600000L    /* 0xFFFF0000 */
  1661. #define A_CHARTEXT    000000177777L    /* 0x0000FFFF */
  1662. #define A_COLOR        017600000000L
  1663.  
  1664. /* Various video attributes defines for WA_  */
  1665.  
  1666. #define WA_STANDOUT    A_STANDOUT    /* Terminal's best highlighting mode */
  1667. #define WA_UNDERLINE    A_UNDERLINE    /* Underlining */
  1668. #define WA_REVERSE    A_REVERSE    /* Reverse video */
  1669. #define WA_BLINK    A_BLINK     /* Blinking */
  1670. #define WA_DIM        A_DIM         /* Half bright */
  1671. #define WA_BOLD        A_BOLD         /* Extra bright or bold */
  1672. #define WA_ALTCHARSET    A_ALTCHARSET    /* Alternate character set */
  1673. #define WA_INVIS    A_INVIS
  1674. #define WA_PROTECT    A_PROTECT
  1675. #define WA_NORMAL    A_NORMAL 
  1676.  
  1677. #define WA_HORIZONTAL    000000000001L    /* Horizontal highlight */
  1678. #define WA_LEFT        000000000002L    /* Left highlight */
  1679. #define WA_LOW        000000000004L    /* Low highlight */
  1680. #define WA_RIGHT    000000000010L    /* Right highlight */
  1681. #define WA_TOP        000000000020L    /* Top highlight */
  1682. #define WA_VERTICAL    000000000040L    /* Vertical highlight */
  1683.  
  1684. /* definition of 8 basic color    */
  1685. #define COLOR_BLACK    0
  1686. #define COLOR_RED    1
  1687. #define COLOR_GREEN    2
  1688. #define COLOR_YELLOW    3
  1689. #define COLOR_BLUE    4
  1690. #define COLOR_MAGENTA    5
  1691. #define COLOR_CYAN    6
  1692. #define COLOR_WHITE    7
  1693.  
  1694. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1))
  1695. /* mouse related macros: don't change these definitions or bit-masks. */
  1696. /* they are interdependent (used by _map_button() in tgetch()          */
  1697. #define BUTTON_RELEASED            0
  1698. #define BUTTON_PRESSED             1
  1699. #define BUTTON_CLICKED             2
  1700. #define BUTTON_DOUBLE_CLICKED      3
  1701. #define BUTTON_TRIPLE_CLICKED      4
  1702.  
  1703. #define MOUSE_X_POS                (Mouse_status._x)
  1704. #define MOUSE_Y_POS                (Mouse_status._y)
  1705. #define A_BUTTON_CHANGED           (Mouse_status._changes & 7)
  1706. #define MOUSE_MOVED                (Mouse_status._changes & 8)
  1707. #define MOUSE_POS_REPORT       (Mouse_status._changes & 16)
  1708. #define BUTTON_CHANGED(x)          (Mouse_status._changes & (1 << ((x) - 1)))
  1709. #define BUTTON_STATUS(x)           (Mouse_status._button[(x)-1])
  1710.  
  1711. /* definition of mouse bit-masks    */
  1712. #define BUTTON1_RELEASED    000000000001L
  1713. #define BUTTON1_PRESSED        000000000002L
  1714. #define BUTTON1_CLICKED        000000000004L
  1715. #define BUTTON1_DOUBLE_CLICKED    000000000010L
  1716. #define BUTTON1_TRIPLE_CLICKED    000000000020L
  1717. #define BUTTON2_RELEASED    000000000040L
  1718. #define BUTTON2_PRESSED        000000000100L
  1719. #define BUTTON2_CLICKED        000000000200L
  1720. #define BUTTON2_DOUBLE_CLICKED    000000000400L
  1721. #define BUTTON2_TRIPLE_CLICKED    000000001000L
  1722. #define BUTTON3_RELEASED    000000002000L
  1723. #define BUTTON3_PRESSED        000000004000L
  1724. #define BUTTON3_CLICKED        000000010000L
  1725. #define BUTTON3_DOUBLE_CLICKED    000000020000L
  1726. #define BUTTON3_TRIPLE_CLICKED    000000040000L
  1727. #define ALL_MOUSE_EVENTS    000000077777L
  1728. #define REPORT_MOUSE_POSITION    000000100000L
  1729.  
  1730. #endif /* !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1))*/
  1731.  
  1732. #ifdef __cplusplus
  1733. }
  1734. #endif
  1735.  
  1736. #endif /* _CURSES_H */
  1737.