X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=man%2Fcurs_bkgd.3x;h=051d5fda06830f9471072a62a6991055944f85ff;hp=efd4f82763971d1d1e684db380497f9bed96ba18;hb=fae162795e065e5901068152e91f2962b6b247f3;hpb=b1f61d9f3aa244512045a6b02e759825d7049d34;ds=sidebyside diff --git a/man/curs_bkgd.3x b/man/curs_bkgd.3x index efd4f827..051d5fda 100644 --- a/man/curs_bkgd.3x +++ b/man/curs_bkgd.3x @@ -1,5 +1,6 @@ .\"*************************************************************************** -.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. * +.\" Copyright 2018-2019,2020 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,77 +27,135 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: curs_bkgd.3x,v 1.14 2000/07/01 17:39:31 tom Exp $ +.\" $Id: curs_bkgd.3x,v 1.31 2020/10/17 23:12:52 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 -.. +\fBgetbkgd\fR \- \fBcurses\fR window background manipulation routines .SH SYNOPSIS \fB#include \fR - -\fBvoid bkgdset(const chtype ch);\fR -.br -\fBvoid wbkgdset(WINDOW *win, const chtype ch);\fR +.PP +\fBvoid bkgdset(chtype \fP\fIch\fP\fB);\fR .br -\fBint bkgd(const chtype ch);\fR +\fBvoid wbkgdset(WINDOW *\fP\fIwin, chtype \fP\fIch\fP\fB);\fR +.sp +\fBint bkgd(chtype \fP\fIch\fP\fB);\fR .br -\fBint wbkgd(WINDOW *win, const chtype ch);\fR +\fBint wbkgd(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB);\fR +.sp +\fBchtype getbkgd(WINDOW *\fP\fIwin\fP\fB);\fR .br -\fBchtype getbkgd(WINDOW *win);\fR -.br -.. .SH DESCRIPTION +.SS bkgdset 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. 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\fR. +Both the character and attribute parts of the background are combined with +the blank characters. +The background becomes a property of the 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 +.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 set the background property of the current or specified window -and then apply this setting to every character position in that window: - -.RS +and then apply this setting to every character position in that window. +According to X/Open Curses, it should do this: +.PP +.bP The rendition of every character on the screen is changed to the new background rendition. - +.bP Wherever the former background character appears, it is changed to the new background character. -.RE - +.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 +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. +.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, 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\fR 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. -.. +.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, +but gives no failure conditions. +.PP +The routines \fBbkgd\fR and \fBwbkgd\fR return the integer \fBOK\fR, +unless the library has not been initialized. +.PP +In contrast, +the SVr4.0 manual says \fBbkgd\fR and \fBwbkgd\fR may return \fBOK\fP +"or a non-negative integer if \fBimmedok\fR 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\fR and \fBbkgd\fR 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 -These functions are described in the XSI Curses standard, Issue 4. The draft -does not include \fBconst\fR qualifiers on the arguments. The standard -specifies that \fBbkgd\fR and \fBwbkgd\fR return \fBERR\fR, on failure. but -gives no failure conditions. -.. +.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_outopts\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: +.na +.PP +\fBcurses\fR(3X), +\fBcurs_addch\fR(3X), +\fBcurs_attr\fR(3X), +\fBcurs_outopts\fR(3X)