ncurses 6.1 - patch 20190713
[ncurses.git] / doc / html / man / term.5.html
index ce6f5d4ac539285ab16adc672a064de765a530b2..5fab776ded8c8d9f380cea55fffacc98be990b05 100644 (file)
@@ -1,6 +1,6 @@
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2006,2010 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            *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.5,v 1.21 2010/12/04 18:40:45 tom Exp @
+  * @Id: term.5,v 1.32 2019/01/12 23:11:08 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">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
 <TITLE>term 5</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
-<H1>term 5</H1>
-<HR>
+<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>
+<STRONG><A HREF="term.5.html">term(5)</A></STRONG>                       File Formats Manual                      <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
 
 
 
 
-</PRE>
-<H2><a name="h2-NAME">NAME</a></H2><PRE>
+</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>
+</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
        <STRONG>term</STRONG>
 
 
-</PRE>
-<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+</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):
+</PRE><H3><a name="h3-STORAGE-LOCATION">STORAGE LOCATION</a></H3><PRE>
+       Compiled   terminfo   descriptions   are  placed  under  the  directory
+       <STRONG>/usr/share/terminfo</STRONG>.  Two configurations are supported  (when  building
+       the <STRONG>ncurses</STRONG> 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.
+            A two-level scheme is used to avoid a linear search of a huge UNIX
+            system directory: <STRONG>/usr/share/terminfo/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>.   Syn-
+            onyms  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
+            Using Berkeley database, two types of records are stored: the ter-
+            minfo  data  in the same format as stored in a directory tree with
+            the terminfo's primary 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.
+            If  built  to  write hashed databases, <STRONG>ncurses</STRONG> can still read ter-
+            minfo 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.
+            <STRONG>ncurses</STRONG> distinguishes the two  cases  in  the  TERMINFO  and  TER-
+            MINFO_DIRS  environment  variable by assuming a directory tree for
+            entries that correspond to an existing directory, and hashed data-
+            base 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.
+</PRE><H3><a name="h3-LEGACY-STORAGE-FORMAT">LEGACY 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  order-
+       ing 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 compiled file is created with the <STRONG>tic</STRONG> program, and read by the rou-
+       tine <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>.  The file is divided into six  parts:  the  header,
+       terminal names, boolean flags, numbers, strings, and string table.
 
-       The header section begins the file.  This section contains
-       six  short  integers in the format described below.  These
-       integers are
+       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);
 
 
             (3) the number of bytes in the boolean section;
 
-            (4) the number of short integers in the numbers  sec-
-            tion;
+            (4) the number of short integers in the numbers section;
 
-            (5)  the  number  of  offsets (short integers) in the
-            strings section;
+            (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 &lt;term.h&gt;.
-
-       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 $&lt;nn&gt; 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.
+       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*sec-
+       ond+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 hardware of the VAX and PDP-11 (that is, lit-
+       tle-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 various names for  the  terminal,
+       separated  by  the  "|"  character.   The section is terminated with an
+       ASCII NUL character.
+
+       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 &lt;term.h&gt;.
+
+       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 begin-
+       ning of the string table.  Special characters in ^X or \c notation  are
+       stored  in  their  interpreted  form,  not the printing representation.
+       Padding information $&lt;nn&gt;  and  parameter  information  %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 <STRONG>ncurses</STRONG> libraries and applications support extended terminfo binary
+       format,  allowing users to define capabilities which are loaded at run-
+       time.  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.  <STRONG>ncurses</STRONG> 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):
 
 
             (3)  count of extended string capabilities
 
-            (4)  size of the extended string table in bytes.
+            (4)  count of the items in extended string table
 
-            (5)  last offset of  the  extended  string  table  in
-                 bytes.
+            (5)  size of the extended string table in bytes
 
-       Using  the  counts and sizes, ncurses allocates arrays and
-       reads data for the extended capabilties in the same  order
-       as the header information.
+       The count- and size-values for the extended string  table  include  the
+       extended capability <EM>names</EM> as well as extended capability <EM>values</EM>.
 
-       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.
+       Using the counts and sizes, <STRONG>ncurses</STRONG> 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  capabilities.
+       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.
+       Applications  which  manipulate  terminal  data can use the definitions
+       described in <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG> which  associate  the  long  capability
+       names with members of a <STRONG>TERMTYPE</STRONG> structure.
 
 
-</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$&lt;1&gt;, 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  ....../. .....$&lt;1
-       0130  3e 00 1b 3d 25 70 31 25  7b 33 32 7d 25 2b 25 63  &gt;..=%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><H3><a name="h3-EXTENDED-NUMBER-FORMAT">EXTENDED NUMBER FORMAT</a></H3><PRE>
+       On occasion, 16-bit signed integers are not large enough.  With <STRONG>ncurses</STRONG>
+       6.1, a new format was introduced by making a few changes to the  legacy
+       format:
+
+       <STRONG>o</STRONG>   a different magic number (octal 01036)
+
+       <STRONG>o</STRONG>   changing  the type for the <EM>number</EM> array from signed 16-bit integers
+           to signed 32-bit integers.
+
+       To maintain compatibility, the library presents the  same  data  struc-
+       tures to direct users of the <STRONG>TERMTYPE</STRONG> structure as in previous formats.
+       However, that cannot provide callers with the  extended  numbers.   The
+       library  uses  a similar but hidden data structure <STRONG>TERMTYPE2</STRONG> to provide
+       data for the terminfo functions.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+
+</PRE><H3><a name="h3-setupterm">setupterm</a></H3><PRE>
+       Note that it is possible for <STRONG>setupterm</STRONG> to expect  a  different  set  of
+       capabilities  than  are actually present in the file.  Either the data-
+       base may have been updated since <STRONG>setupterm</STRONG> has been recompiled (result-
+       ing  in extra unrecognized entries in the file) or the program may have
+       been recompiled more recently than the database was updated  (resulting
+       in  missing  entries).  The routine <STRONG>setupterm</STRONG> 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 bool-
+       ean, number, and string capabilities.
 
 
+</PRE><H3><a name="h3-Binary-format">Binary format</a></H3><PRE>
+       X/Open Curses does not specify a  format  for  the  terminfo  database.
+       UNIX  System  V  curses  used a directory-tree of binary files, one per
+       terminal description.
 
-</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.
+       Despite the consistent use of little-endian for numbers and the  other-
+       wise  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  discussion of terminfo source compatibility
+       issues.
 
+       This implementation is by default compatible with the  binary  terminfo
+       format  used by Solaris curses, except in a few less-used details where
+       it was found that the latter did not match X/Open Curses.   The  format
+       used by the other Unix versions can be matched by building ncurses with
+       different configuration options.
 
-</PRE>
-<H2><a name="h2-FILES">FILES</a></H2><PRE>
-       /usr/share/terminfo/*/*  compiled terminal capability data
-       base
 
+</PRE><H3><a name="h3-Magic-codes">Magic codes</a></H3><PRE>
+       The magic number in a binary terminfo file is the  first  16-bits  (two
+       bytes).   Besides making it more reliable for the library to check that
+       a file is terminfo, utilities such as <STRONG>file</STRONG> also use that to  tell  what
+       the  file-format is.  System V defined more than one magic number, with
+       0433, 0435 as screen-dumps (see <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>).  This implementation uses
+       01036  as  a  continuation of that sequence, but with a different high-
+       order byte to avoid confusion.
 
-</PRE>
-<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+
+</PRE><H3><a name="h3-The-TERMTYPE-structure">The TERMTYPE structure</a></H3><PRE>
+       Direct access to the <STRONG>TERMTYPE</STRONG> structure is provided for legacy applica-
+       tions.   Portable  applications  should  use  the <STRONG>tigetflag</STRONG> and related
+       functions described in <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> for reading terminal capabili-
+       ties.
+
+
+</PRE><H3><a name="h3-Mixed-case-terminal-names">Mixed-case terminal names</a></H3><PRE>
+       A  small  number  of  terminal descriptions use uppercase characters in
+       their names.  If  the  underlying  filesystem  ignores  the  difference
+       between  uppercase and lowercase, <STRONG>ncurses</STRONG> represents the "first charac-
+       ter" of the terminal name used as the intermediate level of a directory
+       tree in (two-character) hexadecimal form.
+
+
+</PRE><H2><a name="h2-EXAMPLE">EXAMPLE</a></H2><PRE>
+       As an example, here is a description for the Lear-Siegler ADM-3, a pop-
+       ular though rather stupid early terminal:
+
+           adm3a|lsi adm3a,
+                   am,
+                   cols#80, lines#24,
+                   bel=^G, clear= 32$&lt;1&gt;, cr=^M, cub1=^H, cud1=^J,
+                   cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+                   home=^^, ind=^J,
+
+
+       and a hexadecimal dump of the compiled terminal description:
+
+           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  ....../. .....$&lt;1
+           0130  3e 00 1b 3d 25 70 31 25  7b 33 32 7d 25 2b 25 63  &gt;..=%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:
+
+       <STRONG>o</STRONG>   total compiled entries cannot exceed 4096 bytes in the legacy  for-
+           mat.
+
+       <STRONG>o</STRONG>   total  compiled  entries  cannot exceed 32768 bytes in the extended
+           format.
+
+       <STRONG>o</STRONG>   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>
+</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
+       extended number support for ncurses 6.1
 
        Eric S. Raymond
+       documented legacy terminfo format, e.g., from pcurses.
 
 
 
-                                                                <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
+                                                                       <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
 <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-LEGACY-STORAGE-FORMAT">LEGACY STORAGE FORMAT</a></li>
 <li><a href="#h3-EXTENDED-STORAGE-FORMAT">EXTENDED STORAGE FORMAT</a></li>
+<li><a href="#h3-EXTENDED-NUMBER-FORMAT">EXTENDED NUMBER FORMAT</a></li>
+</ul>
+</li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a>
+<ul>
+<li><a href="#h3-setupterm">setupterm</a></li>
+<li><a href="#h3-Binary-format">Binary format</a></li>
+<li><a href="#h3-Magic-codes">Magic codes</a></li>
+<li><a href="#h3-The-TERMTYPE-structure">The TERMTYPE structure</a></li>
+<li><a href="#h3-Mixed-case-terminal-names">Mixed-case terminal names</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>