* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_bkgd.3x,v 1.47 2023/10/07 21:19:07 tom Exp @
+ * @Id: curs_bkgd.3x,v 1.55 2023/12/23 16:35:10 tom Exp @
-->
<!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 https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_bkgd 3x 2023-10-07 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_bkgd 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_bkgd 3x 2023-10-07 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_bkgd 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
- <STRONG>void</STRONG> <STRONG>bkgdset(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
- <STRONG>void</STRONG> <STRONG>wbkgdset(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>bkgd(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wbkgd(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>void</STRONG> <STRONG>bkgdset(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>void</STRONG> <STRONG>wbkgdset(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+
<STRONG>chtype</STRONG> <STRONG>getbkgd(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ The <EM>background</EM> of a <EM>curses</EM> window (in the library's non-"wide"
+ configuration) is a <EM>chtype</EM> combining a set of attributes (see
+ <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>) with a character called the <EM>blank</EM> <EM>character.</EM>
-</PRE><H3><a name="h3-bkgdset">bkgdset</a></H3><PRE>
- The <STRONG>bkgdset</STRONG> and <STRONG>wbkgdset</STRONG> routines set the <EM>background</EM> for a window. A
- window's background is a <STRONG>chtype</STRONG> consisting of any combination of
- attributes (i.e., rendition) and a character:
-
- <STRONG>o</STRONG> The attribute part of the background is combined (OR'ed) with all
- non-blank characters that are written into the window with <STRONG>waddch</STRONG>.
-
- <STRONG>o</STRONG> Both the character and attribute parts of the background are
- combined with blank characters that are written into the window.
-
- The background becomes a property of each character and moves with the
- character through any scrolling and insert/delete line/character
- operations.
-
- To the extent possible on a particular terminal, the attribute part of
- the background is displayed as the graphic rendition of the character
- put on the screen.
+ The blank character is a spacing character that populates a window's
+ character cells when their contents are erased without replacement.
+ The background's attributes are combined with all non-blank characters
+ written to the window, as with the <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> and <STRONG><A HREF="curs_insch.3x.html">winsch(3x)</A></STRONG> families
+ of functions.
+ The blank character and attributes of the background combine with
+ characters written to the window as described below. The background
+ becomes a property of the character and moves with it through any
+ scrolling and insert/delete line/character operations.
-</PRE><H3><a name="h3-bkgd">bkgd</a></H3><PRE>
- The <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> functions set the background property of the current
- or specified window and then apply this setting to every character
- position in that window. According to X/Open Curses, it should do
- this:
+ To the extent possible on a given terminal, the attribute part of the
+ background is displayed as the graphic rendition of the character put
+ on the screen.
- <STRONG>o</STRONG> The rendition of every character on the screen is changed to the
- new background rendition.
- <STRONG>o</STRONG> Wherever the former background character appears, it is changed to
- the new background character.
+</PRE><H3><a name="h3-bkgd_wbkgd">bkgd, wbkgd</a></H3><PRE>
+ <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> set the background property of <STRONG>stdscr</STRONG> or the specified
+ window and then apply this setting to every character cell in that
+ window.
- Neither X/Open Curses nor the SVr4 manual pages give details about the
- way the rendition of characters on the screen is updated when <STRONG>bkgd</STRONG> or
- <STRONG>wbkgd</STRONG> is used to change the background character.
+ <STRONG>o</STRONG> The rendition of every character in the window changes to the new
+ background rendition.
- This implementation, like SVr4 curses, does not store the background
- and window attribute contributions to each cell separately. It updates
- the rendition by comparing the character, non-color attributes and
- colors contained in the background. For each cell in the window,
- whether or not it is blank:
-
- <STRONG>o</STRONG> The library first compares the <EM>character</EM>, and if it matches the
- current character part of the background, it replaces that with the
+ <STRONG>o</STRONG> Wherever the former background character appears, it changes to the
new background character.
- When <STRONG>bkgdset</STRONG> is used to set the background character, that does not
- update each cell in the window. A subsequent call to <STRONG>bkgd</STRONG> will
- only modify the <EM>character</EM> in cells which match the current
- background character.
+ <EM>ncurses</EM> updates the rendition of each character cell by comparing the
+ character, non-color attributes, and colors. The library applies to
+ following procedure to each cell in the window, whether or not it is
+ blank.
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> first compares the cell's character to the previously
+ specified blank character; if they match, <EM>ncurses</EM> writes the new
+ blank character to the cell.
- <STRONG>o</STRONG> The library then checks if the cell uses color, i.e., its color
- pair value is nonzero. If not, it simply replaces the attributes
- and color pair in the cell with those from the new background
+ <STRONG>o</STRONG> <EM>ncurses</EM> then checks if the cell uses color, that is, its color pair
+ value is nonzero. If not, it simply replaces the attributes and
+ color pair in the cell with those from the new background
character.
- <STRONG>o</STRONG> If the cell uses color, and that matches the color in the current
- background, the library removes attributes which may have come from
- the current background and adds attributes from the new background.
- It finishes by setting the cell to use the color from the new
- background.
+ <STRONG>o</STRONG> If the cell uses color, and its background color matches that of
+ the current window background, <EM>ncurses</EM> removes attributes that may
+ have come from the current background and adds those from the new
+ background. It finishes by setting the cell's background to use
+ the new window background color.
- <STRONG>o</STRONG> If the cell uses color, and that does not match the color in the
- current background, the library updates only the non-color
- attributes, first removing those which may have come from the
- current background, and then adding attributes from the new
+ <STRONG>o</STRONG> If the cell uses color, and its background color does not match
+ that of the current window background, <EM>ncurses</EM> updates only the
+ non-color attributes, first removing those that may have come from
+ the current background, and then adding attributes from the new
background.
- If the background's character value is zero (0), a space is assumed.
+ <EM>ncurses</EM> treats a background character value of zero (0) as a blank
+ character.
+
+ If the terminal does not support color, or if color has not been
+ initialized with <STRONG><A HREF="curs_color.3x.html">start_color(3x)</A></STRONG>, <EM>ncurses</EM> ignores the new background
+ character's color attribute.
+
- If the terminal does not support color, or if color has not been
- started with <STRONG>start_color</STRONG>, the new background character's color
- attribute will be ignored.
+</PRE><H3><a name="h3-bkgdset_wbkgdset">bkgdset, wbkgdset</a></H3><PRE>
+ <STRONG>bkgdset</STRONG> and <STRONG>wbkgdset</STRONG> manipulate the background of the applicable
+ window, without updating the character cells as <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> do; only
+ future writes reflect the updated background.
</PRE><H3><a name="h3-getbkgd">getbkgd</a></H3><PRE>
- The <STRONG>getbkgd</STRONG> function returns the given window's current background
- character/attribute pair.
+ <STRONG>getbkgd</STRONG> obtains the given window's background character and attribute
+ combination.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4. It
- specifies that <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> return <STRONG>ERR</STRONG> on failure, but gives no
- failure conditions.
+ Functions returning an <EM>int</EM> return <STRONG>OK</STRONG> on success. <STRONG>bkgd</STRONG> returns <STRONG>ERR</STRONG> if
+ the library has not been initialized. <STRONG>wbkgd</STRONG> and <STRONG>getbkgd</STRONG> return <STRONG>ERR</STRONG> if
+ a <EM>WINDOW</EM> pointer argument is null.
- The routines <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> return the integer <STRONG>OK</STRONG>, unless the library
- has not been initialized.
+ <STRONG>bkgdset</STRONG> and <STRONG>wbkgdset</STRONG> do not return a value.
- In contrast, the SVr4.0 manual says <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> may return <STRONG>OK</STRONG> "or a
- non-negative integer if <STRONG>immedok</STRONG> is set", which refers to the return
- value from <STRONG>wrefresh</STRONG> (used to implement the immediate repainting). The
- SVr4 curses <STRONG>wrefresh</STRONG> returns the number of characters written to the
- screen during the refresh. This implementation does not do that.
+ <STRONG>getbkgd</STRONG> returns a window's background character and attribute
+ combination.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>bkgdset</STRONG> and <STRONG>bkgd</STRONG> may be macros.
+ Unusually, there is no <STRONG>wgetbkgd</STRONG> function; <STRONG>getbkgd</STRONG> behaves as one would
+ expect <STRONG>wgetbkgd</STRONG> to, accepting a <EM>WINDOW</EM> pointer argument.
+
+ <STRONG>bkgd</STRONG> and <STRONG>bkgdset</STRONG> may be implemented as macros.
X/Open Curses mentions that the character part of the background must
- be a single-byte value. This implementation, like SVr4, checks to
- ensure that, and will reuse the old background character if the check
- fails.
+ be a single-byte value. <EM>ncurses</EM>, like SVr4 <EM>curses</EM>, checks to ensure
+ that, and will reuse the old background character if the check fails.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4
- (X/Open Curses).
+ X/Open Curses, Issue 4, describes these functions. It specifies that
+ <STRONG>bkgd</STRONG>, <STRONG>wbkgd</STRONG>, and <STRONG>getbkgd</STRONG> return <STRONG>ERR</STRONG> on failure (in the case of the
+ last, this value is cast to <EM>chtype</EM>), but describes no failure
+ conditions.
+
+ The SVr4.0 manual says that <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> may return <STRONG>OK</STRONG> "or a non-
+ negative integer if <STRONG>immedok</STRONG> is set", which refers to the return value
+ from <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>, used to implement the immediate repainting. SVr4
+ <EM>curses</EM>'s <STRONG>wrefresh</STRONG> returns the number of characters written to the
+ screen during the refresh. <EM>ncurses</EM> does not do that.
+
+ Neither X/Open Curses nor the SVr4 manual pages detail how the
+ rendition of characters on the screen updates when <STRONG>bkgd</STRONG> or <STRONG>wbkgd</STRONG>
+ changes the background character. <EM>ncurses,</EM> like SVr4 <EM>curses,</EM> does not
+ (in its non-"wide" configuration) store the background and window
+ attribute contributions to each character cell separately.
</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_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+ <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> describes the corresponding functions in the "wide"
+ configuration of <EM>ncurses.</EM>
+
+ <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_attr.3x.html">curs_attr(3x)</A></STRONG>
-ncurses 6.4 2023-10-07 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-bkgdset">bkgdset</a></li>
-<li><a href="#h3-bkgd">bkgd</a></li>
+<li><a href="#h3-bkgd_wbkgd">bkgd, wbkgd</a></li>
+<li><a href="#h3-bkgdset_wbkgdset">bkgdset, wbkgdset</a></li>
<li><a href="#h3-getbkgd">getbkgd</a></li>
</ul>
</li>