189 lines
7.1 KiB
Plaintext
189 lines
7.1 KiB
Plaintext
.\"***************************************************************************
|
|
.\" Copyright 2018-2019,2020 Thomas E. Dickey *
|
|
.\" Copyright 2010-2015,2017 Free Software Foundation, Inc. *
|
|
.\" *
|
|
.\" Permission is hereby granted, free of charge, to any person obtaining a *
|
|
.\" copy of this software and associated documentation files (the *
|
|
.\" "Software"), to deal in the Software without restriction, including *
|
|
.\" without limitation the rights to use, copy, modify, merge, publish, *
|
|
.\" distribute, distribute with modifications, sublicense, and/or sell *
|
|
.\" copies of the Software, and to permit persons to whom the Software is *
|
|
.\" furnished to do so, subject to the following conditions: *
|
|
.\" *
|
|
.\" The above copyright notice and this permission notice shall be included *
|
|
.\" in all copies or substantial portions of the Software. *
|
|
.\" *
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
|
|
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
|
|
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
|
|
.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
|
|
.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
|
|
.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
|
|
.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
|
.\" *
|
|
.\" Except as contained in this notice, the name(s) of the above copyright *
|
|
.\" holders shall not be used in advertising or otherwise to promote the *
|
|
.\" sale, use or other dealings in this Software without prior written *
|
|
.\" authorization. *
|
|
.\"***************************************************************************
|
|
.\"
|
|
.\" $Id: curs_variables.3x,v 1.15 2020/04/18 14:29:07 tom Exp $
|
|
.TH curs_variables 3X ""
|
|
.ie \n(.g .ds `` \(lq
|
|
.el .ds `` ``
|
|
.ie \n(.g .ds '' \(rq
|
|
.el .ds '' ''
|
|
.de bP
|
|
.ie n .IP \(bu 4
|
|
.el .IP \(bu 2
|
|
..
|
|
.ds n 5
|
|
.na
|
|
.hy 0
|
|
.SH NAME
|
|
\fBCOLORS\fR,
|
|
\fBCOLOR_PAIRS\fR,
|
|
\fBCOLS\fR,
|
|
\fBESCDELAY\fR,
|
|
\fBLINES\fR,
|
|
\fBTABSIZE\fR,
|
|
\fBcurscr\fR,
|
|
\fBnewscr\fR,
|
|
\fBstdscr\fR
|
|
\- \fBcurses\fR global variables
|
|
.ad
|
|
.hy
|
|
.SH SYNOPSIS
|
|
.nf
|
|
\fB#include <curses.h>\fR
|
|
.PP
|
|
\fBint COLOR_PAIRS;\fR
|
|
.br
|
|
\fBint COLORS;\fR
|
|
.br
|
|
\fBint COLS;\fR
|
|
.br
|
|
\fBint ESCDELAY;\fR
|
|
.br
|
|
\fBint LINES;\fR
|
|
.br
|
|
\fBint TABSIZE;\fR
|
|
.br
|
|
\fBWINDOW * curscr;\fR
|
|
.br
|
|
\fBWINDOW * newscr;\fR
|
|
.br
|
|
\fBWINDOW * stdscr;\fR
|
|
.fi
|
|
.SH DESCRIPTION
|
|
This page summarizes variables provided by the \fBcurses\fP library.
|
|
A more complete description is given in the \fBcurses\fP(3X) manual page.
|
|
.PP
|
|
Depending on the configuration, these may be actual variables,
|
|
or macros (see \fBcurs_threads\fR(3X) and \fBcurs_opaque\fR(3X))
|
|
which provide read-only access to \fIcurses\fP's state.
|
|
In either case, applications should treat them as read-only to avoid
|
|
confusing the library.
|
|
.SS COLOR_PAIRS
|
|
After initializing curses, this variable contains the number of color pairs
|
|
which the terminal can support.
|
|
Usually the number of color pairs will be the product \fBCOLORS\fP*\fBCOLORS\fP,
|
|
however this is not always true:
|
|
.bP
|
|
a few terminals use HLS colors, which do not follow this rule
|
|
.bP
|
|
terminals supporting a large number of colors are limited by the number
|
|
of color pairs that can be represented in a \fIsigned short\fP value.
|
|
.SS COLORS
|
|
After initializing curses, this variable contains the number of colors
|
|
which the terminal can support.
|
|
.SS COLS
|
|
After initializing curses, this variable contains the width of the screen,
|
|
i.e., the number of columns.
|
|
.SS ESCDELAY
|
|
This variable holds the number of milliseconds to wait after reading an
|
|
escape character,
|
|
to distinguish between an individual escape character entered on the
|
|
keyboard from escape sequences sent by cursor- and function-keys
|
|
(see curses(3X)).
|
|
.SS LINES
|
|
After initializing curses, this variable contains the height of the screen,
|
|
i.e., the number of lines.
|
|
.SS TABSIZE
|
|
This variable holds the number of columns used by the \fIcurses\fP library
|
|
when converting a tab character to spaces as it adds the tab to a window
|
|
(see \fBcurs_addch\fP(3X).
|
|
.SS The Current Screen
|
|
This implementation of curses uses a special window \fBcurscr\fP to
|
|
record its updates to the terminal screen.
|
|
.PP
|
|
This is referred to as the \*(``physical screen\*('' in the
|
|
\fBcurs_refresh\fR(3X) and
|
|
\fBcurs_outopts\fR(3X) manual pages.
|
|
.SS The New Screen
|
|
This implementation of curses uses a special window \fBnewscr\fP to
|
|
hold updates to the terminal screen before applying them to \fBcurscr\fP.
|
|
.PP
|
|
This is referred to as the \*(``virtual screen\*('' in the
|
|
\fBcurs_kernel\fR(3X),
|
|
\fBcurs_refresh\fR(3X) and
|
|
\fBcurs_outopts\fR(3X) manual pages.
|
|
.SS The Standard Screen
|
|
Upon initializing curses,
|
|
a default window called \fBstdscr\fP,
|
|
which is the size of the terminal screen, is created.
|
|
Many curses functions use this window.
|
|
.SH NOTES
|
|
The curses library is initialized using either \fBinitscr\fR(3X),
|
|
or \fBnewterm\fR(3X).
|
|
.PP
|
|
If \fBcurses\fP is configured to use separate curses/terminfo libraries,
|
|
most of these variables reside in the curses library.
|
|
.SH PORTABILITY
|
|
\fBTABSIZE\fP is a feature of SVr4 curses
|
|
which is not documented by X/Open curses.
|
|
.bP
|
|
In SVr4 curses, \fBTABSIZE\fP is initially set from the terminal description's
|
|
\fBinit_tabs\fP capability.
|
|
After that, it can be altered by the applications using SVr4 curses.
|
|
.IP
|
|
SVr4 curses uses the current value of \fBTABSIZE\fP to
|
|
compute the position of tabstops for updating both
|
|
the virtual screen with \fBaddch\fP(3X) as well as
|
|
the physical screen with \fBmvcur\fP(3X).
|
|
.bP
|
|
This implementation uses the current value of \fBTABSIZE\fP only for
|
|
updating the virtual screen.
|
|
It uses the terminal description's \fBit\fP (\fBinit_tabs\fP) capability for
|
|
computing hardware tabs (i.e., tab stops on the physical screen).
|
|
.bP
|
|
Other implementations differ.
|
|
For instance, NetBSD curses allows \fBTABSIZE\fP to be set through
|
|
an environment variable.
|
|
This implementation does not.
|
|
.IP
|
|
NetBSD curses does not support hardware tabs;
|
|
it uses the \fBinit_tabs\fP capability and the \fBTABSIZE\fP variable
|
|
only for updating the virtual screen.
|
|
.PP
|
|
\fBESCDELAY\fP is an extension in AIX curses:
|
|
.bP
|
|
In AIX, the units for \fBESCDELAY\fP are \fIfifths\fP of a millisecond.
|
|
.bP
|
|
The default value for AIX's \fBESCDELAY\fP is 0.1 seconds.
|
|
.bP
|
|
AIX also enforces a limit of 10,000 seconds for \fBESCDELAY\fP;
|
|
this implementation currently has no upper limit.
|
|
.PP
|
|
This implementation has long used \fBESCDELAY\fP with units of milliseconds,
|
|
making it impossible to be completely compatible with AIX.
|
|
Likewise, most users have either decided to override the value,
|
|
or rely upon its default value.
|
|
.SH SEE ALSO
|
|
\fBcurses\fR(3X),
|
|
\fBcurs_opaque\fR(3X),
|
|
\fBcurs_terminfo\fR(3X),
|
|
\fBcurs_threads\fR(3X),
|
|
\fBterm_variables\fR(3X),
|
|
\fBterminfo\fR(\*n).
|