X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fcurs_variables.3x.html;h=e91e6af3a506c57c224c78857404e9f0e517e521;hp=3b52562e441c8621b83dfe4538d32291a39c1025;hb=HEAD;hpb=761e4f0825b330e970558e82a4bd638383914429 diff --git a/doc/html/man/curs_variables.3x.html b/doc/html/man/curs_variables.3x.html index 3b52562e..e4c90c4c 100644 --- a/doc/html/man/curs_variables.3x.html +++ b/doc/html/man/curs_variables.3x.html @@ -1,7 +1,7 @@ - - +
-- -curs_variables(3x) curs_variables(3x) +curs_variables(3x) Library calls curs_variables(3x) --
- COLORS, COLOR_PAIRS, COLS, ESCDELAY, LINES, TABSIZE, - curscr, newscr, stdscr - curses global variables +
+ bool, chtype, cchar_t, attr_t, SCREEN, WINDOW, TRUE, FALSE, ERR, OK, + curscr, newscr, stdscr, COLORS, COLOR_PAIRS, COLS, LINES, ESCDELAY, + TABSIZE - curses data types, constants, and global variables --
+
#include <curses.h> - int COLOR_PAIRS; + /* data types */ + typedef /* ... */ bool; + typedef /* ... */ chtype; + typedef /* ... */ cchar_t; + typedef /* ... */ attr_t; + typedef /* ... */ SCREEN; + typedef /* ... */ WINDOW; + + /* constants */ + const bool TRUE; + const bool FALSE; + + const /* ... */ ERR; + const /* ... */ OK; + + /* variables */ int COLORS; + int COLOR_PAIRS; int COLS; - int ESCDELAY; int LINES; - int TABSIZE; WINDOW * curscr; - WINDOW * newscr; WINDOW * stdscr; - --
- This page summarizes variables provided by the curses li- - brary. A more complete description is given in the curs- - es(3x) manual page. - - Depending on the configuration, these may be actual vari- - ables, or macros (see curs_threads(3x)) which provide - read-only access to curses's state. In either case, ap- - plications should treat them as read-only to avoid confus- - ing the library. - - COLOR_PAIRS - After initializing curses, this variable contains the num- - ber of color pairs which the terminal can support. Usual- - ly the number of color pairs will be the product COL- - ORS*COLORS, however this is not always true: - - o a few terminals use HLS colors, which do not follow - this rule - - o terminals supporting a large number of colors are lim- - ited by the number of color pairs that can be repre- - sented in a signed short value. - - COLORS - After initializing curses, this variable contains the num- - ber of colors which the terminal can support. - - COLS - After initializing curses, this variable contains the - width of the screen, i.e., the number of columns. - - ESCDELAY - This variable holds the number of milliseconds to wait af- - ter 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). - - LINES - After initializing curses, this variable contains the - height of the screen, i.e., the number of lines. - - TABSIZE - This variable holds the number of columns used by the - curses library when converting a tab character to spaces - as it adds the tab to a window (see curs_addch(3x). - - The Current Screen - This implementation of curses uses a special window curscr - to record its updates to the terminal screen. - - The New Screen - This implementation of curses uses a special window newscr - to hold updates to the terminal screen before applying - them to curscr. - - The Standard Screen - Upon initializing curses, a default window called stdscr, - which is the size of the terminal screen, is created. - Many curses functions use this window. + /* extensions */ + int ESCDELAY; + int TABSIZE; + WINDOW * newscr; --
- The curses library is initialized using either - initscr(3x), or newterm(3x). +
+ This page summarizes data types, constants, and variables provided by + the curses library. Locate further discussion in curses(3x). - If curses is configured to use separate curses/terminfo - libraries, most of these variables reside in the curses + Depending on ncurses's build-time configuration, the variables may + instead be macros (see curs_threads(3x) and curs_opaque(3x)) that + provide read-only access to the library's state. In either case, + applications should treat them as read-only to avoid confusing the library. --
- ESCDELAY and TABSIZE are extensions, not provided in most - other implementations of curses. +
+
+ The curses library defines TRUE and FALSE to represent the values of + the Boolean data type. --
- curses(3x), curs_threads(3x), term_variables(3x), termin- - fo(3x), terminfo(5). + +
+ curses and terminfo routines frequently return these constant integral + values indicating failure and success, respectively. + + +
+ +
+ X/Open Issue 4 curses (1996) preceded the ISO C99 and ISO C++98 + standards, each of which also defined a Boolean data type. The curses + library requires an integral type bool. + + ncurses' configure script attempts to discover the data type used by + the system's C and C++ compilers, to reuse for the curses bool. + + +
+ The chtype integral type combines a ("narrow", 8-bit) character with + attributes encoding the character's rendition, such as the styling of + its typeface and/or foreground and background colors. See, for + example, addch(3x), attron(3x), and inch(3x). + + +
+ chtype is too small for the standard C library's wide-character type, + wchar_t. cchar_t is a type that can accommodate an attr_t and enough + wide characters to store what Unicode terms a grapheme cluster (a + "user-perceived character" [UAX #29], which may nevertheless require + several character encoding units to represent). attr_t is an integral + type storing "wide" attributes that apply to cchar_ts. See, for + example, add_wch(3x), attr_on(3x), and in_wch(3x). + + +
+ curses manages a terminal device with this structure type; see + initscr(3x). + + +
+ curses represents rectangular portions of the terminal screen with the + WINDOW structure type; see subsection "Overview" of ncurses(3x). + + +
+ +
+ The library records updates to the terminal screen in a window named + curscr. This object is referred to as the "physical screen" in + curs_refresh(3x) and curs_outopts(3x). + + ncurses collects pending updates to the terminal screen in a window + named newscr. This object is referred to as the "virtual screen" in + the curs_kernel(3x), curs_refresh(3x), and curs_outopts(3x). When the + screen is refreshed, curses determines a minimal set of updates using + the terminal's capabilities to make curscr look like newscr. + + Once curses is initialized, it creates a window named stdscr. It is + the same size as the terminal screen and is the default window used by + routines that do not take a parameter identifying one. Many curses + functions use this window. + + +
+ Once curses is initialized, COLORS contains the number of colors + supported by the terminal; see curs_color(3x). + + +
+ Once curses is initialized, COLOR_PAIRS contains the number of color + pairs supported by the terminal; see curs_color(3x). + + +
+ Once curses is initialized, COLS and LINES contain the screen's width + and height in character cells, respectively; that is, the number of + columns and lines. + + +
+ For curses to distinguish the ESC character resulting from a user's + press of the "Escape" key on the input device from one beginning an + escape sequence (as commonly produced by function keys), it waits after + the escape character to see if further characters are available on the + input stream within a short interval. ESCDELAY stores this interval in + milliseconds. + + If keypad(3x) is disabled for the curses window receiving input, a + program must disambiguate escape sequences itself. + + +
+ The curses library converts a tab character to this number of spaces as + it adds a tab to a window; see curs_addch(3x). + + +
+ Either initscr(3x) or newterm(3x) initializes curses. + + If ncurses is configured to provide separate curses and tinfo + libraries, most of these variables reside in the former. + + +
+ The X/Open Curses standard documents all of the foregoing types and + symbols except for newscr, TABSIZE, and ESCDELAY. + + X/Open Curses describes curscr only as "an internal data structure"; + SVr4 gave more details, noting its use "for certain low-level + operations like clearing and redrawing a screen containing garbage". + Neither specified its interaction with the rest of the interface beyond + use as an argument to clearok(3x) and wrefresh(3x). + + newscr is a feature of SVr4 curses. When refreshing the screen, it is + used as a working area for combining the standard window stdscr with + any others the application may have created with newwin(3x). When the + update of newscr is complete, curses modifies curscr to match newscr. + + TABSIZE is a feature of SVr4 curses. + + o SVr4 initially sets TABSIZE from the terminal description's + init_tabs capability. After that, it can be altered by + applications using SVr4 curses. + + o SVr4 curses uses the value of TABSIZE to compute the position of + tab stops when updating both the virtual screen with addch(3x) and + the physical screen with mvcur(3x). + + o ncurses uses the value of TABSIZE only to update the virtual + screen. It uses the terminal description's "it" (init_tabs) + capability for computing hardware tabs (that is, tab stops on the + physical screen). + + o Other implementations differ. For instance, NetBSD curses allows + TABSIZE to be set through an environment variable. ncurses does + not. + + NetBSD curses does not support hardware tabs; it uses the init_tabs + capability and the TABSIZE variable only for updating the virtual + screen. + + ESCDELAY is a feature of AIX curses. + + o In AIX, the units for ESCDELAY are fifths of milliseconds. + + o The default value for AIX's ESCDELAY equals 0.1 seconds. + + o AIX also enforces a limit of 10,000 seconds for ESCDELAY; ncurses + does not enforce any upper limit. + + ncurses has long used ESCDELAY with units of milliseconds, making it + impossible to be completely compatible with AIX. Consequently, most + users have decided either to override the value, or to rely upon its + default. + + +
+ curses(3x), curs_color(3x), curs_opaque(3x), curs_terminfo(3x), + curs_threads(3x), term_variables(3x), terminfo(5) + + [UAX #29] "Unicode Standard Annex #29: Unicode Text Segmentation"; + <https://unicode.org/reports/tr29/> - curs_variables(3x) +ncurses 6.4 2024-04-13 curs_variables(3x)-