- * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. *
+ * Copyright 2018-2021,2022 Thomas E. Dickey *
+ * Copyright 1998-2016,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 *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
<TITLE>curs_attr 3x</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
<TITLE>curs_attr 3x</TITLE>
However, if the value does not fit, then the <STRONG>COLOR_PAIR</STRONG> macro uses only
the bits that fit. For example, because in ncurses <STRONG>A_COLOR</STRONG> has eight
However, if the value does not fit, then the <STRONG>COLOR_PAIR</STRONG> macro uses only
the bits that fit. For example, because in ncurses <STRONG>A_COLOR</STRONG> has eight
- The <STRONG>PAIR_NUMBER</STRONG> macro extracts a pair number from an <STRONG>int</STRONG> (or <STRONG>chtype</STRONG>).
- For example, the <EM>input</EM> and <EM>output</EM> values in these statements would be
+ The <STRONG>PAIR_NUMBER</STRONG> macro extracts a pair number from an <STRONG>int</STRONG> (or <STRONG>chtype</STRONG>).
+ For example, the <EM>input</EM> and <EM>output</EM> values in these statements would be
- The remaining <STRONG>attr</STRONG>* functions operate exactly like the corresponding
- <STRONG>attr_</STRONG>* functions, except that they take arguments of type <STRONG>int</STRONG> rather
+ The remaining <STRONG>attr</STRONG>* functions operate exactly like the corresponding
+ <STRONG>attr_</STRONG>* functions, except that they take arguments of type <STRONG>int</STRONG> rather
although ncurses provides <STRONG>getattrs</STRONG> (see <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>).
</PRE><H3><a name="h3-Change-character-rendition">Change character rendition</a></H3><PRE>
although ncurses provides <STRONG>getattrs</STRONG> (see <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>).
</PRE><H3><a name="h3-Change-character-rendition">Change character rendition</a></H3><PRE>
- The routine <STRONG>chgat</STRONG> changes the attributes of a given number of charac-
- ters starting at the current cursor location of <STRONG>stdscr</STRONG>. 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 <STRONG>wchgat</STRONG> func-
- tion generalizes this to any window; the <STRONG>mvwchgat</STRONG> function does a cur-
+ The routine <STRONG>chgat</STRONG> changes the attributes of a given number of charac-
+ ters starting at the current cursor location of <STRONG>stdscr</STRONG>. 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 <STRONG>wchgat</STRONG> func-
+ tion generalizes this to any window; the <STRONG>mvwchgat</STRONG> function does a cur-
in the first argument of <STRONG>init_pair</STRONG>, see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>).
</PRE><H3><a name="h3-Change-window-color">Change window color</a></H3><PRE>
The routine <STRONG>color_set</STRONG> sets the current color of the given window to the
in the first argument of <STRONG>init_pair</STRONG>, see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>).
</PRE><H3><a name="h3-Change-window-color">Change window color</a></H3><PRE>
The routine <STRONG>color_set</STRONG> sets the current color of the given window to the
- The routine <STRONG>standout</STRONG> is the same as <STRONG>attron(A_STANDOUT)</STRONG>. The routine
- <STRONG>standend</STRONG> is the same as <STRONG>attrset(A_NORMAL)</STRONG> or <STRONG>attrset(0)</STRONG>, that is, it
+ The routine <STRONG>standout</STRONG> is the same as <STRONG>attron(A_STANDOUT)</STRONG>. The routine
+ <STRONG>standend</STRONG> is the same as <STRONG>attrset(A_NORMAL)</STRONG> or <STRONG>attrset(0)</STRONG>, that is, it
turns off all attributes.
X/Open does not mark these "restricted", because
<STRONG>o</STRONG> they have well established legacy use, and
turns off all attributes.
X/Open does not mark these "restricted", because
<STRONG>o</STRONG> they have well established legacy use, and
bined with a color pair.
</PRE><H2><a name="h2-VIDEO-ATTRIBUTES">VIDEO ATTRIBUTES</a></H2><PRE>
The following video attributes, defined in <STRONG><curses.h></STRONG>, can be passed to
bined with a color pair.
</PRE><H2><a name="h2-VIDEO-ATTRIBUTES">VIDEO ATTRIBUTES</a></H2><PRE>
The following video attributes, defined in <STRONG><curses.h></STRONG>, can be passed to
- the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or OR'd with the characters
+ the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or OR'd with the characters
-----------------------------------------------------------------
<STRONG>A_NORMAL</STRONG> Normal display (no highlight)
<STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal.
-----------------------------------------------------------------
<STRONG>A_NORMAL</STRONG> Normal display (no highlight)
<STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal.
<STRONG>A_CHARTEXT</STRONG> Bit-mask to extract a character
<STRONG>A_COLOR</STRONG> Bit-mask to extract a color (legacy routines)
<STRONG>A_CHARTEXT</STRONG> Bit-mask to extract a character
<STRONG>A_COLOR</STRONG> Bit-mask to extract a color (legacy routines)
-----------------------------------------
<STRONG>WA_HORIZONTAL</STRONG> Horizontal highlight
<STRONG>WA_LEFT</STRONG> Left highlight
-----------------------------------------
<STRONG>WA_HORIZONTAL</STRONG> Horizontal highlight
<STRONG>WA_LEFT</STRONG> Left 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 <STRONG>1</STRONG>.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
These functions may be macros:
always return <STRONG>1</STRONG>.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
These functions may be macros:
- <STRONG>attroff</STRONG>, <STRONG>wattroff</STRONG>, <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>wattrset</STRONG>, <STRONG>standend</STRONG>
+ <STRONG>attroff</STRONG>, <STRONG>wattroff</STRONG>, <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>wattrset</STRONG>, <STRONG>standend</STRONG>
is less than 256. The alternate functions such as <STRONG>color_set</STRONG> can pass a
color pair value directly. However, ncurses ABI 4 and 5 simply OR this
is less than 256. The alternate functions such as <STRONG>color_set</STRONG> can pass a
color pair value directly. However, ncurses ABI 4 and 5 simply OR this
- 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, <STRONG>attrset</STRONG> and <STRONG>attr_set</STRONG>
- 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, <STRONG>attrset</STRONG> and <STRONG>attr_set</STRONG>
+ are similar. SVr4 curses provided the basic features for manipulating
+ video attributes. However, earlier versions of curses provided a part
- As seen in 2.8BSD, curses assumed 7-bit characters, using the eighth
- bit of a byte to represent the <EM>standout</EM> feature (often implemented as
- bold and/or reverse video). The BSD curses library provided functions
- <STRONG>standout</STRONG> and <STRONG>standend</STRONG> 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 <EM>standout</EM> feature (often implemented as
+ bold and/or reverse video). The BSD curses library provided functions
+ <STRONG>standout</STRONG> and <STRONG>standend</STRONG> which were carried along into X/Open Curses due
- 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.
- <STRONG>o</STRONG> the <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, <STRONG>attrset</STRONG> functions (and most of the functions
+ <STRONG>o</STRONG> the <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, <STRONG>attrset</STRONG> functions (and most of the functions
V.3.2,
<STRONG>o</STRONG> pads, soft-keys were added in SVr3, and
Goodheart did not mention the background character or the <STRONG>cchar_t</STRONG> type.
Those are respectively SVr4 and X/Open features. He did mention the <STRONG>A_</STRONG>
V.3.2,
<STRONG>o</STRONG> pads, soft-keys were added in SVr3, and
Goodheart did not mention the background character or the <STRONG>cchar_t</STRONG> type.
Those are respectively SVr4 and X/Open features. He did mention the <STRONG>A_</STRONG>
- Different Unix systems used different sizes for the bit-fields in
- <STRONG>chtype</STRONG> for <EM>characters</EM> and <EM>colors</EM>, and took into account the different
+ Different Unix systems used different sizes for the bit-fields in
+ <STRONG>chtype</STRONG> for <EM>characters</EM> and <EM>colors</EM>, and took into account the different
- This table showing the number of bits for <STRONG>A_COLOR</STRONG> and <STRONG>A_CHARTEXT</STRONG> 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 <STRONG>A_COLOR</STRONG> and <STRONG>A_CHARTEXT</STRONG> 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
----------------------------------------------------------------
1992 Solaris 5.2 32 6 17 SVr4 curses
1992 HPUX 9 32 no 8 SVr2 curses
----------------------------------------------------------------
1992 Solaris 5.2 32 6 17 SVr4 curses
1992 HPUX 9 32 no 8 SVr2 curses
1995 Solaris 5.4 32/64 7 16 X/Open curses
1996 AIX 4.2 32 7 16 X/Open curses
1996 OSF/1 r4 32 6 16 X/Open curses
1995 Solaris 5.4 32/64 7 16 X/Open curses
1996 AIX 4.2 32 7 16 X/Open curses
1996 OSF/1 r4 32 6 16 X/Open curses
of curses was dropped with HP-UX 11.30 in 2006.
Regarding OSF/1 (and Tru64),
of curses was dropped with HP-UX 11.30 in 2006.
Regarding OSF/1 (and Tru64),
terface is not customized for 32-bit and 64-bit versions.
<STRONG>o</STRONG> Unlike other systems which evolved from AT&T code, OSF/1 provid-
terface is not customized for 32-bit and 64-bit versions.
<STRONG>o</STRONG> Unlike other systems which evolved from AT&T code, OSF/1 provid-
Sun's copyright began in 1996.
<STRONG>o</STRONG> Sun updated the X/Open curses interface after 64-bit support was
Sun's copyright began in 1996.
<STRONG>o</STRONG> Sun updated the X/Open curses interface after 64-bit support was
2000.
<STRONG>o</STRONG> Color support was added in 1998.
<STRONG>o</STRONG> The library uses only <STRONG>chtype</STRONG> (no <STRONG>cchar_t</STRONG>).
2000.
<STRONG>o</STRONG> Color support was added in 1998.
<STRONG>o</STRONG> The library uses only <STRONG>chtype</STRONG> (no <STRONG>cchar_t</STRONG>).
- <STRONG>o</STRONG> BSD curses was improved slightly in 1993/1994 using Keith Bostic's
- modification to make the library 8-bit clean for <STRONG>nvi</STRONG>. He moved
+ <STRONG>o</STRONG> BSD curses was improved slightly in 1993/1994 using Keith Bostic's
+ modification to make the library 8-bit clean for <STRONG>nvi(1)</STRONG>. He moved
</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
This implementation provides the <STRONG>A_ITALIC</STRONG> attribute for terminals which
</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
This implementation provides the <STRONG>A_ITALIC</STRONG> attribute for terminals which
- er video attributes, <STRONG>A_ITALIC</STRONG> is unrelated to the <STRONG>set_attributes</STRONG> capa-
- bilities. This implementation makes the assumption that <STRONG>exit_at-</STRONG>
- <STRONG>tribute_mode</STRONG> may also reset italics.
+ er video attributes, <STRONG>A_ITALIC</STRONG> is unrelated to the <STRONG>set_attributes</STRONG> capa-
+ bilities. This implementation makes the assumption that <STRONG>exit_attri-</STRONG>
+ <STRONG>bute_mode</STRONG> may also reset italics.
- Each of the functions added by XSI Curses has a parameter <EM>opts</EM>, which
- X/Open Curses still (after more than twenty years) documents as re-
+ Each of the functions added by XSI Curses has a parameter <EM>opts</EM>, which
+ X/Open Curses still (after more than twenty years) documents as re-
served for future use, saying that it should be <STRONG>NULL</STRONG>. This implementa-
tion uses that parameter in ABI 6 for the functions which have a color-
pair parameter to support <EM>extended</EM> <EM>color</EM> <EM>pairs</EM>:
served for future use, saying that it should be <STRONG>NULL</STRONG>. This implementa-
tion uses that parameter in ABI 6 for the functions which have a color-
pair parameter to support <EM>extended</EM> <EM>color</EM> <EM>pairs</EM>:
- <STRONG>o</STRONG> For functions which modify the color, e.g., <STRONG>wattr_set</STRONG>, if <EM>opts</EM> is
- set it is treated as a pointer to <STRONG>int</STRONG>, and used to set the color
+ <STRONG>o</STRONG> For functions which modify the color, e.g., <STRONG>wattr_set</STRONG>, if <EM>opts</EM> is
+ set it is treated as a pointer to <STRONG>int</STRONG>, and used to set the color
pair instead of the <STRONG>short</STRONG> <EM>pair</EM> parameter.
<STRONG>o</STRONG> For functions which retrieve the color, e.g., <STRONG>wattr_get</STRONG>, if <EM>opts</EM> is
pair instead of the <STRONG>short</STRONG> <EM>pair</EM> parameter.
<STRONG>o</STRONG> For functions which retrieve the color, e.g., <STRONG>wattr_get</STRONG>, if <EM>opts</EM> is
color pair as an <STRONG>int</STRONG> value, in addition retrieving it via the stan-
dard pointer to <STRONG>short</STRONG> parameter.
color pair as an <STRONG>int</STRONG> value, in addition retrieving it via the stan-
dard pointer to <STRONG>short</STRONG> parameter.
e.g., <STRONG>wattr_on</STRONG> and <STRONG>wattr_off</STRONG> are not used by this implementation except
to check that they are <STRONG>NULL</STRONG>.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These functions are supported in the XSI Curses standard, Issue 4. The
e.g., <STRONG>wattr_on</STRONG> and <STRONG>wattr_off</STRONG> are not used by this implementation except
to check that they are <STRONG>NULL</STRONG>.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These functions are supported in the XSI Curses standard, Issue 4. The
not defined in SVr4 curses. The functions taking <STRONG>attr_t</STRONG> arguments were
not supported under SVr4.
Very old versions of this library did not force an update of the screen
not defined in SVr4 curses. The functions taking <STRONG>attr_t</STRONG> arguments were
not supported under SVr4.
Very old versions of this library did not force an update of the screen
- The XSI Curses standard states that whether the traditional functions
- <STRONG>attron</STRONG>/<STRONG>attroff</STRONG>/<STRONG>attrset</STRONG> can manipulate attributes other than <STRONG>A_BLINK</STRONG>,
- <STRONG>A_BOLD</STRONG>, <STRONG>A_DIM</STRONG>, <STRONG>A_REVERSE</STRONG>, <STRONG>A_STANDOUT</STRONG>, or <STRONG>A_UNDERLINE</STRONG> is "unspecified".
- Under this implementation as well as SVr4 curses, these functions cor-
- rectly manipulate all other highlights (specifically, <STRONG>A_ALTCHARSET</STRONG>,
+ The XSI Curses standard states that whether the traditional functions
+ <STRONG>attron</STRONG>/<STRONG>attroff</STRONG>/<STRONG>attrset</STRONG> can manipulate attributes other than <STRONG>A_BLINK</STRONG>,
+ <STRONG>A_BOLD</STRONG>, <STRONG>A_DIM</STRONG>, <STRONG>A_REVERSE</STRONG>, <STRONG>A_STANDOUT</STRONG>, or <STRONG>A_UNDERLINE</STRONG> is "unspecified".
+ Under this implementation as well as SVr4 curses, these functions cor-
+ rectly manipulate all other highlights (specifically, <STRONG>A_ALTCHARSET</STRONG>,
<STRONG>A_PROTECT</STRONG>, and <STRONG>A_INVIS</STRONG>).
XSI Curses added these entry points:
<STRONG>A_PROTECT</STRONG>, and <STRONG>A_INVIS</STRONG>).
XSI Curses added these entry points:
<STRONG>attr_get</STRONG>, <STRONG>attr_on</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>, <STRONG>wat-</STRONG>
<STRONG>tr_get</STRONG>, <STRONG>wattr_set</STRONG>
<STRONG>attr_get</STRONG>, <STRONG>attr_on</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>, <STRONG>wat-</STRONG>
<STRONG>tr_get</STRONG>, <STRONG>wattr_set</STRONG>
------------------------------------------------------------
<STRONG>WA_NORMAL</STRONG> Normal display (no highlight)
<STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal.
------------------------------------------------------------
<STRONG>WA_NORMAL</STRONG> Normal display (no highlight)
<STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal.
- <STRONG>o</STRONG> The XSI curses standard specifies that each pair of corresponding
- <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same current-highlight
+ <STRONG>o</STRONG> The XSI curses standard specifies that each pair of corresponding
+ <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same current-highlight
For example, the Solaris <EM>xpg4</EM> (X/Open) curses declares <STRONG>attr_t</STRONG> to be
an unsigned short integer (16-bits), while <STRONG>chtype</STRONG> is a unsigned in-
For example, the Solaris <EM>xpg4</EM> (X/Open) curses declares <STRONG>attr_t</STRONG> to be
an unsigned short integer (16-bits), while <STRONG>chtype</STRONG> is a unsigned in-
- teger (32-bits). The <STRONG>WA_</STRONG> symbols in this case are different from
- the <STRONG>A_</STRONG> symbols because they are used for a smaller datatype which
+ teger (32-bits). The <STRONG>WA_</STRONG> symbols in this case are different from
+ the <STRONG>A_</STRONG> symbols because they are used for a smaller datatype which
does not represent <STRONG>A_CHARTEXT</STRONG> or <STRONG>A_COLOR</STRONG>.
In this implementation (as in many others), the values happen to be
does not represent <STRONG>A_CHARTEXT</STRONG> or <STRONG>A_COLOR</STRONG>.
In this implementation (as in many others), the values happen to be
and <STRONG>cchar_t</STRONG> variables.
The XSI standard extended conformance level adds new highlights <STRONG>A_HORI-</STRONG>
and <STRONG>cchar_t</STRONG> variables.
The XSI standard extended conformance level adds new highlights <STRONG>A_HORI-</STRONG>
- <STRONG>ZONTAL</STRONG>, <STRONG>A_LEFT</STRONG>, <STRONG>A_LOW</STRONG>, <STRONG>A_RIGHT</STRONG>, <STRONG>A_TOP</STRONG>, <STRONG>A_VERTICAL</STRONG> (and corresponding
- <STRONG>WA_</STRONG> macros for each). As of August 2013, no known terminal provides
+ <STRONG>ZONTAL</STRONG>, <STRONG>A_LEFT</STRONG>, <STRONG>A_LOW</STRONG>, <STRONG>A_RIGHT</STRONG>, <STRONG>A_TOP</STRONG>, <STRONG>A_VERTICAL</STRONG> (and corresponding
+ <STRONG>WA_</STRONG> macros for each). As of August 2013, no known terminal provides
<STRONG>o</STRONG> returns an error if the color pair parameter for <STRONG>wcolor_set</STRONG> is out-
side the range 0..COLOR_PAIRS-1.
<STRONG>o</STRONG> returns an error if the color pair parameter for <STRONG>wcolor_set</STRONG> is out-
side the range 0..COLOR_PAIRS-1.
<STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
the window pointer is null.
<STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
the window pointer is null.