X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=man%2Fcurs_bkgd.3x;h=f9199ce077bb6741303246b3c80482ee37b255bd;hb=6662c1ccb49cb09d0f2cec2ec6150410a0fd0f7f;hp=b2d768a441d927bd8fe0c97aeac001da0246bdc0;hpb=a8987e73ec254703634802b4f7ee30d3a485524d;p=ncurses.git diff --git a/man/curs_bkgd.3x b/man/curs_bkgd.3x index b2d768a4..f9199ce0 100644 --- a/man/curs_bkgd.3x +++ b/man/curs_bkgd.3x @@ -1,5 +1,6 @@ .\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * +.\" Copyright 2018-2021,2022 Thomas E. Dickey * +.\" Copyright 1998-2015,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 * @@ -26,73 +27,143 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: curs_bkgd.3x,v 1.19 2003/12/27 18:50:40 tom Exp $ +.\" $Id: curs_bkgd.3x,v 1.35 2022/06/25 21:55:45 tom Exp $ +.de bP +.ie n .IP \(bu 4 +.el .IP \(bu 2 +.. .TH curs_bkgd 3X "" .SH NAME -\fBbkgdset\fR, \fBwbkgdset\fR, -\fBbkgd\fR, \fBwbkgd\fR, -\fBgetbkgd\fR - \fBcurses\fR window background manipulation routines +\fBbkgdset\fP, \fBwbkgdset\fP, +\fBbkgd\fP, \fBwbkgd\fP, +\fBgetbkgd\fP \- \fBcurses\fP window background manipulation routines .SH SYNOPSIS -\fB#include \fR +\fB#include \fP .PP -\fBvoid bkgdset(chtype ch);\fR +\fBvoid bkgdset(chtype \fIch\fB);\fR .br -\fBvoid wbkgdset(WINDOW *win, chtype ch);\fR +\fBvoid wbkgdset(WINDOW *\fIwin, chtype \fIch\fB);\fR +.sp +\fBint bkgd(chtype \fIch\fB);\fR .br -\fBint bkgd(chtype ch);\fR -.br -\fBint wbkgd(WINDOW *win, chtype ch);\fR -.br -\fBchtype getbkgd(WINDOW *win);\fR +\fBint wbkgd(WINDOW *\fIwin\fB, chtype \fIch\fB);\fR +.sp +\fBchtype getbkgd(WINDOW *\fIwin\fB);\fR .br .SH DESCRIPTION -The \fBbkgdset\fR and \fBwbkgdset\fR routines manipulate the -background of the named window. -The window background is a \fBchtype\fR consisting of -any combination of attributes (i.e., rendition) and a character. +.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\fR. Both -the character and attribute parts of the background are combined with -the blank characters. The background becomes a property of the +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 .PP -The \fBbkgd\fR and \fBwbkgd\fR functions +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: +and then apply this setting to every character position in that window. +According to X/Open Curses, it should do this: .PP -.RS +.bP The rendition of every character on the screen is changed to the new background rendition. -.PP +.bP Wherever the former background character appears, it is changed to the new background character. -.RE .PP -The \fBgetbkgd\fR function returns the given window's current background +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 +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: +.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. +.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. +.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. +.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 then adding attributes from the new background. +.PP +If the background's character value is zero (0), a space is assumed. +.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. +.SS getbkgd +.PP +The \fBgetbkgd\fP function returns the given window's current background character/attribute pair. .SH RETURN VALUE -The routines \fBbkgd\fR and \fBwbkgd\fR return the integer \fBOK\fR. -The SVr4.0 manual says "or a non-negative integer if \fBimmedok\fR is set", -but this appears to be an error. -.SH NOTES -Note that \fBbkgdset\fR and \fBbkgd\fR may be macros. -.SH PORTABILITY +.PP These functions are described in the XSI Curses standard, Issue 4. -It specifies that \fBbkgd\fR and \fBwbkgd\fR return \fBERR\fR on failure. +It specifies that \fBbkgd\fP and \fBwbkgd\fP return \fBERR\fP on failure, but gives no failure conditions. +.PP +The routines \fBbkgd\fP and \fBwbkgd\fP return the integer \fBOK\fP, +unless the library has not been initialized. +.PP +In contrast, +the SVr4.0 manual says \fBbkgd\fP and \fBwbkgd\fP may return \fBOK\fP +"or a non-negative integer if \fBimmedok\fP is set", +which refers to the return value from \fBwrefresh\fP +(used to implement the immediate repainting). +The SVr4 curses \fBwrefresh\fP returns the number of characters +written to the screen during the refresh. +This implementation does not do that. +.SH NOTES +.PP +Note that \fBbkgdset\fP and \fBbkgd\fP may be macros. +.PP +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. +.SH PORTABILITY +.PP +These functions are described in the XSI Curses standard, Issue 4 +(X/Open Curses). .SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_addch\fR(3X), -\fBcurs_attr\fR(3X), -\fBcurs_outopts\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: +.na +.PP +\fBcurses\fP(3X), +\fBcurs_addch\fP(3X), +\fBcurs_attr\fP(3X), +\fBcurs_outopts\fP(3X)