'\" t
.\"***************************************************************************
.\" Copyright (c) 1998-2007,2008 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.92 2008/10/25 23:31:45 tom Exp $
.hy 0
.TH ncurses 3X ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
\fBncurses\fR - CRT screen handling and optimization package
.SH SYNOPSIS
\fB#include <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 @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
.PP
The \fBncurses\fR library emulates the \fBcurses\fR(3X) 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.
.PP
The library uses the locale which the calling program has initialized.
That is normally done with \fBsetlocale\fP:
.sp
      \fBsetlocale(LC_ALL, "");\fP
.sp
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 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:
.sp
      \fBinitscr(); cbreak(); noecho();\fR
.sp
Most programs would additionally use the sequence:
.sp
      \fBnonl();\fR
      \fBintrflush(stdscr, FALSE);\fR
      \fBkeypad(stdscr, TRUE);\fR
.sp
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.]
.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(3X) 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 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 \fBcurs_pad\fR(3X) 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.
.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
.sp
      \fB\*d/a/att4424\fR.
.sp
(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
.sp
      \fB$HOME/myterms/a/att4424\fR,
.sp
and if that fails, it then checks
.sp
      \fB\*d/a/att4424\fR.
.sp
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
.TP 5
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
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
.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/\fBcurs_color\fR(3X)
PAIR_NUMBER/\fBcurs_attr\fR(3X)
_nc_free_and_exit/\fBcurs_memleaks\fR(3X)*
_nc_freeall/\fBcurs_memleaks\fR(3X)*
_nc_tracebits/\fBcurs_trace\fR(3X)*
_traceattr/\fBcurs_trace\fR(3X)*
_traceattr2/\fBcurs_trace\fR(3X)*
_tracechar/\fBcurs_trace\fR(3X)*
_tracechtype/\fBcurs_trace\fR(3X)*
_tracechtype2/\fBcurs_trace\fR(3X)*
_tracedump/\fBcurs_trace\fR(3X)*
_tracef/\fBcurs_trace\fR(3X)*
_tracemouse/\fBcurs_trace\fR(3X)*
add_wch/\fBcurs_add_wch\fR(3X)
add_wchnstr/\fBcurs_add_wchstr\fR(3X)
add_wchstr/\fBcurs_add_wchstr\fR(3X)
addch/\fBcurs_addch\fR(3X)
addchnstr/\fBcurs_addchstr\fR(3X)
addchstr/\fBcurs_addchstr\fR(3X)
addnstr/\fBcurs_addstr\fR(3X)
addnwstr/\fBcurs_addwstr\fR(3X)
addstr/\fBcurs_addstr\fR(3X)
addwstr/\fBcurs_addwstr\fR(3X)
assume_default_colors/\fBdefault_colors\fR(3X)*
attr_get/\fBcurs_attr\fR(3X)
attr_off/\fBcurs_attr\fR(3X)
attr_on/\fBcurs_attr\fR(3X)
attr_set/\fBcurs_attr\fR(3X)
attroff/\fBcurs_attr\fR(3X)
attron/\fBcurs_attr\fR(3X)
attrset/\fBcurs_attr\fR(3X)
baudrate/\fBcurs_termattrs\fR(3X)
beep/\fBcurs_beep\fR(3X)
bkgd/\fBcurs_bkgd\fR(3X)
bkgdset/\fBcurs_bkgd\fR(3X)
bkgrnd/\fBcurs_bkgrnd\fR(3X)
bkgrndset/\fBcurs_bkgrnd\fR(3X)
border/\fBcurs_border\fR(3X)
border_set/\fBcurs_border_set\fR(3X)
box/\fBcurs_border\fR(3X)
box_set/\fBcurs_border_set\fR(3X)
can_change_color/\fBcurs_color\fR(3X)
cbreak/\fBcurs_inopts\fR(3X)
chgat/\fBcurs_attr\fR(3X)
clear/\fBcurs_clear\fR(3X)
clearok/\fBcurs_outopts\fR(3X)
clrtobot/\fBcurs_clear\fR(3X)
clrtoeol/\fBcurs_clear\fR(3X)
color_content/\fBcurs_color\fR(3X)
color_set/\fBcurs_attr\fR(3X)
copywin/\fBcurs_overlay\fR(3X)
curs_set/\fBcurs_kernel\fR(3X)
curses_version/\fBcurs_extend\fR(3X)*
def_prog_mode/\fBcurs_kernel\fR(3X)
def_shell_mode/\fBcurs_kernel\fR(3X)
define_key/\fBdefine_key\fR(3X)*
del_curterm/\fBcurs_terminfo\fR(3X)
delay_output/\fBcurs_util\fR(3X)
delch/\fBcurs_delch\fR(3X)
deleteln/\fBcurs_deleteln\fR(3X)
delscreen/\fBcurs_initscr\fR(3X)
delwin/\fBcurs_window\fR(3X)
derwin/\fBcurs_window\fR(3X)
doupdate/\fBcurs_refresh\fR(3X)
dupwin/\fBcurs_window\fR(3X)
echo/\fBcurs_inopts\fR(3X)
echo_wchar/\fBcurs_add_wch\fR(3X)
echochar/\fBcurs_addch\fR(3X)
endwin/\fBcurs_initscr\fR(3X)
erase/\fBcurs_clear\fR(3X)
erasechar/\fBcurs_termattrs\fR(3X)
erasewchar/\fBcurs_termattrs\fR(3X)
filter/\fBcurs_util\fR(3X)
flash/\fBcurs_beep\fR(3X)
flushinp/\fBcurs_util\fR(3X)
get_wch/\fBcurs_get_wch\fR(3X)
get_wstr/\fBcurs_get_wstr\fR(3X)
getattrs/\fBcurs_attr\fR(3X)
getbegx/\fBcurs_legacy\fR(3X)*
getbegy/\fBcurs_legacy\fR(3X)*
getbegyx/\fBcurs_getyx\fR(3X)
getbkgd/\fBcurs_bkgd\fR(3X)
getbkgrnd/\fBcurs_bkgrnd\fR(3X)
getcchar/\fBcurs_getcchar\fR(3X)
getch/\fBcurs_getch\fR(3X)
getcurx/\fBcurs_legacy\fR(3X)*
getcury/\fBcurs_legacy\fR(3X)*
getmaxx/\fBcurs_legacy\fR(3X)*
getmaxy/\fBcurs_legacy\fR(3X)*
getmaxyx/\fBcurs_getyx\fR(3X)
getmouse/\fBcurs_mouse\fR(3X)*
getn_wstr/\fBcurs_get_wstr\fR(3X)
getnstr/\fBcurs_getstr\fR(3X)
getparx/\fBcurs_legacy\fR(3X)*
getpary/\fBcurs_legacy\fR(3X)*
getparyx/\fBcurs_getyx\fR(3X)
getstr/\fBcurs_getstr\fR(3X)
getsyx/\fBcurs_kernel\fR(3X)
getwin/\fBcurs_util\fR(3X)
getyx/\fBcurs_getyx\fR(3X)
halfdelay/\fBcurs_inopts\fR(3X)
has_colors/\fBcurs_color\fR(3X)
has_ic/\fBcurs_termattrs\fR(3X)
has_il/\fBcurs_termattrs\fR(3X)
has_key/\fBcurs_getch\fR(3X)*
hline/\fBcurs_border\fR(3X)
hline_set/\fBcurs_border_set\fR(3X)
idcok/\fBcurs_outopts\fR(3X)
idlok/\fBcurs_outopts\fR(3X)
immedok/\fBcurs_outopts\fR(3X)
in_wch/\fBcurs_in_wch\fR(3X)
in_wchnstr/\fBcurs_in_wchstr\fR(3X)
in_wchstr/\fBcurs_in_wchstr\fR(3X)
inch/\fBcurs_inch\fR(3X)
inchnstr/\fBcurs_inchstr\fR(3X)
inchstr/\fBcurs_inchstr\fR(3X)
init_color/\fBcurs_color\fR(3X)
init_pair/\fBcurs_color\fR(3X)
initscr/\fBcurs_initscr\fR(3X)
innstr/\fBcurs_instr\fR(3X)
innwstr/\fBcurs_inwstr\fR(3X)
ins_nwstr/\fBcurs_ins_wstr\fR(3X)
ins_wch/\fBcurs_ins_wch\fR(3X)
ins_wstr/\fBcurs_ins_wstr\fR(3X)
insch/\fBcurs_insch\fR(3X)
insdelln/\fBcurs_deleteln\fR(3X)
insertln/\fBcurs_deleteln\fR(3X)
insnstr/\fBcurs_insstr\fR(3X)
insstr/\fBcurs_insstr\fR(3X)
instr/\fBcurs_instr\fR(3X)
intrflush/\fBcurs_inopts\fR(3X)
inwstr/\fBcurs_inwstr\fR(3X)
is_cleared/\fBcurs_opaque\fR(3X)*
is_idcok/\fBcurs_opaque\fR(3X)*
is_idlok/\fBcurs_opaque\fR(3X)*
is_immedok/\fBcurs_opaque\fR(3X)*
is_keypad/\fBcurs_opaque\fR(3X)*
is_leaveok/\fBcurs_opaque\fR(3X)*
is_linetouched/\fBcurs_touch\fR(3X)
is_nodelay/\fBcurs_opaque\fR(3X)*
is_notimeout/\fBcurs_opaque\fR(3X)*
is_scrollok/\fBcurs_opaque\fR(3X)*
is_syncok/\fBcurs_opaque\fR(3X)*
is_term_resized/\fBresizeterm\fR(3X)*
is_wintouched/\fBcurs_touch\fR(3X)
isendwin/\fBcurs_initscr\fR(3X)
key_defined/\fBkey_defined\fR(3X)*
key_name/\fBcurs_util\fR(3X)
keybound/\fBkeybound\fR(3X)*
keyname/\fBcurs_util\fR(3X)
keyok/\fBkeyok\fR(3X)*
keypad/\fBcurs_inopts\fR(3X)
killchar/\fBcurs_termattrs\fR(3X)
killwchar/\fBcurs_termattrs\fR(3X)
leaveok/\fBcurs_outopts\fR(3X)
longname/\fBcurs_termattrs\fR(3X)
mcprint/\fBcurs_print\fR(3X)*
meta/\fBcurs_inopts\fR(3X)
mouse_trafo/\fBcurs_mouse\fR(3X)*
mouseinterval/\fBcurs_mouse\fR(3X)*
mousemask/\fBcurs_mouse\fR(3X)*
move/\fBcurs_move\fR(3X)
mvadd_wch/\fBcurs_add_wch\fR(3X)
mvadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
mvadd_wchstr/\fBcurs_add_wchstr\fR(3X)
mvaddch/\fBcurs_addch\fR(3X)
mvaddchnstr/\fBcurs_addchstr\fR(3X)
mvaddchstr/\fBcurs_addchstr\fR(3X)
mvaddnstr/\fBcurs_addstr\fR(3X)
mvaddnwstr/\fBcurs_addwstr\fR(3X)
mvaddstr/\fBcurs_addstr\fR(3X)
mvaddwstr/\fBcurs_addwstr\fR(3X)
mvchgat/\fBcurs_attr\fR(3X)
mvcur/\fBcurs_terminfo\fR(3X)
mvdelch/\fBcurs_delch\fR(3X)
mvderwin/\fBcurs_window\fR(3X)
mvget_wch/\fBcurs_get_wch\fR(3X)
mvget_wstr/\fBcurs_get_wstr\fR(3X)
mvgetch/\fBcurs_getch\fR(3X)
mvgetn_wstr/\fBcurs_get_wstr\fR(3X)
mvgetnstr/\fBcurs_getstr\fR(3X)
mvgetstr/\fBcurs_getstr\fR(3X)
mvhline/\fBcurs_border\fR(3X)
mvhline_set/\fBcurs_border_set\fR(3X)
mvin_wch/\fBcurs_in_wch\fR(3X)
mvin_wchnstr/\fBcurs_in_wchstr\fR(3X)
mvin_wchstr/\fBcurs_in_wchstr\fR(3X)
mvinch/\fBcurs_inch\fR(3X)
mvinchnstr/\fBcurs_inchstr\fR(3X)
mvinchstr/\fBcurs_inchstr\fR(3X)
mvinnstr/\fBcurs_instr\fR(3X)
mvinnwstr/\fBcurs_inwstr\fR(3X)
mvins_nwstr/\fBcurs_ins_wstr\fR(3X)
mvins_wch/\fBcurs_ins_wch\fR(3X)
mvins_wstr/\fBcurs_ins_wstr\fR(3X)
mvinsch/\fBcurs_insch\fR(3X)
mvinsnstr/\fBcurs_insstr\fR(3X)
mvinsstr/\fBcurs_insstr\fR(3X)
mvinstr/\fBcurs_instr\fR(3X)
mvinwstr/\fBcurs_inwstr\fR(3X)
mvprintw/\fBcurs_printw\fR(3X)
mvscanw/\fBcurs_scanw\fR(3X)
mvvline/\fBcurs_border\fR(3X)
mvvline_set/\fBcurs_border_set\fR(3X)
mvwadd_wch/\fBcurs_add_wch\fR(3X)
mvwadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
mvwadd_wchstr/\fBcurs_add_wchstr\fR(3X)
mvwaddch/\fBcurs_addch\fR(3X)
mvwaddchnstr/\fBcurs_addchstr\fR(3X)
mvwaddchstr/\fBcurs_addchstr\fR(3X)
mvwaddnstr/\fBcurs_addstr\fR(3X)
mvwaddnwstr/\fBcurs_addwstr\fR(3X)
mvwaddstr/\fBcurs_addstr\fR(3X)
mvwaddwstr/\fBcurs_addwstr\fR(3X)
mvwchgat/\fBcurs_attr\fR(3X)
mvwdelch/\fBcurs_delch\fR(3X)
mvwget_wch/\fBcurs_get_wch\fR(3X)
mvwget_wstr/\fBcurs_get_wstr\fR(3X)
mvwgetch/\fBcurs_getch\fR(3X)
mvwgetn_wstr/\fBcurs_get_wstr\fR(3X)
mvwgetnstr/\fBcurs_getstr\fR(3X)
mvwgetstr/\fBcurs_getstr\fR(3X)
mvwhline/\fBcurs_border\fR(3X)
mvwhline_set/\fBcurs_border_set\fR(3X)
mvwin/\fBcurs_window\fR(3X)
mvwin_wch/\fBcurs_in_wch\fR(3X)
mvwin_wchnstr/\fBcurs_in_wchstr\fR(3X)
mvwin_wchstr/\fBcurs_in_wchstr\fR(3X)
mvwinch/\fBcurs_inch\fR(3X)
mvwinchnstr/\fBcurs_inchstr\fR(3X)
mvwinchstr/\fBcurs_inchstr\fR(3X)
mvwinnstr/\fBcurs_instr\fR(3X)
mvwinnwstr/\fBcurs_inwstr\fR(3X)
mvwins_nwstr/\fBcurs_ins_wstr\fR(3X)
mvwins_wch/\fBcurs_ins_wch\fR(3X)
mvwins_wstr/\fBcurs_ins_wstr\fR(3X)
mvwinsch/\fBcurs_insch\fR(3X)
mvwinsnstr/\fBcurs_insstr\fR(3X)
mvwinsstr/\fBcurs_insstr\fR(3X)
mvwinstr/\fBcurs_instr\fR(3X)
mvwinwstr/\fBcurs_inwstr\fR(3X)
mvwprintw/\fBcurs_printw\fR(3X)
mvwscanw/\fBcurs_scanw\fR(3X)
mvwvline/\fBcurs_border\fR(3X)
mvwvline_set/\fBcurs_border_set\fR(3X)
napms/\fBcurs_kernel\fR(3X)
newpad/\fBcurs_pad\fR(3X)
newterm/\fBcurs_initscr\fR(3X)
newwin/\fBcurs_window\fR(3X)
nl/\fBcurs_outopts\fR(3X)
nocbreak/\fBcurs_inopts\fR(3X)
nodelay/\fBcurs_inopts\fR(3X)
noecho/\fBcurs_inopts\fR(3X)
nofilter/\fBcurs_util\fR(3X)*
nonl/\fBcurs_outopts\fR(3X)
noqiflush/\fBcurs_inopts\fR(3X)
noraw/\fBcurs_inopts\fR(3X)
notimeout/\fBcurs_inopts\fR(3X)
overlay/\fBcurs_overlay\fR(3X)
overwrite/\fBcurs_overlay\fR(3X)
pair_content/\fBcurs_color\fR(3X)
pechochar/\fBcurs_pad\fR(3X)
pnoutrefresh/\fBcurs_pad\fR(3X)
prefresh/\fBcurs_pad\fR(3X)
printw/\fBcurs_printw\fR(3X)
putp/\fBcurs_terminfo\fR(3X)
putwin/\fBcurs_util\fR(3X)
qiflush/\fBcurs_inopts\fR(3X)
raw/\fBcurs_inopts\fR(3X)
redrawwin/\fBcurs_refresh\fR(3X)
refresh/\fBcurs_refresh\fR(3X)
reset_prog_mode/\fBcurs_kernel\fR(3X)
reset_shell_mode/\fBcurs_kernel\fR(3X)
resetty/\fBcurs_kernel\fR(3X)
resizeterm/\fBresizeterm\fR(3X)*
restartterm/\fBcurs_terminfo\fR(3X)
ripoffline/\fBcurs_kernel\fR(3X)
savetty/\fBcurs_kernel\fR(3X)
scanw/\fBcurs_scanw\fR(3X)
scr_dump/\fBcurs_scr_dump\fR(3X)
scr_init/\fBcurs_scr_dump\fR(3X)
scr_restore/\fBcurs_scr_dump\fR(3X)
scr_set/\fBcurs_scr_dump\fR(3X)
scrl/\fBcurs_scroll\fR(3X)
scroll/\fBcurs_scroll\fR(3X)
scrollok/\fBcurs_outopts\fR(3X)
set_curterm/\fBcurs_terminfo\fR(3X)
set_term/\fBcurs_initscr\fR(3X)
setcchar/\fBcurs_getcchar\fR(3X)
setscrreg/\fBcurs_outopts\fR(3X)
setsyx/\fBcurs_kernel\fR(3X)
setterm/\fBcurs_terminfo\fR(3X)
setupterm/\fBcurs_terminfo\fR(3X)
slk_attr/\fBcurs_slk\fR(3X)*
slk_attr_off/\fBcurs_slk\fR(3X)
slk_attr_on/\fBcurs_slk\fR(3X)
slk_attr_set/\fBcurs_slk\fR(3X)
slk_attroff/\fBcurs_slk\fR(3X)
slk_attron/\fBcurs_slk\fR(3X)
slk_attrset/\fBcurs_slk\fR(3X)
slk_clear/\fBcurs_slk\fR(3X)
slk_color/\fBcurs_slk\fR(3X)
slk_init/\fBcurs_slk\fR(3X)
slk_label/\fBcurs_slk\fR(3X)
slk_noutrefresh/\fBcurs_slk\fR(3X)
slk_refresh/\fBcurs_slk\fR(3X)
slk_restore/\fBcurs_slk\fR(3X)
slk_set/\fBcurs_slk\fR(3X)
slk_touch/\fBcurs_slk\fR(3X)
standend/\fBcurs_attr\fR(3X)
standout/\fBcurs_attr\fR(3X)
start_color/\fBcurs_color\fR(3X)
subpad/\fBcurs_pad\fR(3X)
subwin/\fBcurs_window\fR(3X)
syncok/\fBcurs_window\fR(3X)
term_attrs/\fBcurs_termattrs\fR(3X)
termattrs/\fBcurs_termattrs\fR(3X)
termname/\fBcurs_termattrs\fR(3X)
tgetent/\fBcurs_termcap\fR(3X)
tgetflag/\fBcurs_termcap\fR(3X)
tgetnum/\fBcurs_termcap\fR(3X)
tgetstr/\fBcurs_termcap\fR(3X)
tgoto/\fBcurs_termcap\fR(3X)
tigetflag/\fBcurs_terminfo\fR(3X)
tigetnum/\fBcurs_terminfo\fR(3X)
tigetstr/\fBcurs_terminfo\fR(3X)
timeout/\fBcurs_inopts\fR(3X)
touchline/\fBcurs_touch\fR(3X)
touchwin/\fBcurs_touch\fR(3X)
tparm/\fBcurs_terminfo\fR(3X)
tputs/\fBcurs_termcap\fR(3X)
tputs/\fBcurs_terminfo\fR(3X)
trace/\fBcurs_trace\fR(3X)*
typeahead/\fBcurs_inopts\fR(3X)
unctrl/\fBcurs_util\fR(3X)
unget_wch/\fBcurs_get_wch\fR(3X)
ungetch/\fBcurs_getch\fR(3X)
ungetmouse/\fBcurs_mouse\fR(3X)*
untouchwin/\fBcurs_touch\fR(3X)
use_default_colors/\fBdefault_colors\fR(3X)*
use_env/\fBcurs_util\fR(3X)
use_extended_names/\fBcurs_extend\fR(3X)*
use_legacy_coding/\fBlegacy_coding\fR(3X)*
vid_attr/\fBcurs_terminfo\fR(3X)
vid_puts/\fBcurs_terminfo\fR(3X)
vidattr/\fBcurs_terminfo\fR(3X)
vidputs/\fBcurs_terminfo\fR(3X)
vline/\fBcurs_border\fR(3X)
vline_set/\fBcurs_border_set\fR(3X)
vw_printw/\fBcurs_printw\fR(3X)
vw_scanw/\fBcurs_scanw\fR(3X)
vwprintw/\fBcurs_printw\fR(3X)
vwscanw/\fBcurs_scanw\fR(3X)
wadd_wch/\fBcurs_add_wch\fR(3X)
wadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
wadd_wchstr/\fBcurs_add_wchstr\fR(3X)
waddch/\fBcurs_addch\fR(3X)
waddchnstr/\fBcurs_addchstr\fR(3X)
waddchstr/\fBcurs_addchstr\fR(3X)
waddnstr/\fBcurs_addstr\fR(3X)
waddnwstr/\fBcurs_addwstr\fR(3X)
waddstr/\fBcurs_addstr\fR(3X)
waddwstr/\fBcurs_addwstr\fR(3X)
wattr_get/\fBcurs_attr\fR(3X)
wattr_off/\fBcurs_attr\fR(3X)
wattr_on/\fBcurs_attr\fR(3X)
wattr_set/\fBcurs_attr\fR(3X)
wattroff/\fBcurs_attr\fR(3X)
wattron/\fBcurs_attr\fR(3X)
wattrset/\fBcurs_attr\fR(3X)
wbkgd/\fBcurs_bkgd\fR(3X)
wbkgdset/\fBcurs_bkgd\fR(3X)
wbkgrnd/\fBcurs_bkgrnd\fR(3X)
wbkgrndset/\fBcurs_bkgrnd\fR(3X)
wborder/\fBcurs_border\fR(3X)
wborder_set/\fBcurs_border_set\fR(3X)
wchgat/\fBcurs_attr\fR(3X)
wclear/\fBcurs_clear\fR(3X)
wclrtobot/\fBcurs_clear\fR(3X)
wclrtoeol/\fBcurs_clear\fR(3X)
wcolor_set/\fBcurs_attr\fR(3X)
wcursyncup/\fBcurs_window\fR(3X)
wdelch/\fBcurs_delch\fR(3X)
wdeleteln/\fBcurs_deleteln\fR(3X)
wecho_wchar/\fBcurs_add_wch\fR(3X)
wechochar/\fBcurs_addch\fR(3X)
wenclose/\fBcurs_mouse\fR(3X)*
werase/\fBcurs_clear\fR(3X)
wget_wch/\fBcurs_get_wch\fR(3X)
wget_wstr/\fBcurs_get_wstr\fR(3X)
wgetbkgrnd/\fBcurs_bkgrnd\fR(3X)
wgetch/\fBcurs_getch\fR(3X)
wgetn_wstr/\fBcurs_get_wstr\fR(3X)
wgetnstr/\fBcurs_getstr\fR(3X)
wgetstr/\fBcurs_getstr\fR(3X)
whline/\fBcurs_border\fR(3X)
whline_set/\fBcurs_border_set\fR(3X)
win_wch/\fBcurs_in_wch\fR(3X)
win_wchnstr/\fBcurs_in_wchstr\fR(3X)
win_wchstr/\fBcurs_in_wchstr\fR(3X)
winch/\fBcurs_inch\fR(3X)
winchnstr/\fBcurs_inchstr\fR(3X)
winchstr/\fBcurs_inchstr\fR(3X)
winnstr/\fBcurs_instr\fR(3X)
winnwstr/\fBcurs_inwstr\fR(3X)
wins_nwstr/\fBcurs_ins_wstr\fR(3X)
wins_wch/\fBcurs_ins_wch\fR(3X)
wins_wstr/\fBcurs_ins_wstr\fR(3X)
winsch/\fBcurs_insch\fR(3X)
winsdelln/\fBcurs_deleteln\fR(3X)
winsertln/\fBcurs_deleteln\fR(3X)
winsnstr/\fBcurs_insstr\fR(3X)
winsstr/\fBcurs_insstr\fR(3X)
winstr/\fBcurs_instr\fR(3X)
winwstr/\fBcurs_inwstr\fR(3X)
wmouse_trafo/\fBcurs_mouse\fR(3X)*
wmove/\fBcurs_move\fR(3X)
wnoutrefresh/\fBcurs_refresh\fR(3X)
wprintw/\fBcurs_printw\fR(3X)
wredrawln/\fBcurs_refresh\fR(3X)
wrefresh/\fBcurs_refresh\fR(3X)
wresize/\fBwresize\fR(3X)*
wscanw/\fBcurs_scanw\fR(3X)
wscrl/\fBcurs_scroll\fR(3X)
wsetscrreg/\fBcurs_outopts\fR(3X)
wstandend/\fBcurs_attr\fR(3X)
wstandout/\fBcurs_attr\fR(3X)
wsyncdown/\fBcurs_window\fR(3X)
wsyncup/\fBcurs_window\fR(3X)
wtimeout/\fBcurs_inopts\fR(3X)
wtouchln/\fBcurs_touch\fR(3X)
wunctrl/\fBcurs_util\fR(3X)
wvline/\fBcurs_border\fR(3X)
wvline_set/\fBcurs_border_set\fR(3X)
.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
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
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.
.TP 5
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, \fBncurses\fR uses 9600.
This allows testers to construct repeatable test-cases
that take into account costs that depend on baudrate.
.TP 5
CC
When set, change occurrences of the command_character
(i.e., the \fBcmdch\fP capability)
of the loaded terminfo entries to the value of this symbol.
Very few terminfo entries provide this feature.
.TP 5
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 \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).
.IP
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.
.IP
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.
.IP
Use the \fBuse_env\fR function to disable all use of external environment
(including system calls) to determine the screen size.
.TP 5
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.
.IP
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.
.IP
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.
.IP
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.
.TP 5
HOME
Tells \fBncurses\fR where your home directory is.
That is where it may read and write auxiliary terminal descriptions:
.IP
$HOME/.termcap
.br
$HOME/.terminfo
.TP 5
LINES
Like COLUMNS, specify the height of the screen in characters.
See COLUMNS for a detailed description.
.TP 5
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:
.sp
1 = left
.br
2 = right
.br
3 = middle.
.sp
This symbol lets you customize the mouse.
The symbol must be three numeric digits 1-3 in any order, e.g., 123 or 321.
If it is not specified, \fBncurses\fR uses 132.
.TP 5
NCURSES_ASSUMED_COLORS
Override the compiled-in assumption that the
terminal's default colors are white-on-black
(see \fBdefault_colors\fR(3X)).
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.
.TP 5
NCURSES_GPM_TERMS
This applies only to ncurses configured to use the GPM interface.
.IP
If present,
the environment variable is a list of one or more terminal names
against which the TERM environment variable is matched.
Setting it to an empty value disables the GPM interface;
using the built-in support for xterm, etc.
.IP
If the environment variable is absent,
ncurses will attempt to open GPM if TERM contains "linux".
.TP 5
NCURSES_NO_HARD_TABS
\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.
.TP 5
NCURSES_NO_MAGIC_COOKIES
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.
.TP 5
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.
.IP
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.
.IP
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 \fIflash\fR.
.TP 5
NCURSES_NO_SETBUF
Normally \fBncurses\fR enables buffered output during terminal initialization.
This is done (as in SVr4 curses) for performance reasons.
For testing purposes, both of \fBncurses\fR 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.
.TP 5
NCURSES_NO_UTF8_ACS
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 TERM 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.
.IP
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.
.TP 5
NCURSES_TRACE
During initialization, the \fBncurses\fR debugging library
checks the NCURSES_TRACE symbol.
If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
function, using that value as the argument.
.IP
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.
.TP 5
TERM
Denotes your terminal type.
Each terminal type is distinct, though many are similar.
.TP 5
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.
.IP
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 \fBncurses\fR to ignore
the usual place for this information, e.g., /etc/termcap.
.TP 5
TERMINFO
Overrides the directory in which \fBncurses\fR 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:
.RS
.TP 3
-
the last directory to which \fBncurses\fR wrote, if any, is searched first
.TP 3
-
the directory specified by the TERMINFO symbol
.TP 3
-
$HOME/.terminfo
.TP 3
-
directories listed in the TERMINFO_DIRS symbol
.TP 3
-
one or more directories whose names are configured and compiled into the
ncurses library, e.g.,
@TERMINFO@
.RE
.TP 5
TERMINFO_DIRS
Specifies a list of directories to search for terminal descriptions.
The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
All of the terminal descriptions are in terminfo form, which makes
a subdirectory named for the first letter of the terminal names therein.
.TP 5
TERMPATH
If TERMCAP does not hold a file name then \fBncurses\fR checks
the TERMPATH symbol.
This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
If the TERMPATH symbol is not set, \fBncurses\fR looks in the files
/etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, 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:
$TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
.SH ALTERNATE CONFIGURATIONS
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:
.RS
.sp
\fB#include <curses.h>\fR
.RE
.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.,
.RS
.sp
\fB#include <ncurses/curses.h>\fR
.RE
.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
.RS
.sp
\fB-lncurses\fR
.RE
.IP
you link with
.RS
.sp
\fB-lncursesw\fR
.RE
.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-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
@DATADIR@/tabset
directory containing initialization files for the terminal capability database
@TERMINFO@
terminal capability database
.SH SEE ALSO
\fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine
descriptions.
.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 \fBcurs_mouse\fR(3X)
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(3X)
and \fBwresize\fR(3X) manual pages for details.
In addition, the library may be configured with a SIGWINCH 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(3X)
\fBkey_defined\fR(3X),
and \fBkeyok\fR(3X) 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(3X) 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 \fBcurs_print\fR(3X) 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
This implementation also contains several extensions:
.RS 5
.PP
The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
See the \fBcurs_getch\fR(3X) manual page for details.
.PP
The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.
See the \fBcurs_slk\fR(3X) manual page for details.
.PP
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 \fBcurs_mouse\fR(3X) manual page for details.
.PP
The routine \fBmcprint\fR was not present in any previous curses implementation.
See the \fBcurs_print\fR(3X) manual page for details.
.PP
The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.
See the \fBwresize\fR(3X) manual page for details.
.PP
The WINDOW structure's internal details can be hidden from application
programs.
See \fBcurs_opaque\fR(3X) for the discussion of \fBis_scrollok\fR, etc.
.RE
.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.
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
.\"# mode:nroff
.\"# fill-column:79
.\"# End:
