]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/curs_attr.3x.html
ncurses 6.4 - patch 20231007
[ncurses.git] / doc / html / man / curs_attr.3x.html
index 1bf181d17fb635bc24d3deb3101c3792d69df92d..54c4b894bd53f096c5d40f130a6131d598926f7a 100644 (file)
@@ -1,7 +1,8 @@
-<!-- 
+<!--
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc.              *
+  * Copyright 2018-2022,2023 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            *
   * 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.87 2023/10/07 22:21:46 tom Exp @
   * ---------------------------------------------------------------------------
-  * attr_get
-  * .br
-  * .br
-  * .br
-  * .br
-  * .br
   * ---------------------------------------------------------------------------
   * ---------------------------------------------------------------------------
   * ---------------------------------------------------------------------------
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_attr 3x</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
+<TITLE>curs_attr 3x 2023-10-07 ncurses 6.4 Library calls</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
+
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_attr 3x</H1>
+<H1 class="no-header">curs_attr 3x 2023-10-07 ncurses 6.4 Library calls</H1>
 <PRE>
-<STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>                                                    <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+<STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>                    Library calls                   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
 
 
 
@@ -70,9 +65,9 @@
 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
        <STRONG>attr_get</STRONG>, <STRONG>wattr_get</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_set</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>wattr_off</STRONG>, <STRONG>attr_on</STRONG>,
        <STRONG>wattr_on</STRONG>, <STRONG>attroff</STRONG>, <STRONG>wattroff</STRONG>, <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>wattrset</STRONG>, <STRONG>chgat</STRONG>,
-       <STRONG>wchgat</STRONG>, <STRONG>mvchgat</STRONG>, <STRONG>mvwchgat</STRONG>, <STRONG>color_set</STRONG>, <STRONG>wcolor_set</STRONG>, <STRONG>standend</STRONG>, <STRONG>wstandend</STRONG>,
-       <STRONG>standout</STRONG>, <STRONG>wstandout</STRONG> - <STRONG>curses</STRONG> character and window attribute control
-       routines
+       <STRONG>wchgat</STRONG>,  <STRONG>mvchgat</STRONG>, <STRONG>mvwchgat</STRONG>, <STRONG>color_set</STRONG>, <STRONG>wcolor_set</STRONG>, <STRONG>standend</STRONG>, <STRONG>wstandend</STRONG>,
+       <STRONG>standout</STRONG>, <STRONG>wstandout</STRONG> -  manipulate  attributes  of  character  cells  in
+       <EM>curses</EM> windows
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -88,7 +83,7 @@
        <STRONG>int</STRONG> <STRONG>attr_on(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>wattr_on(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
 
-       <STRONG>int</STRONG> <STRONG>attroff(int</STRONG> <EM>attrs);</EM>
+       <STRONG>int</STRONG> <STRONG>attroff(int</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>wattroff(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>attron(int</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>wattron(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
              <STRONG>int</STRONG> <EM>n,</EM> <STRONG>attr_t</STRONG> <EM>attr</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
 
        <STRONG>int</STRONG> <STRONG>color_set(short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG> <EM>opts</EM><STRONG>);</STRONG>
-       <STRONG>int</STRONG> <STRONG>wcolor_set(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG> <EM>opts);</EM>
+       <STRONG>int</STRONG> <STRONG>wcolor_set(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG> <EM>opts</EM><STRONG>);</STRONG>
 
        <STRONG>int</STRONG> <STRONG>standend(void);</STRONG>
        <STRONG>int</STRONG> <STRONG>wstandend(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
        These  routines  manipulate the current attributes of the named window,
        which then apply to all characters that are  written  into  the  window
        with  <STRONG>waddch</STRONG>,  <STRONG>waddstr</STRONG>  and  <STRONG>wprintw</STRONG>.  Attributes are a property of the
-       character, and move with the character through any  scrolling  and  in-
-       sert/delete  line/character  operations.   To the extent possible, they
+       character, and move  with  the  character  through  any  scrolling  and
+       insert/delete  line/character operations.  To the extent possible, they
        are displayed as appropriate modifications to the graphic rendition  of
        characters put on the screen.
 
        These  routines do not affect the attributes used when erasing portions
-       of the window.  See <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> for functions which  modify  the  at-
-       tributes used for erasing and clearing.
+       of the window.   See  <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>  for  functions  which  modify  the
+       attributes used for erasing and clearing.
 
        Routines  which  do  not have a <STRONG>WINDOW*</STRONG> parameter apply to <STRONG>stdscr</STRONG>.  For
        example, <STRONG>attr_set</STRONG> is the <STRONG>stdscr</STRONG> variant of <STRONG>wattr_set</STRONG>.
 </PRE><H3><a name="h3-Window-attributes">Window attributes</a></H3><PRE>
        There are two sets of functions:
 
-       <STRONG>o</STRONG>   functions for manipulating the window attributes  and  color:  <STRONG>wat-</STRONG>
-           <STRONG>tr_set</STRONG> and <STRONG>wattr_get</STRONG>.
+       <STRONG>o</STRONG>   functions  for  manipulating  the  window  attributes  and   color:
+           <STRONG>wattr_set</STRONG> and <STRONG>wattr_get</STRONG>.
 
        <STRONG>o</STRONG>   functions  for manipulating only the window attributes (not color):
            <STRONG>wattr_on</STRONG> and <STRONG>wattr_off</STRONG>.
        Use <STRONG>wattr_get</STRONG> to retrieve attributes for the given window.
 
        Use  <STRONG>attr_on</STRONG>  and  <STRONG>wattr_on</STRONG>  to turn on window attributes, i.e., values
-       OR'd together in <EM>attr</EM>, without affecting  other  attributes.   Use  <STRONG>at-</STRONG>
-       <STRONG>tr_off</STRONG>  and  <STRONG>wattr_off</STRONG> to turn off window attributes, again values OR'd
+       OR'd  together  in  <EM>attr</EM>,  without  affecting  other  attributes.   Use
+       <STRONG>attr_off</STRONG> and <STRONG>wattr_off</STRONG> to turn off window attributes, again values OR'd
        together in <EM>attr</EM>, without affecting other attributes.
 
 
 </PRE><H3><a name="h3-Legacy-window-attributes">Legacy window attributes</a></H3><PRE>
-       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 (<STRONG>_</STRONG>).
+       The X/Open window attribute routines which <EM>set</EM> or <EM>get</EM>, turn <EM>on</EM>  or  <EM>off</EM>
+       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 (<STRONG>_</STRONG>) for the newer names.
+
+       The <STRONG>int</STRONG> datatype used in the legacy routines is treated as if it is the
+       same size as <STRONG>chtype</STRONG> (used by <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>).  It  holds  the  common  video
+       attributes  (such  as  bold, reverse), as well as a few bits for color.
+       Those bits correspond to the  <STRONG>A_COLOR</STRONG>  symbol.   The  <STRONG>COLOR_PAIR</STRONG>  macro
+       provides  a  value which can be OR'd into the attribute parameter.  For
+       example, as long as that value fits into the <STRONG>A_COLOR</STRONG> mask,  then  these
+       calls produce similar results:
+
+           attrset(A_BOLD | COLOR_PAIR(<EM>pair</EM>));
+           attr_set(A_BOLD, <EM>pair</EM>, NULL);
+
+       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
+       (8) bits, then <STRONG>COLOR_PAIR(</STRONG><EM>259</EM><STRONG>)</STRONG> is 4 (i.e., 259 is 4 more than the limit
+       255).
+
+       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 same:
+
+           int value = A_BOLD | COLOR_PAIR(<EM>input</EM>);
+           int <EM>output</EM> = PAIR_NUMBER(value);
 
        The <STRONG>attrset</STRONG> 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.
+       in  X/Open  Curses  for  the  same  reason  that  SVr4  curses kept it:
+       compatibility.
 
        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
 
 
 </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-
-       sor move before acting.
+       The  routine  <STRONG>chgat</STRONG>  changes  the  attributes  of  a  given  number  of
+       characters 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
+       attributes  all  the  way  to  the end of the current line.  The <STRONG>wchgat</STRONG>
+       function generalizes this to any window; the <STRONG>mvwchgat</STRONG> function  does  a
+       cursor move before acting.
 
        In  these  functions, the color <EM>pair</EM> argument is a color-pair index (as
        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
-       foreground/background  combination  described by the color <EM>pair</EM> parame-
-       ter.
+       foreground/background   combination   described   by   the  color  <EM>pair</EM>
+       parameter.
 
 
 </PRE><H3><a name="h3-Standout">Standout</a></H3><PRE>
 
        <STRONG>o</STRONG>   they have well established legacy use, and
 
-       <STRONG>o</STRONG>   there is no ambiguity about the way the attributes  might  be  com-
-           bined with a color pair.
+       <STRONG>o</STRONG>   there is no  ambiguity  about  the  way  the  attributes  might  be
+           combined with a color pair.
 
 
 </PRE><H2><a name="h2-VIDEO-ATTRIBUTES">VIDEO ATTRIBUTES</a></H2><PRE>
        the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or OR'd with the  characters
        passed to <STRONG>addch</STRONG> (see <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>).
 
-              <EM>Name</EM>           <EM>Description</EM>
-              -----------------------------------------------------------
+              <STRONG>Name</STRONG>           <STRONG>Description</STRONG>
+              -----------------------------------------------------------------
               <STRONG>A_NORMAL</STRONG>       Normal display (no highlight)
               <STRONG>A_STANDOUT</STRONG>     Best highlighting mode of the terminal.
               <STRONG>A_UNDERLINE</STRONG>    Underlining
               <STRONG>A_ALTCHARSET</STRONG>   Alternate character set
               <STRONG>A_ITALIC</STRONG>       Italics (non-X/Open extension)
               <STRONG>A_CHARTEXT</STRONG>     Bit-mask to extract a character
+              <STRONG>A_COLOR</STRONG>        Bit-mask to extract a color (legacy routines)
 
        These  video  attributes are supported by <STRONG>attr_on</STRONG> and related functions
        (which also support the attributes recognized by <STRONG>attron</STRONG>, etc.):
 
-              <EM>Name</EM>            <EM>Description</EM>
+              <STRONG>Name</STRONG>            <STRONG>Description</STRONG>
               -----------------------------------------
               <STRONG>WA_HORIZONTAL</STRONG>   Horizontal highlight
               <STRONG>WA_LEFT</STRONG>         Left highlight
 
 </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
        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>
+       "wide-characters"  (not  specific  to  Unicode).   Some  of  the X/Open
+       differences from SVr4 curses address the way video  attributes  can  be
+       applied  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
        of these features.
        <STRONG>standout</STRONG>  and  <STRONG>standend</STRONG> 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.
-       System V (1983) provided an improved curses library.  It defined the <STRONG>A_</STRONG>
-       symbols  for  use  by  applications to manipulate the other attributes.
-       There are few useful references for the chronology.
+       Some  terminals  in  the  1980s  could  support  a  variety  of   video
+       attributes,  although  the  BSD  curses  library  could do nothing with
+       those.  System V  (1983)  provided  an  improved  curses  library.   It
+       defined  the <STRONG>A_</STRONG> symbols for use by applications to manipulate the other
+       attributes.  There are few useful references for the chronology.
 
        Goodheart's book <EM>UNIX</EM> <EM>Curses</EM> <EM>Explained</EM> (1991)  describes  SVr3  (1987),
        commenting on several functions:
        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
-       64-bit system, but not necessarily the reverse.
+       and size of the  defined  constants  as  well  as  clues  such  as  the
+       alternate  character  set implementation.  A 32-bit library can be used
+       on a 64-bit system, but not necessarily the reverse.
 
-              <EM>Year</EM>   <EM>System</EM>        <EM>Arch</EM>    <EM>Color</EM>   <EM>Char</EM>   <EM>Notes</EM>
+              <STRONG>Year</STRONG>   <STRONG>System</STRONG>        <STRONG>Arch</STRONG>    <STRONG>Color</STRONG>   <STRONG>Char</STRONG>   <STRONG>Notes</STRONG>
               ----------------------------------------------------------------
               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
+
               1997   HP-UX 11.00   32      6       8      X/Open curses
               2000   U/Win         32/64   7/31    16     uses <STRONG>chtype</STRONG>
 
 
           Regarding OSF/1 (and Tru64),
 
-          <STRONG>o</STRONG>   These used 64-bit hardware.  Like ncurses, the OSF/1 curses  in-
-              terface is not customized for 32-bit and 64-bit versions.
+          <STRONG>o</STRONG>   These used 64-bit hardware.   Like  ncurses,  the  OSF/1  curses
+              interface is not customized for 32-bit and 64-bit versions.
 
-          <STRONG>o</STRONG>   Unlike other systems which evolved from AT&amp;T code, OSF/1 provid-
-              ed a new implementation for X/Open curses.
+          <STRONG>o</STRONG>   Unlike  other  systems  which  evolved  from  AT&amp;T  code,  OSF/1
+              provided a new implementation for X/Open curses.
 
           Regarding Solaris,
 
               Sun's copyright began in 1996.
 
           <STRONG>o</STRONG>   Sun updated the X/Open curses interface after 64-bit support was
-              introduced in 1997, but did not modify the  SVr4  curses  inter-
-              face.
+              introduced  in  1997,  but  did  not  modify  the  SVr4   curses
+              interface.
 
           Regarding U/Win,
 
        Other interfaces are rarely used now:
 
        <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
+           modification to make the library 8-bit clean for <STRONG>nvi(1)</STRONG>.  He  moved
            <EM>standout</EM> attribute to a structure member.
 
            The  resulting  4.4BSD curses was replaced by ncurses over the next
 
 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
        This implementation provides the <STRONG>A_ITALIC</STRONG> attribute for terminals which
-       have  the  <STRONG>enter_italics_mode</STRONG> (<STRONG>sitm</STRONG>) and <STRONG>exit_italics_mode</STRONG> (<STRONG>ritm</STRONG>) capa-
-       bilities.  Italics are not mentioned in X/Open Curses.  Unlike the oth-
-       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.
+       have   the   <STRONG>enter_italics_mode</STRONG>  (<STRONG>sitm</STRONG>)  and  <STRONG>exit_italics_mode</STRONG>  (<STRONG>ritm</STRONG>)
+       capabilities.  Italics are not mentioned in X/Open Curses.  Unlike  the
+       other  video  attributes,  <STRONG>A_ITALIC</STRONG>  is unrelated to the <STRONG>set_attributes</STRONG>
+       capabilities.   This   implementation   makes   the   assumption   that
+       <STRONG>exit_attribute_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-
-       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>:
+       X/Open Curses  still  (after  more  than  twenty  years)  documents  as
+       reserved  for  future  use,  saying  that  it  should  be  <STRONG>NULL</STRONG>.   This
+       implementation 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
-           pair instead of the <STRONG>short</STRONG> <EM>pair</EM> parameter.
+       <STRONG>o</STRONG>   For functions which modify the color, e.g., <STRONG>wattr_set</STRONG> and <STRONG>wattr_on</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
            set it is treated as a pointer to <STRONG>int</STRONG>, and  used  to  retrieve  the
-           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 to retrieving it via the
+           standard pointer to <STRONG>short</STRONG> parameter.
 
-       The remaining functions which have <EM>opts</EM>, but do not  manipulate  color,
-       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>.
+       <STRONG>o</STRONG>   For functions which turn attributes off, e.g., <STRONG>wattr_off</STRONG>, the  <EM>opts</EM>
+           parameter is ignored except except to check that it is <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
-       standard  defined  the dedicated type for highlights, <STRONG>attr_t</STRONG>, which was
+       standard defined the dedicated type for highlights, <STRONG>attr_t</STRONG>,  which  was
        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
-       when changing the attributes.  Use <STRONG>touchwin</STRONG>  to  force  the  screen  to
+       when  changing  the  attributes.   Use  <STRONG>touchwin</STRONG> to force the screen to
        match the updated attributes.
 
-       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
+       correctly 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>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>wattr_get</STRONG>, <STRONG>wattr_set</STRONG>
 
-       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 <STRONG>WA_</STRONG>.  The older macros have direct counterparts in
        the newer set of names:
 
-              <EM>Name</EM>            <EM>Description</EM>
+              <STRONG>Name</STRONG>            <STRONG>Description</STRONG>
               ------------------------------------------------------------
               <STRONG>WA_NORMAL</STRONG>       Normal display (no highlight)
               <STRONG>WA_STANDOUT</STRONG>     Best highlighting mode of the terminal.
               <STRONG>WA_BOLD</STRONG>         Extra bright or bold
               <STRONG>WA_ALTCHARSET</STRONG>   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.:
 
-       <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
            information.
 
-       <STRONG>o</STRONG>   However, in some implementations, those symbols have unrelated val-
-           ues.
+       <STRONG>o</STRONG>   However,  in  some  implementations,  those  symbols have unrelated
+           values.
 
            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
+           an  unsigned  short  integer  (16-bits), while <STRONG>chtype</STRONG> is a unsigned
+           integer (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
-           the same because it simplifies copying information  between  <STRONG>chtype</STRONG>
+           the  same  because it simplifies copying information between <STRONG>chtype</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
-       these highlights (i.e., via the <STRONG>sgr1</STRONG> capability).
+       <STRONG>o</STRONG>   Because ncurses's <STRONG>attr_t</STRONG> can hold a  color  pair  (in  the  <STRONG>A_COLOR</STRONG>
+           field),  a  call to <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>, or <STRONG>wattr_set</STRONG> may alter the
+           window's color.  If the color pair  information  in  the  attribute
+           parameter is zero, no change is made to the window's color.
+
+           This is consistent with SVr4 curses; X/Open Curses does not specify
+           this.
+
+       The  XSI  standard  extended  conformance  level  adds  new  highlights
+       <STRONG>A_HORIZONTAL</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 these highlights (i.e., via the <STRONG>sgr1</STRONG> capability).
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
 
        <STRONG>o</STRONG>   returns an error if the window pointer is null.
 
-       <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
+           outside the range 0..COLOR_PAIRS-1.
 
-       <STRONG>o</STRONG>   does  not  return an error if either of the parameters of <STRONG>wattr_get</STRONG>
+       <STRONG>o</STRONG>   does not return an error if either of the parameters  of  <STRONG>wattr_get</STRONG>
            used for retrieving attribute or color-pair values is <STRONG>NULL</STRONG>.
 
-       Functions with a "mv" prefix first  perform  a  cursor  movement  using
+       Functions  with  a  "mv"  prefix  first perform a cursor movement using
        <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
        the window pointer is null.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>,
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,     <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>,     <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>,     <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>,
        <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
 
 
 
-                                                                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+ncurses 6.4                       2023-10-07                     <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>