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=42ce0b28e0be21bfda770f8bc778ff5b7dbd0c90;hb=HEAD;hpb=6208c89f98f1cf9fe0980bd8e791846ce007a13d diff --git a/doc/html/man/curs_variables.3x.html b/doc/html/man/curs_variables.3x.html index 42ce0b28..92ae9851 100644 --- a/doc/html/man/curs_variables.3x.html +++ b/doc/html/man/curs_variables.3x.html @@ -1,6 +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; + /* extensions */ + int ESCDELAY; + int TABSIZE; + WINDOW * newscr; +
- This page summarizes variables provided by the curses li- - brary. A more complete description is given in the curs- - es(3x) manual page. + This page summarizes data types, constants, and variables provided by + the curses library. Locate further discussion in curses(3x). - Depending on the configuration, these may be actual vari- - ables, or macros (see curs_threads(3x) and - curs_opaque(3x)) which provide read-only access to curs- - es's state. In either case, applications should treat - them as read-only to avoid confusing the library. + 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. -
- 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 +
+ The curses library defines TRUE and FALSE to represent the values of + the Boolean data type. - 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. +
+ curses and terminfo routines frequently return these constant integral + values indicating failure and success, respectively. -
- After initializing curses, this variable contains the num- - ber of colors which the terminal can support. +
-
- After initializing curses, this variable contains the - width of the screen, i.e., the number of columns. +
+ 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. -
- 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). +
+ 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). -
- After initializing curses, this variable contains the - height of the screen, i.e., the number of lines. +
+ 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). -
- 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). + +
+ 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). -
- This implementation of curses uses a special window curscr - to record its updates to the terminal screen. +
+
+ 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). -
- This implementation of curses uses a special window newscr - to hold updates to the terminal screen before applying - them to curscr. + 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). -
- Upon initializing curses, a default window called stdscr, - which is the size of the terminal screen, is created. - Many curses functions use this window. + +
+ 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).
- The curses library is initialized using either - curs_initscr(3x), or curs_initscr(3x). + Either initscr(3x) or newterm(3x) initializes curses. - If curses is configured to use separate curses/terminfo - libraries, most of these variables reside in the curses - library. + If ncurses is configured to provide separate curses and tinfo + libraries, most of these variables reside in the former.
- ESCDELAY and TABSIZE are extensions, not provided in most - other implementations of curses. + 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. - ESCDELAY is an extension in AIX 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 In AIX, the units for ESCDELAY are fifths of a mil- - lisecond. + 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 The default value for AIX's ESCDELAY is 0.1 seconds. + o Other implementations differ. For instance, NetBSD curses allows + TABSIZE to be set through an environment variable. ncurses does + not. - o AIX also enforces a limit of 10,000 seconds for ESCDE- - LAY; this implementation currently has no upper limit. + NetBSD curses does not support hardware tabs; it uses the init_tabs + capability and the TABSIZE variable only for updating the virtual + screen. - This implementation has long used ESCDELAY with units of - milliseconds, making it impossible to be completely com- - patible with AIX. Likewise, most users have either decid- - ed to override the value, or rely upon its default value. + 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_opaque(3x), curs_terminfo(3x), - curs_threads(3x), term_variables(3x), terminfo(5). + 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.5 2024-04-13 curs_variables(3x)