.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
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.
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.
i.e., features which cannot be implemented by a simple add-on library
but which require access to the internals of the library.
.PP
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.
+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.
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.
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.
\fBsetlocale(LC_ALL, "");\fP
.sp
If the locale is not initialized,
\fBsetlocale(LC_ALL, "");\fP
.sp
If the locale is not initialized,
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.
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.
corresponds to \fBchtype\fP.
However it is a structure, because more data is stored than can fit into
an integer.
corresponds to \fBchtype\fP.
However it is a structure, because more data is stored than can fit into
an integer.
may be more than one character per cell.
The video attributes and color are stored in separate fields of the structure.
.IP
may be more than one character per cell.
The video attributes and color are stored in separate fields of the structure.
.IP
_nc_tracebits/\fBcurs_trace\fR(3X)*
_traceattr/\fBcurs_trace\fR(3X)*
_traceattr2/\fBcurs_trace\fR(3X)*
_nc_tracebits/\fBcurs_trace\fR(3X)*
_traceattr/\fBcurs_trace\fR(3X)*
_traceattr2/\fBcurs_trace\fR(3X)*
(i.e., the \fBcmdch\fP capability)
of the loaded terminfo entries to the value of this symbol.
Very few terminfo entries provide this feature.
(i.e., the \fBcmdch\fP capability)
of the loaded terminfo entries to the value of this symbol.
Very few terminfo entries provide this feature.
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
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
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
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
checks for special cases where VT100 line-drawing (and the corresponding
alternate character set capabilities) described in the terminfo are known
to be missing.
checks for special cases where VT100 line-drawing (and the corresponding
alternate character set capabilities) described in the terminfo are known
to be missing.
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.
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.
.IP
When setting this variable, you should set it to a nonzero value.
Setting it to zero (or to a nonnumber)
.IP
When setting this variable, you should set it to a nonzero value.
Setting it to zero (or to a nonnumber)
There are a few main options whose effects are visible to the applications
developer using \fBncurses\fP:
.TP 5
There are a few main options whose effects are visible to the applications
developer using \fBncurses\fP:
.TP 5
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
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
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
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
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
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
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
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
and \fBkeyok\fR(3X) manual pages for details.
.PP
The \fBncurses\fR library can exploit the capabilities of terminals which
and \fBkeyok\fR(3X) manual pages for details.
.PP
The \fBncurses\fR library can exploit the capabilities of terminals which
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
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