]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_bkgd.3x
ncurses 6.5 - patch 20240504
[ncurses.git] / man / curs_bkgd.3x
index 04fc2f4c438f3255bd4d353460e8c3df559521e9..25ba1f9f72c8b2e5c99257a5090be8341af6f7f6 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey                                *
 .\" Copyright 1998-2015,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_bkgd.3x,v 1.51 2023/12/02 21:02:44 tom Exp $
-.TH curs_bkgd 3X 2023-12-02 "ncurses 6.4" "Library calls"
+.\" $Id: curs_bkgd.3x,v 1.61 2024/04/20 18:54:36 tom Exp $
+.TH curs_bkgd 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -55,116 +55,127 @@ manipulate background of a \fIcurses\fR window of characters
 .nf
 \fB#include <curses.h>
 .PP
-\fBvoid bkgdset(chtype \fIch\fP);
-\fBvoid wbkgdset(WINDOW *\fIwin\fP, chtype \fIch\fP);
-.PP
 \fBint bkgd(chtype \fIch\fP);
 \fBint wbkgd(WINDOW *\fIwin\fP, chtype \fIch\fP);
 .PP
+\fBvoid bkgdset(chtype \fIch\fP);
+\fBvoid wbkgdset(WINDOW *\fIwin\fP, chtype \fIch\fP);
+.PP
 \fBchtype getbkgd(WINDOW *\fIwin\fP);
 .fi
 .SH DESCRIPTION
-.SS bkgdset
-The \fBbkgdset\fP and \fBwbkgdset\fP routines
-set the \fIbackground\fP for a window.
-A window's background is a \fBchtype\fP consisting of
-any combination of attributes (i.e., rendition) and a character:
-.bP
-The attribute part of the background is combined (OR'ed) with all non-blank
-characters that are written into the window with \fBwaddch\fP.
-.bP
-Both the character and attribute parts of the background are combined with
-blank characters that are written into the window.
-.PP
-The background becomes a property of each
-character and moves with the character through any scrolling and
-insert/delete line/character operations.
-.PP
-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.
-.SS bkgd
-The \fBbkgd\fP and \fBwbkgd\fP 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:
+The
+.I background
+of a
+.I curses
+window
+(in the library's non-\*(``wide\*('' configuration)
+is a
+.I \%chtype
+combining a set of attributes
+(see \fB\%curs_attr\fP(3X))
+with a character called the
+.I "blank character."
+.PP
+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 \fB\%waddch\fP(3X) and \fB\%winsch\fP(3X) families of
+functions.
+.PP
+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.
+.PP
+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.
+.SS "bkgd, wbkgd"
+\fB\%bkgd\fP and \fB\%wbkgd\fP set the background property of
+\fB\%stdscr\fP or the specified window and then apply this setting to
+every character cell in that window.
 .bP
-The rendition of every character on the screen is changed to
-the new background rendition.
+The rendition of every character in the window changes to the new
+background rendition.
 .bP
-Wherever the former background character
-appears, it is changed to the new background character.
+Wherever the former background character appears,
+it changes to the new background character.
 .PP
-Neither X/Open Curses nor the SVr4 manual pages give details about
-the way the rendition of characters on the screen is updated when
-\fBbkgd\fP or \fBwbkgd\fP is used to change the background character.
-.PP
-\fI\%ncurses\fP,
-like SVr4 \fIcurses\fP,
-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:
+.I \%ncurses
+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.
 .bP
-The library first compares the \fIcharacter\fP,
-and if it matches the current character part of the background,
-it replaces that with the new background character.
-.IP
-When \fBbkgdset\fP is used to set the background character,
-that does not update each cell in the window.
-A subsequent call to \fBbkgd\fP will only modify the \fIcharacter\fP in
-cells which match the current background character.
+.I \%ncurses
+first compares the cell's character to the previously specified blank
+character;
+if they match,
+.I \%ncurses
+writes the new blank character to the cell.
 .bP
-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 character.
+.I \%ncurses
+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.
 .bP
 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.
+and its background color matches that of the current window background,
+.I \%ncurses
+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.
 .bP
 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 its background color does not match that of the current window
+background,
+.I \%ncurses
+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.
 .PP
-If the background's character value is zero (0), a space is assumed.
+.I \%ncurses
+treats a background character value of zero (0) as a blank character.
 .PP
 If the terminal does not support color,
-or if color has not been started with \fBstart_color\fP,
-the new background character's color attribute will be ignored.
+or if color has not been initialized with \fB\%start_color\fP(3X),
+.I \%ncurses
+ignores the new background character's color attribute.
+.SS "bkgdset, wbkgdset"
+\fB\%bkgdset\fP and \fB\%wbkgdset\fP manipulate the background of
+the applicable window,
+without updating the character cells as \fB\%bkgd\fP and
+\fB\%wbkgd\fP do;
+only future writes reflect the updated background.
 .SS getbkgd
-The \fBgetbkgd\fP function returns the given window's current background
-character/attribute pair.
+\fB\%getbkgd\fP obtains the given window's background character and
+attribute combination.
 .SH RETURN VALUE
 Functions returning an \fIint\fP return \fBOK\fP on success.
 \fB\%bkgd\fP returns \fBERR\fP if the library has not been initialized.
-\fB\%wbkgd\fP and \fB\%getbkgd\fP return \fBERR\fP if the \fI\%WINDOW\fP
+\fB\%wbkgd\fP and \fB\%getbkgd\fP return \fBERR\fP if a \fI\%WINDOW\fP
 pointer argument is null.
 .PP
-In contrast,
-the SVr4.0 manual says \fB\%bkgd\fP and \fB\%wbkgd\fP may return
-\fBOK\fP
-\*(``or a non-negative integer if \fB\%immedok\fP is set\*('',
-which refers to the return value from \fB\%wrefresh\fP
-(used to implement the immediate repainting).
-SVr4 \fIcurses\fP \fB\%wrefresh\fP returns the number of characters
-written to the screen during the refresh.
-\fI\%ncurses\fP does not do that.
+\fB\%bkgdset\fP and \fBwbkgdset\fP do not return a value.
+.PP
+\fB\%getbkgd\fP returns a window's background character and attribute
+combination.
 .SH NOTES
 Unusually,
 there is no \fB\%wgetbkgd\fP function;
 \fB\%getbkgd\fP behaves as one would expect \fB\%wgetbkgd\fP to,
 accepting a \fI\%WINDOW\fP pointer argument.
 .PP
-Note that \fBbkgdset\fP and \fBbkgd\fP may be macros.
+\fB\%bkgd\fP and
+\fB\%bkgdset\fP
+may be implemented as macros.
 .PP
 X/Open Curses mentions that the character part of the background must
 be a single-byte value.
@@ -173,12 +184,43 @@ like SVr4 \fIcurses\fP,
 checks to ensure that,
 and will reuse the old background character if the check fails.
 .SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-It specifies that \fBbkgd\fP and \fBwbkgd\fP return \fBERR\fP on
-failure,
-but gives no failure conditions.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies that
+\fB\%bkgd\fP,
+\fB\%wbkgd\fP,
+and
+\fB\%getbkgd\fP
+return \fBERR\fP on failure
+(in the case of the last,
+this value is cast to
+.IR \%chtype ),
+but describes no failure conditions.
+.PP
+The SVr4.0 manual says that \fB\%bkgd\fP and \fB\%wbkgd\fP may return
+\fBOK\fP
+\*(``or a non-negative integer if \fB\%immedok\fP is set\*('',
+which refers to the return value from \fB\%wrefresh\fP(3X),
+used to implement the immediate repainting.
+SVr4 \fIcurses\fP's \fB\%wrefresh\fP returns the number of characters
+written to the screen during the refresh.
+\fI\%ncurses\fP does not do that.
+.PP
+Neither X/Open Curses nor the SVr4 manual pages detail how the rendition
+of characters on the screen updates when \fB\%bkgd\fP or \fB\%wbkgd\fP
+changes the background character.
+.IR \%ncurses ,
+like SVr4
+.IR curses ,
+does not
+(in its non-\*(``wide\*('' configuration)
+store the background and window attribute contributions to each
+character cell separately.
 .SH SEE ALSO
+\fB\%curs_bkgrnd\fP(3X) describes the corresponding functions in the
+\*(``wide\*('' configuration of
+.IR \%ncurses .
+.PP
 \fB\%curses\fP(3X),
 \fB\%curs_addch\fP(3X),
-\fB\%curs_attr\fP(3X),
-\fB\%curs_outopts\fP(3X)
+\fB\%curs_attr\fP(3X)