mirror of
https://github.com/Aigor44/ncursesw-morphos.git
synced 2025-01-06 14:44:25 +08:00
632 lines
21 KiB
Plaintext
632 lines
21 KiB
Plaintext
.\" $Id: ncurses.3x,v 1.19 1997/01/05 00:42:39 tom Exp $
|
|
.TH ncurses 3X ""
|
|
.ds n 5
|
|
.ds d @DATADIR@/terminfo
|
|
.SH NAME
|
|
\fBncurses\fR - CRT screen handling and optimization package
|
|
.SH SYNOPSIS
|
|
\fB#include <curses.h>\fR
|
|
.br
|
|
.SH DESCRIPTION
|
|
The \fBcurses\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 \fBcurses\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 \fBpanels(3x)\fR 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 curs_pad(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.
|
|
|
|
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
|
|
=
|
|
addch/curs_addch(3X)
|
|
addchnstr/curs_addchstr(3X)
|
|
addchstr/curs_addchstr(3X)
|
|
addnstr/curs_addstr(3X)
|
|
addstr/curs_addstr(3X)
|
|
attroff/curs_attr(3X)
|
|
attron/curs_attr(3X)
|
|
attrset/curs_attr(3X)
|
|
baudrate/curs_termattrs(3X)
|
|
beep/curs_beep(3X)
|
|
bkgd/curs_bkgd(3X)
|
|
bkgdset/curs_bkgd(3X)
|
|
border/curs_border(3X)
|
|
box/curs_border(3X)
|
|
can_change_color/curs_color(3X)
|
|
cbreak/curs_inopts(3X)
|
|
clear/curs_clear(3X)
|
|
clearok/curs_outopts(3X)
|
|
clrtobot/curs_clear(3X)
|
|
clrtoeol/curs_clear(3X)
|
|
color_content/curs_color(3X)
|
|
copywin/curs_overlay(3X)
|
|
curs_set/curs_kernel(3X)
|
|
def_prog_mode/curs_kernel(3X)
|
|
def_shell_mode/curs_kernel(3X)
|
|
del_curterm/curs_terminfo(3X)
|
|
delay_output/curs_util(3X)
|
|
delch/curs_delch(3X)
|
|
deleteln/curs_deleteln(3X)
|
|
delscreen/curs_initscr(3X)
|
|
delwin/curs_window(3X)
|
|
derwin/curs_window(3X)
|
|
doupdate/curs_refresh(3X)
|
|
dupwin/curs_window(3X)
|
|
echo/curs_inopts(3X)
|
|
echochar/curs_addch(3X)
|
|
endwin/curs_initscr(3X)
|
|
erase/curs_clear(3X)
|
|
erasechar/curs_termattrs(3X)
|
|
filter/curs_util(3X)
|
|
flash/curs_beep(3X)
|
|
flushinp/curs_util(3X)
|
|
getbegyx/curs_getyx(3X)
|
|
getch/curs_getch(3X)
|
|
getmaxyx/curs_getyx(3X)
|
|
getmouse/curs_mouse(3X)*
|
|
getparyx/curs_getyx(3X)
|
|
getstr/curs_getstr(3X)
|
|
getsyx/curs_kernel(3X)
|
|
getwin/curs_util(3X)
|
|
getyx/curs_getyx(3X)
|
|
halfdelay/curs_inopts(3X)
|
|
has_colors/curs_color(3X)
|
|
has_ic/curs_termattrs(3X)
|
|
has_il/curs_termattrs(3X)
|
|
has_key/curs_getch(3X)*
|
|
hline/curs_border(3X)
|
|
idcok/curs_outopts(3X)
|
|
idlok/curs_outopts(3X)
|
|
immedok/curs_outopts(3X)
|
|
inch/curs_inch(3X)
|
|
inchnstr/curs_inchstr(3X)
|
|
inchstr/curs_inchstr(3X)
|
|
init_color/curs_color(3X)
|
|
init_pair/curs_color(3X)
|
|
initscr/curs_initscr(3X)
|
|
innstr/curs_instr(3X)
|
|
insch/curs_insch(3X)
|
|
insdelln/curs_deleteln(3X)
|
|
insertln/curs_deleteln(3X)
|
|
insnstr/curs_insstr(3X)
|
|
insstr/curs_insstr(3X)
|
|
instr/curs_instr(3X)
|
|
intrflush/curs_inopts(3X)
|
|
is_linetouched/curs_touch(3X)
|
|
is_wintouched/curs_touch(3X)
|
|
isendwin/curs_initscr(3X)
|
|
keyname/curs_util(3X)
|
|
keypad/curs_inopts(3X)
|
|
killchar/curs_termattrs(3X)
|
|
leaveok/curs_outopts(3X)
|
|
longname/curs_termattrs(3X)
|
|
mcprint/curs_print(3X)*
|
|
meta/curs_inopts(3X)
|
|
mouseinterval/curs_mouse(3X)*
|
|
mousemask/curs_mouse(3X)*
|
|
move/curs_move(3X)
|
|
mvaddch/curs_addch(3X)
|
|
mvaddchnstr/curs_addchstr(3X)
|
|
mvaddchstr/curs_addchstr(3X)
|
|
mvaddnstr/curs_addstr(3X)
|
|
mvaddstr/curs_addstr(3X)
|
|
mvcur/curs_terminfo(3X)
|
|
mvdelch/curs_delch(3X)
|
|
mvderwin/curs_window(3X)
|
|
mvgetch/curs_getch(3X)
|
|
mvgetstr/curs_getstr(3X)
|
|
mvinch/curs_inch(3X)
|
|
mvinchnstr/curs_inchstr(3X)
|
|
mvinchstr/curs_inchstr(3X)
|
|
mvinnstr/curs_instr(3X)
|
|
mvinsch/curs_insch(3X)
|
|
mvinsnstr/curs_insstr(3X)
|
|
mvinsstr/curs_insstr(3X)
|
|
mvinstr/curs_instr(3X)
|
|
mvprintw/curs_printw(3X)
|
|
mvscanw/curs_scanw(3X)
|
|
mvwaddch/curs_addch(3X)
|
|
mvwaddchnstr/curs_addchstr(3X)
|
|
mvwaddchstr/curs_addchstr(3X)
|
|
mvwaddnstr/curs_addstr(3X)
|
|
mvwaddstr/curs_addstr(3X)
|
|
mvwdelch/curs_delch(3X)
|
|
mvwgetch/curs_getch(3X)
|
|
mvwgetstr/curs_getstr(3X)
|
|
mvwin/curs_window(3X)
|
|
mvwinch/curs_inch(3X)
|
|
mvwinchnstr/curs_inchstr(3X)
|
|
mvwinchstr/curs_inchstr(3X)
|
|
mvwinnstr/curs_instr(3X)
|
|
mvwinsch/curs_insch(3X)
|
|
mvwinsnstr/curs_insstr(3X)
|
|
mvwinsstr/curs_insstr(3X)
|
|
mvwinstr/curs_instr(3X)
|
|
mvwprintw/curs_printw(3X)
|
|
mvwscanw/curs_scanw(3X)
|
|
napms/curs_kernel(3X)
|
|
newpad/curs_pad(3X)
|
|
newterm/curs_initscr(3X)
|
|
newwin/curs_window(3X)
|
|
nl/curs_outopts(3X)
|
|
nocbreak/curs_inopts(3X)
|
|
nodelay/curs_inopts(3X)
|
|
noecho/curs_inopts(3X)
|
|
nonl/curs_outopts(3X)
|
|
noqiflush/curs_inopts(3X)
|
|
noraw/curs_inopts(3X)
|
|
notimeout/curs_inopts(3X)
|
|
overlay/curs_overlay(3X)
|
|
overwrite/curs_overlay(3X)
|
|
pair_content/curs_color(3X)
|
|
pechochar/curs_pad(3X)
|
|
pnoutrefresh/curs_pad(3X)
|
|
prefresh/curs_pad(3X)
|
|
printw/curs_printw(3X)
|
|
putp/curs_terminfo(3X)
|
|
putwin/curs_util(3X)
|
|
qiflush/curs_inopts(3X)
|
|
raw/curs_inopts(3X)
|
|
redrawwin/curs_refresh(3X)
|
|
refresh/curs_refresh(3X)
|
|
reset_prog_mode/curs_kernel(3X)
|
|
reset_shell_mode/curs_kernel(3X)
|
|
resetty/curs_kernel(3X)
|
|
resizeterm/resizeterm(3x)*
|
|
restartterm/curs_terminfo(3X)
|
|
ripoffline/curs_kernel(3X)
|
|
savetty/curs_kernel(3X)
|
|
scanw/curs_scanw(3X)
|
|
scr_dump/curs_scr_dump(3X)
|
|
scr_init/curs_scr_dump(3X)
|
|
scr_restore/curs_scr_dump(3X)
|
|
scr_set/curs_scr_dump(3X)
|
|
scrl/curs_scroll(3X)
|
|
scroll/curs_scroll(3X)
|
|
scrollok/curs_outopts(3X)
|
|
set_curterm/curs_terminfo(3X)
|
|
set_term/curs_initscr(3X)
|
|
setscrreg/curs_outopts(3X)
|
|
setsyx/curs_kernel(3X)
|
|
setterm/curs_terminfo(3X)
|
|
setupterm/curs_terminfo(3X)
|
|
slk_attr/curs_slk(3X)*
|
|
slk_attroff/curs_slk(3X)
|
|
slk_attron/curs_slk(3X)
|
|
slk_attrset/curs_slk(3X)
|
|
slk_clear/curs_slk(3X)
|
|
slk_init/curs_slk(3X)
|
|
slk_label/curs_slk(3X)
|
|
slk_noutrefresh/curs_slk(3X)
|
|
slk_refresh/curs_slk(3X)
|
|
slk_restore/curs_slk(3X)
|
|
slk_set/curs_slk(3X)
|
|
slk_touch/curs_slk(3X)
|
|
standend/curs_attr(3X)
|
|
standout/curs_attr(3X)
|
|
start_color/curs_color(3X)
|
|
subpad/curs_pad(3X)
|
|
subwin/curs_window(3X)
|
|
syncok/curs_window(3X)
|
|
termattrs/curs_termattrs(3X)
|
|
termname/curs_termattrs(3X)
|
|
tgetent/curs_termcap(3X)
|
|
tgetflag/curs_termcap(3X)
|
|
tgetnum/curs_termcap(3X)
|
|
tgetstr/curs_termcap(3X)
|
|
tgoto/curs_termcap(3X)
|
|
tigetflag/curs_terminfo(3X)
|
|
tigetnum/curs_terminfo(3X)
|
|
tigetstr/curs_terminfo(3X)
|
|
timeout/curs_inopts(3X)
|
|
touchline/curs_touch(3X)
|
|
touchwin/curs_touch(3X)
|
|
tparm/curs_terminfo(3X)
|
|
tputs/curs_termcap(3X)
|
|
tputs/curs_terminfo(3X)
|
|
typeahead/curs_inopts(3X)
|
|
unctrl/curs_util(3X)
|
|
ungetch/curs_getch(3X)
|
|
ungetmouse/curs_mouse(3X)*
|
|
untouchwin/curs_touch(3X)
|
|
use_env/curs_util(3X)
|
|
vidattr/curs_terminfo(3X)
|
|
vidputs/curs_terminfo(3X)
|
|
vline/curs_border(3X)
|
|
vwprintw/curs_printw(3X)
|
|
vwscanw/curs_scanw(3X)
|
|
waddch/curs_addch(3X)
|
|
waddchnstr/curs_addchstr(3X)
|
|
waddchstr/curs_addchstr(3X)
|
|
waddnstr/curs_addstr(3X)
|
|
waddstr/curs_addstr(3X)
|
|
wattroff/curs_attr(3X)
|
|
wattron/curs_attr(3X)
|
|
wattrset/curs_attr(3X)
|
|
wbkgd/curs_bkgd(3X)
|
|
wbkgdset/curs_bkgd(3X)
|
|
wborder/curs_border(3X)
|
|
wclear/curs_clear(3X)
|
|
wclrtobot/curs_clear(3X)
|
|
wclrtoeol/curs_clear(3X)
|
|
wcursyncup/curs_window(3X)
|
|
wdelch/curs_delch(3X)
|
|
wdeleteln/curs_deleteln(3X)
|
|
wechochar/curs_addch(3X)
|
|
wenclose/curs_mouse(3X)*
|
|
werase/curs_clear(3X)
|
|
wgetch/curs_getch(3X)
|
|
wgetnstr/curs_getstr(3X)
|
|
wgetstr/curs_getstr(3X)
|
|
whline/curs_border(3X)
|
|
winch/curs_inch(3X)
|
|
winchnstr/curs_inchstr(3X)
|
|
winchstr/curs_inchstr(3X)
|
|
winnstr/curs_instr(3X)
|
|
winsch/curs_insch(3X)
|
|
winsdelln/curs_deleteln(3X)
|
|
winsertln/curs_deleteln(3X)
|
|
winsnstr/curs_insstr(3X)
|
|
winsstr/curs_insstr(3X)
|
|
winstr/curs_instr(3X)
|
|
wmove/curs_move(3X)
|
|
wnoutrefresh/curs_refresh(3X)
|
|
wprintw/curs_printw(3X)
|
|
wredrawln/curs_refresh(3X)
|
|
wrefresh/curs_refresh(3X)
|
|
wresize/wresize(3x)*
|
|
wscanw/curs_scanw(3X)
|
|
wscrl/curs_scroll(3X)
|
|
wsetscrreg/curs_outopts(3X)
|
|
wstandend/curs_attr(3X)
|
|
wstandout/curs_attr(3X)
|
|
wsyncdown/curs_window(3X)
|
|
wsyncup/curs_window(3X)
|
|
wtimeout/curs_inopts(3X)
|
|
wtouchln/curs_touch(3X)
|
|
wvline/curs_border(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 SEE ALSO
|
|
\fBterminfo\fR(\*n) and 3X pages whose names begin "curs_" for detailed routine
|
|
descriptions.
|
|
.SH EXTENSIONS
|
|
The \fBcurses\fR library can be compiled with an option (\fB-DTERMCAP_FILE\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 \fBcurses\fR startup code, at significant cost in core and startup cycles.
|
|
|
|
Compiling with \fB-DTERMCAP_FILE\fR changes the library's initialization
|
|
sequence in a way intended to mimic the behavior of 4.4BSD curses. If there is
|
|
no local or system terminfo entry matching \fBTERM\fR, then the library looks
|
|
for termcap entries in the following places: (1) if \fBTERMINFO\fR is
|
|
undefined, in the file named by \fBTERMCAP_FILE\fR; (2) if \fBTERMINFO\fR is
|
|
defined and begins with a slash, it is interpreted as the name of a termcap
|
|
file to search for \fBTERM\fR; (3) otherwise, if \fBTERMINFO\fR has a leading
|
|
string that looks like a terminal entry name list, and it matches \fBTERM\fR,
|
|
the contents of \fBTERMINFO\fR is interpreted as a termcap; (4) if
|
|
\fBTERMINFO\fR looks like a termcap but doesn't match \fBTERM\fR, the termcap
|
|
file is searched for among the colon-separated paths in the environment
|
|
variable \fBTERMPATHS\fR if that is defined, and in ~/.termcap and the file
|
|
value of \fBTERMCAP_FILE\fR otherwise.
|
|
|
|
Versions of \fBcurses\fR compiled on PC clones support display of the PC ROM
|
|
characters (including ROM characters 0-31, which stock SVr4 curses cannot
|
|
display). See the EXTENSIONS sections of \fBcurs_addch\fR(3x) and
|
|
\fBcurs_attr\fR(3x).
|
|
|
|
The \fBcurses\fR library includes facilities for capturing mouse events on
|
|
certain terminals (including xterm). See the \fBcurs_mouse\fR(3X)
|
|
manual page for details.
|
|
|
|
The \fBcurses\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 \fBcurses\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:
|
|
\fBaddnwstr\fB,
|
|
\fBaddwstr\fB,
|
|
\fBmvaddnwstr\fB,
|
|
\fBmvwaddnwstr\fB,
|
|
\fBmvaddwstr\fB,
|
|
\fBwaddnwstr\fB,
|
|
\fBwaddwstr\fB,
|
|
\fBadd_wch\fB,
|
|
\fBwadd_wch\fB,
|
|
\fBmvadd_wch\fB,
|
|
\fBmvwadd_wch\fB,
|
|
\fBadd_wchnstr\fB,
|
|
\fBadd_wchstr\fB,
|
|
\fBwadd_wchnstr\fB,
|
|
\fBwadd_wchstr\fB,
|
|
\fBmvadd_wchnstr\fB,
|
|
\fBmvadd_wchstr\fB,
|
|
\fBmvwadd_wchnstr\fB,
|
|
\fBmvwadd_wchstr\fB,
|
|
\fBbkgrndset\fB,
|
|
\fBbkgrnd\fB,
|
|
\fBgetbkgrnd\fB,
|
|
\fBwbkgrnd\fB,
|
|
\fBwbkgrndset\fB,
|
|
\fBwgetbkgrnd\fB,
|
|
\fBborder_set\fB,
|
|
\fBwborder_set\fB,
|
|
\fBbox_set\fB,
|
|
\fBhline_set\fB,
|
|
\fBmvhline_set\fB,
|
|
\fBmvvline_set\fB,
|
|
\fBmvwhline_set\fB,
|
|
\fBmvwvline_set\fB,
|
|
\fBwhline_set\fB,
|
|
\fBvhline_set\fB,
|
|
\fBwvline_set\fB,
|
|
\fBecho_wchar\fB,
|
|
\fBwecho_wchar\fB,
|
|
\fBerasewchar\fB,
|
|
\fBkillwchar\fB,
|
|
\fBget_wch\fB,
|
|
\fBmvget_wch\fB,
|
|
\fBmvwget_ch\fB,
|
|
\fBwget_wch\fB,
|
|
\fBgetwchtype\fB,
|
|
\fBget_wstr\fB,
|
|
\fBgetn_wstr\fB,
|
|
\fBwget_wstr\fB,
|
|
\fBwgetn_wstr\fB,
|
|
\fBmvget_wstr\fB,
|
|
\fBmvgetn_wstr\fB,
|
|
\fBmvwget_wstr\fB,
|
|
\fBmvwgetn_wstr\fB,
|
|
\fBinnwstr\fB,
|
|
\fBinwstr\fB,
|
|
\fBwinnwstr\fB,
|
|
\fBwinwstr\fB,
|
|
\fBmvinnwstr\fB,
|
|
\fBmvinwstr\fB,
|
|
\fBmvwinnwstr\fB,
|
|
\fBmvwinwstr\fB,
|
|
\fBins_nwstr\fB,
|
|
\fBins_wstr\fB,
|
|
\fBmvins_nwstr\fB,
|
|
\fBmvins_wstr\fB,
|
|
\fBmvwins_nwstr\fB,
|
|
\fBmvwins_wstr\fB,
|
|
\fBwins_nwstr\fB,
|
|
\fBwins_wstr\fB,
|
|
\fBins_wch\fB,
|
|
\fBwins_wch\fB,
|
|
\fBmvins_wch\fB,
|
|
\fBmvwins_wch\fB,
|
|
\fBin_wch\fB,
|
|
\fBwin_wch\fB,
|
|
\fBmvin_wch\fB,
|
|
\fBmvwin_wch\fB,
|
|
\fBinwchstr\fB,
|
|
\fBinwchnstr\fB,
|
|
\fBwinwchstr\fB,
|
|
\fBwinwchnstr\fB,
|
|
\fBmvinwchstr\fB,
|
|
\fBmvinwchnstr\fB,
|
|
\fBmvinwchstr\fB,
|
|
\fBmvwinwchnstr\fB.
|
|
.PP
|
|
A small number of local differences (that is, individual differences between
|
|
the XSI Curses and \fBcurses\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 \fBcurses\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. Descends from the original pcurses
|
|
by Pavel Curtis.
|
|
.\"#
|
|
.\"# The following sets edit modes for GNU EMACS
|
|
.\"# Local Variables:
|
|
.\"# mode:nroff
|
|
.\"# fill-column:79
|
|
.\"# End:
|