mirror of
https://github.com/Aigor44/ncursesw-morphos.git
synced 2024-12-27 07:49:06 +08:00
027d0c57c4
+ amend change to ".pc" files to only use the extra loader flags which may have rpath options (report by Sven Joachim, cf: 20150502). + change versioning for dpkg's in test-packages for Ada95 and ncurses-examples for consistency with Debian, to work with package updates. + regenerate html manpages. + clarify handling of carriage return in waddch manual page; it was discussed only in the portability section (prompted by comment on Stack Overflow forum):
329 lines
15 KiB
HTML
329 lines
15 KiB
HTML
<!--
|
|
****************************************************************************
|
|
* Copyright (c) 1998-2010,2015 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 *
|
|
* "Software"), to deal in the Software without restriction, including *
|
|
* without limitation the rights to use, copy, modify, merge, publish, *
|
|
* distribute, distribute with modifications, sublicense, and/or sell *
|
|
* copies of the Software, and to permit persons to whom the Software is *
|
|
* furnished to do so, subject to the following conditions: *
|
|
* *
|
|
* The above copyright notice and this permission notice shall be included *
|
|
* in all copies or substantial portions of the Software. *
|
|
* *
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
|
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
|
|
* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
|
|
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
|
|
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
|
|
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
|
* *
|
|
* Except as contained in this notice, the name(s) of the above copyright *
|
|
* holders shall not be used in advertising or otherwise to promote the *
|
|
* sale, use or other dealings in this Software without prior written *
|
|
* authorization. *
|
|
****************************************************************************
|
|
* @Id: term.5,v 1.22 2015/04/26 14:50:23 tom Exp @
|
|
-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
|
<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
|
|
<TITLE>term 5</TITLE>
|
|
<link rev=made href="mailto:bug-ncurses@gnu.org">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
</HEAD>
|
|
<BODY>
|
|
<H1 class="no-header">term 5</H1>
|
|
<PRE>
|
|
<STRONG><A HREF="term.5.html">term(5)</A></STRONG> <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
|
|
|
|
|
|
|
|
|
|
</PRE>
|
|
<H2><a name="h2-NAME">NAME</a></H2><PRE>
|
|
term - format of compiled term file.
|
|
|
|
|
|
</PRE>
|
|
<H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
|
|
<STRONG>term</STRONG>
|
|
|
|
|
|
</PRE>
|
|
<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
|
|
|
|
</PRE>
|
|
<H3><a name="h3-STORAGE-LOCATION">STORAGE LOCATION</a></H3><PRE>
|
|
Compiled terminfo descriptions are placed under the direc-
|
|
tory <STRONG>/usr/share/terminfo</STRONG>. Two configurations are sup-
|
|
ported (when building the ncurses libraries):
|
|
|
|
<STRONG>directory</STRONG> <STRONG>tree</STRONG>
|
|
A two-level scheme is used to avoid a linear search
|
|
of a huge UNIX system directory: <STRONG>/usr/share/ter-</STRONG>
|
|
<STRONG>minfo/c/name</STRONG> where <EM>name</EM> is the name of the terminal,
|
|
and <EM>c</EM> is the first character of <EM>name</EM>. Thus, <EM>act4</EM> can
|
|
be found in the file <STRONG>/usr/share/terminfo/a/act4</STRONG>.
|
|
Synonyms for the same terminal are implemented by
|
|
multiple links to the same compiled file.
|
|
|
|
<STRONG>hashed</STRONG> <STRONG>database</STRONG>
|
|
Using Berkeley database, two types of records are
|
|
stored: the terminfo data in the same format as
|
|
stored in a directory tree with the terminfo's pri-
|
|
mary name as a key, and records containing only
|
|
aliases pointing to the primary name.
|
|
|
|
If built to write hashed databases, ncurses can still
|
|
read terminfo databases organized as a directory
|
|
tree, but cannot write entries into the directory
|
|
tree. It can write (or rewrite) entries in the
|
|
hashed database.
|
|
|
|
ncurses distinguishes the two cases in the TERMINFO
|
|
and TERMINFO_DIRS environment variable by assuming a
|
|
directory tree for entries that correspond to an
|
|
existing directory, and hashed database otherwise.
|
|
|
|
|
|
</PRE>
|
|
<H3><a name="h3-STORAGE-FORMAT">STORAGE FORMAT</a></H3><PRE>
|
|
The format has been chosen so that it will be the same on
|
|
all hardware. An 8 or more bit byte is assumed, but no
|
|
assumptions about byte ordering or sign extension are
|
|
made.
|
|
|
|
The compiled file is created with the <STRONG>tic</STRONG> program, and
|
|
read by the routine <EM>setupterm</EM>. The file is divided into
|
|
six parts: the header, terminal names, boolean flags, num-
|
|
bers, strings, and string table.
|
|
|
|
The header section begins the file. This section contains
|
|
six short integers in the format described below. These
|
|
integers are
|
|
|
|
(1) the magic number (octal 0432);
|
|
|
|
(2) the size, in bytes, of the names section;
|
|
|
|
(3) the number of bytes in the boolean section;
|
|
|
|
(4) the number of short integers in the numbers sec-
|
|
tion;
|
|
|
|
(5) the number of offsets (short integers) in the
|
|
strings section;
|
|
|
|
(6) the size, in bytes, of the string table.
|
|
|
|
Short integers are stored in two 8-bit bytes. The first
|
|
byte contains the least significant 8 bits of the value,
|
|
and the second byte contains the most significant 8 bits.
|
|
(Thus, the value represented is 256*second+first.) The
|
|
value -1 is represented by the two bytes 0377, 0377; other
|
|
negative values are illegal. This value generally means
|
|
that the corresponding capability is missing from this
|
|
terminal. Note that this format corresponds to the hard-
|
|
ware of the VAX and PDP-11 (that is, little-endian
|
|
machines). Machines where this does not correspond to the
|
|
hardware must read the integers as two bytes and compute
|
|
the little-endian value.
|
|
|
|
The terminal names section comes next. It contains the
|
|
first line of the terminfo description, listing the vari-
|
|
ous names for the terminal, separated by the `|' charac-
|
|
ter. The section is terminated with an ASCII NUL charac-
|
|
ter.
|
|
|
|
The boolean flags have one byte for each flag. This byte
|
|
is either 0 or 1 as the flag is present or absent. The
|
|
capabilities are in the same order as the file <term.h>.
|
|
|
|
Between the boolean section and the number section, a null
|
|
byte will be inserted, if necessary, to ensure that the
|
|
number section begins on an even byte (this is a relic of
|
|
the PDP-11's word-addressed architecture, originally
|
|
designed in to avoid IOT traps induced by addressing a
|
|
word on an odd byte boundary). All short integers are
|
|
aligned on a short word boundary.
|
|
|
|
The numbers section is similar to the flags section. Each
|
|
capability takes up two bytes, and is stored as a little-
|
|
endian short integer. If the value represented is -1, the
|
|
capability is taken to be missing.
|
|
|
|
The strings section is also similar. Each capability is
|
|
stored as a short integer, in the format above. A value
|
|
of -1 means the capability is missing. Otherwise, the
|
|
value is taken as an offset from the beginning of the
|
|
string table. Special characters in ^X or \c notation are
|
|
stored in their interpreted form, not the printing repre-
|
|
sentation. Padding information $<nn> and parameter infor-
|
|
mation %x are stored intact in uninterpreted form.
|
|
|
|
The final section is the string table. It contains all
|
|
the values of string capabilities referenced in the string
|
|
section. Each string is null terminated.
|
|
|
|
|
|
</PRE>
|
|
<H3><a name="h3-EXTENDED-STORAGE-FORMAT">EXTENDED STORAGE FORMAT</a></H3><PRE>
|
|
The previous section describes the conventional terminfo
|
|
binary format. With some minor variations of the offsets
|
|
(see PORTABILITY), the same binary format is used in all
|
|
modern UNIX systems. Each system uses a predefined set of
|
|
boolean, number or string capabilities.
|
|
|
|
The ncurses libraries and applications support extended
|
|
terminfo binary format, allowing users to define capabili-
|
|
ties which are loaded at runtime. This extension is made
|
|
possible by using the fact that the other implementations
|
|
stop reading the terminfo data when they have reached the
|
|
end of the size given in the header. ncurses checks the
|
|
size, and if it exceeds that due to the predefined data,
|
|
continues to parse according to its own scheme.
|
|
|
|
First, it reads the extended header (5 short integers):
|
|
|
|
(1) count of extended boolean capabilities
|
|
|
|
(2) count of extended numeric capabilities
|
|
|
|
(3) count of extended string capabilities
|
|
|
|
(4) size of the extended string table in bytes.
|
|
|
|
(5) last offset of the extended string table in
|
|
bytes.
|
|
|
|
Using the counts and sizes, ncurses allocates arrays and
|
|
reads data for the extended capabilities in the same order
|
|
as the header information.
|
|
|
|
The extended string table contains values for string capa-
|
|
bilities. After the end of these values, it contains the
|
|
names for each of the extended capabilities in order,
|
|
e.g., booleans, then numbers and finally strings.
|
|
|
|
|
|
</PRE>
|
|
<H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
|
|
Note that it is possible for <EM>setupterm</EM> to expect a differ-
|
|
ent set of capabilities than are actually present in the
|
|
file. Either the database may have been updated since
|
|
<EM>setupterm</EM> has been recompiled (resulting in extra unrecog-
|
|
nized entries in the file) or the program may have been
|
|
recompiled more recently than the database was updated
|
|
(resulting in missing entries). The routine <EM>setupterm</EM>
|
|
must be prepared for both possibilities - this is why the
|
|
numbers and sizes are included. Also, new capabilities
|
|
must always be added at the end of the lists of boolean,
|
|
number, and string capabilities.
|
|
|
|
Despite the consistent use of little-endian for numbers
|
|
and the otherwise self-describing format, it is not wise
|
|
to count on portability of binary terminfo entries between
|
|
commercial UNIX versions. The problem is that there are
|
|
at least three versions of terminfo (under HP-UX, AIX, and
|
|
OSF/1) which diverged from System V terminfo after SVr1,
|
|
and have added extension capabilities to the string table
|
|
that (in the binary format) collide with System V and XSI
|
|
Curses extensions. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for detailed discus-
|
|
sion of terminfo source compatibility issues.
|
|
|
|
|
|
</PRE>
|
|
<H2><a name="h2-EXAMPLE">EXAMPLE</a></H2><PRE>
|
|
As an example, here is a hex dump of the description for
|
|
the Lear-Siegler ADM-3, a popular though rather stupid
|
|
early terminal:
|
|
|
|
adm3a|lsi adm3a,
|
|
am,
|
|
cols#80, lines#24,
|
|
bel=^G, clear= 32$<1>, cr=^M, cub1=^H, cud1=^J,
|
|
cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
|
|
home=^^, ind=^J,
|
|
|
|
0000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3
|
|
0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.
|
|
0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........
|
|
0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.'...
|
|
0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..-.....
|
|
0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
|
|
0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$<1
|
|
0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 >..=%p1% {32}%+%c
|
|
0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....
|
|
0150 00 08 00 0c 00 0b 00 0a 00 ........ .
|
|
|
|
|
|
|
|
</PRE>
|
|
<H2><a name="h2-LIMITS">LIMITS</a></H2><PRE>
|
|
Some limitations: total compiled entries cannot exceed
|
|
4096 bytes. The name field cannot exceed 128 bytes.
|
|
|
|
|
|
</PRE>
|
|
<H2><a name="h2-FILES">FILES</a></H2><PRE>
|
|
/usr/share/terminfo/*/* compiled terminal capability data
|
|
base
|
|
|
|
|
|
</PRE>
|
|
<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
|
|
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
|
|
|
|
|
|
</PRE>
|
|
<H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
|
|
Thomas E. Dickey
|
|
extended terminfo format for ncurses 5.0
|
|
hashed database support for ncurses 5.6
|
|
|
|
Eric S. Raymond
|
|
|
|
|
|
|
|
<STRONG><A HREF="term.5.html">term(5)</A></STRONG>
|
|
</PRE>
|
|
<div class="nav">
|
|
<ul>
|
|
<li><a href="#h2-NAME">NAME</a></li>
|
|
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
|
|
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
|
|
<ul>
|
|
<li><a href="#h3-STORAGE-LOCATION">STORAGE LOCATION</a></li>
|
|
<li><a href="#h3-STORAGE-FORMAT">STORAGE FORMAT</a></li>
|
|
<li><a href="#h3-EXTENDED-STORAGE-FORMAT">EXTENDED STORAGE FORMAT</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
|
|
<li><a href="#h2-EXAMPLE">EXAMPLE</a></li>
|
|
<li><a href="#h2-LIMITS">LIMITS</a></li>
|
|
<li><a href="#h2-FILES">FILES</a></li>
|
|
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
|
|
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
|
|
</ul>
|
|
</div>
|
|
</BODY>
|
|
</HTML>
|