--- /dev/null
+<HTML>
+<BODY>
+<PRE>
+ <STRONG>ncurses</STRONG> - CRT screen handling and optimization package
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ The <STRONG>ncurses</STRONG> library routines give the user a terminal-
+ independent method of updating character screens with
+ reasonable optimization. This implementation is ``new
+ curses'' (ncurses) and is the approved replacement for
+ 4.4BSD classic curses, which has been discontinued.
+
+ The <STRONG>ncurses</STRONG> routines emulate the <STRONG><A HREF="ncurses.3x.html">curses(3X)</A></STRONG> library of
+ System V Release 4 UNIX, and the XPG4 curses standard (XSI
+ curses) but the <STRONG>ncurses</STRONG> library is freely redistributable
+ in source form. Differences from the SVr4 curses are
+ summarized under the EXTENSIONS and BUGS sections below
+ and described in detail in the EXTENSIONS and BUGS
+ sections of individual man pages.
+
+ A program using these routines must be linked with the
+ <STRONG>-lncurses</STRONG> option, or (if it has been generated) with the
+ debugging library <STRONG>-lncurses_g</STRONG>. (Your system integrator
+ may also have installed these libraries under the names
+ <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.) The ncurses_g library generates
+ trace logs (in a file called 'trace' in the current
+ directory) that describe curses actions.
+
+ The <STRONG>ncurses</STRONG> package supports: overall screen, window and
+ pad manipulation; output to windows and pads; reading
+ terminal input; control over terminal and <STRONG>curses</STRONG> input and
+ output options; environment query routines; color
+ manipulation; use of soft label keys; terminfo
+ capabilities; and access to low-level terminal-
+ manipulation routines.
+
+ To initialize the routines, the routine <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
+ must be called before any of the other routines that deal
+ with windows and screens are used. The routine <STRONG>endwin</STRONG>
+ must be called before exiting. To get character-at-a-time
+ input without echoing (most interactive, screen oriented
+ programs want this), the following sequence should be
+ used:
+
+ <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
+
+ Most programs would additionally use the sequence:
+
+ <STRONG>nonl();</STRONG>
+ <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
+ <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
+
+ defined, must be output. This can be done by executing
+ the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell environment variable
+ <STRONG>TERM</STRONG> has been exported. <STRONG>tset(1)</STRONG> is usually responsible
+ for doing this. [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
+
+ The <STRONG>ncurses</STRONG> library permits manipulation of data
+ structures, called <EM>windows</EM>, which can be thought of as
+ two-dimensional arrays of characters representing all or
+ part of a CRT screen. A default window called <STRONG>stdscr</STRONG>,
+ which is the size of the terminal screen, is supplied.
+ Others may be created with <STRONG>newwin</STRONG>.
+
+ Note that <STRONG>curses</STRONG> does not handle overlapping windows,
+ that's done by the <STRONG><A HREF="panel.3x.html">panel(3X)</A></STRONG> library. This means that you
+ can either use <STRONG>stdscr</STRONG> or divide the screen into tiled
+ windows and not using <STRONG>stdscr</STRONG> at all. Mixing the two will
+ result in unpredictable, and undesired, effects.
+
+ Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
+ These data structures are manipulated with routines
+ described here and elsewhere in the <STRONG>ncurses</STRONG> manual pages.
+ Among which the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
+ More general versions of these routines are included with
+ names beginning with <STRONG>w</STRONG>, allowing the user to specify a
+ window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.)
+
+ After using routines to manipulate a window, <STRONG>refresh</STRONG> is
+ called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
+ like <STRONG>stdscr</STRONG>. The characters in a window are actually of
+ type <STRONG>chtype</STRONG>, (character and attribute data) so that other
+ information about the character may also be stored with
+ each character.
+
+ Special windows called <EM>pads</EM> may also be manipulated.
+ These are windows which are not constrained to the size of
+ the screen and whose contents need not be completely
+ displayed. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG> for more information.
+
+ In addition to drawing characters on the screen, video
+ attributes and colors may be supported, causing the
+ characters to show up in such modes as underlined, in
+ reverse video, or in color on terminals that support such
+ display enhancements. Line drawing characters may be
+ specified to be output. On input, <STRONG>curses</STRONG> is also able to
+ translate arrow and function keys that transmit escape
+ sequences into single values. The video attributes, line
+ drawing characters, and input values use names, defined in
+ <STRONG><curses.h></STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>.
+
+ If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
+ if the program is executing in a window environment, line
+ and column information in the environment will override
+ of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
+
+ If the environment variable <STRONG>TERMINFO</STRONG> is defined, any
+ program using <STRONG>curses</STRONG> checks for a local terminal
+ definition before checking in the standard place. For
+ example, if <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled
+ terminal definition is found in
+
+ <STRONG>@DATADIR@/terminfo/a/att4424</STRONG>.
+
+ (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid
+ creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
+ set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
+
+ <STRONG>$HOME/myterms/a/att4424</STRONG>,
+
+ and if that fails, it then checks
+
+ <STRONG>@DATADIR@/terminfo/a/att4424</STRONG>.
+
+ This is useful for developing experimental definitions or
+ when write permission in <STRONG>@DATADIR@/terminfo</STRONG> is not
+ available.
+
+ The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
+ <STRONG><curses.h></STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
+ of the screen. The constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the
+ values <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
+
+ The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
+ <STRONG>curscr</STRONG> which is used for certain low-level operations like
+ clearing and redrawing a screen containing garbage. The
+ <STRONG>curscr</STRONG> can be used in only a few routines.
+
+
+ <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
+ Many <STRONG>curses</STRONG> routines have two or more versions. The
+ routines prefixed with <STRONG>w</STRONG> require a window argument. The
+ routines prefixed with <STRONG>p</STRONG> require a pad argument. Those
+ without a prefix generally use <STRONG>stdscr</STRONG>.
+
+ The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
+ to move to before performing the appropriate action. The
+ <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
+ other routine. The coordinate <EM>y</EM> always refers to the row
+ (of the window), and <EM>x</EM> always refers to the column. The
+ upper left-hand corner is always (0,0), not (1,1).
+
+ The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
+ and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
+ specified before the coordinates.
+
+ <STRONG>WINDOW</STRONG>.
+
+ Option setting routines require a Boolean flag <EM>bf</EM> with the
+ value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. The
+ variables <EM>ch</EM> and <EM>attrs</EM> below are always of type <STRONG>chtype</STRONG>.
+ The types <STRONG>WINDOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in
+ <STRONG><curses.h></STRONG>. The type <STRONG>TERMINAL</STRONG> is defined in <STRONG><term.h></STRONG>.
+ All other arguments are integers.
+
+
+ <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
+ The following table lists each <STRONG>curses</STRONG> routine and the name
+ of the manual page on which it is described. Routines
+ flagged with `*' are ncurses-specific, not described by
+ XPG4 or present in SVr4.
+
+ center tab(/); l l l l . <STRONG>curses</STRONG> Routine Name/Manual Page
+ Name = addch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> addchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
+ addchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG> addnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
+ addstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG> attr_get/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ attr_off/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> attr_on/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ attr_set/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> attroff/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ attron/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> attrset/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ baudrate/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG> beep/<STRONG><A HREF="curs_beep.3x.html">curs_beep(3X)</A></STRONG>
+ bkgd/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG> bkgdset/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG>
+ border/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG> box/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
+ can_change_color/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG> cbreak/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
+ chgat/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> clear/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
+ clearok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> clrtobot/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
+ clrtoeol/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG> color_content/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>
+ color_set/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> copywin/<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3X)</A></STRONG>
+ curs_set/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG> def_prog_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
+ def_shell_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG> define_key/<STRONG><A HREF="define_key.3x.html">define_key(3X)</A></STRONG>*
+ del_curterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> delay_output/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>
+ delch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG> deleteln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>
+ delscreen/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG> delwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
+ derwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> doupdate/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>
+ dupwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> echo/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
+ echochar/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> endwin/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
+ erase/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG> erasechar/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
+ filter/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> flash/<STRONG><A HREF="curs_beep.3x.html">curs_beep(3X)</A></STRONG>
+ flushinp/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> getbegyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>
+ getbkgd/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG> getch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>
+ getmaxyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG> getmouse/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*
+ getnstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> getparyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>
+ getstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> getsyx/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
+ getwin/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> getyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>
+ halfdelay/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> has_colors/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>
+ has_ic/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG> has_il/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
+ has_key/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>* hline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
+ idcok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> idlok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
+ immedok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> inch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG>
+ initscr/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG> innstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
+ insch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG> insdelln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>
+ insertln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG> insnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
+ insstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG> instr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
+ intrflush/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> is_linetouched/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG>
+ is_wintouched/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG> isendwin/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
+ keyname/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> keyok/<STRONG><A HREF="keyok.3x.html">keyok(3X)</A></STRONG>*
+ keypad/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> killchar/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
+ leaveok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> longname/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
+ mcprint/<STRONG><A HREF="curs_print.3x.html">curs_print(3X)</A></STRONG>* meta/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
+ mouseinterval/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>* mousemask/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*
+ move/<STRONG><A HREF="curs_move.3x.html">curs_move(3X)</A></STRONG> mvaddch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG>
+ mvaddchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG> mvaddchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
+ mvaddnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG> mvaddstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
+ mvchgat/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> mvcur/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
+ mvdelch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG> mvderwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
+ mvgetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> mvgetnstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>
+ mvgetstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> mvhline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
+ mvinch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG> mvinchnstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>
+ mvinchstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG> mvinnstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
+ mvinsch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG> mvinsnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
+ mvinsstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG> mvinstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
+ mvprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG> mvscanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>
+ mvwaddch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> mvwaddchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
+ mvwaddchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG> mvwaddnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
+ mvwaddstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG> mvwchgat/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ mvwdelch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG> mvwgetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>
+ mvwgetnstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> mvwgetstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>
+ mvwhline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG> mvwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
+ mvwinch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG> mvwinchnstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>
+ mvwinchstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG> mvwinnstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
+ mvwinsch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG> mvwinsnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
+ mvwinsstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG> mvwinstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
+ mvwprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG> mvwscanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>
+ mvwvline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG> napms/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
+ newpad/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG> newterm/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
+ newwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> nl/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
+ nocbreak/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> nodelay/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
+ noecho/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> nonl/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
+ noqiflush/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> noraw/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
+ notimeout/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> overlay/<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3X)</A></STRONG>
+ overwrite/<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3X)</A></STRONG> pair_content/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>
+ pechochar/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG> pnoutrefresh/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG>
+ prefresh/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG> printw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG>
+ putp/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> putwin/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>
+ qiflush/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> raw/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
+ redrawwin/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG> refresh/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>
+ reset_prog_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
+ reset_shell_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG> resetty/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
+ resizeterm/<STRONG><A HREF="resizeterm.3x.html">resizeterm(3X)</A></STRONG>* restartterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
+ ripoffline/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG> savetty/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
+ scanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG> scr_dump/<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3X)</A></STRONG>
+ scroll/<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3X)</A></STRONG> scrollok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
+ set_curterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> set_term/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
+ setscrreg/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> setsyx/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
+ setterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> setupterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
+ slk_attr/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>* slk_attr_off/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
+ slk_attr_on/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_attr_set/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
+ slk_attroff/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_attron/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
+ slk_attrset/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_clear/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
+ slk_color/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_init/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
+ slk_label/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_noutrefresh/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
+ slk_refresh/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_restore/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
+ slk_set/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_touch/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
+ standend/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> standout/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ start_color/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG> subpad/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG>
+ subwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> syncok/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
+ termattrs/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG> termname/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
+ tgetent/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG> tgetflag/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>
+ tgetnum/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG> tgetstr/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>
+ tgoto/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG> tigetflag/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
+ tigetnum/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> tigetstr/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
+ timeout/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> touchline/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG>
+ touchwin/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG> tparm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
+ tputs/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG> tputs/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
+ typeahead/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> unctrl/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>
+ ungetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> ungetmouse/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*
+ untouchwin/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG> use_default_colors/<STRONG><A HREF="dft_fgbg.3x.html">dft_fgbg(3X)</A></STRONG>*
+ use_env/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> vidattr/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
+ vidputs/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> vline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
+ vw_printw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG> vw_scanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>
+ vwprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG> vwscanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>
+ waddch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> waddchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
+ waddchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG> waddnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
+ waddstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG> wattr_get/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ wattr_off/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> wattr_on/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ wattr_set/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> wattroff/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ wattron/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> wattrset/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ wbkgd/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG> wbkgdset/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG>
+ wborder/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG> wchgat/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ wclear/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG> wclrtobot/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
+ wclrtoeol/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG> wcolor_set/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ wcursyncup/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> wdelch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG>
+ wdeleteln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG> wechochar/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG>
+ wenclose/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>* werase/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
+ wgetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> wgetnstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>
+ wgetstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> whline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
+ winch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG> winchnstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>
+ winchstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG> winnstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
+ winsch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG> winsdelln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>
+ winsertln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG> winsnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
+ winsstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG> winstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
+ wmouse_trafo/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG> wmove/<STRONG><A HREF="curs_move.3x.html">curs_move(3X)</A></STRONG>
+ wnoutrefresh/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG> wprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG>
+ wscrl/<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3X)</A></STRONG> wsetscrreg/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
+ wstandend/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> wstandout/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
+ wsyncdown/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> wsyncup/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
+ wtimeout/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> wtouchln/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG>
+ wvline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ Routines that return an integer return <STRONG>ERR</STRONG> upon failure
+ and an integer value other than <STRONG>ERR</STRONG> upon successful
+ completion, unless otherwise noted in the routine
+ descriptions.
+
+ All macros return the value of the <STRONG>w</STRONG> version, except
+ <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, <STRONG>getmaxyx</STRONG>. The
+ return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
+ and <STRONG>getmaxyx</STRONG> are undefined (<EM>i</EM>.<EM>e</EM>., these should not be used
+ as the right-hand side of assignment statements).
+
+ Routines that return pointers return <STRONG>NULL</STRONG> on error.
+
+
+</PRE>
+<H2>ENVIRONMENT</H2><PRE>
+ The following environment symbols are useful for
+ customizing the runtime behavior of the <STRONG>ncurses</STRONG> library.
+ The most important ones have been already discussed in
+ detail.
+
+ BAUDRATE
+ The debugging library checks this environment symbol
+ when the application has redirected output to a file.
+ The symbol's numeric value is used for the baudrate.
+ If no value is found <STRONG>ncurses</STRONG> uses 9600. This allows
+ testers to construct repeatable test-cases that take
+ into account costs that depend on baudrate.
+
+ CC When set, change occurrences of the command_character
+ (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
+ entries to the value of this symbol. Very few
+ terminfo entries provide this feature.
+
+ COLUMNS
+ Specify the width of the screen in characters.
+ Applications running in a windowing environment
+ usually are able to obtain the width of the window in
+ which they are executing. If neither the $COLUMNS
+ value nor the terminal's screen size is available,
+ <STRONG>ncurses</STRONG> uses the size which may be specified in the
+ terminfo database (i.e., the <STRONG>cols</STRONG> capability).
+
+ It is important that your application use a correct
+ size for the screen. However, this is not always
+ possible because your application may be running on a
+ host which does not honor NAWS (Negotiations About
+
+ Either COLUMNS or LINES symbols may be specified
+ independently. This is mainly useful to circumvent
+ legacy misfeatures of terminal descriptions, e.g.,
+ xterm which commonly specifies a 65 line screen. For
+ best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
+ in a terminal description for terminals which are run
+ as emulations.
+
+ Use the <STRONG>use_env</STRONG> function to disable this feature.
+
+ ESCDELAY
+ Specifies the total time, in milliseconds, for which
+ ncurses will await a character sequence, e.g., a
+ function key. The default value, 1000 milliseconds,
+ is enough for most uses. However, it is made a
+ variable to accommodate unusual applications.
+
+ The most common instance where you may wish to change
+ this value is to work with slow hosts, e.g., running
+ on a network. If the host cannot read characters
+ rapidly enough, it will have the same effect as if
+ the terminal did not send characters rapidly enough.
+ The library will still see a timeout.
+
+ Note that xterm mouse events are built up from
+ character sequences received from the xterm. If your
+ application makes heavy use of multiple-clicking, you
+ may wish to lengthen this default value because the
+ timeout applies to the composed multi-click event as
+ well as the individual clicks.
+
+ HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
+ where it may read and write auxiliary terminal
+ descriptions:
+
+ $HOME/.termcap
+ $HOME/.terminfo
+
+ LINES
+ Like COLUMNS, specify the height of the screen in
+ characters. See COLUMNS for a detailed description.
+
+ MOUSE_BUTTONS_123
+ This applies only to the OS/2 EMX port. It specifies
+ the order of buttons on the mouse. OS/2 numbers a
+ 3-button mouse inconsistently from other platforms:
+
+ 1 = left
+ 2 = right
+ 3 = middle.
+
+ 123 or 321. If it is not specified, <STRONG>ncurses</STRONG> uses
+ 132.
+
+ NCURSES_NO_PADDING
+ Most of the terminal descriptions in the terminfo
+ database are written for real "hardware" terminals.
+ Many people use terminal emulators which run in a
+ windowing environment and use curses-based
+ applications. Terminal emulators can duplicate all
+ of the important aspects of a hardware terminal, but
+ they do not have the same limitations. The chief
+ limitation of a hardware terminal from the standpoint
+ of your application is the management of dataflow,
+ i.e., timing. Unless a hardware terminal is
+ interfaced into a terminal concentrator (which does
+ flow control), it (or your application) must manage
+ dataflow, preventing overruns. The cheapest solution
+ (no hardware cost) is for your program to do this by
+ pausing after operations that the terminal does
+ slowly, such as clearing the display.
+
+ As a result, many terminal descriptions (including
+ the vt100) have delay times embedded. You may wish
+ to use these descriptions, but not want to pay the
+ performance penalty.
+
+ Set the NCURSES_NO_PADDING symbol to disable all but
+ mandatory padding. Mandatory padding is used as a
+ part of special control sequences such as <EM>flash</EM>.
+
+ NCURSES_NO_SETBUF
+ Normally <STRONG>ncurses</STRONG> enables buffered output during
+ terminal initialization. This is done (as in SVr4
+ curses) for performance reasons. For testing
+ purposes, both of <STRONG>ncurses</STRONG> and certain applications,
+ this feature is made optional. Setting the
+ NCURSES_NO_SETBUF variable disables output buffering,
+ leaving the output in the original (usually line
+ buffered) mode.
+
+ NCURSES_TRACE
+ During initialization, the <STRONG>ncurses</STRONG> debugging library
+ checks the NCURSES_TRACE symbol. If it is defined,
+ to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function,
+ using that value as the argument.
+
+ The argument values, which are defined in <STRONG>curses.h</STRONG>,
+ provide several types of information. When running
+ with traces enabled, your application will write the
+ file <STRONG>trace</STRONG> to the current directory.
+
+ TERM Denotes your terminal type. Each terminal type is
+ If the <STRONG>ncurses</STRONG> library has been configured with
+ <EM>termcap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's
+ description in termcap form if it is not available in
+ the terminfo database.
+
+ The TERMCAP symbol contains either a terminal
+ description (with newlines stripped out), or a file
+ name telling where the information denoted by the
+ TERM symbol exists. In either case, setting it
+ directs <STRONG>ncurses</STRONG> to ignore the usual place for this
+ information, e.g., /etc/termcap.
+
+ TERMINFO
+ Overrides the directory in which <STRONG>ncurses</STRONG> searches for
+ your terminal description. This is the simplest, but
+ not the only way to change the list of directories.
+ The complete list of directories in order follows:
+
+ - the last directory to which <STRONG>ncurses</STRONG> wrote, if any,
+ is searched first.
+
+ - the directory specified by the TERMINFO symbol
+
+ - $HOME/.terminfo
+
+ - directories listed in the TERMINFO_DIRS symbol
+
+ - one or more directories whose names are configured
+ and compiled into the ncurses library, e.g.,
+ @DATADIR@/terminfo
+
+ TERMINFO_DIRS
+ Specifies a list of directories to search for
+ terminal descriptions. The list is separated by
+ colons (i.e., ":"). All of the terminal descriptions
+ are in terminfo form, which makes a subdirectory
+ named for the first letter of the terminal names
+ therein.
+
+ TERMPATH
+ If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG>
+ checks the TERMPATH symbol. This is a list of
+ filenames separated by colons (i.e., ":"). If the
+ TERMPATH symbol is not set, <STRONG>ncurses</STRONG> looks in the
+ files /etc/termcap, /usr/share/misc/termcap and
+ $HOME/.termcap, in that order.
+
+
+</PRE>
+<H2>FILES</H2><PRE>
+ @DATADIR@/tabset
+ directory containing initialization files for the
+ terminal capability database @DATADIR@/terminfo
+ terminal capability database
+
+ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and 3X pages whose names begin "curs_" for
+ detailed routine descriptions.
+
+
+</PRE>
+<H2>EXTENSIONS</H2><PRE>
+ The <STRONG>ncurses</STRONG> library can be compiled with an option
+ (<STRONG>-DUSE_GETCAP</STRONG>) that falls back to the old-style
+ /etc/termcap file if the terminal setup code cannot find a
+ terminfo entry corresponding to <STRONG>TERM</STRONG>. Use of this feature
+ is not recommended, as it essentially includes an entire
+ termcap compiler in the <STRONG>ncurses</STRONG> startup code, at
+ significant cost in core and startup cycles.
+
+ The <STRONG>ncurses</STRONG> library includes facilities for capturing
+ mouse events on certain terminals (including xterm). See
+ the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG> manual page for details.
+
+ The <STRONG>ncurses</STRONG> library includes facilities for responding to
+ window resizing events, e.g., when running in an xterm.
+ See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3X)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3X)</A></STRONG> manual pages for
+ details. In addition, the library may be configured with
+ a SIGWINCH handler.
+
+ The <STRONG>ncurses</STRONG> library extends the fixed set of function key
+ capabilities of terminals by allowing the application
+ designer to define additional key sequences at runtime.
+ See the <STRONG><A HREF="define_key.3x.html">define_key(3X)</A></STRONG> and <STRONG><A HREF="keyok.3x.html">keyok(3X)</A></STRONG> manual pages for
+ details.
+
+ The <STRONG>ncurses</STRONG> library can exploit the capabilities of
+ terminals which implement the ISO-6429 SGR 39 and SGR 49
+ controls, which allow an application to reset the terminal
+ to its original foreground and background colors. From
+ the users' perspective, the application is able to draw
+ colored text on a background whose color is set
+ independently, providing better control over color
+ contrasts. See the <STRONG><A HREF="use_default_colors.3x.html">use_default_colors(3X)</A></STRONG> manual page for
+ details.
+
+ The <STRONG>ncurses</STRONG> library includes a function for directing
+ application output to a printer attached to the terminal
+ device. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3X)</A></STRONG> manual page for details.
+
+
+</PRE>
+<H2>PORTABILITY</H2><PRE>
+ The <STRONG>ncurses</STRONG> library is intended to be BASE-level
+ conformant with the XSI Curses standard. Certain portions
+ of the EXTENDED XSI Curses functionality (including color
+ support) are supported. The following EXTENDED XSI Curses
+ calls in support of wide (multibyte) characters are not
+ yet implemented: <STRONG>add_wch</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>add_wchstr</STRONG>,
+ <STRONG>addnwstr</STRONG>, <STRONG>addwstr</STRONG>, <STRONG>bkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, <STRONG>border_set</STRONG>, <STRONG>box_set</STRONG>,
+ <STRONG>echo_wchar</STRONG>, <STRONG>erasewchar</STRONG>, <STRONG>get_wch</STRONG>, <STRONG>get_wstr</STRONG>, <STRONG>getbkgrnd</STRONG>,
+ <STRONG>getcchar</STRONG>, <STRONG>getn_wstr</STRONG>, <STRONG>getwchtype</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>in_wch</STRONG>,
+ <STRONG>killwchar</STRONG>, <STRONG>mvadd_wch</STRONG>, <STRONG>mvadd_wchnstr</STRONG>, <STRONG>mvadd_wchstr</STRONG>,
+ <STRONG>mvaddnwstr</STRONG>, <STRONG>mvaddwstr</STRONG>, <STRONG>mvget_wch</STRONG>, <STRONG>mvget_wstr</STRONG>, <STRONG>mvgetn_wstr</STRONG>,
+ <STRONG>mvhline_set</STRONG>, <STRONG>mvin_wch</STRONG>, <STRONG>mvinnwstr</STRONG>, <STRONG>mvins_nwstr</STRONG>, <STRONG>mvins_wch</STRONG>,
+ <STRONG>mvins_wstr</STRONG>, <STRONG>mvinwchnstr</STRONG>, <STRONG>mvinwchstr</STRONG>, <STRONG>mvinwchstr</STRONG>, <STRONG>mvinwstr</STRONG>,
+ <STRONG>mvvline_set</STRONG>, <STRONG>mvwadd_wch</STRONG>, <STRONG>mvwadd_wchnstr</STRONG>, <STRONG>mvwadd_wchstr</STRONG>,
+ <STRONG>mvwaddnwstr</STRONG>, <STRONG>mvwaddwstr</STRONG>, <STRONG>mvwget_ch</STRONG>, <STRONG>mvwget_wch</STRONG>,
+ <STRONG>mvwget_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG>, <STRONG>mvwhline_set</STRONG>, <STRONG>mvwin_wch</STRONG>,
+ <STRONG>mvwin_wchnstr</STRONG>, <STRONG>mvwin_wchstr</STRONG>, <STRONG>mvwinnwstr</STRONG>, <STRONG>mvwins_nwstr</STRONG>,
+ <STRONG>mvwins_wch</STRONG>, <STRONG>mvwins_wstr</STRONG>, <STRONG>mvwinwchnstr</STRONG>. <STRONG>mvwinwstr</STRONG>,
+ <STRONG>mvwvline_set</STRONG>, <STRONG>pecho_wchar</STRONG>, <STRONG>setcchar</STRONG>, <STRONG>slk_wset</STRONG>, <STRONG>term_attrs</STRONG>,
+ <STRONG>unget_wch</STRONG>, <STRONG>vhline_set</STRONG>, <STRONG>vid_attr</STRONG>, <STRONG>vid_puts</STRONG>, <STRONG>vline_set</STRONG>,
+ <STRONG>wadd_wch</STRONG>, <STRONG>wadd_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>waddnwstr</STRONG>, <STRONG>waddwstr</STRONG>,
+ <STRONG>waddwstr</STRONG>, <STRONG>wbkgrnd</STRONG>, <STRONG>wbkgrndset</STRONG>, <STRONG>wbkgrndset</STRONG>, <STRONG>wborder_set</STRONG>,
+ <STRONG>wecho_wchar</STRONG>, <STRONG>wecho_wchar</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>wget_wstr</STRONG>, <STRONG>wgetbkgrnd</STRONG>,
+ <STRONG>wgetn_wstr</STRONG>, <STRONG>whline_set</STRONG>, <STRONG>win_wch</STRONG>, <STRONG>win_wchnstr</STRONG>, <STRONG>win_wchstr</STRONG>,
+ <STRONG>winnwstr</STRONG>, <STRONG>wins_nwstr</STRONG>, <STRONG>wins_wch</STRONG>, <STRONG>wins_wstr</STRONG>, <STRONG>winwchnstr</STRONG>,
+ <STRONG>winwchstr</STRONG>, <STRONG>winwstr</STRONG>, <STRONG>wunctrl</STRONG>, <STRONG>wvline_set</STRONG>,
+
+ A small number of local differences (that is, individual
+ differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
+ described in <STRONG>PORTABILITY</STRONG> sections of the library man
+ pages.
+
+ The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present
+ in SVr4. See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> manual page for details.
+
+ The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it
+ present in SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> manual page for
+ details.
+
+ The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>,
+ <STRONG>mouseinterval</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse interfacing
+ are not part of XPG4, nor are they present in SVr4. See
+ the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG> manual page for details.
+
+ The routine <STRONG>mcprint</STRONG> was not present in any previous curses
+ implementation. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3X)</A></STRONG> manual page for
+ details.
+
+ The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present
+ in SVr4. See the <STRONG><A HREF="wresize.3x.html">wresize(3X)</A></STRONG> manual page for details.
+
+ In historic curses versions, delays embedded in the
+ capabilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated
+ corresponding delay bits in the UNIX tty driver. In this
+ implementation, all padding is done by NUL sends. This
+ method is slightly more expensive, but narrows the
+ interface to the UNIX kernel significantly and increases
+ the package's portability correspondingly.
+
+ In the XSI standard and SVr4 manual pages, many entry
+ points have prototype arguments of the for <STRONG>char</STRONG> <STRONG>*const</STRONG> (or
+ (see section 3.5.4.1), these declarations are either (a)
+ meaningless, or (b) meaningless and illegal. The
+ declaration <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*x</STRONG> is a modifiable pointer to
+ unmodifiable data, but <STRONG>char</STRONG> <STRONG>*const</STRONG> <STRONG>x</STRONG>' is an unmodifiable
+ pointer to modifiable data. Given that C passes arguments
+ by value, <STRONG><type></STRONG> <STRONG>*const</STRONG> as a formal type is at best
+ dubious. Some compilers choke on the prototypes.
+ Therefore, in this implementation, they have been changed
+ to <STRONG>const</STRONG> <STRONG><type></STRONG> <STRONG>*</STRONG> globally.
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+ The header file <STRONG><curses.h></STRONG> automatically includes the
+ header files <STRONG><stdio.h></STRONG> and <STRONG><unctrl.h></STRONG>.
+
+ If standard output from a <STRONG>ncurses</STRONG> program is re-directed
+ to something which is not a tty, screen updates will be
+ directed to standard error. This was an undocumented
+ feature of AT&T System V Release 3 curses.
+
+
+</PRE>
+<H2>AUTHORS</H2><PRE>
+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
+ Based on pcurses by Pavel Curtis.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+</BODY>
+</HTML>