X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=man%2Fterminfo.head;h=b0f49edaa236d7bbe989b40ab5dc363fcb3748f2;hp=c4cc072baeb05461da82805ab8e1cbfcee7f73db;hb=HEAD;hpb=e2d7d0028f4298dca2b0edaf2dc8ce30518d9218 diff --git a/man/terminfo.head b/man/terminfo.head index c4cc072b..717f849e 100644 --- a/man/terminfo.head +++ b/man/terminfo.head @@ -1,5 +1,6 @@ .\"*************************************************************************** -.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * +.\" Copyright 2018-2023,2024 Thomas E. Dickey * +.\" Copyright 1998-2016,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 * @@ -26,58 +27,105 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp $ -.TH terminfo 5 "" "" "File Formats" -.ds n 5 -.ds d @TERMINFO@ -.ie \n(.g .ds `` \(lq -.el .ds `` `` -.ie \n(.g .ds '' \(rq -.el .ds '' '' +.\" $Id: terminfo.head,v 1.65 2024/04/20 21:14:00 tom Exp $ +.TH terminfo 5 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats" +.ie \n(.g \{\ +.ds `` \(lq +.ds '' \(rq +.ds ' \(aq +.ds ^ \(ha +.ds ~ \(ti +.\} +.el \{\ +.ie t .ds `` `` +.el .ds `` "" +.ie t .ds '' '' +.el .ds '' "" +.ds ' ' +.ds ^ ^ +.ds ~ ~ +.\} +. .de bP -.IP \(bu 4 +.ie n .IP \(bu 4 +.el .IP \(bu 2 .. +. +.ds d @TERMINFO@ .SH NAME -terminfo \- terminal capability data base +\fB\%terminfo\fP \- +terminal capability database .SH SYNOPSIS \*d/*/* .SH DESCRIPTION .I Terminfo -is a data base describing terminals, used by screen-oriented programs such as -\fBnvi\fR(1), -\fBrogue\fR(1) -and libraries such as -\fBcurses\fR(3X). +is a database describing terminals, +used by screen-oriented programs such as +\fBnvi\fP(1), +\fBlynx\fP(1), +\fBmutt\fP(1), +and other curses applications, +using high-level calls to libraries such as \fBcurses\fP(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)). +.PP .I Terminfo 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 -version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@). .PP +This document describes +.I \%ncurses +version @NCURSES_MAJOR@.@NCURSES_MINOR@ +(patch @NCURSES_PATCH@). +.SS "\fIterminfo\fP Entry Syntax" Entries in .I terminfo -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: +.bP +Each field ends with a comma \*(``,\*('' +(embedded commas may be +escaped with a backslash or written as \*(``\e054\*(''). +.bP +White space between fields is ignored. +.bP +The first field in a \fIterminfo\fP entry begins in the first column. +.bP +Newlines and leading whitespace (spaces or tabs) +may be used for formatting entries for readability. +These are removed from parsed entries. +.IP +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. +.bP +The first field for each terminal gives the names which are known for the +terminal, separated by \*(``|\*('' characters. +.IP +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 +(see \fBlongname\fP(3X)), +and all others are treated as synonyms (aliases) for the primary terminal name. +.IP +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. -.PP -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 +.IP +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). +.bP +Lines beginning with a \*(``#\*('' in the first column are treated as comments. +.IP +While comment lines are valid 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. .PP -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. -.PP 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,30 +133,95 @@ 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: .PP .TS -center ; -l c l -l l l. -\fBSuffix Meaning Example\fP -\-\fInn\fP Number of lines on the screen aaa\-60 -\-\fIn\fPp Number of pages of memory c100\-4p -\-am With automargins (usually the default) vt100\-am -\-m Mono mode; suppress color ansi\-m -\-mc Magic cookie; spaces when highlighting wy30\-mc -\-na No arrow keys (leave them in local) c100\-na -\-nam Without automatic margins vt100\-nam -\-nl No status line att4415\-nl -\-ns No status line hp2626\-ns -\-rv Reverse video c100\-rv -\-s Enable status line vt100\-s -\-vb Use visible bell instead of beep wy370\-vb -\-w Wide mode (> 80 columns, usually 132) vt100\-w +center; +Lb Lb Lb +L L Lx. +Suffix Example Meaning +_ +\-\fInn\fP aaa\-60 Number of lines on the screen +\-\fIn\fPp c100\-4p Number of pages of memory +\-am vt100\-am With automargins (usually the default) +\-m ansi\-m Mono mode; suppress color +\-mc wy30\-mc Magic cookie; spaces when highlighting +\-na c100\-na No arrow keys (leave them in local) +\-nam vt100\-nam Without automatic margins +\-nl hp2621\-nl No status line +\-ns hp2626\-ns No status line +\-rv c100\-rv Reverse video +\-s vt100\-s Enable status line +\-vb wy370\-vb Use visible bell instead of beep +\-w vt100\-w Wide mode (> 80 columns, usually 132) .TE .PP -For more on terminal naming conventions, see the \fBterm(7)\fR manual page. -.SS Predefined Capabilities +For more on terminal naming conventions, see the \fBterm\fP(7) manual page. +.SS "\fIterminfo\fP 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. +.PP +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: +.bP +Boolean capabilities are true when present, false when absent. +There is no explicit value for Boolean capabilities. +.bP +Numeric capabilities have a \*(``#\*('' following the name, +then an unsigned decimal integer value. +.bP +String capabilities have a \*(``=\*('' following the name, +then an string of characters making up the capability value. +.IP +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. +.PP +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. +In the +definition of the variant, the string capability \fBuse\fP can be given with +the name of the base terminal: +.bP +The capabilities given before +.B use +override those in the base type named by +.BR use . +.bP +If there are multiple \fBuse\fP capabilities, they are merged in reverse order. +That is, the rightmost \fBuse\fP reference is processed first, then the one to +its left, and so forth. +.bP +Capabilities given explicitly in the entry override +those brought in by \fBuse\fP references. +.PP +A capability can be canceled by placing \fBxx@\fP to the left of the +use reference that imports it, where \fIxx\fP is the capability. +For example, the entry +.RS +.PP +2621\-nl, smkx@, rmkx@, use=2621, +.RE +.PP +defines a 2621\-nl that does not have the \fBsmkx\fP or \fBrmkx\fP 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 +user preferences. +.PP +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 .ps -1