9a7523d4b2
Obtained from: ftp://dickey.his.com/ncurses/
916 lines
35 KiB
Plaintext
916 lines
35 KiB
Plaintext
'\" t
|
|
.\"***************************************************************************
|
|
.\" Copyright (c) 1998,1999,2001,2002 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.61 2002/05/11 21:15:32 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.
|
|
|
|
The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
|
|
Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
|
|
library is freely redistributable in source form. Differences from the SVr4
|
|
curses are summarized under the EXTENSIONS and BUGS sections below and
|
|
described in detail in the EXTENSIONS and BUGS sections of individual man
|
|
pages.
|
|
|
|
A program using these routines must be linked with the \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.
|
|
|
|
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.
|
|
|
|
To initialize the routines, the routine \fBinitscr\fR or \fBnewterm\fR
|
|
must be called before any of the other routines that deal with windows
|
|
and screens are used. The routine \fBendwin\fR must be called before
|
|
exiting. To get character-at-a-time input without echoing (most
|
|
interactive, screen oriented programs want this), the following
|
|
sequence should be used:
|
|
|
|
\fBinitscr(); cbreak(); noecho();\fR
|
|
|
|
Most programs would additionally use the sequence:
|
|
|
|
\fBnonl();\fR
|
|
\fBintrflush(stdscr, FALSE);\fR
|
|
\fBkeypad(stdscr, TRUE);\fR
|
|
|
|
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.]
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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 which 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.)
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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
|
|
effect a program running in an AT&T 630 layer, for example, where the size of a
|
|
screen is changeable (see \fBENVIRONMENT\fR).
|
|
|
|
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
|
|
|
|
\fB\*d/a/att4424\fR.
|
|
|
|
(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
|
|
|
|
\fB$HOME/myterms/a/att4424\fR,
|
|
|
|
and if that fails, it then checks
|
|
|
|
\fB\*d/a/att4424\fR.
|
|
|
|
This is useful for developing experimental definitions or when write
|
|
permission in \fB\*d\fR is not available.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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).
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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. The
|
|
variables \fIch\fR and \fIattrs\fR below are always of type
|
|
\fBchtype\fR. The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and
|
|
\fBchtype\fR are defined in \fB<curses.h>\fR. The type \fBTERMINAL\fR
|
|
is defined in \fB<term.h>\fR. All other arguments are integers.
|
|
|
|
.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.
|
|
|
|
.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_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)
|
|
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)
|
|
getmaxyx/\fBcurs_getyx\fR(3X)
|
|
getmouse/\fBcurs_mouse\fR(3X)*
|
|
getn_wstr/\fBcurs_get_wstr\fR(3X)
|
|
getnstr/\fBcurs_getstr\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_linetouched/\fBcurs_touch\fR(3X)
|
|
is_wintouched/\fBcurs_touch\fR(3X)
|
|
isendwin/\fBcurs_initscr\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)
|
|
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)*
|
|
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.
|
|
|
|
All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
|
|
\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, \fBgetmaxyx\fR. The return
|
|
values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
|
|
\fBgetmaxyx\fR are undefined (\fIi\fR.\fIe\fR., these should not be used as the
|
|
right-hand side of assignment statements).
|
|
|
|
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 $COLUMNS 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).
|
|
|
|
It is important that your application use a correct size for the screen.
|
|
However, this is not always possible because your application may be
|
|
running on a host which does not honor NAWS (Negotiations About Window
|
|
Size), or because you are temporarily running as another user.
|
|
|
|
Either COLUMNS or LINES symbols may be specified independently.
|
|
This is mainly useful to circumvent legacy misfeatures of terminal descriptions,
|
|
e.g., xterm which commonly specifies a 65 line screen.
|
|
For best results, \fBlines\fR and \fBcols\fR should not be specified in
|
|
a terminal description for terminals which are run as emulations.
|
|
|
|
Use the \fBuse_env\fR function to disable this feature.
|
|
.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.
|
|
|
|
The most common instance where you may wish to change this value
|
|
is to work with slow hosts, e.g., running on a network.
|
|
If the host cannot read characters rapidly enough, it will have the same
|
|
effect as if the terminal did not send characters rapidly enough.
|
|
The library will still see a timeout.
|
|
|
|
Note that xterm mouse events are built up from character sequences
|
|
received from the xterm.
|
|
If your application makes heavy use of multiple-clicking, you may
|
|
wish to lengthen this default value because the timeout applies
|
|
to the composed multi-click event as well as the individual clicks.
|
|
.TP 5
|
|
HOME
|
|
Tells \fBncurses\fR where your home directory is.
|
|
That is where it may read and write auxiliary terminal descriptions:
|
|
|
|
$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:
|
|
|
|
1 = left
|
|
.br
|
|
2 = right
|
|
.br
|
|
3 = middle.
|
|
|
|
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_NO_PADDING
|
|
Most of the terminal descriptions in the terminfo database are written
|
|
for real "hardware" terminals.
|
|
Many people use terminal emulators
|
|
which run in a windowing environment and use curses-based applications.
|
|
Terminal emulators can duplicate
|
|
all of the important aspects of a hardware terminal, but they do not
|
|
have the same limitations.
|
|
The chief limitation of a hardware terminal from the standpoint
|
|
of your application is the management of dataflow, i.e., timing.
|
|
Unless a hardware terminal is interfaced into a terminal concentrator
|
|
(which does flow control),
|
|
it (or your application) must manage dataflow, preventing overruns.
|
|
The cheapest solution (no hardware cost)
|
|
is for your program to do this by pausing after
|
|
operations that the terminal does slowly, such as clearing the display.
|
|
|
|
As a result, many terminal descriptions (including the vt100)
|
|
have delay times embedded. You may wish to use these descriptions,
|
|
but not want to pay the performance penalty.
|
|
|
|
Set the NCURSES_NO_PADDING symbol to disable all but mandatory
|
|
padding. Mandatory padding is used as a part of special control
|
|
sequences such as \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_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.
|
|
|
|
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.
|
|
|
|
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 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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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)
|
|
and \fBkeyok\fR(3X) manual pages for details.
|
|
|
|
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.
|
|
|
|
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 the XSI
|
|
Curses standard. Certain portions of the EXTENDED XSI Curses functionality
|
|
(including color support) are supported. The following EXTENDED XSI Curses
|
|
calls in support of wide (multibyte) characters are not yet implemented:
|
|
\fBpecho_wchar\fP,
|
|
\fBslk_wset\fP.
|
|
.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
|
|
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
|
|
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
|
|
NUL sends. This method is slightly more expensive, but narrows the interface
|
|
to the UNIX kernel significantly and increases the package's portability
|
|
correspondingly.
|
|
.PP
|
|
In the XSI standard and SVr4 manual pages, many entry points have prototype
|
|
arguments of the for \fBchar *const\fR (or \fBcchar_t *const\fR, or
|
|
\fBwchar_t *const\fR, or \fBvoid *const\fR). Depending on one's interpretation of the
|
|
ANSI C standard (see section 3.5.4.1), these declarations are either (a)
|
|
meaningless, or (b) meaningless and illegal. The declaration
|
|
\fBconst char *x\fR is a modifiable pointer to unmodifiable data, but
|
|
\fBchar *const x\fR' is
|
|
an unmodifiable pointer to modifiable data. Given that C passes arguments by
|
|
value, \fB<type> *const\fR as a formal type is at best dubious. Some compilers
|
|
choke on the prototypes. Therefore, in this implementation, they have been
|
|
changed to \fBconst <type> *\fR globally.
|
|
.SH NOTES
|
|
The header file \fB<curses.h>\fR automatically includes the header files
|
|
\fB<stdio.h>\fR and \fB<unctrl.h>\fR.
|
|
|
|
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:
|