]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/curs_color.3x.html
ncurses 6.2 - patch 20200215
[ncurses.git] / doc / html / man / curs_color.3x.html
index dadd9a1ad900f884c78ebdefa05d29a9554153df..591ed4081fbc33f17aab37023b5a80693e1f6b75 100644 (file)
@@ -1,6 +1,7 @@
 <!-- 
   ****************************************************************************
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc.              *
+  * Copyright 2018-2019,2020 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.                                                           *
   ****************************************************************************
-  * @Id: curs_color.3x,v 1.50 2017/04/01 19:57:19 tom Exp @
+  * @Id: curs_color.3x,v 1.62 2020/02/02 23:34:34 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <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">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
 <TITLE>curs_color 3x</TITLE>
 <TITLE>curs_color 3x</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
@@ -47,8 +48,9 @@
 
 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
        <STRONG>start_color</STRONG>, <STRONG>has_colors</STRONG>, <STRONG>can_change_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>,
 
 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
        <STRONG>start_color</STRONG>, <STRONG>has_colors</STRONG>, <STRONG>can_change_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>,
-       <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, <STRONG>COLOR_PAIR</STRONG>, <STRONG>PAIR_NUMBER</STRONG> - <STRONG>curses</STRONG> color
-       manipulation routines
+       <STRONG>init_extended_pair</STRONG>, <STRONG>init_extended_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>,
+       <STRONG>extended_color_content</STRONG>, <STRONG>extended_pair_content</STRONG>, <STRONG>reset_color_pairs</STRONG>,
+       <STRONG>COLOR_PAIR</STRONG>, <STRONG>PAIR_NUMBER</STRONG> - <STRONG>curses</STRONG> color manipulation routines
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -71,6 +73,9 @@
        <STRONG>int</STRONG> <STRONG>extended_color_content(int</STRONG> <STRONG>color,</STRONG> <STRONG>int</STRONG> <STRONG>*r,</STRONG> <STRONG>int</STRONG> <STRONG>*g,</STRONG> <STRONG>int</STRONG> <STRONG>*b);</STRONG>
        <STRONG>int</STRONG> <STRONG>extended_pair_content(int</STRONG> <STRONG>pair,</STRONG> <STRONG>int</STRONG> <STRONG>*f,</STRONG> <STRONG>int</STRONG> <STRONG>*b);</STRONG>
 
        <STRONG>int</STRONG> <STRONG>extended_color_content(int</STRONG> <STRONG>color,</STRONG> <STRONG>int</STRONG> <STRONG>*r,</STRONG> <STRONG>int</STRONG> <STRONG>*g,</STRONG> <STRONG>int</STRONG> <STRONG>*b);</STRONG>
        <STRONG>int</STRONG> <STRONG>extended_pair_content(int</STRONG> <STRONG>pair,</STRONG> <STRONG>int</STRONG> <STRONG>*f,</STRONG> <STRONG>int</STRONG> <STRONG>*b);</STRONG>
 
+       /* extensions */
+       <STRONG>void</STRONG> <STRONG>reset_color_pairs(void);</STRONG>
+
        <STRONG>int</STRONG> <STRONG>COLOR_PAIR(int</STRONG> <STRONG>n);</STRONG>
        <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM><STRONG>);</STRONG>
 
        <STRONG>int</STRONG> <STRONG>COLOR_PAIR(int</STRONG> <STRONG>n);</STRONG>
        <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM><STRONG>);</STRONG>
 
 
 </PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
        <STRONG>curses</STRONG> supports color attributes on terminals with that capability.  To
 
 </PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
        <STRONG>curses</STRONG> supports color attributes on terminals with that capability.  To
-       use these routines <STRONG>start_color</STRONG> must  be  called,  usually  right  after
+       use  these  routines  <STRONG>start_color</STRONG>  must  be called, usually right after
        <STRONG>initscr</STRONG>.  Colors are always used in pairs (referred to as color-pairs).
        <STRONG>initscr</STRONG>.  Colors are always used in pairs (referred to as color-pairs).
-       A color-pair consists of a foreground  color  (for  characters)  and  a
-       background  color (for the blank field on which the characters are dis-
-       played).  A  programmer  initializes  a  color-pair  with  the  routine
+       A  color-pair  consists  of  a  foreground color (for characters) and a
+       background color (for the blank field on which the characters are  dis-
+       played).   A  programmer  initializes  a  color-pair  with  the routine
        <STRONG>init_pair</STRONG>.  After it has been initialized, <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>) can be used to
        convert the pair to a video attribute.
 
        <STRONG>init_pair</STRONG>.  After it has been initialized, <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>) can be used to
        convert the pair to a video attribute.
 
-       If a terminal is capable of redefining colors, the programmer  can  use
-       the  routine  <STRONG>init_color</STRONG> to change the definition of a color.  The rou-
-       tines <STRONG>has_colors</STRONG> and <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG> or  <STRONG>FALSE</STRONG>,  depending
+       If  a  terminal is capable of redefining colors, the programmer can use
+       the routine <STRONG>init_color</STRONG> to change the definition of a color.   The  rou-
+       tines  <STRONG>has_colors</STRONG>  and <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>, depending
        on whether the terminal has color capabilities and whether the program-
        mer can change the colors.  The routine <STRONG>color_content</STRONG> allows a program-
        on whether the terminal has color capabilities and whether the program-
        mer can change the colors.  The routine <STRONG>color_content</STRONG> allows a program-
-       mer  to  extract  the  amounts of red, green, and blue components in an
-       initialized color.  The routine <STRONG>pair_content</STRONG>  allows  a  programmer  to
+       mer to extract the amounts of red, green, and  blue  components  in  an
+       initialized  color.   The  routine  <STRONG>pair_content</STRONG> allows a programmer to
        find out how a given color-pair is currently defined.
 
 
 </PRE><H3><a name="h3-Color-Rendering">Color Rendering</a></H3><PRE>
        find out how a given color-pair is currently defined.
 
 
 </PRE><H3><a name="h3-Color-Rendering">Color Rendering</a></H3><PRE>
-       The  <STRONG>curses</STRONG>  library  combines these inputs to produce the actual fore-
+       The <STRONG>curses</STRONG> library combines these inputs to produce  the  actual  fore-
        ground and background colors shown on the screen:
 
        <STRONG>o</STRONG>   per-character video attributes (e.g., via <STRONG>waddch</STRONG>),
        ground and background colors shown on the screen:
 
        <STRONG>o</STRONG>   per-character video attributes (e.g., via <STRONG>waddch</STRONG>),
        <STRONG>o</STRONG>   the background character (e.g., <STRONG>wbkgdset</STRONG>).
 
        Per-character and window attributes are usually set by a parameter con-
        <STRONG>o</STRONG>   the background character (e.g., <STRONG>wbkgdset</STRONG>).
 
        Per-character and window attributes are usually set by a parameter con-
-       taining  video attributes including a color pair value.  Some functions
+       taining video attributes including a color pair value.  Some  functions
        such as <STRONG>wattr_set</STRONG> use a separate parameter which is the color pair num-
        ber.
 
        such as <STRONG>wattr_set</STRONG> use a separate parameter which is the color pair num-
        ber.
 
-       The  background  character  is  a special case: it includes a character
+       The background character is a special case:  it  includes  a  character
        value, just as if it were passed to <STRONG>waddch</STRONG>.
 
        value, just as if it were passed to <STRONG>waddch</STRONG>.
 
-       The <STRONG>curses</STRONG> library does the actual work of combining these color  pairs
+       The  <STRONG>curses</STRONG> library does the actual work of combining these color pairs
        in an internal function called from <STRONG>waddch</STRONG>:
 
        <STRONG>o</STRONG>   If the parameter passed to <STRONG>waddch</STRONG> is <EM>blank</EM>, and it uses the special
        in an internal function called from <STRONG>waddch</STRONG>:
 
        <STRONG>o</STRONG>   If the parameter passed to <STRONG>waddch</STRONG> is <EM>blank</EM>, and it uses the special
 
            <STRONG>o</STRONG>   <STRONG>curses</STRONG> next checks the window attribute.
 
 
            <STRONG>o</STRONG>   <STRONG>curses</STRONG> next checks the window attribute.
 
-           <STRONG>o</STRONG>   If the window attribute does not use color pair 0, <STRONG>curses</STRONG>  uses
+           <STRONG>o</STRONG>   If  the window attribute does not use color pair 0, <STRONG>curses</STRONG> uses
                the color pair from the window attribute.
 
            <STRONG>o</STRONG>   Otherwise, <STRONG>curses</STRONG> uses the background character.
 
                the color pair from the window attribute.
 
            <STRONG>o</STRONG>   Otherwise, <STRONG>curses</STRONG> uses the background character.
 
-       <STRONG>o</STRONG>   If  the parameter passed to <STRONG>waddch</STRONG> is <EM>not</EM> <EM>blank</EM>, or it does not use
-           the special color pair 0, <STRONG>curses</STRONG> prefers the color  pair  from  the
-           parameter,  if  it  is nonzero.  Otherwise, it tries the window at-
+       <STRONG>o</STRONG>   If the parameter passed to <STRONG>waddch</STRONG> is <EM>not</EM> <EM>blank</EM>, or it does not  use
+           the  special  color  pair 0, <STRONG>curses</STRONG> prefers the color pair from the
+           parameter, if it is nonzero.  Otherwise, it tries  the  window  at-
            tribute next, and finally the background character.
 
            tribute next, and finally the background character.
 
-       Some <STRONG>curses</STRONG> functions such as <STRONG>wprintw</STRONG> call <STRONG>waddch</STRONG>.  Those do  not  com-
+       Some  <STRONG>curses</STRONG>  functions such as <STRONG>wprintw</STRONG> call <STRONG>waddch</STRONG>.  Those do not com-
        bine its parameter with a color pair.  Consequently those calls use on-
        ly the window attribute or the background character.
 
        bine its parameter with a color pair.  Consequently those calls use on-
        ly the window attribute or the background character.
 
              <STRONG>COLOR_CYAN</STRONG>
              <STRONG>COLOR_WHITE</STRONG>
 
              <STRONG>COLOR_CYAN</STRONG>
              <STRONG>COLOR_WHITE</STRONG>
 
-       Some terminals support more than the eight (8)  "ANSI"  colors.   There
+       Some  terminals  support  more than the eight (8) "ANSI" colors.  There
        are no standard names for those additional colors.
 
 
 </PRE><H2><a name="h2-VARIABLES">VARIABLES</a></H2><PRE>
 
 </PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE>
        are no standard names for those additional colors.
 
 
 </PRE><H2><a name="h2-VARIABLES">VARIABLES</a></H2><PRE>
 
 </PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE>
-       is  initialized by <STRONG>start_color</STRONG> to the maximum number of colors the ter-
+       is initialized by <STRONG>start_color</STRONG> to the maximum number of colors the  ter-
        minal can support.
 
 
 </PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE>
        minal can support.
 
 
 </PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE>
-       is initialized by <STRONG>start_color</STRONG> to the maximum number of color pairs  the
+       is  initialized by <STRONG>start_color</STRONG> to the maximum number of color pairs the
        terminal can support.
 
 
 </PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE>
 
 </PRE><H3><a name="h3-start_color">start_color</a></H3><PRE>
        terminal can support.
 
 
 </PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE>
 
 </PRE><H3><a name="h3-start_color">start_color</a></H3><PRE>
-       The  <STRONG>start_color</STRONG>  routine  requires no arguments.  It must be called if
-       the programmer wants to use colors, and before any other color  manipu-
-       lation  routine  is  called.   It is good practice to call this routine
+       The <STRONG>start_color</STRONG> routine requires no arguments.  It must  be  called  if
+       the  programmer wants to use colors, and before any other color manipu-
+       lation routine is called.  It is good practice  to  call  this  routine
        right after <STRONG>initscr</STRONG>.  <STRONG>start_color</STRONG> does this:
 
        right after <STRONG>initscr</STRONG>.  <STRONG>start_color</STRONG> does this:
 
-       <STRONG>o</STRONG>   It initializes two global variables, <STRONG>COLORS</STRONG>  and  <STRONG>COLOR_PAIRS</STRONG>  (re-
-           spectively  defining  the  maximum number of colors and color-pairs
+       <STRONG>o</STRONG>   It  initializes  two  global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> (re-
+           spectively defining the maximum number of  colors  and  color-pairs
            the terminal can support).
 
            the terminal can support).
 
-       <STRONG>o</STRONG>   It initializes the special color pair <STRONG>0</STRONG> to the  default  foreground
+       <STRONG>o</STRONG>   It  initializes  the special color pair <STRONG>0</STRONG> to the default foreground
            and background colors.  No other color pairs are initialized.
 
            and background colors.  No other color pairs are initialized.
 
-       <STRONG>o</STRONG>   It  restores the colors on the terminal to the values they had when
+       <STRONG>o</STRONG>   It restores the colors on the terminal to the values they had  when
            the terminal was just turned on.
 
            the terminal was just turned on.
 
-       <STRONG>o</STRONG>   If the terminal supports the <STRONG>initc</STRONG>  (<STRONG>initialize_color</STRONG>)  capability,
-           <STRONG>start_color</STRONG>  initializes  its  internal table representing the red,
-           green and blue components of the color palette.
+       <STRONG>o</STRONG>   If  the  terminal supports the <STRONG>initc</STRONG> (<STRONG>initialize_color</STRONG>) capability,
+           <STRONG>start_color</STRONG> initializes its internal table  representing  the  red,
+           green, and blue components of the color palette.
 
            The components depend on whether the terminal uses CGA (aka "ANSI")
 
            The components depend on whether the terminal uses CGA (aka "ANSI")
-           or  HLS  (i.e.,  the  <STRONG>hls</STRONG>  (<STRONG>hue_lightness_saturation</STRONG>) capability is
-           set).  The table  is  initialized  first  for  eight  basic  colors
-           (black,  red,  green,  yellow, blue, magenta, cyan, and white), and
-           after that (if the terminal supports more than  eight  colors)  the
-           components are initialized to <STRONG>1000</STRONG>.
+           or HLS (i.e.,  the  <STRONG>hls</STRONG>  (<STRONG>hue_lightness_saturation</STRONG>)  capability  is
+           set).   The  table  is  initialized  first  for  eight basic colors
+           (black, red, green, yellow, blue, magenta, cyan, and white),  using
+           weights that depend upon the CGA/HLS choice.  For "ANSI" colors the
+           weights are <STRONG>680</STRONG> or <STRONG>0</STRONG> depending on whether  the  corresponding  red,
+           green,  or  blue component is used or not.  That permits using <STRONG>1000</STRONG>
+           to represent bold/bright colors.  After the  initial  eight  colors
+           (if  the  terminal  supports more than eight colors) the components
+           are initialized using the same pattern, but with weights  of  <STRONG>1000</STRONG>.
+           SVr4 uses a similar scheme, but uses <STRONG>1000</STRONG> for the components of the
+           initial eight colors.
 
            <STRONG>start_color</STRONG> does not attempt to set the terminal's color palette to
            match its built-in table.  An application may use <STRONG>init_color</STRONG> to al-
            ter the internal table along with the terminal's color.
 
 
            <STRONG>start_color</STRONG> does not attempt to set the terminal's color palette to
            match its built-in table.  An application may use <STRONG>init_color</STRONG> to al-
            ter the internal table along with the terminal's color.
 
-       These  limits  apply  to  color values and color pairs.  Values outside
+       These limits apply to color values and  color  pairs.   Values  outside
        these limits are not legal, and may result in a runtime error:
 
        these limits are not legal, and may result in a runtime error:
 
-       <STRONG>o</STRONG>   <STRONG>COLORS</STRONG> corresponds to the terminal database's <STRONG>max_colors</STRONG>  capabili-
+       <STRONG>o</STRONG>   <STRONG>COLORS</STRONG>  corresponds to the terminal database's <STRONG>max_colors</STRONG> capabili-
            ty, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
 
            ty, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
 
-       <STRONG>o</STRONG>   color  values are expected to be in the range <STRONG>0</STRONG> to <STRONG>COLORS-1</STRONG>, inclu-
+       <STRONG>o</STRONG>   color values are expected to be in the range <STRONG>0</STRONG> to <STRONG>COLORS-1</STRONG>,  inclu-
            sive (including <STRONG>0</STRONG> and <STRONG>COLORS-1</STRONG>).
 
            sive (including <STRONG>0</STRONG> and <STRONG>COLORS-1</STRONG>).
 
-       <STRONG>o</STRONG>   a special color value <STRONG>-1</STRONG> is used in certain extended  functions  to
-           denote the <EM>default</EM> <EM>color</EM> (see <STRONG>use_default_colors</STRONG>).
+       <STRONG>o</STRONG>   a  special  color value <STRONG>-1</STRONG> is used in certain extended functions to
+           denote the <EM>default</EM> <EM>color</EM> (see <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>).
 
 
-       <STRONG>o</STRONG>   <STRONG>COLOR_PAIRS</STRONG>  corresponds to the terminal database's <STRONG>max_pairs</STRONG> capa-
+       <STRONG>o</STRONG>   <STRONG>COLOR_PAIRS</STRONG> corresponds to the terminal database's <STRONG>max_pairs</STRONG>  capa-
            bility, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
 
        <STRONG>o</STRONG>   legal color pair values are in the range <STRONG>1</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>, inclu-
            bility, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
 
        <STRONG>o</STRONG>   legal color pair values are in the range <STRONG>1</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>, inclu-
        <STRONG>o</STRONG>   color pair <STRONG>0</STRONG> is special; it denotes "no color".
 
            Color pair <STRONG>0</STRONG> is assumed to be white on black, but is actually what-
        <STRONG>o</STRONG>   color pair <STRONG>0</STRONG> is special; it denotes "no color".
 
            Color pair <STRONG>0</STRONG> is assumed to be white on black, but is actually what-
-           ever the terminal implements before color is initialized.  It  can-
+           ever  the terminal implements before color is initialized.  It can-
            not be modified by the application.
 
 
 </PRE><H3><a name="h3-has_colors">has_colors</a></H3><PRE>
            not be modified by the application.
 
 
 </PRE><H3><a name="h3-has_colors">has_colors</a></H3><PRE>
-       The  <STRONG>has_colors</STRONG>  routine requires no arguments.  It returns <STRONG>TRUE</STRONG> if the
+       The <STRONG>has_colors</STRONG> routine requires no arguments.  It returns <STRONG>TRUE</STRONG>  if  the
        terminal can manipulate colors; otherwise, it returns <STRONG>FALSE</STRONG>.  This rou-
        tine facilitates writing terminal-independent programs.  For example, a
        terminal can manipulate colors; otherwise, it returns <STRONG>FALSE</STRONG>.  This rou-
        tine facilitates writing terminal-independent programs.  For example, a
-       programmer can use it to decide whether to  use  color  or  some  other
+       programmer  can  use  it  to  decide whether to use color or some other
        video attribute.
 
 
 </PRE><H3><a name="h3-can_change_color">can_change_color</a></H3><PRE>
        The <STRONG>can_change_color</STRONG> routine requires no arguments.  It returns <STRONG>TRUE</STRONG> if
        video attribute.
 
 
 </PRE><H3><a name="h3-can_change_color">can_change_color</a></H3><PRE>
        The <STRONG>can_change_color</STRONG> routine requires no arguments.  It returns <STRONG>TRUE</STRONG> if
-       the terminal supports colors and can change their  definitions;  other,
-       it  returns  <STRONG>FALSE</STRONG>.  This routine facilitates writing terminal-indepen-
+       the  terminal  supports colors and can change their definitions; other,
+       it returns <STRONG>FALSE</STRONG>.  This routine facilitates  writing  terminal-indepen-
        dent programs.
 
 
 </PRE><H3><a name="h3-init_pair">init_pair</a></H3><PRE>
        The <STRONG>init_pair</STRONG> routine changes the definition of a color-pair.  It takes
        dent programs.
 
 
 </PRE><H3><a name="h3-init_pair">init_pair</a></H3><PRE>
        The <STRONG>init_pair</STRONG> routine changes the definition of a color-pair.  It takes
-       three  arguments: the number of the color-pair to be changed, the fore-
+       three arguments: the number of the color-pair to be changed, the  fore-
        ground color number, and the background color number.  For portable ap-
        plications:
 
        ground color number, and the background color number.  For portable ap-
        plications:
 
-       <STRONG>o</STRONG>   The  first  argument  must be a legal color pair value.  If default
-           colors are used (see <STRONG>use_default_colors</STRONG>) the upper limit is adjust-
-           ed to allow for extra pairs which use a default color in foreground
-           and/or background.
+       <STRONG>o</STRONG>   The first argument must be a legal color pair  value.   If  default
+           colors are used (see <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>) the upper limit is ad-
+           justed to allow for extra pairs which use a default color in  fore-
+           ground and/or background.
 
        <STRONG>o</STRONG>   The second and third arguments must be legal color values.
 
 
        <STRONG>o</STRONG>   The second and third arguments must be legal color values.
 
-       If the color-pair was previously initialized, the screen  is  refreshed
-       and  all  occurrences of that color-pair are changed to the new defini-
+       If  the  color-pair was previously initialized, the screen is refreshed
+       and all occurrences of that color-pair are changed to the  new  defini-
        tion.
 
        tion.
 
-       As an extension, ncurses allows you to set color pair  <STRONG>0</STRONG>  via  the  <STRONG>as-</STRONG>
-       <STRONG><A HREF="assume_default_colors.3x.html">sume_default_colors(3x)</A></STRONG>  routine, or to specify the use of default col-
-       ors (color number <STRONG>-1</STRONG>) if you first  invoke  the  <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>
+       As  an  extension,  ncurses  allows you to set color pair <STRONG>0</STRONG> via the <STRONG>as-</STRONG>
+       <STRONG><A HREF="assume_default_colors.3x.html">sume_default_colors(3x)</A></STRONG> routine, or to specify the use of default  col-
+       ors  (color  number  <STRONG>-1</STRONG>) if you first invoke the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>
        routine.
 
 
        routine.
 
 
+</PRE><H3><a name="h3-init_extended_pair">init_extended_pair</a></H3><PRE>
+       Because <STRONG>init_pair</STRONG> uses signed <STRONG>short</STRONG>s for its  parameters,  that  limits
+       color-pairs  and  color-values to 32767 on modern hardware.  The exten-
+       sion <STRONG>init_extended_pair</STRONG> uses <STRONG>int</STRONG>s for the color-pair  and  color-value,
+       allowing a larger number of colors to be supported.
+
+
 </PRE><H3><a name="h3-init_color">init_color</a></H3><PRE>
        The  <STRONG>init_color</STRONG>  routine  changes  the definition of a color.  It takes
        four arguments: the number of the color to be changed followed by three
 </PRE><H3><a name="h3-init_color">init_color</a></H3><PRE>
        The  <STRONG>init_color</STRONG>  routine  changes  the definition of a color.  It takes
        four arguments: the number of the color to be changed followed by three
        immediately change to the new definition.
 
 
        immediately change to the new definition.
 
 
+</PRE><H3><a name="h3-init_extended_color">init_extended_color</a></H3><PRE>
+       Because  <STRONG>init_color</STRONG>  uses signed <STRONG>short</STRONG>s for its parameters, that limits
+       color-values and their red, green, and blue components to 32767 on mod-
+       ern hardware.  The extension <STRONG>init_extended_color</STRONG> uses <STRONG>int</STRONG>s for the col-
+       or value and for setting the red, green, and blue components,  allowing
+       a larger number of colors to be supported.
+
+
 </PRE><H3><a name="h3-color_content">color_content</a></H3><PRE>
        The <STRONG>color_content</STRONG> routine gives programmers a way to find the intensity
        of the red, green, and blue (RGB) components in a color.   It  requires
 </PRE><H3><a name="h3-color_content">color_content</a></H3><PRE>
        The <STRONG>color_content</STRONG> routine gives programmers a way to find the intensity
        of the red, green, and blue (RGB) components in a color.   It  requires
            (maximum amount of component), inclusive.
 
 
            (maximum amount of component), inclusive.
 
 
+</PRE><H3><a name="h3-extended_color_content">extended_color_content</a></H3><PRE>
+       Because <STRONG>color_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that  lim-
+       its  color-values and their red, green, and blue components to 32767 on
+       modern hardware.  The extension <STRONG>extended_color_content</STRONG>  uses  <STRONG>int</STRONG>s  for
+       the  color value and for returning the red, green, and blue components,
+       allowing a larger number of colors to be supported.
+
+
 </PRE><H3><a name="h3-pair_content">pair_content</a></H3><PRE>
        The <STRONG>pair_content</STRONG> routine allows programmers to find out what  colors  a
        given  color-pair consists of.  It requires three arguments: the color-
 </PRE><H3><a name="h3-pair_content">pair_content</a></H3><PRE>
        The <STRONG>pair_content</STRONG> routine allows programmers to find out what  colors  a
        given  color-pair consists of.  It requires three arguments: the color-
            sive.
 
 
            sive.
 
 
+</PRE><H3><a name="h3-extended_pair_content">extended_pair_content</a></H3><PRE>
+       Because <STRONG>pair_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits
+       color-pair and color-values to 32767 on modern hardware.  The extension
+       <STRONG>extended_pair_content</STRONG> uses <STRONG>int</STRONG>s for the color pair  and  for  returning
+       the  foreground and background colors, allowing a larger number of col-
+       ors to be supported.
+
+
+</PRE><H3><a name="h3-reset_color_pairs">reset_color_pairs</a></H3><PRE>
+       The extension <STRONG>reset_color_pairs</STRONG> tells ncurses to  discard  all  of  the
+       color-pair  information  which was set with <STRONG>init_pair</STRONG>.  It also touches
+       the current- and standard-screens, allowing an  application  to  switch
+       color palettes rapidly.
+
+
 </PRE><H3><a name="h3-PAIR_NUMBER">PAIR_NUMBER</a></H3><PRE>
 </PRE><H3><a name="h3-PAIR_NUMBER">PAIR_NUMBER</a></H3><PRE>
-       <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM>) extracts the color value from  its  <EM>attrs</EM>  parameter
+       <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM>)  extracts  the  color value from its <EM>attrs</EM> parameter
        and returns it as a color pair number.
 
 
 </PRE><H3><a name="h3-COLOR_PAIR">COLOR_PAIR</a></H3><PRE>
        Its inverse <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> converts a color pair number to an attribute.
        and returns it as a color pair number.
 
 
 </PRE><H3><a name="h3-COLOR_PAIR">COLOR_PAIR</a></H3><PRE>
        Its inverse <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> converts a color pair number to an attribute.
-       Attributes can hold color pairs in the range 0 to 255.  If you  need  a
-       color  pair  larger  than that, you must use functions such as <STRONG>attr_set</STRONG>
-       (which pass the color pair as a separate  parameter)  rather  than  the
+       Attributes  can  hold color pairs in the range 0 to 255.  If you need a
+       color pair larger than that, you must use functions  such  as  <STRONG>attr_set</STRONG>
+       (which  pass  the  color  pair as a separate parameter) rather than the
        legacy functions such as <STRONG>attrset</STRONG>.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
        The routines <STRONG>can_change_color</STRONG> and <STRONG>has_colors</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
 
        legacy functions such as <STRONG>attrset</STRONG>.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
        The routines <STRONG>can_change_color</STRONG> and <STRONG>has_colors</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
 
-       All  other routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4
-       specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful  com-
+       All other routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG>  (SVr4
+       specifies  only "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
        pletion.
 
        pletion.
 
-       X/Open  defines  no  error conditions.  This implementation will return
-       <STRONG>ERR</STRONG> on attempts to use color values outside the  range  <STRONG>0</STRONG>  to  <STRONG>COLORS</STRONG>-1
-       (except  for  the default colors extension), or use color pairs outside
-       the range <STRONG>0</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>.  Color values used in <STRONG>init_color</STRONG> must  be
-       in the range <STRONG>0</STRONG> to <STRONG>1000</STRONG>.  An error is returned from all functions if the
-       terminal has not been initialized.  An error is returned from secondary
-       functions such as <STRONG>init_pair</STRONG> if <STRONG>start_color</STRONG> was not called.
+       X/Open defines no error conditions.  SVr4 does document some error con-
+       ditions which apply in general:
+
+       <STRONG>o</STRONG>   This implementation will return <STRONG>ERR</STRONG> on attempts to use color values
+           outside the range <STRONG>0</STRONG> to <STRONG>COLORS</STRONG>-1 (except for the default colors  ex-
+           tension), or use color pairs outside the range <STRONG>0</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>.
+
+           Color values used in <STRONG>init_color</STRONG> must be in the range <STRONG>0</STRONG> to <STRONG>1000</STRONG>.
+
+           An  error  is  returned  from all functions if the terminal has not
+           been initialized.
+
+           An error is returned from secondary functions such as <STRONG>init_pair</STRONG>  if
+           <STRONG>start_color</STRONG> was not called.
+
+       <STRONG>o</STRONG>   SVr4  does much the same, except that it returns <STRONG>ERR</STRONG> from <STRONG>pair_con-</STRONG>
+           <STRONG>tent</STRONG> if the pair was not initialized using <STRONG>init_pairs</STRONG>  and  it  re-
+           turns  <STRONG>ERR</STRONG>  from  <STRONG>color_content</STRONG>  if  the  terminal does not support
+           changing colors.
+
+           This implementation does not return <STRONG>ERR</STRONG> for either case.
+
+       Specific functions make additional checks:
 
           <STRONG>init_color</STRONG>
                returns an error if the terminal does not support this feature,
 
           <STRONG>init_color</STRONG>
                returns an error if the terminal does not support this feature,
-               e.g., if the <STRONG>initialize_color</STRONG> capability  is  absent  from  the
+               e.g.,  if  the  <STRONG>initialize_color</STRONG>  capability is absent from the
                terminal description.
 
           <STRONG>start_color</STRONG>
                terminal description.
 
           <STRONG>start_color</STRONG>
 
 
 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
-       In  the  <STRONG>ncurses</STRONG>  implementation,  there is a separate color activation
-       flag, color palette, color pairs table, and associated <STRONG>COLORS</STRONG> and  <STRONG>COL-</STRONG>
-       <STRONG>OR_PAIRS</STRONG>  counts for each screen; the <STRONG>start_color</STRONG> function only affects
+       In the <STRONG>ncurses</STRONG> implementation, there is  a  separate  color  activation
+       flag,  color palette, color pairs table, and associated <STRONG>COLORS</STRONG> and <STRONG>COL-</STRONG>
+       <STRONG>OR_PAIRS</STRONG> counts for each screen; the <STRONG>start_color</STRONG> function only  affects
        the current screen.  The SVr4/XSI interface is not really designed with
        the current screen.  The SVr4/XSI interface is not really designed with
-       this  in  mind,  and historical implementations may use a single shared
+       this in mind, and historical implementations may use  a  single  shared
        color palette.
 
        color palette.
 
-       Setting an implicit background color via  a  color  pair  affects  only
-       character  cells  that  a character write operation explicitly touches.
-       To change the background color used when parts of a window are  blanked
+       Setting  an  implicit  background  color  via a color pair affects only
+       character cells that a character write  operation  explicitly  touches.
+       To  change the background color used when parts of a window are blanked
        by erasing or scrolling operations, see <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>.
 
        by erasing or scrolling operations, see <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>.
 
-       Several  caveats  apply  on  older x86 machines (e.g., i386, i486) with
+       Several caveats apply on older x86 machines  (e.g.,  i386,  i486)  with
        VGA-compatible graphics:
 
        VGA-compatible graphics:
 
-       <STRONG>o</STRONG>   COLOR_YELLOW is actually brown.  To get  yellow,  use  COLOR_YELLOW
+       <STRONG>o</STRONG>   COLOR_YELLOW  is  actually  brown.  To get yellow, use COLOR_YELLOW
            combined with the <STRONG>A_BOLD</STRONG> attribute.
 
            combined with the <STRONG>A_BOLD</STRONG> attribute.
 
-       <STRONG>o</STRONG>   The  A_BLINK  attribute should in theory cause the background to go
+       <STRONG>o</STRONG>   The A_BLINK attribute should in theory cause the background  to  go
            bright.  This often fails to work, and even some cards for which it
            bright.  This often fails to work, and even some cards for which it
-           mostly  works  (such  as the Paradise and compatibles) do the wrong
-           thing when you try to set a bright "yellow" background (you  get  a
+           mostly works (such as the Paradise and compatibles)  do  the  wrong
+           thing  when  you try to set a bright "yellow" background (you get a
            blinking yellow foreground instead).
 
        <STRONG>o</STRONG>   Color RGB values are not settable.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
            blinking yellow foreground instead).
 
        <STRONG>o</STRONG>   Color RGB values are not settable.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       This  implementation satisfies XSI Curses's minimum maximums for <STRONG>COLORS</STRONG>
+       This implementation satisfies XSI Curses's minimum maximums for  <STRONG>COLORS</STRONG>
        and <STRONG>COLOR_PAIRS</STRONG>.
 
        and <STRONG>COLOR_PAIRS</STRONG>.
 
-       The <STRONG>init_pair</STRONG> routine accepts negative values of foreground  and  back-
-       ground  color to support the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but only
+       The  <STRONG>init_pair</STRONG>  routine accepts negative values of foreground and back-
+       ground color to support the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but  only
        if that routine has been first invoked.
 
        The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background color for all
        if that routine has been first invoked.
 
        The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background color for all
-       terminals  can  be  modified using the <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG> exten-
+       terminals can be modified using  the  <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG>  exten-
        sion.
 
        sion.
 
-       This implementation checks the pointers, e.g., for the values  returned
+       This  implementation checks the pointers, e.g., for the values returned
        by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and will treat those as optional pa-
        rameters when null.
 
        by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and will treat those as optional pa-
        rameters when null.
 
-       X/Open Curses does not specify a limit for the  number  of  colors  and
+       X/Open  Curses  does  not  specify a limit for the number of colors and
        color pairs which a terminal can support.  However, in its use of <STRONG>short</STRONG>
        color pairs which a terminal can support.  However, in its use of <STRONG>short</STRONG>
-       for the parameters, it carries over SVr4's  implementation  detail  for
+       for  the  parameters,  it carries over SVr4's implementation detail for
        the compiled terminfo database, which uses signed 16-bit numbers.  This
        the compiled terminfo database, which uses signed 16-bit numbers.  This
-       implementation provides extended versions of those functions which  use
-       <STRONG>short</STRONG>  parameters, allowing applications to use larger color- and pair-
+       implementation  provides extended versions of those functions which use
+       <STRONG>short</STRONG> parameters, allowing applications to use larger color- and  pair-
        numbers.
 
        numbers.
 
+       The <STRONG>reset_color_pairs</STRONG> function is an extension of ncurses.
+
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
 
 </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_initscr.3x.html">curs_initscr(3x)</A></STRONG>,  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,  <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,  <STRONG>de-</STRONG>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,  <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>de-</STRONG>
        <STRONG><A HREF="default_colors.3x.html">fault_colors(3x)</A></STRONG>
 
 
        <STRONG><A HREF="default_colors.3x.html">fault_colors(3x)</A></STRONG>
 
 
 <li><a href="#h3-has_colors">has_colors</a></li>
 <li><a href="#h3-can_change_color">can_change_color</a></li>
 <li><a href="#h3-init_pair">init_pair</a></li>
 <li><a href="#h3-has_colors">has_colors</a></li>
 <li><a href="#h3-can_change_color">can_change_color</a></li>
 <li><a href="#h3-init_pair">init_pair</a></li>
+<li><a href="#h3-init_extended_pair">init_extended_pair</a></li>
 <li><a href="#h3-init_color">init_color</a></li>
 <li><a href="#h3-init_color">init_color</a></li>
+<li><a href="#h3-init_extended_color">init_extended_color</a></li>
 <li><a href="#h3-color_content">color_content</a></li>
 <li><a href="#h3-color_content">color_content</a></li>
+<li><a href="#h3-extended_color_content">extended_color_content</a></li>
 <li><a href="#h3-pair_content">pair_content</a></li>
 <li><a href="#h3-pair_content">pair_content</a></li>
+<li><a href="#h3-extended_pair_content">extended_pair_content</a></li>
+<li><a href="#h3-reset_color_pairs">reset_color_pairs</a></li>
 <li><a href="#h3-PAIR_NUMBER">PAIR_NUMBER</a></li>
 <li><a href="#h3-COLOR_PAIR">COLOR_PAIR</a></li>
 </ul>
 <li><a href="#h3-PAIR_NUMBER">PAIR_NUMBER</a></li>
 <li><a href="#h3-COLOR_PAIR">COLOR_PAIR</a></li>
 </ul>