Diffstat (limited to 'man/terminfo.head')
1 files changed, 138 insertions, 26 deletions
diff --git a/man/terminfo.head b/man/terminfo.head
index c4cc072baeb0..eb2613573b95 100644
@@ -1,5 +1,5 @@
-.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2018,2019 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 *
@@ -26,7 +26,7 @@
.\" authorization. *
-.\" $Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp $
+.\" $Id: terminfo.head,v 1.38 2019/07/27 11:51:04 tom Exp $
.TH terminfo 5 "" "" "File Formats"
.ds n 5
.ds d @TERMINFO@
@@ -35,7 +35,22 @@
.ie \n(.g .ds '' \(rq
.el .ds '' ''
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+.ie n .sp
+.el .sp .5
+.ie n .in +4
+.el .in +2
+.ft C \" Courier
+.ie n .in -4
+.el .in -2
terminfo \- terminal capability data base
@@ -43,41 +58,72 @@ terminfo \- terminal capability data base
-is a data base describing terminals, used by screen-oriented programs such as
+is a data base describing terminals,
+used by screen-oriented programs such as
-and libraries such as
+and other curses applications,
+using high-level calls to libraries such as \fBcurses\fR(3X).
+It is also used via low-level calls by non-curses applications
+which may be screen-oriented (such as \fB@CLEAR@\fP(1))
+or non-screen (such as \fB@TABS@\fP(1)).
describes terminals by giving a set of capabilities which they
have, by specifying how to perform screen operations, and by
specifying padding requirements and initialization sequences.
-This describes \fBncurses\fR
+This manual describes \fBncurses\fR
version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+.SS Terminfo Entry Syntax
-consist of a sequence of `,' separated fields (embedded commas may be
-escaped with a backslash or notated as \\054).
-White space after the `,' separator is ignored.
-The first entry for each terminal gives the names which are known for the
-terminal, separated by `|' characters.
-The first name given is the most common abbreviation for the terminal,
-the last name given should be a long name fully identifying the terminal,
-and all others are understood as synonyms for the terminal name.
-All names but the last should be in lower case and contain no blanks;
+consist of a sequence of fields:
+Each field ends with a comma \*(``,\*(''
+(embedded commas may be
+escaped with a backslash or written as \*(``\\054\*('').
+White space between fields is ignored.
+The first field in a \fIterminfo\fP entry begins in the first column.
+Newlines and leading whitespace (spaces or tabs)
+may be used for formatting entries for readability.
+These are removed from parsed entries.
+The \fB@INFOCMP@\fP \fB\-f\fP and \fB\-W\fP options rely on this to
+format if-then-else expressions,
+or to enforce maximum line-width.
+The resulting formatted terminal description can be read by \fB@TIC@\fP.
+The first field for each terminal gives the names which are known for the
+terminal, separated by \*(``|\*('' characters.
+The first name given is the most common abbreviation for the terminal
+(its primary name),
+the last name given should be a long name fully identifying the terminal
+and all others are treated as synonyms (aliases) for the primary terminal name.
+X/Open Curses advises that all names but the last should be in lower case
+and contain no blanks;
the last name may well contain upper case and blanks for readability.
-Lines beginning with a `#' in the first column are treated as comments.
+This implementation is not so strict;
+it allows mixed case in the primary name and aliases.
+If the last name has no embedded blanks,
+it allows that to be both an alias and a verbose name
+(but will warn about this ambiguity).
+Lines beginning with a \*(``#\*('' in the first column are treated as comments.
While comment lines are legal at any point, the output of \fB@CAPTOINFO@\fP
and \fB@INFOTOCAP@\fP (aliases for \fB@TIC@\fP)
will move comments so they occur only between entries.
-Newlines and leading tabs may be used for formatting entries for readability.
-These are removed from parsed entries.
-The \fB@INFOCMP@\ \-f\fP option relies on this to format if-then-else expressions:
-the result can be read by \fB@TIC@\fP.
Terminal names (except for the last, verbose entry) should
be chosen using the following conventions.
The particular piece of hardware making up the terminal should
@@ -85,7 +131,7 @@ have a root name, thus \*(``hp2621\*(''.
This name should not contain hyphens.
Modes that the hardware can be in, or user preferences, should
be indicated by appending a hyphen and a mode suffix.
-Thus, a vt100 in 132 column mode would be vt100\-w.
+Thus, a vt100 in 132-column mode would be vt100\-w.
The following suffixes should be used where possible:
@@ -108,7 +154,73 @@ l l l.
\-w Wide mode (> 80 columns, usually 132) vt100\-w
-For more on terminal naming conventions, see the \fBterm(7)\fR manual page.
+For more on terminal naming conventions, see the \fBterm\fP(7) manual page.
+.SS Terminfo Capabilities Syntax
+The terminfo entry consists of several \fIcapabilities\fP,
+i.e., features that the terminal has,
+or methods for exercising the terminal's features.
+After the first field (giving the name(s) of the terminal entry),
+there should be one or more \fIcapability\fP fields.
+These are boolean, numeric or string names with corresponding values:
+Boolean capabilities are true when present, false when absent.
+There is no explicit value for boolean capabilities.
+Numeric capabilities have a \*(``#\*('' following the name,
+then an unsigned decimal integer value.
+String capabilities have a \*(``=\*('' following the name,
+then an string of characters making up the capability value.
+String capabilities can be split into multiple lines,
+just as the fields comprising a terminal entry can be
+split into multiple lines.
+While blanks between fields are ignored,
+blanks embedded within a string value are retained,
+except for leading blanks on a line.
+Any capability can be \fIcanceled\fP,
+i.e., suppressed from the terminal entry,
+by following its name with \*(``@\*(''
+rather than a capability value.
+.SS Similar Terminals
+If there are two very similar terminals, one (the variant) can be defined as
+being just like the other (the base) with certain exceptions.
+definition of the variant, the string capability \fBuse\fR can be given with
+the name of the base terminal:
+The capabilities given before
+override those in the base type named by
+.BR use .
+If there are multiple \fBuse\fR capabilities, they are merged in reverse order.
+That is, the rightmost \fBuse\fR reference is processed first, then the one to
+its left, and so forth.
+Capabilities given explicitly in the entry override
+those brought in by \fBuse\fR references.
+A capability can be canceled by placing \fBxx@\fR to the left of the
+use reference that imports it, where \fIxx\fP is the capability.
+For example, the entry
+2621\-nl, smkx@, rmkx@, use=2621,
+defines a 2621\-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities,
+and hence does not turn on the function key labels when in visual mode.
+This is useful for different modes for a terminal, or for different
+An entry included via \fBuse\fP can contain canceled capabilities,
+which have the same effect as if those cancels were inline in the
+using terminal entry.
.SS Predefined Capabilities
.\" Head of terminfo man page ends here