home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / update701 / root.16 / usr / include / curses.h / curses
Text File  |  1998-08-18  |  58KB  |  1,779 lines

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