X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fcurs_attr.3x.html;h=8c53942b660abe7901f062ad7a0292d88412bc25;hp=1bf181d17fb635bc24d3deb3101c3792d69df92d;hb=0fbd5e192896b3e446832d0a451df2cec5f5ae40;hpb=86b16a498d6d545c03dceff7636d269eb7eb1e8f diff --git a/doc/html/man/curs_attr.3x.html b/doc/html/man/curs_attr.3x.html index 1bf181d1..8c53942b 100644 --- a/doc/html/man/curs_attr.3x.html +++ b/doc/html/man/curs_attr.3x.html @@ -27,7 +27,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: curs_attr.3x,v 1.61 2017/11/18 23:47:37 tom Exp @ + * @Id: curs_attr.3x,v 1.62 2017/12/16 20:16:07 tom Exp @ * --------------------------------------------------------------------------- * attr_get * .br @@ -150,61 +150,84 @@
- Most of the window attribute routines are extensions of older routines - which assume that color pairs are OR'd into the attribute parameter. - These older routines use the same name, omitting an underscore (_). - - The attrset routine is a legacy feature predating SVr4 curses but kept + The X/Open window attribute routines which set or get, turn on or off + are extensions of older routines which assume that color pairs are OR'd + into the attribute parameter. These newer routines use similar names, + because X/Open simply added an underscore (_) for the newer names. + + The int datatype used in the legacy routines is treated as if it is the + same size as chtype (used by addch(3x)). It holds the common video at- + tributes (such as bold, reverse), as well as a few bits for color. + Those bits correspond to the A_COLOR symbol. The COLOR_PAIR macro pro- + vides a value which can be OR'd into the attribute parameter. For ex- + ample, as long as that value fits into the A_COLOR mask, then these + calls produce similar results: + + attrset(A_BOLD | COLOR_PAIR(pair)); + attr_set(A_BOLD, pair, NULL); + + However, if the value does not fit, then the COLOR_PAIR macro uses only + the bits that fit. For example, because in ncurses A_COLOR has eight + (8) bits, then COLOR_PAIR(259) is 4 (259-255). + + The PAIR_NUMBER macro extracts a pair number from an int (or chtype). + For example, the input and output values in these statements would be + the same: + + int value = A_BOLD | COLOR_PAIR(input); + int output = PAIR_NUMBER(value); + + The attrset routine is a legacy feature predating SVr4 curses but kept in X/Open Curses for the same reason that SVr4 curses kept it: compati- bility. - The remaining attr* functions operate exactly like the corresponding - attr_* functions, except that they take arguments of type int rather + The remaining attr* functions operate exactly like the corresponding + attr_* functions, except that they take arguments of type int rather than attr_t. - There is no corresponding attrget function as such in X/Open Curses, + There is no corresponding attrget function as such in X/Open Curses, although ncurses provides getattrs (see curs_legacy(3x)).
- The routine chgat changes the attributes of a given number of charac- - ters starting at the current cursor location of stdscr. It does not - update the cursor and does not perform wrapping. A character count of - -1 or greater than the remaining window width means to change at- - tributes all the way to the end of the current line. The wchgat func- - tion generalizes this to any window; the mvwchgat function does a cur- + The routine chgat changes the attributes of a given number of charac- + ters starting at the current cursor location of stdscr. It does not + update the cursor and does not perform wrapping. A character count of + -1 or greater than the remaining window width means to change at- + tributes all the way to the end of the current line. The wchgat func- + tion generalizes this to any window; the mvwchgat function does a cur- sor move before acting. - In these functions, the color pair argument is a color-pair index (as + In these functions, the color pair argument is a color-pair index (as in the first argument of init_pair, see curs_color(3x)).
The routine color_set sets the current color of the given window to the - foreground/background combination described by the color pair parame- + foreground/background combination described by the color pair parame- ter.
- The routine standout is the same as attron(A_STANDOUT). The routine - standend is the same as attrset(A_NORMAL) or attrset(0), that is, it + The routine standout is the same as attron(A_STANDOUT). The routine + standend is the same as attrset(A_NORMAL) or attrset(0), that is, it turns off all attributes. X/Open does not mark these "restricted", because o they have well established legacy use, and - o there is no ambiguity about the way the attributes might be com- + o there is no ambiguity about the way the attributes might be com- bined with a color pair.
The following video attributes, defined in <curses.h>, can be passed to - the routines attron, attroff, and attrset, or OR'd with the characters + the routines attron, attroff, and attrset, or OR'd with the characters passed to addch (see curs_addch(3x)). Name Description - ----------------------------------------------------------- + ----------------------------------------------------------------- A_NORMAL Normal display (no highlight) A_STANDOUT Best highlighting mode of the terminal. A_UNDERLINE Underlining @@ -217,8 +240,9 @@ A_ALTCHARSET Alternate character set A_ITALIC Italics (non-X/Open extension) A_CHARTEXT Bit-mask to extract a character + A_COLOR Bit-mask to extract a color (legacy routines) - These video attributes are supported by attr_on and related functions + These video attributes are supported by attr_on and related functions (which also support the attributes recognized by attron, etc.): Name Description @@ -230,74 +254,74 @@ WA_TOP Top highlight WA_VERTICAL Vertical highlight - The return values of many of these routines are not meaningful (they - are implemented as macro-expanded assignments and simply return their - argument). The SVr4 manual page claims (falsely) that these routines + The return values of many of these routines are not meaningful (they + are implemented as macro-expanded assignments and simply return their + argument). The SVr4 manual page claims (falsely) that these routines always return 1.
These functions may be macros: - attroff, wattroff, attron, wattron, attrset, wattrset, standend + attroff, wattroff, attron, wattron, attrset, wattrset, standend and standout. - Color pair values can only be OR'd with attributes if the pair number + Color pair values can only be OR'd with attributes if the pair number is less than 256. The alternate functions such as color_set can pass a color pair value directly. However, ncurses ABI 4 and 5 simply OR this - value within the alternate functions. You must use ncurses ABI 6 to + value within the alternate functions. You must use ncurses ABI 6 to support more than 256 color pairs.
- X/Open Curses is largely based on SVr4 curses, adding support for - "wide-characters" (not specific to Unicode). Some of the X/Open dif- - ferences from SVr4 curses address the way video attributes can be ap- - plied to wide-characters. But aside from that, attrset and attr_set - are similar. SVr4 curses provided the basic features for manipulating - video attributes. However, earlier versions of curses provided a part + X/Open Curses is largely based on SVr4 curses, adding support for + "wide-characters" (not specific to Unicode). Some of the X/Open dif- + ferences from SVr4 curses address the way video attributes can be ap- + plied to wide-characters. But aside from that, attrset and attr_set + are similar. SVr4 curses provided the basic features for manipulating + video attributes. However, earlier versions of curses provided a part of these features. - As seen in 2.8BSD, curses assumed 7-bit characters, using the eighth - bit of a byte to represent the standout feature (often implemented as - bold and/or reverse video). The BSD curses library provided functions - standout and standend which were carried along into X/Open Curses due + As seen in 2.8BSD, curses assumed 7-bit characters, using the eighth + bit of a byte to represent the standout feature (often implemented as + bold and/or reverse video). The BSD curses library provided functions + standout and standend which were carried along into X/Open Curses due to their pervasive use in legacy applications. - Some terminals in the 1980s could support a variety of video at- - tributes, although the BSD curses library could do nothing with those. + Some terminals in the 1980s could support a variety of video at- + tributes, although the BSD curses library could do nothing with those. System V (1983) provided an improved curses library. It defined the A_ - symbols for use by applications to manipulate the other attributes. + symbols for use by applications to manipulate the other attributes. There are few useful references for the chronology. - Goodheart's book UNIX Curses Explained (1991) describes SVr3 (1987), + Goodheart's book UNIX Curses Explained (1991) describes SVr3 (1987), commenting on several functions: - o the attron, attroff, attrset functions (and most of the functions + o the attron, attroff, attrset functions (and most of the functions found in SVr4 but not in BSD curses) were introduced by System V, - o the alternate character set feature with A_ALTCHARSET was added in + o the alternate character set feature with A_ALTCHARSET was added in SVr2 and improved in SVr3 (by adding acs_map[]), - o start_color and related color-functions were introduced by System + o start_color and related color-functions were introduced by System V.3.2, o pads, soft-keys were added in SVr3, and Goodheart did not mention the background character or the cchar_t type. Those are respectively SVr4 and X/Open features. He did mention the A_ - constants, but did not indicate their values. Those were not the same + constants, but did not indicate their values. Those were not the same in different systems, even for those marked as System V. - Different Unix systems used different sizes for the bit-fields in - chtype for characters and colors, and took into account the different + Different Unix systems used different sizes for the bit-fields in + chtype for characters and colors, and took into account the different integer sizes (32-bit versus 64-bit). - This table showing the number of bits for A_COLOR and A_CHARTEXT was - gleaned from the curses header files for various operating systems and - architectures. The inferred architecture and notes reflect the format - and size of the defined constants as well as clues such as the alter- - nate character set implementation. A 32-bit library can be used on a + This table showing the number of bits for A_COLOR and A_CHARTEXT was + gleaned from the curses header files for various operating systems and + architectures. The inferred architecture and notes reflect the format + and size of the defined constants as well as clues such as the alter- + nate character set implementation. A 32-bit library can be used on a 64-bit system, but not necessarily the reverse. Year System Arch Color Char Notes @@ -312,21 +336,22 @@ 1996 AIX 4.2 32 7 16 X/Open curses 1996 OSF/1 r4 32 6 16 X/Open curses 1997 HP-UX 11.00 32 6 8 X/Open curses + 2000 U/Win 32/64 7/31 16 uses chtype Notes: Regarding HP-UX, - o HP-UX 10.20 (1996) added support for 64-bit PA-RISC processors + o HP-UX 10.20 (1996) added support for 64-bit PA-RISC processors in 1996. - o HP-UX 10.30 (1997) marked "curses_colr" obsolete. That version + o HP-UX 10.30 (1997) marked "curses_colr" obsolete. That version of curses was dropped with HP-UX 11.30 in 2006. Regarding OSF/1 (and Tru64), - o These used 64-bit hardware. Like ncurses, the OSF/1 curses in- + o These used 64-bit hardware. Like ncurses, the OSF/1 curses in- terface is not customized for 32-bit and 64-bit versions. o Unlike other systems which evolved from AT&T code, OSF/1 provid- @@ -340,30 +365,30 @@ Sun's copyright began in 1996. o Sun updated the X/Open curses interface after 64-bit support was - introduced in 1997, but did not modify the SVr4 curses inter- + introduced in 1997, but did not modify the SVr4 curses inter- face. Regarding U/Win, - o Development of the curses library began in 1991, stopped in + o Development of the curses library began in 1991, stopped in 2000. o Color support was added in 1998. o The library uses only chtype (no cchar_t). - Once X/Open curses was adopted in the mid-1990s, the constraint of a + Once X/Open curses was adopted in the mid-1990s, the constraint of a 32-bit interface with many colors and wide-characters for chtype became - a moot point. The cchar_t structure (whose size and members are not + a moot point. The cchar_t structure (whose size and members are not specified in X/Open Curses) could be extended as needed. Other interfaces are rarely used now: - o BSD curses was improved slightly in 1993/1994 using Keith Bostic's - modification to make the library 8-bit clean for nvi. He moved + o BSD curses was improved slightly in 1993/1994 using Keith Bostic's + modification to make the library 8-bit clean for nvi. He moved standout attribute to a structure member. - The resulting 4.4BSD curses was replaced by ncurses over the next + The resulting 4.4BSD curses was replaced by ncurses over the next ten years. o U/Win is rarely used now. @@ -371,47 +396,47 @@
This implementation provides the A_ITALIC attribute for terminals which - have the enter_italics_mode (sitm) and exit_italics_mode (ritm) capa- + have the enter_italics_mode (sitm) and exit_italics_mode (ritm) capa- bilities. Italics are not mentioned in X/Open Curses. Unlike the oth- - er video attributes, A_ITALIC is unrelated to the set_attributes capa- - bilities. This implementation makes the assumption that exit_at- + er video attributes, A_ITALIC is unrelated to the set_attributes capa- + bilities. This implementation makes the assumption that exit_at- tribute_mode may also reset italics. - Each of the functions added by XSI Curses has a parameter opts, which - X/Open Curses still (after more than twenty years) documents as re- + Each of the functions added by XSI Curses has a parameter opts, which + X/Open Curses still (after more than twenty years) documents as re- served for future use, saying that it should be NULL. This implementa- tion uses that parameter in ABI 6 for the functions which have a color- pair parameter to support extended color pairs: - o For functions which modify the color, e.g., wattr_set, if opts is - set it is treated as a pointer to int, and used to set the color + o For functions which modify the color, e.g., wattr_set, if opts is + set it is treated as a pointer to int, and used to set the color pair instead of the short pair parameter. o For functions which retrieve the color, e.g., wattr_get, if opts is - set it is treated as a pointer to int, and used to retrieve the + set it is treated as a pointer to int, and used to retrieve the color pair as an int value, in addition retrieving it via the stan- dard pointer to short parameter. - The remaining functions which have opts, but do not manipulate color, + The remaining functions which have opts, but do not manipulate color, e.g., wattr_on and wattr_off are not used by this implementation except to check that they are NULL.
These functions are supported in the XSI Curses standard, Issue 4. The - standard defined the dedicated type for highlights, attr_t, which was + standard defined the dedicated type for highlights, attr_t, which was not defined in SVr4 curses. The functions taking attr_t arguments were not supported under SVr4. Very old versions of this library did not force an update of the screen - when changing the attributes. Use touchwin to force the screen to + when changing the attributes. Use touchwin to force the screen to match the updated attributes. - The XSI Curses standard states that whether the traditional functions - attron/attroff/attrset can manipulate attributes other than A_BLINK, - A_BOLD, A_DIM, A_REVERSE, A_STANDOUT, or A_UNDERLINE is "unspecified". - Under this implementation as well as SVr4 curses, these functions cor- - rectly manipulate all other highlights (specifically, A_ALTCHARSET, + The XSI Curses standard states that whether the traditional functions + attron/attroff/attrset can manipulate attributes other than A_BLINK, + A_BOLD, A_DIM, A_REVERSE, A_STANDOUT, or A_UNDERLINE is "unspecified". + Under this implementation as well as SVr4 curses, these functions cor- + rectly manipulate all other highlights (specifically, A_ALTCHARSET, A_PROTECT, and A_INVIS). XSI Curses added these entry points: @@ -419,7 +444,7 @@ attr_get, attr_on, attr_off, attr_set, wattr_on, wattr_off, wat- tr_get, wattr_set - The new functions are intended to work with a new series of highlight + The new functions are intended to work with a new series of highlight macros prefixed with WA_. The older macros have direct counterparts in the newer set of names: @@ -434,11 +459,11 @@ WA_BOLD Extra bright or bold WA_ALTCHARSET Alternate character set - XSI curses does not assign values to these symbols, nor does it state + XSI curses does not assign values to these symbols, nor does it state whether or not they are related to the similarly-named A_NORMAL, etc.: - o The XSI curses standard specifies that each pair of corresponding - A_ and WA_-using functions operates on the same current-highlight + o The XSI curses standard specifies that each pair of corresponding + A_ and WA_-using functions operates on the same current-highlight information. o However, in some implementations, those symbols have unrelated val- @@ -446,17 +471,17 @@ For example, the Solaris xpg4 (X/Open) curses declares attr_t to be an unsigned short integer (16-bits), while chtype is a unsigned in- - teger (32-bits). The WA_ symbols in this case are different from - the A_ symbols because they are used for a smaller datatype which + teger (32-bits). The WA_ symbols in this case are different from + the A_ symbols because they are used for a smaller datatype which does not represent A_CHARTEXT or A_COLOR. In this implementation (as in many others), the values happen to be - the same because it simplifies copying information between chtype + the same because it simplifies copying information between chtype and cchar_t variables. The XSI standard extended conformance level adds new highlights A_HORI- - ZONTAL, A_LEFT, A_LOW, A_RIGHT, A_TOP, A_VERTICAL (and corresponding - WA_ macros for each). As of August 2013, no known terminal provides + ZONTAL, A_LEFT, A_LOW, A_RIGHT, A_TOP, A_VERTICAL (and corresponding + WA_ macros for each). As of August 2013, no known terminal provides these highlights (i.e., via the sgr1 capability). @@ -472,10 +497,10 @@ o returns an error if the color pair parameter for wcolor_set is out- side the range 0..COLOR_PAIRS-1. - o does not return an error if either of the parameters of wattr_get + o does not return an error if either of the parameters of wattr_get used for retrieving attribute or color-pair values is NULL. - Functions with a "mv" prefix first perform a cursor movement using + Functions with a "mv" prefix first perform a cursor movement using wmove, and return an error if the position is outside the window, or if the window pointer is null.