]> ncurses.scripts.mit.edu Git - ncurses.git/blob - man/curs_color.3x
ncurses 6.4 - patch 20231001
[ncurses.git] / man / curs_color.3x
1 .\"***************************************************************************
2 .\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
3 .\" Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
4 .\"                                                                          *
5 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
6 .\" copy of this software and associated documentation files (the            *
7 .\" "Software"), to deal in the Software without restriction, including      *
8 .\" without limitation the rights to use, copy, modify, merge, publish,      *
9 .\" distribute, distribute with modifications, sublicense, and/or sell       *
10 .\" copies of the Software, and to permit persons to whom the Software is    *
11 .\" furnished to do so, subject to the following conditions:                 *
12 .\"                                                                          *
13 .\" The above copyright notice and this permission notice shall be included  *
14 .\" in all copies or substantial portions of the Software.                   *
15 .\"                                                                          *
16 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
17 .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
18 .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
19 .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
20 .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
21 .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
22 .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
23 .\"                                                                          *
24 .\" Except as contained in this notice, the name(s) of the above copyright   *
25 .\" holders shall not be used in advertising or otherwise to promote the     *
26 .\" sale, use or other dealings in this Software without prior written       *
27 .\" authorization.                                                           *
28 .\"***************************************************************************
29 .\"
30 .\" $Id: curs_color.3x,v 1.84 2023/09/30 20:13:18 tom Exp $
31 .TH curs_color 3X 2023-09-30 "ncurses 6.4" "Library calls"
32 .ie \n(.g .ds `` \(lq
33 .el       .ds `` ``
34 .ie \n(.g .ds '' \(rq
35 .el       .ds '' ''
36 .de bP
37 .ie n  .IP \(bu 4
38 .el    .IP \(bu 2
39 ..
40 .ds n 5
41 .SH NAME
42 \fB\%start_color\fP,
43 \fB\%has_colors\fP,
44 \fB\%can_change_color\fP,
45 \fB\%init_pair\fP,
46 \fB\%init_color\fP,
47 \fB\%init_extended_pair\fP,
48 \fB\%init_extended_color\fP,
49 \fB\%color_content\fP,
50 \fB\%pair_content\fP,
51 \fB\%extended_color_content\fP,
52 \fB\%extended_pair_content\fP,
53 \fB\%reset_color_pairs\fP,
54 \fB\%COLOR_PAIR\fP,
55 \fB\%PAIR_NUMBER\fP \-
56 manipulate terminal colors with \fIcurses\fR
57 .SH SYNOPSIS
58 .nf
59 \fB#include <curses.h>\fP
60 .PP
61 \fBint start_color(void);\fP
62 .PP
63 \fBbool has_colors(void);\fP
64 \fBbool can_change_color(void);\fP
65 .PP
66 \fBint init_pair(short \fIpair\fB, short \fIf\fB, short \fIb\fB);\fR
67 \fBint init_color(short \fIcolor\fB, short \fIr\fB, short \fIg\fB, short \fIb\fB);\fR
68 \fI/* extensions */\fP
69 \fBint init_extended_pair(int \fIpair\fB, int \fIf\fB, int \fIb\fB);\fR
70 \fBint init_extended_color(int \fIcolor\fB, int \fIr\fB, int \fIg\fB, int \fIb\fB);\fR
71 .PP
72 \fBint color_content(short \fIcolor\fB, short *\fIr\fB, short *\fIg\fB, short *\fIb\fB);\fR
73 \fBint pair_content(short \fIpair\fB, short *\fIf\fB, short *\fIb\fB);\fR
74 \fI/* extensions */\fP
75 \fBint extended_color_content(int \fIcolor\fB, int *\fIr\fB, int *\fIg\fB, int *\fIb\fB);\fR
76 \fBint extended_pair_content(int \fIpair\fB, int *\fIf\fB, int *\fIb\fB);\fR
77 .PP
78 \fI/* extensions */\fP
79 \fBvoid reset_color_pairs(void);\fP
80 .PP
81 \fBint COLOR_PAIR(int \fIn\fB);\fR
82 \fBPAIR_NUMBER(\fIattrs\fB);\fR
83 .fi
84 .SH DESCRIPTION
85 .SS Overview
86 \fIcurses\fP supports color attributes on terminals with that capability.
87 To use these routines \fB\%start_color\fP must be called, usually right after
88 \fB\%initscr\fP.
89 Colors are always used in pairs (referred to as color-pairs).
90 A color-pair consists of a foreground color (for characters) and a background
91 color (for the blank field on which the characters are displayed).
92 A programmer initializes a color-pair with the routine \fB\%init_pair\fP.
93 After it has been initialized, \fB\%COLOR_PAIR\fP(\fIn\fP)
94 can be used to convert the pair to a video attribute.
95 .PP
96 If a terminal is capable of redefining colors, the programmer can use the
97 routine \fB\%init_color\fP to change the definition of a color.
98 The routines \fB\%has_colors\fP and \fB\%can_change_color\fP
99 return \fBTRUE\fP or \fBFALSE\fP,
100 depending on whether the terminal has color capabilities and whether the
101 programmer can change the colors.
102 The routine \fB\%color_content\fP allows a
103 programmer to extract the amounts of red, green, and blue components in an
104 initialized color.
105 The routine \fB\%pair_content\fP allows a programmer to find
106 out how a given color-pair is currently defined.
107 .SS Color Rendering
108 The \fIcurses\fP library combines these inputs to produce the
109 actual foreground and background colors shown on the screen:
110 .bP
111 per-character video attributes (e.g., via \fB\%waddch\fP),
112 .bP
113 the window attribute (e.g., by \fB\%wattrset\fP), and
114 .bP
115 the background character (e.g., \fB\%wbkgdset\fP).
116 .PP
117 Per-character and window attributes are usually set by a parameter containing
118 video attributes including a color pair value.
119 Some functions such as \fB\%wattr_set\fP use a separate parameter which
120 is the color pair number.
121 .PP
122 The background character is a special case: it includes a character value,
123 just as if it were passed to \fB\%waddch\fP.
124 .PP
125 The \fIcurses\fP library does the actual work of combining these color
126 pairs in an internal function called from \fB\%waddch\fP:
127 .bP
128 If the parameter passed to \fB\%waddch\fP is \fIblank\fP,
129 and it uses the special color pair 0,
130 .RS
131 .bP
132 \fIcurses\fP next checks the window attribute.
133 .bP
134 If the window attribute does not use color pair 0,
135 \fIcurses\fP uses the color pair from the window attribute.
136 .bP
137 Otherwise, \fIcurses\fP uses the background character.
138 .RE
139 .bP
140 If the parameter passed to \fB\%waddch\fP is \fInot blank\fP,
141 or it does not use the special color pair 0,
142 \fIcurses\fP prefers the color pair from the parameter,
143 if it is nonzero.
144 Otherwise, it tries the window attribute next, and finally the
145 background character.
146 .PP
147 Some \fIcurses\fP functions such as \fB\%wprintw\fP call \fB\%waddch\fP.
148 Those do not combine its parameter with a color pair.
149 Consequently those calls use only the window attribute or
150 the background character.
151 .SH CONSTANTS
152 In \fB\%<curses.h>\fP the following macros are defined.
153 These are the standard colors (ISO-6429).
154 \fIcurses\fP also assumes that \fB\%COLOR_BLACK\fP is the default
155 background color for all terminals.
156 .PP
157 .nf
158       \fBCOLOR_BLACK\fP
159       \fBCOLOR_RED\fP
160       \fBCOLOR_GREEN\fP
161       \fBCOLOR_YELLOW\fP
162       \fBCOLOR_BLUE\fP
163       \fBCOLOR_MAGENTA\fP
164       \fBCOLOR_CYAN\fP
165       \fBCOLOR_WHITE\fP
166 .fi
167 .PP
168 Some terminals support more than the eight (8) \*(``ANSI\*('' colors.
169 There are no standard names for those additional colors.
170 .SH VARIABLES
171 .SS COLORS
172 is initialized by \fB\%start_color\fP to the maximum number of colors
173 the terminal can support.
174 .SS COLOR_PAIRS
175 is initialized by \fB\%start_color\fP to the maximum number of color pairs
176 the terminal can support.
177 .SH FUNCTIONS
178 .SS start_color
179 The \fB\%start_color\fP routine requires no arguments.
180 It must be called if the programmer wants to use colors, and before any other
181 color manipulation routine is called.
182 It is good practice to call this routine right after \fB\%initscr\fP.
183 \fB\%start_color\fP does this:
184 .bP
185 It initializes two global variables, \fB\%COLORS\fP and
186 \fB\%COLOR_PAIRS\fP (respectively defining the maximum number of colors
187 and color-pairs the terminal can support).
188 .bP
189 It initializes the special color pair \fB\%0\fP to the default foreground
190 and background colors.
191 No other color pairs are initialized.
192 .bP
193 It restores the colors on the terminal to the values
194 they had when the terminal was just turned on.
195 .bP
196 If the terminal supports the \fBinitc\fP \%(\fBinitialize_color\fP) capability,
197 \fB\%start_color\fP
198 initializes its internal table representing the
199 red, green, and blue components of the color palette.
200 .IP
201 The components depend on whether the terminal uses
202 CGA (aka \*(``ANSI\*('') or
203 HLS (i.e., the \fBhls\fP \%(\fBhue_lightness_saturation\fP) capability is set).
204 The table is initialized first for eight basic colors
205 (black, red, green, yellow, blue, magenta, cyan, and white),
206 using weights that depend upon the CGA/HLS choice.
207 For \*(``ANSI\*('' colors the weights are \fB680\fP or \fB0\fP
208 depending on whether the corresponding
209 red, green, or blue component is used or not.
210 That permits using \fB1000\fP to represent bold/bright colors.
211 After the initial eight colors
212 (if the terminal supports more than eight colors)
213 the components are initialized using the same pattern,
214 but with weights of \fB1000\fP.
215 SVr4 uses a similar scheme, but uses \fB1000\fP
216 for the components of the initial eight colors.
217 .IP
218 \fB\%start_color\fP does not attempt to set the terminal's color palette
219 to match its built-in table.
220 An application may use \fB\%init_color\fP to alter the internal table
221 along with the terminal's color.
222 .PP
223 These limits apply to color values and color pairs.
224 Values outside these limits are not legal, and may result in a runtime error:
225 .bP
226 \fBCOLORS\fP corresponds to the terminal database's \fB\%max_colors\fP capability,
227 (see \fB\%terminfo\fP(\*n)).
228 .bP
229 color values are expected to be in the range \fB0\fP to \fB\%COLORS\-1\fP,
230 inclusive (including \fB0\fP and \fB\%COLORS\-1\fP).
231 .bP
232 a special color value \fB\-1\fP is used in certain extended functions
233 to denote the \fIdefault color\fP (see \fB\%use_default_colors\fP(3X)).
234 .bP
235 \fB\%COLOR_PAIRS\fP corresponds to
236 the terminal database's \fB\%max_pairs\fP capability,
237 (see \fB\%terminfo\fP(\*n)).
238 .bP
239 legal color pair values are in the range \fB1\fP to \fB\%COLOR_PAIRS\-1\fP,
240 inclusive.
241 .bP
242 color pair \fB0\fP is special; it denotes \*(``no color\*(''.
243 .IP
244 Color pair \fB0\fP is assumed to be white on black,
245 but is actually whatever the terminal implements before color is initialized.
246 It cannot be modified by the application.
247 .SS has_colors
248 The \fB\%has_colors\fP routine requires no arguments.
249 It returns \fBTRUE\fP if
250 the terminal can manipulate colors; otherwise, it returns \fBFALSE\fP.
251 This routine facilitates writing terminal-independent programs.
252 For example, a programmer can use it to decide
253 whether to use color or some other video attribute.
254 .SS can_change_color
255 The \fB\%can_change_color\fP routine requires no arguments.
256 It returns \fBTRUE\fP if the terminal supports colors
257 and can change their definitions;
258 other, it returns \fBFALSE\fP.
259 This routine facilitates writing terminal-independent programs.
260 .SS init_pair
261 The \fB\%init_pair\fP routine changes the definition of a color-pair.
262 It takes three arguments:
263 the number of the color-pair to be changed, the foreground
264 color number, and the background color number.
265 For portable applications:
266 .bP
267 The first argument must be a legal color pair value.
268 If default colors are used (see \fB\%use_default_colors\fP(3X))
269 the upper limit is adjusted to allow for extra pairs which use
270 a default color in foreground and/or background.
271 .bP
272 The second and third arguments must be legal color values.
273 .PP
274 If the color-pair was previously initialized,
275 the screen is refreshed and all occurrences of that color-pair
276 are changed to the new definition.
277 .PP
278 As an extension, ncurses allows you to set color pair \fB0\fP via
279 the \fB\%assume_default_colors\fP(3X) routine, or to specify the use of
280 default colors (color number \fB\-1\fP) if you first invoke the
281 \fB\%use_default_colors\fP(3X) routine.
282 .SS init_extended_pair
283 Because \fB\%init_pair\fP uses signed \fBshort\fPs for its parameters,
284 that limits color-pairs and color-values
285 to 32767 on modern hardware.
286 The extension \fB\%init_extended_pair\fP uses \fBint\fPs
287 for the color-pair and color-value,
288 allowing a larger number of colors to be supported.
289 .SS init_color
290 The \fB\%init_color\fP routine changes the definition of a color.
291 It takes four arguments:
292 the number of the color to be changed followed by three RGB values
293 (for the amounts of red, green, and blue components).
294 .bP
295 The first argument must be a legal color value;
296 default colors are not allowed here.
297 (See the section \fB\%Colors\fP for the default color index.)
298 .bP
299 Each of the last three arguments
300 must be a value in the range \fB0\fP through \fB1000\fP.
301 .PP
302 When \fB\%init_color\fP is used, all
303 occurrences of that color on the screen immediately change to the new
304 definition.
305 .SS init_extended_color
306 Because \fB\%init_color\fP uses signed \fBshort\fPs for its parameters,
307 that limits color-values and their red, green, and blue components
308 to 32767 on modern hardware.
309 The extension \fB\%init_extended_color\fP uses \fBint\fPs
310 for the color value and
311 for setting the red, green, and blue components,
312 allowing a larger number of colors to be supported.
313 .SS color_content
314 The \fB\%color_content\fP routine gives programmers a way to find the intensity
315 of the red, green, and blue (RGB) components in a color.
316 It requires four arguments: the color number, and three addresses
317 of \fBshort\fRs for storing
318 the information about the amounts of red, green, and blue components in the
319 given color.
320 .bP
321 The first argument must be a legal color value, i.e.,
322 \fB0\fP through \fB\%COLORS\-1\fP, inclusive.
323 .bP
324 The values that are stored at the addresses pointed to by the
325 last three arguments are in the range
326 \fB0\fP (no component) through \fB1000\fP
327 (maximum amount of component), inclusive.
328 .SS extended_color_content
329 Because \fB\%color_content\fP uses signed \fBshort\fPs for its parameters,
330 that limits color-values and their red, green, and blue components
331 to 32767 on modern hardware.
332 The extension \fB\%extended_color_content\fP uses \fBint\fPs
333 for the color value and
334 for returning the red, green, and blue components,
335 allowing a larger number of colors to be supported.
336 .SS pair_content
337 The \fB\%pair_content\fP routine allows programmers to find out what colors a
338 given color-pair consists of.
339 It requires three arguments: the color-pair
340 number, and two addresses of \fBshort\fRs for storing the foreground and the
341 background color numbers.
342 .bP
343 The first argument must be a legal color value,
344 i.e., in the range \fB1\fP through \fB\%COLOR_PAIRS\-1\fP, inclusive.
345 .bP
346 The values that are stored at the addresses pointed
347 to by the second and third arguments are in the
348 range \fB0\fP through \fB\%COLORS\fP, inclusive.
349 .SS extended_pair_content
350 Because \fB\%pair_content\fP uses signed \fBshort\fPs for its parameters,
351 that limits color-pair and color-values to 32767 on modern hardware.
352 The extension \fB\%extended_pair_content\fP uses \fBint\fPs
353 for the color pair and
354 for returning the foreground and background colors,
355 allowing a larger number of colors to be supported.
356 .SS reset_color_pairs
357 The extension \fB\%reset_color_pairs\fP tells ncurses to discard all
358 of the color-pair information which was set with \fB\%init_pair\fP.
359 It also touches the current- and standard-screens, allowing an application to
360 switch color palettes rapidly.
361 .SS PAIR_NUMBER
362 \fB\%PAIR_NUMBER(\fIattrs\fR) extracts the color
363 value from its \fIattrs\fP parameter and returns it as a color pair number.
364 .SS COLOR_PAIR
365 Its inverse \fB\%COLOR_PAIR(\fIn\fB)\fR converts a color pair number
366 to an attribute.
367 Attributes can hold color pairs in the range 0 to 255.
368 If you need a color pair larger than that, you must use functions
369 such as \fB\%attr_set\fP (which pass the color pair as a separate parameter)
370 rather than the legacy functions such as \fB\%attrset\fP.
371 .SH RETURN VALUE
372 The routines \fB\%can_change_color\fP and \fB\%has_colors\fP return \fBTRUE\fP
373 or \fBFALSE\fP.
374 .PP
375 All other routines return the integer \fBERR\fP upon failure and an \fBOK\fP
376 (SVr4 specifies only \*(``an integer value
377 other than \fBERR\fP\*('') upon successful completion.
378 .PP
379 X/Open defines no error conditions.
380 SVr4 does document some error conditions which apply in general:
381 .bP
382 This implementation will return \fBERR\fP on attempts to
383 use color values outside the range \fB0\fP to \fB\%COLORS\fP\-1
384 (except for the default colors extension),
385 or use color pairs outside the range \fB0\fP to \fB\%COLOR_PAIRS\-1\fP.
386 .IP
387 Color values used in \fB\%init_color\fP must be
388 in the range \fB0\fP to \fB1000\fP.
389 .IP
390 An error is returned from all functions
391 if the terminal has not been initialized.
392 .IP
393 An error is returned from secondary functions such as \fB\%init_pair\fP
394 if \fB\%start_color\fP was not called.
395 .bP
396 SVr4 does much the same, except that
397 it returns \fBERR\fP from \fB\%pair_content\fP if the pair was not initialized
398 using \fB\%init_pairs\fP
399 and
400 it returns \fBERR\fP from \fB\%color_content\fP
401 if the terminal does not support changing colors.
402 .IP
403 This implementation does not return \fBERR\fP for either case.
404 .PP
405 Specific functions make additional checks:
406 .RS 3
407 .TP 5
408 \fB\%init_color\fP
409 returns an error if the terminal does not support
410 this feature, e.g., if the \fB\%initialize_color\fP capability is absent
411 from the terminal description.
412 .TP 5
413 \fB\%start_color\fP
414 returns an error if the color table cannot be allocated.
415 .RE
416 .SH NOTES
417 In the \fIncurses\fP implementation, there is a separate color activation flag,
418 color palette, color pairs table,
419 and associated \fB\%COLORS\fP and \fB\%COLOR_PAIRS\fP counts
420 for each screen; the \fB\%start_color\fP function only affects the current
421 screen.
422 The SVr4/XSI interface is not really designed with this in mind, and
423 historical implementations may use a single shared color palette.
424 .PP
425 Setting an implicit background color via a color pair affects only
426 character cells that a character write operation explicitly touches.
427 To change
428 the background color used when parts of a window are blanked by erasing or
429 scrolling operations, see \fB\%curs_bkgd\fP(3X).
430 .PP
431 Several caveats apply on older x86 machines
432 (e.g., i386, i486) with VGA-compatible graphics:
433 .bP
434 COLOR_YELLOW is actually brown.
435 To get yellow, use COLOR_YELLOW combined with the \fBA_BOLD\fP attribute.
436 .bP
437 The A_BLINK attribute should in theory cause the background to go bright.
438 This often fails to work, and even some cards for which it mostly works
439 (such as the
440 Paradise and compatibles) do the wrong thing when you try to set a bright
441 \*(``yellow\*('' background (you get a blinking yellow foreground instead).
442 .bP
443 Color RGB values are not settable.
444 .SH HISTORY
445 SVr3.2 introduced color support to curses in 1987.
446 .PP
447 SVr4 made internal changes,
448 e.g., moving the storage for the color state
449 from \fBSP\fP (the \fBSCREEN\fP structure)
450 to \fB\%cur_term\fP (the \fB\%TERMINAL\fP structure),
451 but provided the same set of library functions.
452 .PP
453 SVr4 curses limits the number of color pairs to 64,
454 reserving color pair zero (0) as the terminal's initial uncolored state.
455 This limit arises because the color pair information is a bitfield
456 in the \fB\%chtype\fP data type (denoted by \fB\%A_COLOR\fP).
457 .PP
458 Other implementations of curses had different limits:
459 .bP
460 PCCurses (1987-1990) provided for only eight (8) colors.
461 .bP
462 PDCurses (1992-present) inherited the 8-color limitation from PCCurses,
463 but changed this to 256 in version 2.5 (2001),
464 along with changing \fB\%chtype\fP from 16-bits to 32-bits.
465 .bP
466 X/Open Curses (1992-present)
467 added a new structure \fB\%cchar_t\fP to store the character,
468 attributes and color-pair values, allowing increased range of color-pairs.
469 Both color-pairs and color-values used a signed \fBshort\fP,
470 limiting values to 15 bits.
471 .bP
472 ncurses (1992-present) uses eight bits for \fB\%A_COLOR\fP in \fB\%chtype\fP values.
473 .IP
474 Version 5.3 provided a wide-character interface (2002),
475 but left color-pairs as part of the attributes-field.
476 .IP
477 Since version 6 (2015),
478 ncurses uses a separate \fBint\fP for color-pairs in the \fB\%cchar_t\fP values.
479 When those color-pair values fit in 8 bits,
480 ncurses allows color-pairs to be manipulated
481 via the functions using \fB\%chtype\fP values.
482 .bP
483 NetBSD curses used 6 bits from
484 2000 (when colors were first supported) until 2004.
485 At that point, NetBSD changed to use 10 bits.
486 As of 2021, that size is unchanged.
487 Like ncurses before version 6,
488 the NetBSD color-pair information is stored in
489 the attributes field of \fB\%cchar_t\fP, limiting the number of color-pairs
490 by the size of the bitfield.
491 .SH PORTABILITY
492 .SS Extensions
493 The functions marked as extensions were designed for \fBncurses\fP(3X),
494 and are not found in SVr4 curses, 4.4BSD curses,
495 or any other previous version of curses.
496 .SS Standards
497 This implementation satisfies XSI Curses's minimum maximums
498 for \fB\%COLORS\fP and \fB\%COLOR_PAIRS\fP.
499 .PP
500 The \fB\%init_pair\fP routine accepts negative values of foreground
501 and background color to support the \fB\%use_default_colors\fP(3X) extension,
502 but only if that routine has been first invoked.
503 .PP
504 The assumption that \fB\%COLOR_BLACK\fP is the default
505 background color for all terminals can be modified using the
506 \fB\%assume_default_colors\fP(3X) extension.
507 .PP
508 This implementation checks the pointers,
509 e.g., for the values returned by
510 \fB\%color_content\fP and \fB\%pair_content\fP,
511 and will treat those as optional parameters when null.
512 .PP
513 X/Open Curses does not specify a limit for the number of colors and
514 color pairs which a terminal can support.
515 However, in its use of \fBshort\fP for the parameters,
516 it carries over SVr4's implementation detail for the compiled
517 terminfo database, which uses signed 16-bit numbers.
518 This implementation provides extended versions of those functions
519 which use \fBshort\fP parameters,
520 allowing applications to use larger color- and pair-numbers.
521 .PP
522 The \fB\%reset_color_pairs\fP function is an extension of ncurses.
523 .SH SEE ALSO
524 \fB\%curses\fP(3X),
525 \fB\%curs_initscr\fP(3X),
526 \fB\%curs_attr\fP(3X),
527 \fB\%curs_variables\fP(3X),
528 \fB\%default_colors\fP(3X)