summaryrefslogtreecommitdiff
path: root/man/curs_attr.3x
diff options
context:
space:
mode:
Diffstat (limited to 'man/curs_attr.3x')
-rw-r--r--man/curs_attr.3x512
1 files changed, 353 insertions, 159 deletions
diff --git a/man/curs_attr.3x b/man/curs_attr.3x
index 37774602be8c..99c3941c70d5 100644
--- a/man/curs_attr.3x
+++ b/man/curs_attr.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2023,2024 Thomas E. Dickey *
+.\" Copyright 2018-2024,2025 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,8 +28,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_attr.3x,v 1.105 2024/04/27 17:54:42 tom Exp $
-.TH curs_attr 3X 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_attr.3x,v 1.142 2025/11/12 01:05:49 tom Exp $
+.TH curs_attr 3X 2025-11-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
@@ -142,68 +142,88 @@ of the given window to \fIattrs\fP, with color specified by \fIpair\fP.
Use \fBwattr_get\fP to retrieve attributes for the given window.
.PP
Use \fBattr_on\fP and \fBwattr_on\fP to turn on window attributes, i.e.,
-values OR'd together in \fIattr\fP,
+values logically \*(``or\*(''-ed together in \fIattr\fP,
without affecting other attributes.
Use \fBattr_off\fP and \fBwattr_off\fP to turn off window attributes,
-again values OR'd together in \fIattr\fP,
+again values logically \*(``or\*(''-ed together in \fIattr\fP,
without affecting other attributes.
.\" ---------------------------------------------------------------------------
.SS "Legacy Window Attributes"
The X/Open window attribute routines which \fIset\fP or \fIget\fP,
turn \fIon\fP or \fIoff\fP
are extensions of older routines
-which assume that color pairs are OR'd into the attribute parameter.
+which assume that color pairs are logically \*(``or\*(''-ed
+into the attribute parameter.
These newer routines use similar names, because
X/Open simply added an underscore (\fB_\fP) for the newer names.
.PP
-The \fBint\fP datatype used in the legacy routines is treated as if
-it is the same size as \fBchtype\fP (used by \fBaddch\fP(3X)).
+The
+.I int
+datatype used in the legacy routines is treated as if
+it is the same size as
+.I \%chtype
+(used by \fBaddch\fP(3X)).
It holds the common video attributes (such as bold, reverse),
as well as a few bits for color.
Those bits correspond to the \fBA_COLOR\fP symbol.
-The \fBCOLOR_PAIR\fP macro provides a value which can be OR'd into
-the attribute parameter.
+The \fBCOLOR_PAIR\fP macro provides a value which can be
+logically \*(``or\*(''-ed into the attribute parameter.
For example,
as long as that value fits into the \fBA_COLOR\fP mask,
then these calls produce similar results:
.PP
.RS 4
.EX
+.nf
attrset(A_BOLD | COLOR_PAIR(\fIpair\fP));
attr_set(A_BOLD, \fIpair\fP, NULL);
+.fi
.EE
.RE
.PP
However, if the value does not fit, then the \fBCOLOR_PAIR\fP macro
uses only the bits that fit.
For example,
-because in \fI\%ncurses\fP \fBA_COLOR\fP has eight (8) bits,
+because in
+.I \%ncurses
+\fBA_COLOR\fP has eight (8) bits,
then \fBCOLOR_PAIR(\fI259\fB)\fR is 4
(i.e., 259 is 4 more than the limit 255).
.PP
-The \fBPAIR_NUMBER\fP macro extracts a pair number from an \fBint\fP
-(or \fBchtype\fP).
+The \fBPAIR_NUMBER\fP macro extracts a pair number from an
+.I int
+(or
+.IR \%chtype ")."
For example, the \fIinput\fP and \fIoutput\fP values in these statements
would be the same:
.PP
.RS 4
.EX
+.nf
int value = A_BOLD | COLOR_PAIR(\fIinput\fP);
int \fIoutput\fP = PAIR_NUMBER(value);
+.fi
.EE
.RE
.PP
-The \fBattrset\fP routine is a legacy feature predating SVr4 curses
-but kept in X/Open Curses for the same reason that SVr4 curses kept it:
+The \fBattrset\fP routine is a legacy feature predating SVr4
+.I curses
+but kept in X/Open Curses for the same reason that SVr4
+.I curses
+kept it:
compatibility.
.PP
The remaining \fBattr\fP* functions operate exactly like the corresponding
-\fBattr_\fP* functions, except that they take arguments of type \fBint\fP
-rather than \fBattr_t\fP.
+\fBattr_\fP* functions, except that they take arguments of type
+.I int
+rather than
+.IR \%attr_t "."
.PP
There is no corresponding \fB\%attrget\fP function as such
in X/Open Curses,
-although \fI\%ncurses\fP provides \fB\%getattrs\fP
+although
+.I \%ncurses
+provides \fB\%getattrs\fP
(see \fB\%curs_legacy\fP(3X)).
.\" ---------------------------------------------------------------------------
.SS "Change Character Rendition"
@@ -240,11 +260,18 @@ there is no ambiguity about the way the attributes
might be combined with a color pair.
.\" ---------------------------------------------------------------------------
.SS "Video Attributes"
-The following video attributes, defined in \fB<curses.h>\fP, can be passed to
-the routines \fBattron\fP, \fBattroff\fP, and \fBattrset\fP, or OR'd with the
-characters passed to \fBaddch\fP (see \fBcurs_addch\fP(3X)).
-.PP
-.ne 15
+The following video attributes,
+defined in
+.IR \%curses.h ","
+can be passed to
+.BR \%attron ","
+.BR \%attroff ","
+.BR \%attrset ","
+and
+logically \*(``or\*(''-ed with characters passed to \fBaddch\fP(3X).
+.PP
+.if t .ne 15
+.if n .ne 16
.RS
.TS
Lb Lb
@@ -252,9 +279,7 @@ Lb Lx.
Name Description
_
A_NORMAL Normal display (no highlight)
-A_STANDOUT T{
-Best highlighting mode of the terminal
-T}
+A_STANDOUT Best highlighting mode available
A_UNDERLINE Underlining
A_REVERSE Reverse video
A_BLINK Blinking
@@ -264,16 +289,20 @@ A_PROTECT Protected mode
A_INVIS Invisible or blank mode
A_ALTCHARSET Alternate character set
A_ITALIC Italics (non-X/Open extension)
-A_CHARTEXT Bit-mask to extract a character
-A_COLOR T{
-Bit-mask to extract a color (legacy routines)
-T}
+A_ATTRIBUTES Mask to extract character code
+A_CHARTEXT Mask to extract attributes
+A_COLOR Mask to extract color pair identifier
.TE
.RE
.PP
-These video attributes are supported by \fBattr_on\fP and related functions
-(which also support the attributes recognized by \fBattron\fP, etc.):
+.BR \%attr_on ","
+.BR \%attr_off ","
+and
+.B \%attr_set
+support the foregoing as well as the following additional attributes.
.PP
+.if t .ne 7
+.if n .ne 8
.RS
.TS
Lb Lb
@@ -288,25 +317,40 @@ WA_TOP Top highlight
WA_VERTICAL Vertical highlight
.TE
.RE
-.PP
-The return values of many of these routines are not meaningful (they are
-implemented as macro-expanded assignments and simply return their argument).
-The SVr4 manual page claims (falsely) that these routines always return \fB1\fP.
.\" ---------------------------------------------------------------------------
.SH RETURN VALUE
-All routines return the integer \fBOK\fP on success, or \fBERR\fP on failure.
-.PP
-X/Open Curses does not specify any error conditions.
-.PP
-This implementation
-.bP
-returns an error if the window pointer is null.
-.bP
-returns an error if the color pair parameter
-for \fBwcolor_set\fP is outside the range 0..COLOR_PAIRS\-1.
-.bP
-does not return an error if either of the parameters of \fBwattr_get\fP
-used for retrieving attribute or color pair values is \fBNULL\fP.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
+.PP
+In
+.IR \%ncurses ","
+they return
+.B ERR
+if
+.I win
+is
+.IR NULL "."
+.PP
+.B \%wcolor_set
+returns
+.B ERR
+if
+.I pair
+is outside the range
+.BR 0 .\|. COLOR_PAIRS\-1 .
+.PP
+.B \%wattr_get
+does
+.I not
+fail if its
+.I \%attrs
+or
+.I \%pair
+parameter is
+.IR NULL "."
.PP
Functions prefixed with \*(``mv\*('' first perform cursor movement and
fail if the position
@@ -315,20 +359,43 @@ fail if the position
is outside the window boundaries.
.\" ---------------------------------------------------------------------------
.SH NOTES
-These functions may be macros:
-.sp
-.RS
-\fBattroff\fP, \fBwattroff\fP, \fBattron\fP, \fBwattron\fP,
-\fBattrset\fP, \fBwattrset\fP, \fBstandend\fP and \fBstandout\fP.
-.RE
-.PP
-Color pair values can only be OR'd with attributes if the pair
-number is less than 256.
+.BR \%attr_on ","
+.BR \%attr_off ","
+.BR \%attr_set ","
+.BR \%wattr_set ","
+.BR \%chgat ","
+.BR \%mvchgat ","
+.BR \%mvwchgat ","
+.BR \%wchgat ","
+and
+.B \%color_set
+are part of
+.IR \%ncurses "'s"
+wide-character API,
+and are not available in its non-wide-character configuration.
+.PP
+.BR \%attron ","
+.BR \%wattron ","
+.BR \%attroff ","
+.BR \%wattroff ","
+.BR \%attrset ","
+.BR \%wattrset ","
+.BR \%standout ","
+and
+.B \%standend
+may be implemented as macros.
+.PP
+Color pair values may be logically \*(``or\*(''-ed with attributes
+if the pair number is less than 256.
The alternate functions such as \fBcolor_set\fP can pass a color pair
value directly.
-However, \fI\%ncurses\fP ABI 4 and 5 simply OR this value
+However,
+.I \%ncurses
+ABI 4 and 5 simply logically \*(``or\*('' this value
within the alternate functions.
-You must use \fI\%ncurses\fP ABI 6 to support more than 256 color pairs.
+You must use
+.I \%ncurses
+ABI 6 to support more than 256 color pairs.
.\" ---------------------------------------------------------------------------
.SH EXTENSIONS
This implementation provides the \fBA_ITALIC\fP attribute for terminals
@@ -342,32 +409,55 @@ This implementation makes the assumption that
.PP
Each of the functions added by XSI Curses has a parameter \fIopts\fP,
which X/Open Curses still (after more than twenty years) documents
-as reserved for future use, saying that it should be \fBNULL\fP.
+as reserved for future use, saying that it should be
+.IR NULL "."
This implementation uses that parameter in ABI 6 for the functions which
have a color pair parameter to support \fIextended color pairs\fP:
.bP
For functions which modify the color, e.g.,
\fBwattr_set\fP and \fBwattr_on\fP,
-if \fIopts\fP is set it is treated as a pointer to \fBint\fP,
-and used to set the color pair instead of the \fBshort\fP \fIpair\fP parameter.
+if \fIopts\fP is set it is treated as a pointer to
+.IR int ","
+and used to set the color pair instead of the
+.I short
+.I pair
+parameter.
.bP
For functions which retrieve the color, e.g.,
\fBwattr_get\fP,
-if \fIopts\fP is set it is treated as a pointer to \fBint\fP,
-and used to retrieve the color pair as an \fBint\fP value,
+if \fIopts\fP is set it is treated as a pointer to
+.IR int ","
+and used to retrieve the color pair as an
+.I int
+value,
in addition to
-retrieving it via the standard pointer to \fBshort\fP parameter.
+retrieving it via the standard pointer to
+.I short
+parameter.
.bP
For functions which turn attributes off, e.g.,
\fBwattr_off\fP,
-the \fIopts\fP parameter is ignored except
-except to check that it is \fBNULL\fP.
+the \fIopts\fP parameter is ignored except to check that it is
+.IR NULL "."
.\" ---------------------------------------------------------------------------
.SH PORTABILITY
-These functions are described in X/Open Curses, Issue 4.
+These functions are described in X/Open Curses Issue\ 4.
+It specifies no error conditions for them.
+.PP
The standard defined the dedicated type for highlights,
-\fBattr_t\fP, which was not defined in SVr4 curses.
-The functions taking \fBattr_t\fP arguments were not supported under SVr4.
+.IR \%attr_t ","
+which was not defined in SVr4
+.IR curses "."
+The functions taking
+.I \%attr_t
+arguments were not supported under SVr4.
+.PP
+SVr4 describes the functions not taking
+.I \%attr_t
+or
+.I pair
+arguments as always returning
+.BR 1 "." \" Courier roman in source; SVID 4, vol. 3, p. 480
.PP
Very old versions of this library did not force an update of the screen
when changing the attributes.
@@ -378,7 +468,9 @@ X/Open Curses states that whether the traditional functions
\fBA_BLINK\fP, \fBA_BOLD\fP, \fBA_DIM\fP, \fBA_REVERSE\fP, \fBA_STANDOUT\fP, or
\fBA_UNDERLINE\fP is \*(``unspecified\*(''.
Under this implementation as well as
-SVr4 curses, these functions correctly manipulate all other highlights
+SVr4
+.IR curses ","
+these functions correctly manipulate all other highlights
(specifically, \fBA_ALTCHARSET\fP, \fBA_PROTECT\fP, and \fBA_INVIS\fP).
.PP
X/Open Curses added these entry points:
@@ -397,13 +489,11 @@ The older macros have direct counterparts in the newer set of names:
.ne 9
.TS
Lb Lb
-Lb Lx.
+Lb L .
Name Description
_
WA_NORMAL Normal display (no highlight)
-WA_STANDOUT T{
-Best highlighting mode of the terminal
-T}
+WA_STANDOUT Best highlighting mode available
WA_UNDERLINE Underlining
WA_REVERSE Reverse video
WA_BLINK Blinking
@@ -423,18 +513,29 @@ information.
.bP
However, in some implementations, those symbols have unrelated values.
.IP
-For example, the Solaris \fIxpg4\fP (X/Open) curses declares
-\fBattr_t\fP to be an unsigned short integer (16-bits),
-while \fBchtype\fP is a unsigned integer (32-bits).
+For example, the Solaris \fIxpg4\fP (X/Open)
+.I curses
+declares
+.I \%attr_t
+to be an unsigned short integer (16-bits),
+while
+.I \%chtype
+is a unsigned integer (32-bits).
The \fBWA_\fP symbols in this case are different from the \fBA_\fP symbols
because they are used for a smaller datatype which does not
represent \fBA_CHARTEXT\fP or \fBA_COLOR\fP.
.IP
In this implementation (as in many others), the values happen to be
the same because it simplifies copying information between
-\fBchtype\fP and \fBcchar_t\fP variables.
+.I \%chtype
+and
+.I \%cchar_t
+variables.
.bP
-Because \fI\%ncurses\fP's \fBattr_t\fP can hold a color pair
+Because
+.IR \%ncurses 's
+.I \%attr_t
+can hold a color pair
(in the \fBA_COLOR\fP field),
a call to
\fBwattr_on\fP,
@@ -444,7 +545,8 @@ may alter the window's color.
If the color pair information in the attribute parameter is zero,
no change is made to the window's color.
.IP
-This is consistent with SVr4 curses;
+This is consistent with SVr4
+.IR curses ";"
X/Open Curses does not specify this.
.PP
The X/Open Curses extended conformance level adds new highlights
@@ -455,62 +557,123 @@ no known terminal provides these highlights
(i.e., via the \fBsgr1\fP capability).
.\" ---------------------------------------------------------------------------
.SH HISTORY
-X/Open Curses is largely based on SVr4 curses,
-adding support for \*(``wide-characters\*('' (not specific to Unicode).
-Some of the X/Open differences from SVr4 curses address the way
-video attributes can be applied to wide-characters.
-But aside from that, \fBattrset\fP and \fBattr_set\fP are similar.
-SVr4 curses provided the basic features for manipulating video attributes.
-However, earlier versions of curses provided a part of these features.
-.PP
-As seen in 2.8BSD, curses assumed 7-bit characters,
-using the eighth bit of a byte to represent the \fIstandout\fP
-feature (often implemented as bold and/or reverse video).
-The BSD curses library provided functions \fBstandout\fP and \fBstandend\fP
-which were carried along into X/Open Curses due to their pervasive use
-in legacy applications.
-.PP
-Some terminals in the 1980s could support a variety of video attributes,
-although the BSD curses library could do nothing with those.
-System V (1983) provided an improved curses library.
-It defined the \fBA_\fP symbols for use by applications to manipulate the
-other attributes.
-There are few useful references for the chronology.
-.PP
-Goodheart's book
-\fIUNIX Curses Explained\fP (1991) describes SVr3 (1987),
-commenting on several functions:
-.bP
-the \fBattron\fP, \fBattroff\fP, \fBattrset\fP functions
-(and most of the functions found in SVr4 but not in BSD curses) were
-introduced by System V,
-.bP
-the alternate character set feature with \fBA_ALTCHARSET\fP was
-added in SVr2 and improved in SVr3 (by adding \fBacs_map[]\fP),
-.bP
-\fBstart_color\fP and related color-functions were introduced by System V.3.2,
-.bP
-pads, soft-keys were added in SVr3, and
-.PP
-Goodheart did not mention the background character or the \fBcchar_t\fP type.
-Those are respectively SVr4 and X/Open features.
-He did mention the \fBA_\fP constants, but did not indicate their values.
-Those were not the same in different systems,
-even for those marked as System V.
-.PP
-Different Unix systems used different sizes for the bit-fields in \fBchtype\fP
-for \fIcharacters\fP and \fIcolors\fP, and took into account the different
-integer sizes (32-bit versus 64-bit).
-.PP
-This table showing the number of bits for \fBA_COLOR\fP
-and \fBA_CHARTEXT\fP
-was gleaned from the curses header files for
-various operating systems and architectures.
-The inferred architecture and notes reflect
-the format and size of the defined constants
+4BSD (1980)
+used a
+.I char
+to represent each cell of the terminal screen.
+It assumed 7-bit character codes,
+employing the eighth bit of a byte to represent a
+.I \%standout
+attribute
+(often implemented as bold and/or reverse video).
+It introduced
+.IR \%standout ","
+.IR \%standend ","
+.IR \%wstandout ","
+and
+.I \%wstandend
+functions to manipulate this bit.
+Despite their inflexibility,
+they carried over into System\ V
+.I curses
+and ultimately X/Open Curses
+due to their pervasive use in legacy applications.
+While some 1980s terminals supported a variety of video attributes,
+BSD
+.I curses
+could do nothing with them.
+.PP
+SVr2 (1984)
+provided an improved
+.I curses
+library,
+introducing
+.I \%chtype
+to create the abstract notion of a
+.I curses
+character;
+this was by default an
+.IR "unsigned short" ","
+with a provision for compile-time redefinition to other integral types
+(a freedom not necessarily available to users of shared libraries,
+and in any event a source license was necessary to exercise it).
+It added the functions
+.IR \%attron ","
+.IR \%attroff ","
+.IR \%attrset ","
+.IR \%wattron ","
+.IR \%wattroff ","
+and
+.IR \%wattrset ","
+and defined the
+.I A_
+macros listed above
+(except for
+.I \%A_ITALIC
+and
+.IR \%A_COLOR ")"
+for use by applications to manipulate other attributes.
+The values of these macros
+were not necessarily the same in different systems,
+even among those certified as System\ V.
+.PP
+SVr3.2 (1988)
+added the
+.I \%A_COLOR
+macro along with a color system;
+see \fBcurs_color\fP(3X).
+.PP
+X/Open Curses Issue\ 4 (1995) is largely based on SVr4
+.IR curses ","
+but recognized that the
+.I \%wchar_t
+type of ISO C95 was intended to house only a single character code,
+not a sequence of codes combining with a base character,
+let alone could it reliably offer room for a color pair identifier
+and a set of attribute bits with a potential for further growth \(em
+thus the standard invented the
+.I curses
+complex character type
+.I \%cchar_t
+and a separate type
+.I \%attr_t
+for storage of attribute bits.
+The new types brought along several new functions to manipulate them,
+some corresponding to existing
+.IR chtype -based
+functions
+.RI \%( attr_on ,
+.IR \%attr_off ","
+.IR \%attr_set ","
+.IR \%wattr_on ","
+.IR \%wattr_off ","
+and
+.IR \%wattr_set "),"
+and some new
+.RI \%( chgat
+and its variants,
+.IR \%color_set ","
+and
+.IR \%wcolor_set ")."
+.PP
+Different Unix systems used differently sized bit fields in
+.I \%chtype
+for the character code and the color pair identifier,
+and took into account platforms' different integer sizes
+(32- versus 64-bit).
+.PP
+The following table showing the number of bits for
+.I \%A_COLOR
+and
+.I \%A_CHARTEXT
+was gleaned from the
+.I curses
+header files for various operating systems and architectures.
+The inferred architecture and notes
+reflect the format and size of the defined constants
as well as clues such as the alternate character set implementation.
A 32-bit library can be used on a 64-bit system,
-but not necessarily the reverse.
+but not necessarily the converse.
.PP
.TS
Lb Lb Lb Cb S Lb
@@ -529,7 +692,7 @@ _
1996 AIX 4.2 32 7 16 X/Open \fIcurses\fP
1996 OSF/1 r4 32 6 16 X/Open \fIcurses\fP
1997 HP-UX 11.00 32 6 8 X/Open \fIcurses\fP
-2000 U/Win 32/64 7/31 16 uses \fIchtype\fP
+2000 UWIN 32/64 7/31 16 uses \fIchtype\fP
.TE
.PP
Notes:
@@ -540,54 +703,85 @@ Regarding HP-UX,
HP-UX 10.20 (1996) added support for 64-bit PA-RISC processors in 1996.
.bP
HP-UX 10.30 (1997) marked \*(``curses_colr\*('' obsolete.
-That version of curses was dropped with HP-UX 11.30 in 2006.
+That version of
+.I curses
+was dropped with HP-UX 11.30 in 2006.
.PP
Regarding OSF/1 (and Tru64),
.bP
These used 64-bit hardware.
-Like \fI\%ncurses\fP,
-the OSF/1 curses interface is not customized for 32-bit and 64-bit
+Like
+.IR \%ncurses ","
+the OSF/1
+.I curses
+interface is not customized for 32-bit and 64-bit
versions.
.bP
Unlike other systems which evolved from AT&T code,
-OSF/1 provided a new implementation for X/Open curses.
+OSF/1 provided a new implementation for X/Open Curses.
.PP
Regarding Solaris,
.bP
The initial release of Solaris was in 1992.
.bP
-The \fIxpg4\fP (X/Open) curses was developed by MKS from 1990 to 1995.
+Its XPG4
+(X/Open Curses-conforming)
+.I xcurses
+library was developed by Mortice Kern Systems from 1990 to 1995.
Sun's copyright began in 1996.
.bP
-Sun updated the X/Open curses interface
+Sun updated the X/Open Curses interface
after 64-bit support was introduced in 1997,
-but did not modify the SVr4 curses interface.
+but did not modify the SVr4
+.I curses
+interface.
.PP
-Regarding U/Win,
+Regarding UWIN,
.bP
-Development of the curses library began in 1991, stopped in 2000.
+Development of the
+.I curses
+library began in 1991, stopped in 2000.
.bP
Color support was added in 1998.
.bP
-The library uses only \fBchtype\fP (no \fBcchar_t\fP).
+The library uses only
+.I \%chtype
+(not
+.IR \%cchar_t ")."
.RE
.PP
-Once X/Open curses was adopted in the mid-1990s, the constraint of
-a 32-bit interface with many colors and wide-characters for \fBchtype\fP
+Once X/Open Curses was adopted in the mid-1990s, the constraint of
+a 32-bit interface with many colors and wide-characters for
+.I \%chtype
became a moot point.
-The \fBcchar_t\fP structure (whose size and
-members are not specified in X/Open Curses) could be extended as needed.
+The
+.I \%cchar_t
+structure
+(whose size and members are not specified in X/Open Curses)
+could be extended as needed.
.PP
-Other interfaces are rarely used now:
+Other interfaces are rarely used now.
.bP
-BSD curses was improved slightly in 1993/1994 using Keith Bostic's
-modification to make the library 8-bit clean for \fBnvi\fP(1).
-He moved \fIstandout\fP attribute to a structure member.
-.IP
-The resulting 4.4BSD curses was replaced by \fI\%ncurses\fP over the
-next ten years.
+BSD
+.I curses
+was improved slightly in 1993/1994 using Keith Bostic's
+modification to make the library 8-bit clean for \fInvi\fP(1).
+He moved the
+.I \%standout
+attribute to a structure member.
+The resulting 4.4BSD
+.I curses
+was replaced by
+.I \%ncurses
+over the next ten years.
.bP
-U/Win is rarely used now.
+UWIN has been defunct since 2012.
+.PP
+.I \%ncurses
+6.0 (2015)
+added the
+.I A_ITALIC
+macro.
.\" ---------------------------------------------------------------------------
.SH SEE ALSO
\fB\%curses\fP(3X),