.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2022,2023 Thomas E. Dickey *
.\" Copyright 2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\"
.\" Author: Thomas E. Dickey
.\"
-.\" $Id: new_pair.3x,v 1.14 2020/02/02 23:34:34 tom Exp $
-.TH new_pair 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: new_pair.3x,v 1.41 2023/10/21 10:31:22 tom Exp $
+.TH new_pair 3X 2023-10-21 "ncurses 6.4" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
.SH NAME
-\fBalloc_pair\fP,
-\fBfind_pair\fP,
-\fBfree_pair\fP \- new curses color-pair functions
+\fB\%alloc_pair\fP,
+\fB\%find_pair\fP,
+\fB\%free_pair\fP \-
+dynamically allocate \fIcurses\fR color pairs
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint alloc_pair(int fg, int bg);\fP
-.br
-\fBint find_pair(int fg, int bg);\fP
-.br
-\fBint free_pair(int pair);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBint alloc_pair(int \fIfg\fP, int \fIbg\fP);
+\fBint find_pair(int \fIfg\fP, int \fIbg\fP);
+\fBint free_pair(int \fIpair\fP);
+.fi
.SH DESCRIPTION
-These functions are an extension to the curses library.
+These functions are an extension to the \fIcurses\fP library.
They permit an application to dynamically allocate a color pair using
the foreground/background colors rather than assign a fixed color pair number,
and return an unused pair to the pool.
of a given character cell without rewriting it.
That is, the foreground and background colors are applied as a pair.
.bP
-Color pairs are the curses library's way of managing a color palette
+Color pairs are the \fIcurses\fP 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
+.IP \(bu 4
For simple terminal emulators
with only a few dozen color combinations,
it is convenient to use the maximum number of combinations
as the limit on color pairs:
-.NS
-\fBCOLORS\fP\fI * \fP\fBCOLORS\fP
-.NE
-.bP
+.PP
+.RS 8
+.EX
+\fBCOLORS\fI * \fBCOLORS\fR
+.EE
+.RE
+.IP \(bu 4
Terminals which support \fIdefault colors\fP distinct
-from \*(``ANSI colors\*(''
+from \*(``ANSI colors\*(''
add to the possible combinations, producing this total:
-.NS
-\fI( \fP\fBCOLORS\fP\fI + 1 ) * ( \fP\fBCOLORS\fP\fI + 1 )\fP
-.NE
+.PP
+.RS 8
+.EX
+\fI( \fBCOLORS\fI + 1 ) * ( \fBCOLORS\fI + 1 )\fR
+.EE
+.RE
.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
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.
+updating the \fIncurses\fP library's fast index
+to the colors versus color pairs.
.SS find_pair
The \fBfind_pair\fP function accepts parameters for
foreground and background color, and
Marks the given color pair as unused,
i.e., like color pair 0.
.SH RETURN VALUE
-.PP
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
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.
+These routines are specific to \fIncurses\fP.
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).
+any code depending on them be conditioned using \fB\%NCURSES_VERSION\fP.
.SH AUTHOR
-Thomas Dickey.
+Thomas Dickey
+.SH SEE ALSO
+\fB\%curs_color\fP(3X)