.\"***************************************************************************
-.\" Copyright (c) 2017,2018 Free Software Foundation, Inc. *
+.\" Copyright 2018-2021,2022 Thomas E. Dickey *
+.\" Copyright 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 *
.\"
.\" Author: Thomas E. Dickey
.\"
-.\" $Id: new_pair.3x,v 1.11 2018/04/01 00:01:17 tom Exp $
+.\" $Id: new_pair.3x,v 1.19 2022/02/12 20:03:40 tom Exp $
.TH new_pair 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.de NE
.fi
.ft R
-.in -4
+.ie n .in -4
+.el .in -2
..
.SH NAME
\fBalloc_pair\fP,
.SH SYNOPSIS
\fB#include <curses.h>\fP
.sp
-\fBint alloc_pair(int fg, int bg);\fP
+\fBint alloc_pair(int \fIfg\fB, int \fIbg\fB);\fR
.br
-\fBint find_pair(int fg, int bg);\fP
+\fBint find_pair(int \fIfg\fB, int \fIbg\fB);\fR
.br
-\fBint free_pair(int pair);\fP
+\fBint free_pair(int \fIpair\fB);\fR
.SH DESCRIPTION
These functions are an extension to the curses library.
They permit an application to dynamically allocate a color pair using
.bP
Color pairs are the curses library's way of managing a color palette
on a terminal.
-If the library does not keep track of the \fIcombinations\fP of
+If the library does not keep track of the \fIcombinations\fP of
colors which are displayed, it will be inefficient.
.bP
For simple terminal emulators
it is convenient to use the maximum number of combinations
as the limit on color pairs:
.NS
-\fBCOLORS\fP\fI * \fP\fBCOLORS\fP
+\fBCOLORS\fI * \fBCOLORS\fR
.NE
.bP
-Terminals which support \fIdefault colors\fP distinct from \*(``ANSI colors\*(''
+Terminals which support \fIdefault colors\fP distinct
+from \*(``ANSI colors\*(''
add to the possible combinations, producing this total:
.NS
-\fI( \fP\fBCOLORS\fP\fI + 1 ) * ( \fP\fBCOLORS\fP\fI + 1 )\fP
+\fI( \fBCOLORS\fI + 1 ) * ( \fBCOLORS\fI + 1 )\fR
.NE
.bP
An application might use up to a few dozen color pairs to
implement a predefined color scheme.
.IP
Beyond that lies in the realm of programs using the foreground
-and background colors for \*(``ASCII art\*(''
+and background colors for \*(``ASCII art\*(''
(or some other non-textual application).
.IP
Also beyond those few dozen pairs, the required size for a table
foreground and background color, and
checks if that color combination is already associated with a color pair.
.bP
-If the combination already exists, \fBalloc_pair\fP returns the existing pair.
+If the combination already exists,
+\fBalloc_pair\fP returns the existing pair.
.bP
-If the combination does not exist, \fBalloc_pair\fP allocates a new color pair and returns that.
+If the combination does not exist,
+\fBalloc_pair\fP allocates a new color pair and returns that.
.bP
If the table fills up, \fBalloc_pair\fP discards the least-recently
allocated entry using \fBfree_pair\fP and allocates a new color pair.
.PP
All of the color pairs are allocated from a table of possible color pairs.
-The size of the table is determined by the terminfo \fIpairs\fP capability.
+The size of the table is determined by the terminfo \fBpairs\fP capability.
The table is shared with \fBinit_pair\fP;
in fact \fBalloc_pair\fP calls \fBinit_pair\fP after
updating the ncurses library's fast index to the colors versus color pairs.
The \fBalloc_pair\fP function returns a color pair number in the range
1 through \fBCOLOR_PAIRS\fP\-1, unless it encounters an error updating
its fast index to the color pair values, preventing it from allocating
-a color pair. In that case, it returns \-1.
+a color pair.
+In that case, it returns \-1.
.PP
The \fBfind_pair\fP function returns a color pair number if the
given color combination has been associated with a color pair,
Likewise, \fBfree_pair\fP returns \fBOK\fP unless it encounters an
error updating the fast index or if no such color pair is in use.
.SH PORTABILITY
-These routines are specific to ncurses. They were not supported on
-Version 7, BSD or System V implementations. It is recommended that
+These routines are specific to ncurses.
+They were not supported on
+Version 7, BSD or System V implementations.
+It is recommended that
any code depending on them be conditioned using NCURSES_VERSION.
.SH SEE ALSO
-\fBcurs_color\fR(3X).
+\fBcurs_color\fP(3X).
.SH AUTHOR
Thomas Dickey.