ncurses 6.1 - patch 20190518
[ncurses.git] / man / user_caps.5
index 0f20dad1c00538b1adb273bb4a40dc7f1f41143f..c90aee54e8f979798362af0ae97516a4ad6efe85 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2017 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 2017,2018 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            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: user_caps.5,v 1.2 2017/09/04 19:27:24 tom Exp $
+.\" $Id: user_caps.5,v 1.9 2018/07/28 22:05:23 tom Exp $
 .TH user_caps 5
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
 .ie \n(.g .ds '' \(rq
 .el       .ds '' ''
 .de NS
-.ie \n(.sp
+.ie n  .sp
 .el    .sp .5
-.ie \n(.in +4
+.ie n  .in +4
 .el    .in +2
 .nf
 .ft C                  \" Courier
 .de NE
 .fi
 .ft R
-.in -4
+.ie n  .in -4
+.el    .in -2
 ..
 .de bP
-.IP \(bu 4
+.ie n  .IP \(bu 4
+.el    .IP \(bu 2
 ..
-.ds n 5
 .SH NAME
 user_caps \- user-defined terminfo capabilities
 .SH SYNOPSIS
-.B tic -x, infocmp -x
+.B @TIC@ -x, @INFOCMP@ -x
 .SH DESCRIPTION
 .SS Background
 .PP
@@ -93,6 +94,38 @@ while others were added (out of order) to comply with X/Open Curses.
 While ncurses' repertoire of predefined capabilities is closest to Solaris,
 Solaris's terminfo database has a few differences from
 the list published by X/Open Curses.
+For example, ncurses can be configured with tables which match the
+terminal databases for AIX, HP-UX or OSF/1,
+rather than the default Solaris-like configuration.
+.bP
+In SVr4 curses and ncurses,
+the terminal database is defined at compile-time using a text file
+which lists the different terminal capabilities.
+.IP
+In principle, the text-file can be extended,
+but doing this requires recompiling and reinstalling the library.
+The text-file used in ncurses for terminal capabilities includes
+details for various systems past the documented X/Open Curses features.
+For example, ncurses supports these capabilities in each configuration:
+.RS 8
+.TP 5
+memory_lock
+(meml)
+lock memory above cursor
+.TP 5
+memory_unlock
+(memu)
+unlock memory
+.TP 5
+box_chars_1
+(box1)
+box characters primary set
+.RE
+.IP
+The memory lock/unlock capabilities were included because they were used
+in the X11R6 terminal description for \fBxterm\fP.
+The \fIbox1\fP capability is used in @TIC@ to help with terminal descriptions
+written for AIX. 
 .PP
 During the 1990s, some users were reluctant to use terminfo
 in spite of its performance advantages over termcap:
@@ -115,13 +148,14 @@ with other applications.
 These are referred to as \fIuser-defined capabilities\fP because no
 modifications to the toolset's predefined capability names are needed.
 .PP
-The ncurses utilities \fBtic\fP and \fBinfocmp\fP have a command-line
+The ncurses utilities \fB@TIC@\fP and \fB@INFOCMP@\fP have a command-line
 option \*(``\-x\*('' to control whether the nonstandard capabilities
-are stored or retrieved.  A library function \fBuse_extended_names\fP
+are stored or retrieved.
+A library function \fBuse_extended_names\fP
 is provided for the same purpose.
 .PP
 When compiling a terminal database, if \*(``\-x\*('' is set,
-\fBtic\fP will store a user-defined capability if the capability name is not
+\fB@TIC@\fP will store a user-defined capability if the capability name is not
 one of the predefined names.
 .PP
 Because ncurses provides a termcap library interface,
@@ -161,7 +195,7 @@ ncurses makes explicit checks for these:
 .TP 3
 AX
 \fIboolean\fP, asserts that the terminal interprets SGR 39 and SGR 49
-by resetting the foreground and background color, respectively, to the default. 
+by resetting the foreground and background color, respectively, to the default.
 .IP
 This is a feature recognized by the \fBscreen\fP program as well.
 .TP 3
@@ -175,9 +209,9 @@ The command \*(``\fBtput clear\fP\*('' does the same thing.
 RGB
 \fIboolean\fP, \fInumber\fP \fBor\fP \fIstring\fP,
 to assert that the
-\fBset_a_foreground\fP and 
+\fBset_a_foreground\fP and
 \fBset_a_background\fP capabilities correspond to \fIdirect colors\fP,
-using an RGB (red/green/blue) convention. 
+using an RGB (red/green/blue) convention.
 This capability allows the \fBcolor_content\fP function to
 return appropriate values without requiring the application
 to initialize colors using \fBinit_color\fP.
@@ -203,9 +237,15 @@ blue (and green) lose just as in the \fIboolean\fP case.
 explicitly list the number of bits used for red, green and blue components
 as a slash-separated list of decimal integers.
 .RE
+.IP
+Because there are several RGB encodings in use,
+applications which make assumptions about the number of bits per color
+are unlikely to work reliably.
+As a trivial case, for example, one could define \fBRGB#1\fP
+to represent the standard eight ANSI colors, i.e., one bit per color.
 .TP 3
 U8
-\fIboolean\fP,
+\fInumber\fP,
 asserts that ncurses must use Unicode values for line-drawing characters,
 and that it should ignore the alternate character set capabilities
 when the locale uses UTF-8 encoding.
@@ -248,7 +288,7 @@ kEND/special form of kend (End)
 kHOM/special form of khome (Home)
 kLFT/special form of kcub1 (cursor-left or cursor-back)
 kNXT/special form of knext (Next, or Page-Down)
-kPRV/special form of kprev (Prev, or Page-Up) 
+kPRV/special form of kprev (Prev, or Page-Up)
 kRIT/special form of kcuf1 (cursor-right, or cursor-forward)
 kUP/special form of kcuu1 (cursor-up)
 .TE
@@ -292,14 +332,14 @@ would be returned for those keys by \fBwgetch\fP(3X).
 .PP
 .SH PORTABILITY
 .PP
-The \*(``\-x\*('' extension feature of \fBtic\fP and \fBinfocmp\fP
+The \*(``\-x\*('' extension feature of \fB@TIC@\fP and \fB@INFOCMP@\fP
 has been adopted in NetBSD curses.
 That implementation stores user-defined capabilities,
 but makes no use of these capabilities itself.
 .SH SEE ALSO
 .PP
-\fBtic\fR(1),
-\fBinfocmp\fR(1).
+\fB@TIC@\fR(1M),
+\fB@INFOCMP@\fR(1M).
 .SH AUTHORS
 .PP
 Thomas E. Dickey