summaryrefslogtreecommitdiffstats
path: root/upstream/opensuse-leap-15-6/man3/ncurses.3ncurses
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /upstream/opensuse-leap-15-6/man3/ncurses.3ncurses
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/opensuse-leap-15-6/man3/ncurses.3ncurses')
-rw-r--r--upstream/opensuse-leap-15-6/man3/ncurses.3ncurses1388
1 files changed, 1388 insertions, 0 deletions
diff --git a/upstream/opensuse-leap-15-6/man3/ncurses.3ncurses b/upstream/opensuse-leap-15-6/man3/ncurses.3ncurses
new file mode 100644
index 00000000..4e8a30df
--- /dev/null
+++ b/upstream/opensuse-leap-15-6/man3/ncurses.3ncurses
@@ -0,0 +1,1388 @@
+'\" t
+.\"***************************************************************************
+.\" Copyright (c) 1998-2015,2017 Free Software Foundation, Inc. *
+.\" *
+.\" Permission is hereby granted, free of charge, to any person obtaining a *
+.\" copy of this software and associated documentation files (the *
+.\" "Software"), to deal in the Software without restriction, including *
+.\" without limitation the rights to use, copy, modify, merge, publish, *
+.\" distribute, distribute with modifications, sublicense, and/or sell *
+.\" copies of the Software, and to permit persons to whom the Software is *
+.\" furnished to do so, subject to the following conditions: *
+.\" *
+.\" The above copyright notice and this permission notice shall be included *
+.\" in all copies or substantial portions of the Software. *
+.\" *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+.\" *
+.\" Except as contained in this notice, the name(s) of the above copyright *
+.\" holders shall not be used in advertising or otherwise to promote the *
+.\" sale, use or other dealings in this Software without prior written *
+.\" authorization. *
+.\"***************************************************************************
+.\"
+.\" $Id: ncurses.3x,v 1.136 2017/11/18 23:48:44 tom Exp $
+.hy 0
+.TH ncurses 3NCURSES ""
+.ie \n(.g .ds `` \(lq
+.el .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el .ds '' ''
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
+.de NS
+.ie n .sp
+.el .sp .5
+.ie n .in +4
+.el .in +2
+.nf
+.ft C \" Courier
+..
+.de NE
+.fi
+.ft R
+.in -4
+..
+.ds n 5
+.ds d /usr/share/terminfo
+.SH NAME
+\fBncurses\fR \- CRT screen handling and optimization package
+.SH SYNOPSIS
+\fB#include <ncursesw/curses.h>\fR
+.br
+.SH DESCRIPTION
+The \fBncurses\fR 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.
+This describes \fBncurses\fR
+version 6.1 (patch 20180317).
+.PP
+The \fBncurses\fR library emulates the curses library of
+System V Release 4 UNIX,
+and XPG4 (X/Open Portability Guide) curses (also known as XSI curses).
+XSI stands for X/Open System Interfaces Extension.
+The \fBncurses\fR library is freely redistributable in source form.
+Differences from the SVr4
+curses are summarized under the
+\fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
+described in detail in the respective
+\fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
+of individual man pages.
+.PP
+The \fBncurses\fR library also provides many useful extensions,
+i.e., features which cannot be implemented by a simple add-on library
+but which require access to the internals of the library.
+.PP
+A program using these routines must be linked with the \fB\-lncurses\fR option,
+or (if it has been generated) with the debugging library \fB\-lncurses_g\fR.
+(Your system integrator may also have installed these libraries under
+the names \fB\-lcurses\fR and \fB\-lcurses_g\fR.)
+The ncurses_g library generates trace logs (in a file called 'trace' in the
+current directory) that describe curses actions.
+See also the section on \fBALTERNATE CONFIGURATIONS\fP.
+.PP
+The \fBncurses\fR package supports: overall screen, window and pad
+manipulation; output to windows and pads; reading terminal input; control over
+terminal and \fBcurses\fR input and output options; environment query
+routines; color manipulation; use of soft label keys; terminfo capabilities;
+and access to low-level terminal-manipulation routines.
+.SS Initialization
+.PP
+The library uses the locale which the calling program has initialized.
+That is normally done with \fBsetlocale\fP:
+.NS
+\fBsetlocale(LC_ALL, "");\fP
+.NE
+.PP
+If the locale is not initialized,
+the library assumes that characters are printable as in ISO\-8859\-1,
+to work with certain legacy programs.
+You should initialize the locale and not rely on specific details of
+the library when the locale has not been setup.
+.PP
+The function \fBinitscr\fR or \fBnewterm\fR
+must be called to initialize the library
+before any of the other routines that deal with windows
+and screens are used.
+The routine \fBendwin\fR(3X) must be called before exiting.
+.PP
+To get character-at-a-time input without echoing (most
+interactive, screen oriented programs want this), the following
+sequence should be used:
+.NS
+\fBinitscr(); cbreak(); noecho();\fR
+.NE
+.PP
+Most programs would additionally use the sequence:
+.NS
+\fBnonl();\fR
+\fBintrflush(stdscr, FALSE);\fR
+\fBkeypad(stdscr, TRUE);\fR
+.NE
+.PP
+Before a \fBcurses\fR program is run, the tab stops of the terminal
+should be set and its initialization strings, if defined, must be output.
+This can be done by executing the \fBtput init\fR command
+after the shell environment variable \fBTERM\fR has been exported.
+\fBtset(1)\fR is usually responsible for doing this.
+[See \fBterminfo\fR(\*n) for further details.]
+.SS Datatypes
+.PP
+Beware: the terminal your program is running may or may not have
+the features you expect. Ncurses makes no attempt to check available
+features in advance. This is upon the programmer.
+.PP
+The \fBncurses\fR library permits manipulation of data structures,
+called \fIwindows\fR, which can be thought of as two-dimensional
+arrays of characters representing all or part of a CRT screen.
+A default window called \fBstdscr\fR, which is the size of the terminal
+screen, is supplied.
+Others may be created with \fBnewwin\fR.
+.PP
+Note that \fBcurses\fR does not handle overlapping windows, that's done by
+the \fBpanel\fR(3CURSES) library.
+This means that you can either use
+\fBstdscr\fR or divide the screen into tiled windows and not using
+\fBstdscr\fR at all.
+Mixing the two will result in unpredictable, and undesired, effects.
+.PP
+Windows are referred to by variables declared as \fBWINDOW *\fR.
+These data structures are manipulated with routines described here and
+elsewhere in the \fBncurses\fR manual pages.
+Among those, the most basic
+routines are \fBmove\fR and \fBaddch\fR.
+More general versions of
+these routines are included with names beginning with \fBw\fR,
+allowing the user to specify a window.
+The routines not beginning
+with \fBw\fR affect \fBstdscr\fR.
+.PP
+After using routines to manipulate a window, \fBrefresh\fR(3X) is called,
+telling \fBcurses\fR to make the user's CRT screen look like
+\fBstdscr\fR.
+The characters in a window are actually of type
+\fBchtype\fR, (character and attribute data) so that other information
+about the character may also be stored with each character.
+.PP
+Special windows called \fIpads\fR 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 \fBpad\fR(3NCURSES) for more information.
+.PP
+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, \fBcurses\fR 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 \fB<curses.h>\fR,
+such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
+.SS Environment variables
+.PP
+If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
+program is executing in a window environment, line and column information in
+the environment will override information read by \fIterminfo\fR.
+This would affect a program running in an AT&T 630 layer,
+for example, where the size of a
+screen is changeable (see \fBENVIRONMENT\fR).
+.PP
+If the environment variable \fBTERMINFO\fR is defined, any program using
+\fBcurses\fR checks for a local terminal definition before checking in the
+standard place.
+For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
+compiled terminal definition is found in
+.NS
+\fB\*d/a/att4424\fR.
+.NE
+.PP
+(The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid
+creation of huge directories.) However, if \fBTERMINFO\fR is set to
+\fB$HOME/myterms\fR, \fBcurses\fR first checks
+.NS
+\fB$HOME/myterms/a/att4424\fR,
+.NE
+.PP
+and if that fails, it then checks
+.NS
+\fB\*d/a/att4424\fR.
+.NE
+.PP
+This is useful for developing experimental definitions or when write
+permission in \fB\*d\fR is not available.
+.PP
+The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
+\fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
+screen.
+The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
+\fB0\fR, respectively.
+.PP
+The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
+which is used for certain low-level operations like clearing and redrawing a
+screen containing garbage.
+The \fBcurscr\fR can be used in only a few routines.
+.\"
+.SS Routine and Argument Names
+Many \fBcurses\fR routines have two or more versions.
+The routines prefixed with \fBw\fR require a window argument.
+The routines prefixed with \fBp\fR require a pad argument.
+Those without a prefix generally use \fBstdscr\fR.
+.PP
+The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
+coordinate to move to before performing the appropriate action.
+The \fBmv\fR routines imply a call to \fBmove\fR before the call to the
+other routine.
+The coordinate \fIy\fR always refers to the row (of
+the window), and \fIx\fR always refers to the column.
+The upper left-hand corner is always (0,0), not (1,1).
+.PP
+The routines prefixed with \fBmvw\fR take both a window argument and
+\fIx\fR and \fIy\fR coordinates.
+The window argument is always specified before the coordinates.
+.PP
+In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
+pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
+\fBWINDOW\fR.
+.PP
+Option setting routines require a Boolean flag \fIbf\fR with the value
+\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.
+Most of the data types used in the library routines,
+such as \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and \fBchtype\fR
+are defined in \fB<curses.h>\fR.
+Types used for the terminfo routines such as
+\fBTERMINAL\fR are defined in \fB<term.h>\fR.
+.PP
+This manual page describes functions which may appear in any configuration
+of the library.
+There are two common configurations of the library:
+.RS 3
+.TP 5
+.I ncurses
+the "normal" library, which handles 8-bit characters.
+The normal (8-bit) library stores characters combined with attributes
+in \fBchtype\fP data.
+.IP
+Attributes alone (no corresponding character) may be stored in \fBchtype\fP
+or the equivalent \fBattr_t\fP data.
+In either case, the data is stored in something like an integer.
+.IP
+Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBchtype\fP.
+.TP 5
+.I ncursesw
+the so-called "wide" library, which handles multibyte characters
+(see the section on \fBALTERNATE CONFIGURATIONS\fP).
+The "wide" library includes all of the calls from the "normal" library.
+It adds about one third more calls using data types which store
+multibyte characters:
+.RS 5
+.TP 5
+.B cchar_t
+corresponds to \fBchtype\fP.
+However it is a structure, because more data is stored than can fit into
+an integer.
+The characters are large enough to require a full integer value \- and there
+may be more than one character per cell.
+The video attributes and color are stored in separate fields of the structure.
+.IP
+Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBcchar_t\fP.
+.TP 5
+.B wchar_t
+stores a "wide" character.
+Like \fBchtype\fP, this may be an integer.
+.TP 5
+.B wint_t
+stores a \fBwchar_t\fP or \fBWEOF\fP \- not the same, though both may have
+the same size.
+.RE
+.IP
+The "wide" library provides new functions which are analogous to
+functions in the "normal" library.
+There is a naming convention which relates many of the normal/wide variants:
+a "_w" is inserted into the name.
+For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
+.RE
+.PP
+.\"
+.SS Routine Name Index
+The following table lists each \fBcurses\fR 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.
+.PP
+.TS
+center tab(/);
+l l
+l l .
+\fBcurses\fR Routine Name/Manual Page Name
+=
+COLOR_PAIR/\fBcolor\fR(3NCURSES)
+PAIR_NUMBER/\fBattr\fR(3NCURSES)
+_nc_free_and_exit/\fBmemleaks\fR(3NCURSES)*
+_nc_freeall/\fBmemleaks\fR(3NCURSES)*
+_nc_tracebits/\fBtrace\fR(3NCURSES)*
+_traceattr/\fBtrace\fR(3NCURSES)*
+_traceattr2/\fBtrace\fR(3NCURSES)*
+_tracechar/\fBtrace\fR(3NCURSES)*
+_tracechtype/\fBtrace\fR(3NCURSES)*
+_tracechtype2/\fBtrace\fR(3NCURSES)*
+_tracedump/\fBtrace\fR(3NCURSES)*
+_tracef/\fBtrace\fR(3NCURSES)*
+_tracemouse/\fBtrace\fR(3NCURSES)*
+add_wch/\fBadd_wch\fR(3NCURSES)
+add_wchnstr/\fBadd_wchstr\fR(3NCURSES)
+add_wchstr/\fBadd_wchstr\fR(3NCURSES)
+addch/\fBaddch\fR(3NCURSES)
+addchnstr/\fBaddchstr\fR(3NCURSES)
+addchstr/\fBaddchstr\fR(3NCURSES)
+addnstr/\fBaddstr\fR(3NCURSES)
+addnwstr/\fBaddwstr\fR(3NCURSES)
+addstr/\fBaddstr\fR(3NCURSES)
+addwstr/\fBaddwstr\fR(3NCURSES)
+alloc_pair/\fBnew_pair\fR(3NCURSES)*
+assume_default_colors/\fBdefault_colors\fR(3NCURSES)*
+attr_get/\fBattr\fR(3NCURSES)
+attr_off/\fBattr\fR(3NCURSES)
+attr_on/\fBattr\fR(3NCURSES)
+attr_set/\fBattr\fR(3NCURSES)
+attroff/\fBattr\fR(3NCURSES)
+attron/\fBattr\fR(3NCURSES)
+attrset/\fBattr\fR(3NCURSES)
+baudrate/\fBtermattrs\fR(3NCURSES)
+beep/\fBbeep\fR(3NCURSES)
+bkgd/\fBbkgd\fR(3NCURSES)
+bkgdset/\fBbkgd\fR(3NCURSES)
+bkgrnd/\fBbkgrnd\fR(3NCURSES)
+bkgrndset/\fBbkgrnd\fR(3NCURSES)
+border/\fBborder\fR(3NCURSES)
+border_set/\fBborder_set\fR(3NCURSES)
+box/\fBborder\fR(3NCURSES)
+box_set/\fBborder_set\fR(3NCURSES)
+can_change_color/\fBcolor\fR(3NCURSES)
+cbreak/\fBinopts\fR(3NCURSES)
+chgat/\fBattr\fR(3NCURSES)
+clear/\fBclear\fR(3NCURSES)
+clearok/\fBoutopts\fR(3NCURSES)
+clrtobot/\fBclear\fR(3NCURSES)
+clrtoeol/\fBclear\fR(3NCURSES)
+color_content/\fBcolor\fR(3NCURSES)
+color_set/\fBattr\fR(3NCURSES)
+copywin/\fBoverlay\fR(3NCURSES)
+curs_set/\fBkernel\fR(3NCURSES)
+curses_version/\fBextensions\fR(3NCURSES)*
+def_prog_mode/\fBkernel\fR(3NCURSES)
+def_shell_mode/\fBkernel\fR(3NCURSES)
+define_key/\fBdefine_key\fR(3NCURSES)*
+del_curterm/\fBterminfo\fR(3NCURSES)
+delay_output/\fButil\fR(3NCURSES)
+delch/\fBdelch\fR(3NCURSES)
+deleteln/\fBdeleteln\fR(3NCURSES)
+delscreen/\fBinitscr\fR(3NCURSES)
+delwin/\fBwindow\fR(3NCURSES)
+derwin/\fBwindow\fR(3NCURSES)
+doupdate/\fBrefresh\fR(3NCURSES)
+dupwin/\fBwindow\fR(3NCURSES)
+echo/\fBinopts\fR(3NCURSES)
+echo_wchar/\fBadd_wch\fR(3NCURSES)
+echochar/\fBaddch\fR(3NCURSES)
+endwin/\fBinitscr\fR(3NCURSES)
+erase/\fBclear\fR(3NCURSES)
+erasechar/\fBtermattrs\fR(3NCURSES)
+erasewchar/\fBtermattrs\fR(3NCURSES)
+extended_color_content/\fBcolor\fR(3NCURSES)*
+extended_pair_content/\fBcolor\fR(3NCURSES)*
+extended_slk_color/\fBslk\fR(3NCURSES)*
+filter/\fButil\fR(3NCURSES)
+find_pair/\fBnew_pair\fR(3NCURSES)*
+flash/\fBbeep\fR(3NCURSES)
+flushinp/\fButil\fR(3NCURSES)
+free_pair/\fBnew_pair\fR(3NCURSES)*
+get_wch/\fBget_wch\fR(3NCURSES)
+get_wstr/\fBget_wstr\fR(3NCURSES)
+getattrs/\fBattr\fR(3NCURSES)
+getbegx/\fBlegacy\fR(3NCURSES)*
+getbegy/\fBlegacy\fR(3NCURSES)*
+getbegyx/\fBgetyx\fR(3NCURSES)
+getbkgd/\fBbkgd\fR(3NCURSES)
+getbkgrnd/\fBbkgrnd\fR(3NCURSES)
+getcchar/\fBgetcchar\fR(3NCURSES)
+getch/\fBgetch\fR(3NCURSES)
+getcurx/\fBlegacy\fR(3NCURSES)*
+getcury/\fBlegacy\fR(3NCURSES)*
+getmaxx/\fBlegacy\fR(3NCURSES)*
+getmaxy/\fBlegacy\fR(3NCURSES)*
+getmaxyx/\fBgetyx\fR(3NCURSES)
+getmouse/\fBmouse\fR(3NCURSES)*
+getn_wstr/\fBget_wstr\fR(3NCURSES)
+getnstr/\fBgetstr\fR(3NCURSES)
+getparx/\fBlegacy\fR(3NCURSES)*
+getpary/\fBlegacy\fR(3NCURSES)*
+getparyx/\fBgetyx\fR(3NCURSES)
+getstr/\fBgetstr\fR(3NCURSES)
+getsyx/\fBkernel\fR(3NCURSES)
+getwin/\fButil\fR(3NCURSES)
+getyx/\fBgetyx\fR(3NCURSES)
+halfdelay/\fBinopts\fR(3NCURSES)
+has_colors/\fBcolor\fR(3NCURSES)
+has_ic/\fBtermattrs\fR(3NCURSES)
+has_il/\fBtermattrs\fR(3NCURSES)
+has_key/\fBgetch\fR(3NCURSES)*
+hline/\fBborder\fR(3NCURSES)
+hline_set/\fBborder_set\fR(3NCURSES)
+idcok/\fBoutopts\fR(3NCURSES)
+idlok/\fBoutopts\fR(3NCURSES)
+immedok/\fBoutopts\fR(3NCURSES)
+in_wch/\fBin_wch\fR(3NCURSES)
+in_wchnstr/\fBin_wchstr\fR(3NCURSES)
+in_wchstr/\fBin_wchstr\fR(3NCURSES)
+inch/\fBinch\fR(3NCURSES)
+inchnstr/\fBinchstr\fR(3NCURSES)
+inchstr/\fBinchstr\fR(3NCURSES)
+init_color/\fBcolor\fR(3NCURSES)
+init_extended_color/\fBcolor\fR(3NCURSES)*
+init_extended_pair/\fBcolor\fR(3NCURSES)*
+init_pair/\fBcolor\fR(3NCURSES)
+initscr/\fBinitscr\fR(3NCURSES)
+innstr/\fBinstr\fR(3NCURSES)
+innwstr/\fBinwstr\fR(3NCURSES)
+ins_nwstr/\fBins_wstr\fR(3NCURSES)
+ins_wch/\fBins_wch\fR(3NCURSES)
+ins_wstr/\fBins_wstr\fR(3NCURSES)
+insch/\fBinsch\fR(3NCURSES)
+insdelln/\fBdeleteln\fR(3NCURSES)
+insertln/\fBdeleteln\fR(3NCURSES)
+insnstr/\fBinsstr\fR(3NCURSES)
+insstr/\fBinsstr\fR(3NCURSES)
+instr/\fBinstr\fR(3NCURSES)
+intrflush/\fBinopts\fR(3NCURSES)
+inwstr/\fBinwstr\fR(3NCURSES)
+is_cleared/\fBopaque\fR(3NCURSES)*
+is_idcok/\fBopaque\fR(3NCURSES)*
+is_idlok/\fBopaque\fR(3NCURSES)*
+is_immedok/\fBopaque\fR(3NCURSES)*
+is_keypad/\fBopaque\fR(3NCURSES)*
+is_leaveok/\fBopaque\fR(3NCURSES)*
+is_linetouched/\fBtouch\fR(3NCURSES)
+is_nodelay/\fBopaque\fR(3NCURSES)*
+is_notimeout/\fBopaque\fR(3NCURSES)*
+is_pad/\fBopaque\fR(3NCURSES)*
+is_scrollok/\fBopaque\fR(3NCURSES)*
+is_subwin/\fBopaque\fR(3NCURSES)*
+is_syncok/\fBopaque\fR(3NCURSES)*
+is_term_resized/\fBresizeterm\fR(3NCURSES)*
+is_wintouched/\fBtouch\fR(3NCURSES)
+isendwin/\fBinitscr\fR(3NCURSES)
+key_defined/\fBkey_defined\fR(3NCURSES)*
+key_name/\fButil\fR(3NCURSES)
+keybound/\fBkeybound\fR(3NCURSES)*
+keyname/\fButil\fR(3NCURSES)
+keyok/\fBkeyok\fR(3NCURSES)*
+keypad/\fBinopts\fR(3NCURSES)
+killchar/\fBtermattrs\fR(3NCURSES)
+killwchar/\fBtermattrs\fR(3NCURSES)
+leaveok/\fBoutopts\fR(3NCURSES)
+longname/\fBtermattrs\fR(3NCURSES)
+mcprint/\fBprint\fR(3NCURSES)*
+meta/\fBinopts\fR(3NCURSES)
+mouse_trafo/\fBmouse\fR(3NCURSES)*
+mouseinterval/\fBmouse\fR(3NCURSES)*
+mousemask/\fBmouse\fR(3NCURSES)*
+move/\fBmove\fR(3NCURSES)
+mvadd_wch/\fBadd_wch\fR(3NCURSES)
+mvadd_wchnstr/\fBadd_wchstr\fR(3NCURSES)
+mvadd_wchstr/\fBadd_wchstr\fR(3NCURSES)
+mvaddch/\fBaddch\fR(3NCURSES)
+mvaddchnstr/\fBaddchstr\fR(3NCURSES)
+mvaddchstr/\fBaddchstr\fR(3NCURSES)
+mvaddnstr/\fBaddstr\fR(3NCURSES)
+mvaddnwstr/\fBaddwstr\fR(3NCURSES)
+mvaddstr/\fBaddstr\fR(3NCURSES)
+mvaddwstr/\fBaddwstr\fR(3NCURSES)
+mvchgat/\fBattr\fR(3NCURSES)
+mvcur/\fBterminfo\fR(3NCURSES)
+mvdelch/\fBdelch\fR(3NCURSES)
+mvderwin/\fBwindow\fR(3NCURSES)
+mvget_wch/\fBget_wch\fR(3NCURSES)
+mvget_wstr/\fBget_wstr\fR(3NCURSES)
+mvgetch/\fBgetch\fR(3NCURSES)
+mvgetn_wstr/\fBget_wstr\fR(3NCURSES)
+mvgetnstr/\fBgetstr\fR(3NCURSES)
+mvgetstr/\fBgetstr\fR(3NCURSES)
+mvhline/\fBborder\fR(3NCURSES)
+mvhline_set/\fBborder_set\fR(3NCURSES)
+mvin_wch/\fBin_wch\fR(3NCURSES)
+mvin_wchnstr/\fBin_wchstr\fR(3NCURSES)
+mvin_wchstr/\fBin_wchstr\fR(3NCURSES)
+mvinch/\fBinch\fR(3NCURSES)
+mvinchnstr/\fBinchstr\fR(3NCURSES)
+mvinchstr/\fBinchstr\fR(3NCURSES)
+mvinnstr/\fBinstr\fR(3NCURSES)
+mvinnwstr/\fBinwstr\fR(3NCURSES)
+mvins_nwstr/\fBins_wstr\fR(3NCURSES)
+mvins_wch/\fBins_wch\fR(3NCURSES)
+mvins_wstr/\fBins_wstr\fR(3NCURSES)
+mvinsch/\fBinsch\fR(3NCURSES)
+mvinsnstr/\fBinsstr\fR(3NCURSES)
+mvinsstr/\fBinsstr\fR(3NCURSES)
+mvinstr/\fBinstr\fR(3NCURSES)
+mvinwstr/\fBinwstr\fR(3NCURSES)
+mvprintw/\fBprintw\fR(3NCURSES)
+mvscanw/\fBscanw\fR(3NCURSES)
+mvvline/\fBborder\fR(3NCURSES)
+mvvline_set/\fBborder_set\fR(3NCURSES)
+mvwadd_wch/\fBadd_wch\fR(3NCURSES)
+mvwadd_wchnstr/\fBadd_wchstr\fR(3NCURSES)
+mvwadd_wchstr/\fBadd_wchstr\fR(3NCURSES)
+mvwaddch/\fBaddch\fR(3NCURSES)
+mvwaddchnstr/\fBaddchstr\fR(3NCURSES)
+mvwaddchstr/\fBaddchstr\fR(3NCURSES)
+mvwaddnstr/\fBaddstr\fR(3NCURSES)
+mvwaddnwstr/\fBaddwstr\fR(3NCURSES)
+mvwaddstr/\fBaddstr\fR(3NCURSES)
+mvwaddwstr/\fBaddwstr\fR(3NCURSES)
+mvwchgat/\fBattr\fR(3NCURSES)
+mvwdelch/\fBdelch\fR(3NCURSES)
+mvwget_wch/\fBget_wch\fR(3NCURSES)
+mvwget_wstr/\fBget_wstr\fR(3NCURSES)
+mvwgetch/\fBgetch\fR(3NCURSES)
+mvwgetn_wstr/\fBget_wstr\fR(3NCURSES)
+mvwgetnstr/\fBgetstr\fR(3NCURSES)
+mvwgetstr/\fBgetstr\fR(3NCURSES)
+mvwhline/\fBborder\fR(3NCURSES)
+mvwhline_set/\fBborder_set\fR(3NCURSES)
+mvwin/\fBwindow\fR(3NCURSES)
+mvwin_wch/\fBin_wch\fR(3NCURSES)
+mvwin_wchnstr/\fBin_wchstr\fR(3NCURSES)
+mvwin_wchstr/\fBin_wchstr\fR(3NCURSES)
+mvwinch/\fBinch\fR(3NCURSES)
+mvwinchnstr/\fBinchstr\fR(3NCURSES)
+mvwinchstr/\fBinchstr\fR(3NCURSES)
+mvwinnstr/\fBinstr\fR(3NCURSES)
+mvwinnwstr/\fBinwstr\fR(3NCURSES)
+mvwins_nwstr/\fBins_wstr\fR(3NCURSES)
+mvwins_wch/\fBins_wch\fR(3NCURSES)
+mvwins_wstr/\fBins_wstr\fR(3NCURSES)
+mvwinsch/\fBinsch\fR(3NCURSES)
+mvwinsnstr/\fBinsstr\fR(3NCURSES)
+mvwinsstr/\fBinsstr\fR(3NCURSES)
+mvwinstr/\fBinstr\fR(3NCURSES)
+mvwinwstr/\fBinwstr\fR(3NCURSES)
+mvwprintw/\fBprintw\fR(3NCURSES)
+mvwscanw/\fBscanw\fR(3NCURSES)
+mvwvline/\fBborder\fR(3NCURSES)
+mvwvline_set/\fBborder_set\fR(3NCURSES)
+napms/\fBkernel\fR(3NCURSES)
+newpad/\fBpad\fR(3NCURSES)
+newterm/\fBinitscr\fR(3NCURSES)
+newwin/\fBwindow\fR(3NCURSES)
+nl/\fBoutopts\fR(3NCURSES)
+nocbreak/\fBinopts\fR(3NCURSES)
+nodelay/\fBinopts\fR(3NCURSES)
+noecho/\fBinopts\fR(3NCURSES)
+nofilter/\fButil\fR(3NCURSES)*
+nonl/\fBoutopts\fR(3NCURSES)
+noqiflush/\fBinopts\fR(3NCURSES)
+noraw/\fBinopts\fR(3NCURSES)
+notimeout/\fBinopts\fR(3NCURSES)
+overlay/\fBoverlay\fR(3NCURSES)
+overwrite/\fBoverlay\fR(3NCURSES)
+pair_content/\fBcolor\fR(3NCURSES)
+pechochar/\fBpad\fR(3NCURSES)
+pnoutrefresh/\fBpad\fR(3NCURSES)
+prefresh/\fBpad\fR(3NCURSES)
+printw/\fBprintw\fR(3NCURSES)
+putp/\fBterminfo\fR(3NCURSES)
+putwin/\fButil\fR(3NCURSES)
+qiflush/\fBinopts\fR(3NCURSES)
+raw/\fBinopts\fR(3NCURSES)
+redrawwin/\fBrefresh\fR(3NCURSES)
+refresh/\fBrefresh\fR(3NCURSES)
+reset_prog_mode/\fBkernel\fR(3NCURSES)
+reset_shell_mode/\fBkernel\fR(3NCURSES)
+resetty/\fBkernel\fR(3NCURSES)
+resize_term/\fBresizeterm\fR(3NCURSES)*
+resizeterm/\fBresizeterm\fR(3NCURSES)*
+restartterm/\fBterminfo\fR(3NCURSES)
+ripoffline/\fBkernel\fR(3NCURSES)
+savetty/\fBkernel\fR(3NCURSES)
+scanw/\fBscanw\fR(3NCURSES)
+scr_dump/\fBscr_dump\fR(3NCURSES)
+scr_init/\fBscr_dump\fR(3NCURSES)
+scr_restore/\fBscr_dump\fR(3NCURSES)
+scr_set/\fBscr_dump\fR(3NCURSES)
+scrl/\fBscroll\fR(3NCURSES)
+scroll/\fBscroll\fR(3NCURSES)
+scrollok/\fBoutopts\fR(3NCURSES)
+set_curterm/\fBterminfo\fR(3NCURSES)
+set_term/\fBinitscr\fR(3NCURSES)
+setcchar/\fBgetcchar\fR(3NCURSES)
+setscrreg/\fBoutopts\fR(3NCURSES)
+setsyx/\fBkernel\fR(3NCURSES)
+setterm/\fBterminfo\fR(3NCURSES)
+setupterm/\fBterminfo\fR(3NCURSES)
+slk_attr/\fBslk\fR(3NCURSES)*
+slk_attr_off/\fBslk\fR(3NCURSES)
+slk_attr_on/\fBslk\fR(3NCURSES)
+slk_attr_set/\fBslk\fR(3NCURSES)
+slk_attroff/\fBslk\fR(3NCURSES)
+slk_attron/\fBslk\fR(3NCURSES)
+slk_attrset/\fBslk\fR(3NCURSES)
+slk_clear/\fBslk\fR(3NCURSES)
+slk_color/\fBslk\fR(3NCURSES)
+slk_init/\fBslk\fR(3NCURSES)
+slk_label/\fBslk\fR(3NCURSES)
+slk_noutrefresh/\fBslk\fR(3NCURSES)
+slk_refresh/\fBslk\fR(3NCURSES)
+slk_restore/\fBslk\fR(3NCURSES)
+slk_set/\fBslk\fR(3NCURSES)
+slk_touch/\fBslk\fR(3NCURSES)
+standend/\fBattr\fR(3NCURSES)
+standout/\fBattr\fR(3NCURSES)
+start_color/\fBcolor\fR(3NCURSES)
+subpad/\fBpad\fR(3NCURSES)
+subwin/\fBwindow\fR(3NCURSES)
+syncok/\fBwindow\fR(3NCURSES)
+term_attrs/\fBtermattrs\fR(3NCURSES)
+termattrs/\fBtermattrs\fR(3NCURSES)
+termname/\fBtermattrs\fR(3NCURSES)
+tgetent/\fBtermcap\fR(3NCURSES)
+tgetflag/\fBtermcap\fR(3NCURSES)
+tgetnum/\fBtermcap\fR(3NCURSES)
+tgetstr/\fBtermcap\fR(3NCURSES)
+tgoto/\fBtermcap\fR(3NCURSES)
+tigetflag/\fBterminfo\fR(3NCURSES)
+tigetnum/\fBterminfo\fR(3NCURSES)
+tigetstr/\fBterminfo\fR(3NCURSES)
+timeout/\fBinopts\fR(3NCURSES)
+tiparm/\fBterminfo\fR(3NCURSES)*
+touchline/\fBtouch\fR(3NCURSES)
+touchwin/\fBtouch\fR(3NCURSES)
+tparm/\fBterminfo\fR(3NCURSES)
+tputs/\fBtermcap\fR(3NCURSES)
+tputs/\fBterminfo\fR(3NCURSES)
+trace/\fBtrace\fR(3NCURSES)*
+typeahead/\fBinopts\fR(3NCURSES)
+unctrl/\fButil\fR(3NCURSES)
+unget_wch/\fBget_wch\fR(3NCURSES)
+ungetch/\fBgetch\fR(3NCURSES)
+ungetmouse/\fBmouse\fR(3NCURSES)*
+untouchwin/\fBtouch\fR(3NCURSES)
+use_default_colors/\fBdefault_colors\fR(3NCURSES)*
+use_env/\fButil\fR(3NCURSES)
+use_extended_names/\fBextensions\fR(3NCURSES)*
+use_legacy_coding/\fBlegacy_coding\fR(3NCURSES)*
+use_tioctl/\fButil\fR(3NCURSES)
+vid_attr/\fBterminfo\fR(3NCURSES)
+vid_puts/\fBterminfo\fR(3NCURSES)
+vidattr/\fBterminfo\fR(3NCURSES)
+vidputs/\fBterminfo\fR(3NCURSES)
+vline/\fBborder\fR(3NCURSES)
+vline_set/\fBborder_set\fR(3NCURSES)
+vw_printw/\fBprintw\fR(3NCURSES)
+vw_scanw/\fBscanw\fR(3NCURSES)
+vwprintw/\fBprintw\fR(3NCURSES)
+vwscanw/\fBscanw\fR(3NCURSES)
+wadd_wch/\fBadd_wch\fR(3NCURSES)
+wadd_wchnstr/\fBadd_wchstr\fR(3NCURSES)
+wadd_wchstr/\fBadd_wchstr\fR(3NCURSES)
+waddch/\fBaddch\fR(3NCURSES)
+waddchnstr/\fBaddchstr\fR(3NCURSES)
+waddchstr/\fBaddchstr\fR(3NCURSES)
+waddnstr/\fBaddstr\fR(3NCURSES)
+waddnwstr/\fBaddwstr\fR(3NCURSES)
+waddstr/\fBaddstr\fR(3NCURSES)
+waddwstr/\fBaddwstr\fR(3NCURSES)
+wattr_get/\fBattr\fR(3NCURSES)
+wattr_off/\fBattr\fR(3NCURSES)
+wattr_on/\fBattr\fR(3NCURSES)
+wattr_set/\fBattr\fR(3NCURSES)
+wattroff/\fBattr\fR(3NCURSES)
+wattron/\fBattr\fR(3NCURSES)
+wattrset/\fBattr\fR(3NCURSES)
+wbkgd/\fBbkgd\fR(3NCURSES)
+wbkgdset/\fBbkgd\fR(3NCURSES)
+wbkgrnd/\fBbkgrnd\fR(3NCURSES)
+wbkgrndset/\fBbkgrnd\fR(3NCURSES)
+wborder/\fBborder\fR(3NCURSES)
+wborder_set/\fBborder_set\fR(3NCURSES)
+wchgat/\fBattr\fR(3NCURSES)
+wclear/\fBclear\fR(3NCURSES)
+wclrtobot/\fBclear\fR(3NCURSES)
+wclrtoeol/\fBclear\fR(3NCURSES)
+wcolor_set/\fBattr\fR(3NCURSES)
+wcursyncup/\fBwindow\fR(3NCURSES)
+wdelch/\fBdelch\fR(3NCURSES)
+wdeleteln/\fBdeleteln\fR(3NCURSES)
+wecho_wchar/\fBadd_wch\fR(3NCURSES)
+wechochar/\fBaddch\fR(3NCURSES)
+wenclose/\fBmouse\fR(3NCURSES)*
+werase/\fBclear\fR(3NCURSES)
+wget_wch/\fBget_wch\fR(3NCURSES)
+wget_wstr/\fBget_wstr\fR(3NCURSES)
+wgetbkgrnd/\fBbkgrnd\fR(3NCURSES)
+wgetch/\fBgetch\fR(3NCURSES)
+wgetdelay/\fBopaque\fR(3NCURSES)*
+wgetn_wstr/\fBget_wstr\fR(3NCURSES)
+wgetnstr/\fBgetstr\fR(3NCURSES)
+wgetparent/\fBopaque\fR(3NCURSES)*
+wgetscrreg/\fBopaque\fR(3NCURSES)*
+wgetstr/\fBgetstr\fR(3NCURSES)
+whline/\fBborder\fR(3NCURSES)
+whline_set/\fBborder_set\fR(3NCURSES)
+win_wch/\fBin_wch\fR(3NCURSES)
+win_wchnstr/\fBin_wchstr\fR(3NCURSES)
+win_wchstr/\fBin_wchstr\fR(3NCURSES)
+winch/\fBinch\fR(3NCURSES)
+winchnstr/\fBinchstr\fR(3NCURSES)
+winchstr/\fBinchstr\fR(3NCURSES)
+winnstr/\fBinstr\fR(3NCURSES)
+winnwstr/\fBinwstr\fR(3NCURSES)
+wins_nwstr/\fBins_wstr\fR(3NCURSES)
+wins_wch/\fBins_wch\fR(3NCURSES)
+wins_wstr/\fBins_wstr\fR(3NCURSES)
+winsch/\fBinsch\fR(3NCURSES)
+winsdelln/\fBdeleteln\fR(3NCURSES)
+winsertln/\fBdeleteln\fR(3NCURSES)
+winsnstr/\fBinsstr\fR(3NCURSES)
+winsstr/\fBinsstr\fR(3NCURSES)
+winstr/\fBinstr\fR(3NCURSES)
+winwstr/\fBinwstr\fR(3NCURSES)
+wmouse_trafo/\fBmouse\fR(3NCURSES)*
+wmove/\fBmove\fR(3NCURSES)
+wnoutrefresh/\fBrefresh\fR(3NCURSES)
+wprintw/\fBprintw\fR(3NCURSES)
+wredrawln/\fBrefresh\fR(3NCURSES)
+wrefresh/\fBrefresh\fR(3NCURSES)
+wresize/\fBwresize\fR(3NCURSES)*
+wscanw/\fBscanw\fR(3NCURSES)
+wscrl/\fBscroll\fR(3NCURSES)
+wsetscrreg/\fBoutopts\fR(3NCURSES)
+wstandend/\fBattr\fR(3NCURSES)
+wstandout/\fBattr\fR(3NCURSES)
+wsyncdown/\fBwindow\fR(3NCURSES)
+wsyncup/\fBwindow\fR(3NCURSES)
+wtimeout/\fBinopts\fR(3NCURSES)
+wtouchln/\fBtouch\fR(3NCURSES)
+wunctrl/\fButil\fR(3NCURSES)
+wvline/\fBborder\fR(3NCURSES)
+wvline_set/\fBborder_set\fR(3NCURSES)
+.TE
+.SH RETURN VALUE
+Routines that return an integer return \fBERR\fR upon failure and an
+integer value other than \fBERR\fR upon successful completion, unless
+otherwise noted in the routine descriptions.
+.PP
+As a general rule, routines check for null pointers passed as parameters,
+and handle this as an error.
+.PP
+All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
+\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
+The return values of
+\fBsetscrreg\fR,
+\fBwsetscrreg\fR,
+\fBgetyx\fR,
+\fBgetbegyx\fR, and
+\fBgetmaxyx\fR are undefined (i.e., these should not be used as the
+right-hand side of assignment statements).
+.PP
+Routines that return pointers return \fBNULL\fR on error.
+.SH ENVIRONMENT
+.PP
+The following environment symbols are useful for customizing the
+runtime behavior of the \fBncurses\fR library.
+The most important ones have been already discussed in detail.
+.SS CC command-character
+.PP
+When set, change occurrences of the command_character
+(i.e., the \fBcmdch\fP capability)
+of the loaded terminfo entries to the value of this variable.
+Very few terminfo entries provide this feature.
+.PP
+Because this name is also used in development environments to represent
+the C compiler's name, \fBncurses\fR ignores it if it does not happen to
+be a single character.
+.SS BAUDRATE
+.PP
+The debugging library checks this environment variable when the application
+has redirected output to a file.
+The variable's numeric value is used for the baudrate.
+If no value is found, \fBncurses\fR uses 9600.
+This allows testers to construct repeatable test-cases
+that take into account costs that depend on baudrate.
+.SS COLUMNS
+.PP
+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 \fBCOLUMNS\fP value nor the terminal's screen size is available,
+\fBncurses\fR uses the size which may be specified in the terminfo database
+(i.e., the \fBcols\fR capability).
+.PP
+It is important that your application use a correct size for the screen.
+This is not always possible because your application may be
+running on a host which does not honor NAWS (Negotiations About Window
+Size), or because you are temporarily running as another user.
+However, setting \fBCOLUMNS\fP and/or \fBLINES\fP overrides the library's
+use of the screen size obtained from the operating system.
+.PP
+Either \fBCOLUMNS\fP or \fBLINES\fP 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, \fBlines\fR and \fBcols\fR should not be specified in
+a terminal description for terminals which are run as emulations.
+.PP
+Use the \fBuse_env\fR function to disable all use of external environment
+(but not including system calls) to determine the screen size.
+Use the \fBuse_tioctl\fR function to update \fBCOLUMNS\fP or \fBLINES\fP
+to match the screen size obtained from system calls or the terminal database.
+.SS ESCDELAY
+.PP
+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.
+.PP
+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.
+.PP
+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.
+.PP
+In addition to the environment variable,
+this implementation provides a global variable with the same name.
+Portable applications should not rely upon the presence of ESCDELAY
+in either form,
+but setting the environment variable rather than the global variable
+does not create problems when compiling an application.
+.SS HOME
+Tells \fBncurses\fR where your home directory is.
+That is where it may read and write auxiliary terminal descriptions:
+.NS
+$HOME/.termcap
+$HOME/.terminfo
+.NE
+.SS LINES
+.PP
+Like COLUMNS, specify the height of the screen in characters.
+See COLUMNS for a detailed description.
+.SS MOUSE_BUTTONS_123
+.PP
+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:
+.NS
+1 = left
+.br
+2 = right
+.br
+3 = middle.
+.NE
+.PP
+This variable lets you customize the mouse.
+The variable must be three numeric digits 1\-3 in any order, e.g., 123 or 321.
+If it is not specified, \fBncurses\fR uses 132.
+.SS NCURSES_ASSUMED_COLORS
+.PP
+Override the compiled-in assumption that the
+terminal's default colors are white-on-black
+(see \fBdefault_colors\fR(3NCURSES)).
+You may set the foreground and background color values with this environment
+variable by proving a 2-element list: foreground,background.
+For example, to tell ncurses to not assume anything
+about the colors, set this to "\-1,\-1".
+To make it green-on-black, set it to "2,0".
+Any positive value from zero to the terminfo \fBmax_colors\fR value is allowed.
+.SS NCURSES_CONSOLE2
+This applies only to the MinGW port of ncurses.
+.PP
+The \fBConsole2\fP program's handling of the Microsoft Console API call
+\fBCreateConsoleScreenBuffer\fP is defective.
+Applications which use this will hang.
+However, it is possible to simulate the action of this call by
+mapping coordinates,
+explicitly saving and restoring the original screen contents.
+Setting the environment variable \fBNCGDB\fP has the same effect.
+.SS NCURSES_GPM_TERMS
+.PP
+This applies only to ncurses configured to use the GPM interface.
+.PP
+If present,
+the environment variable is a list of one or more terminal names
+against which the \fBTERM\fP environment variable is matched.
+Setting it to an empty value disables the GPM interface;
+using the built-in support for xterm, etc.
+.PP
+If the environment variable is absent,
+ncurses will attempt to open GPM if \fBTERM\fP contains "linux".
+.SS NCURSES_NO_HARD_TABS
+.PP
+\fBNcurses\fP may use tabs as part of the cursor movement optimization.
+In some cases,
+your terminal driver may not handle these properly.
+Set this environment variable to disable the feature.
+You can also adjust your \fBstty\fP settings to avoid the problem.
+.SS NCURSES_NO_MAGIC_COOKIE
+.PP
+Some terminals use a magic-cookie feature which requires special handling
+to make highlighting and other video attributes display properly.
+You can suppress the highlighting entirely for these terminals by
+setting this environment variable.
+.SS NCURSES_NO_PADDING
+.PP
+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.
+.PP
+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.
+.PP
+Set the NCURSES_NO_PADDING environment variable to disable all but mandatory
+padding.
+Mandatory padding is used as a part of special control
+sequences such as \fIflash\fR.
+.SS NCURSES_NO_SETBUF
+This setting is obsolete.
+Before changes
+.RS 3
+.bP
+started with 5.9 patch 20120825
+and
+.bP
+continued
+though 5.9 patch 20130126
+.RE
+.PP
+\fBncurses\fR enabled buffered output during terminal initialization.
+This was done (as in SVr4 curses) for performance reasons.
+For testing purposes, both of \fBncurses\fR and certain applications,
+this feature was made optional.
+Setting the NCURSES_NO_SETBUF variable
+disabled output buffering, leaving the output in the original (usually
+line buffered) mode.
+.PP
+In the current implementation,
+ncurses performs its own buffering and does not require this workaround.
+It does not modify the buffering of the standard output.
+.PP
+The reason for the change was to make the behavior for interrupts and
+other signals more robust.
+One drawback is that certain nonconventional programs would mix
+ordinary stdio calls with ncurses calls and (usually) work.
+This is no longer possible since ncurses is not using
+the buffered standard output but its own output (to the same file descriptor).
+As a special case, the low-level calls such as \fBputp\fP still use the
+standard output.
+But high-level curses calls do not.
+.SS NCURSES_NO_UTF8_ACS
+.PP
+During initialization, the \fBncurses\fR library
+checks for special cases where VT100 line-drawing (and the corresponding
+alternate character set capabilities) described in the terminfo are known
+to be missing.
+Specifically, when running in a UTF\-8 locale,
+the Linux console emulator and the GNU screen program ignore these.
+Ncurses checks the \fBTERM\fP environment variable for these.
+For other special cases, you should set this environment variable.
+Doing this tells ncurses to use Unicode values which correspond to
+the VT100 line-drawing glyphs.
+That works for the special cases cited,
+and is likely to work for terminal emulators.
+.PP
+When setting this variable, you should set it to a nonzero value.
+Setting it to zero (or to a nonnumber)
+disables the special check for "linux" and "screen".
+.PP
+As an alternative to the environment variable,
+ncurses checks for an extended terminfo capability \fBU8\fP.
+This is a numeric capability which can be compiled using \fBtic\ \-x\fP.
+For example
+.RS 3
+.ft CW
+.sp
+.nf
+# linux console, if patched to provide working
+# VT100 shift-in/shift-out, with corresponding font.
+linux-vt100|linux console with VT100 line-graphics,
+ U8#0, use=linux,
+.sp
+# uxterm with vt100Graphics resource set to false
+xterm-utf8|xterm relying on UTF-8 line-graphics,
+ U8#1, use=xterm,
+.fi
+.ft
+.RE
+.PP
+The name "U8" is chosen to be two characters,
+to permit it to be used by applications that use ncurses'
+termcap interface.
+.SS NCURSES_TRACE
+.PP
+During initialization, the \fBncurses\fR debugging library
+checks the NCURSES_TRACE environment variable.
+If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
+function, using that value as the argument.
+.PP
+The argument values, which are defined in \fBcurses.h\fR, provide several
+types of information.
+When running with traces enabled, your application will write the
+file \fBtrace\fR to the current directory.
+.PP
+See \fBcurs_trace\fP(3X) for more information.
+.SS TERM
+.PP
+Denotes your terminal type.
+Each terminal type is distinct, though many are similar.
+.PP
+\fBTERM\fP is commonly set by terminal emulators to help
+applications find a workable terminal description.
+Some of those choose a popular approximation, e.g.,
+\*(``ansi\*('', \*(``vt100\*('', \*(``xterm\*('' rather than an exact fit.
+Not infrequently, your application will have problems with that approach,
+e.g., incorrect function-key definitions.
+.PP
+If you set \fBTERM\fP in your environment,
+it has no effect on the operation of the terminal emulator.
+It only affects the way applications work within the terminal.
+Likewise, as a general rule (\fBxterm\fP being a rare exception),
+terminal emulators which allow you to
+specify \fBTERM\fP as a parameter or configuration value do
+not change their behavior to match that setting.
+.SS TERMCAP
+If the \fBncurses\fR library has been configured with \fItermcap\fR
+support, \fBncurses\fR will check for a terminal's description in
+termcap form if it is not available in the terminfo database.
+.PP
+The \fBTERMCAP\fP environment variable contains either a terminal description (with
+newlines stripped out),
+or a file name telling where the information denoted by
+the \fBTERM\fP environment variable exists.
+In either case, setting it directs \fBncurses\fR to ignore
+the usual place for this information, e.g., /etc/termcap.
+.SS TERMINFO
+.PP
+\fBncurses\fP can be configured to read from multiple terminal databases.
+The \fBTERMINFO\fP variable overrides the location for the default terminal database.
+Terminal descriptions (in terminal format) are stored in terminal databases:
+.bP
+Normally these are stored in a directory tree,
+using subdirectories named by the first letter of the terminal names therein.
+.IP
+This is the scheme used in System V, which legacy Unix systems use,
+and the \fBTERMINFO\fP variable is used by \fIcurses\fP applications on those
+systems to override the default location of the terminal database.
+.bP
+If \fBncurses\fP is built to use hashed databases,
+then each entry in this list may be the path of a hashed database file, e.g.,
+.NS
+/usr/share/terminfo.db
+.NE
+.IP
+rather than
+.NS
+/usr/share/terminfo/
+.NE
+.IP
+The hashed database uses less disk-space and is a little faster than the
+directory tree.
+However,
+some applications assume the existence of the directory tree,
+reading it directly
+rather than using the terminfo library calls.
+.bP
+If \fBncurses\fP is built with a support for reading termcap files
+directly, then an entry in this list may be the path of a termcap file.
+.bP
+If the \fBTERMINFO\fP variable begins with
+\*(``hex:\*('' or \*(``b64:\*('',
+\fBncurses\fP uses the remainder of that variable as a compiled terminal
+description.
+You might produce the base64 format using \fBinfocmp\fP(1M):
+.NS
+TERMINFO="$(infocmp -0 -Q2 -q)"
+export TERMINFO
+.NE
+.IP
+The compiled description is used if it corresponds to the terminal identified
+by the \fBTERM\fP variable.
+.PP
+Setting \fBTERMINFO\fP is the simplest,
+but not the only way to set location of the default terminal database.
+The complete list of database locations in order follows:
+.RS 3
+.bP
+the last terminal database to which \fBncurses\fR wrote,
+if any, is searched first
+.bP
+the location specified by the TERMINFO environment variable
+.bP
+$HOME/.terminfo
+.bP
+locations listed in the TERMINFO_DIRS environment variable
+.bP
+one or more locations whose names are configured and compiled into the
+ncurses library, i.e.,
+.RS 3
+.bP
+no default value (corresponding to the TERMINFO_DIRS variable)
+.bP
+/usr/share/terminfo (corresponding to the TERMINFO variable)
+.RE
+.RE
+.PP
+.SS TERMINFO_DIRS
+.PP
+Specifies a list of locations to search for terminal descriptions.
+Each location in the list is a terminal database as described in
+the section on the \fBTERMINFO\fP variable.
+The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
+.PP
+There is no corresponding feature in System V terminfo;
+it is an extension developed for \fBncurses\fP.
+.SS TERMPATH
+.PP
+If \fBTERMCAP\fP does not hold a file name then \fBncurses\fR checks
+the \fBTERMPATH\fP environment variable.
+This is a list of filenames separated by spaces or colons (i.e., ":") on Unix,
+semicolons on OS/2 EMX.
+.PP
+If the \fBTERMPATH\fP environment variable is not set,
+\fBncurses\fR looks in the files
+.NS
+/etc/termcap, /usr/share/misc/termcap and $HOME/.termcap,
+.NE
+.PP
+in that order.
+.PP
+The library may be configured to disregard the following variables when the
+current user is the superuser (root), or if the application uses setuid or
+setgid permissions:
+.NS
+$TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
+.NE
+.SH ALTERNATE CONFIGURATIONS
+.PP
+Several different configurations are possible,
+depending on the configure script options used when building \fBncurses\fP.
+There are a few main options whose effects are visible to the applications
+developer using \fBncurses\fP:
+.TP 5
+\-\-disable\-overwrite
+The standard include for \fBncurses\fP is as noted in \fBSYNOPSIS\fP:
+.NS
+\fB#include <ncursesw/curses.h>\fR
+.NE
+.IP
+This option is used to avoid filename conflicts when \fBncurses\fP
+is not the main implementation of curses of the computer.
+If \fBncurses\fP is installed disabling overwrite, it puts its headers in
+a subdirectory, e.g.,
+.NS
+\fB#include <ncurses/curses.h>\fR
+.NE
+.IP
+It also omits a symbolic link which would allow you to use \fB\-lcurses\fP
+to build executables.
+.TP 5
+\-\-enable\-widec
+The configure script renames the library and
+(if the \fB\-\-disable\-overwrite\fP option is used)
+puts the header files in a different subdirectory.
+All of the library names have a "w" appended to them,
+i.e., instead of
+.NS
+\fB\-lncurses\fR
+.NE
+.IP
+you link with
+.NS
+\fB\-lncursesw\fR
+.NE
+.IP
+You must also define \fB_XOPEN_SOURCE_EXTENDED\fP when compiling for the
+wide-character library to use the extended (wide-character) functions.
+The \fBcurses.h\fP file which is installed for the wide-character
+library is designed to be compatible with the normal library's header.
+Only the size of the \fBWINDOW\fP structure differs, and very few
+applications require more than a pointer to \fBWINDOW\fPs.
+If the headers are installed allowing overwrite,
+the wide-character library's headers should be installed last,
+to allow applications to be built using either library
+from the same set of headers.
+.TP 5
+\-\-with\-pthread
+The configure script renames the library.
+All of the library names have a "t" appended to them
+(before any "w" added by \fB\-\-enable\-widec\fP).
+.IP
+The global variables such as \fBLINES\fP are replaced by macros to
+allow read-only access.
+At the same time, setter-functions are provided to set these values.
+Some applications (very few) may require changes to work with this convention.
+.TP 5
+\-\-with\-shared
+.TP
+\-\-with\-normal
+.TP
+\-\-with\-debug
+.TP
+\-\-with\-profile
+The shared and normal (static) library names differ by their suffixes,
+e.g., \fBlibncurses.so\fP and \fBlibncurses.a\fP.
+The debug and profiling libraries add a "_g" and a "_p" to the root
+names respectively,
+e.g., \fBlibncurses_g.a\fP and \fBlibncurses_p.a\fP.
+.TP 5
+\-\-with\-trace
+The \fBtrace\fP function normally resides in the debug library,
+but it is sometimes useful to configure this in the shared library.
+Configure scripts should check for the function's existence rather
+than assuming it is always in the debug library.
+.SH FILES
+.TP 5
+/usr/share/tabset
+directory containing initialization files for the terminal capability database
+/usr/share/terminfo
+terminal capability database
+.SH SEE ALSO
+\fBterminfo\fR(\*n) and related pages whose names begin
+"curs_" for detailed routine descriptions.
+.br
+\fBcurses_variables\fR(3NCURSES)
+.br
+\fBuser_caps\fP(5) for user-defined capabilities
+.SH EXTENSIONS
+The \fBncurses\fR library can be compiled with an option (\fB\-DUSE_GETCAP\fR)
+that falls back to the old-style /etc/termcap file if the terminal setup code
+cannot find a terminfo entry corresponding to \fBTERM\fR.
+Use of this feature
+is not recommended, as it essentially includes an entire termcap compiler in
+the \fBncurses\fR startup code, at significant cost in core and startup cycles.
+.PP
+The \fBncurses\fR library includes facilities for capturing mouse events on
+certain terminals (including xterm).
+See the \fBmouse\fR(3NCURSES)
+manual page for details.
+.PP
+The \fBncurses\fR library includes facilities for responding to window
+resizing events, e.g., when running in an xterm.
+See the \fBresizeterm\fR(3NCURSES)
+and \fBwresize\fR(3NCURSES) manual pages for details.
+In addition, the library may be configured with a \fBSIGWINCH\fP handler.
+.PP
+The \fBncurses\fR 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 \fBdefine_key\fR(3NCURSES)
+\fBkey_defined\fR(3NCURSES),
+and \fBkeyok\fR(3NCURSES) manual pages for details.
+.PP
+The \fBncurses\fR 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 \fBdefault_colors\fR(3NCURSES) manual page for details.
+.PP
+The \fBncurses\fR library includes a function for directing application output
+to a printer attached to the terminal device.
+See the \fBprint\fR(3NCURSES) manual page for details.
+.SH PORTABILITY
+The \fBncurses\fR library is intended to be BASE-level conformant with XSI
+Curses.
+The EXTENDED XSI Curses functionality
+(including color support) is supported.
+.PP
+A small number of local differences (that is, individual differences between
+the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
+sections of the library man pages.
+.PP
+Unlike other implementations, this one checks parameters such as pointers
+to WINDOW structures to ensure they are not null.
+The main reason for providing this behavior is to guard against programmer
+error.
+The standard interface does not provide a way for the library
+to tell an application which of several possible errors were detected.
+Relying on this (or some other) extension will adversely affect the
+portability of curses applications.
+.PP
+This implementation also contains several extensions:
+.bP
+The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
+See the \fBgetch\fR(3NCURSES) manual page for details.
+.bP
+The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.
+See the \fBslk\fR(3NCURSES) manual page for details.
+.bP
+The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
+\fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
+part of XPG4, nor are they present in SVr4.
+See the \fBmouse\fR(3NCURSES) manual page for details.
+.bP
+The routine \fBmcprint\fR was not present in any previous curses implementation.
+See the \fBprint\fR(3NCURSES) manual page for details.
+.bP
+The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.
+See the \fBwresize\fR(3NCURSES) manual page for details.
+.bP
+The WINDOW structure's internal details can be hidden from application
+programs.
+See \fBopaque\fR(3NCURSES) for the discussion of \fBis_scrollok\fR, etc.
+.bP
+This implementation can be configured to provide rudimentary support
+for multi-threaded applications.
+See \fBthreads\fR(3NCURSES) for details.
+.bP
+This implementation can also be configured to provide a set of functions which
+improve the ability to manage multiple screens.
+See \fBsp_funcs\fR(3NCURSES) for details.
+.PP
+In historic curses versions, delays embedded in the capabilities \fBcr\fR,
+\fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay
+bits in the UNIX tty driver.
+In this implementation, all padding is done by sending NUL bytes.
+This method is slightly more expensive, but narrows the interface
+to the UNIX kernel significantly and increases the package's portability
+correspondingly.
+.SH NOTES
+The header file \fB<curses.h>\fR automatically includes the header files
+\fB<stdio.h>\fR and \fB<unctrl.h>\fR.
+.PP
+If standard output from a \fBncurses\fR 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.
+.SH AUTHORS
+Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
+Based on pcurses by Pavel Curtis.