]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/term.5.html
ncurses 6.2 - patch 20210821
[ncurses.git] / doc / html / man / term.5.html
index 60a9d223df7a406bf5347d428bb9fcc54a8c5f3e..941c2d82ca093dda56ede0bc05ccab5303ff82c8 100644 (file)
@@ -1,6 +1,6 @@
-<!-- 
+<!--
   ****************************************************************************
-  * Copyright 2018-2019,2020 Thomas E. Dickey                                *
+  * Copyright 2018-2020,2021 Thomas E. Dickey                                *
   * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.5,v 1.38 2020/07/25 21:56:02 tom Exp @
+  * @Id: term.5,v 1.40 2021/08/15 19:38:47 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
             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.
+            <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 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.
+            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 primary name as a key, and records  containing
+            only aliases pointing to the primary name.
 
-            If  built  to  write hashed databases, <STRONG>ncurses</STRONG> can still read ter-
-            minfo databases organized as a directory tree,  but  cannot  write
+            If  built  to  write  hashed  databases,  <STRONG>ncurses</STRONG>  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.
 
-            <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.
+            <STRONG>ncurses</STRONG>  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-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.
+       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 rou-
-       tine <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>.  The file is divided into six parts:
+       The  compiled  file  is  created  with the <STRONG>tic</STRONG> program, and read by the
+       routine <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>.  The file is divided into six parts:
 
             a) <EM>header</EM>,
 
        are in the same order as the file &lt;term.h&gt;.
 
        Short integers are signed, in the range  -32768  to  32767.   They  are
-       stored  as two 8-bit bytes.  The first byte contains the least signifi-
-       cant 8 bits of the value, and the second byte contains the most signif-
-       icant 8 bits.  (Thus, the value represented is 256*second+first.)  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.
-
-       Numbers in a terminal description, whether they are entries in the <EM>num-</EM>
-       <EM>bers</EM> or <EM>strings</EM>  table,  are  positive  integers.   Boolean  flags  are
+       stored  as  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.)
+       This format corresponds to the hardware 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.
+
+       Numbers  in  a  terminal  description,  whether they are entries in the
+       <EM>numbers</EM> or <EM>strings</EM> table, are positive  integers.   Boolean  flags  are
        treated  as  positive  one-byte integers.  In each case, those positive
        integers represent a terminal capability.  The  terminal  compiler  tic
        uses  negative  integers  to handle the cases where a capability is not
 
        The <EM>terminal</EM> <EM>names</EM> section comes after the  <EM>header</EM>.   It  contains  the
        first  line  of the terminfo description, listing the various names for
-       the terminal, separated by the "|" character.  The <EM>terminal</EM> <EM>names</EM>  sec-
-       tion is terminated with an ASCII NUL character.
+       the terminal, separated by  the  "|"  character.   The  <EM>terminal</EM>  <EM>names</EM>
+       section is terminated with an ASCII NUL character.
 
-       The <EM>boolean</EM> <EM>flags</EM> section has one byte for each flag.  Boolean capabil-
-       ities are either 1 or 0 (true or false) according to whether the termi-
-       nal supports the given capability or not.
+       The  <EM>boolean</EM>  <EM>flags</EM>  section  has  one  byte  for  each  flag.  Boolean
+       capabilities are either 1 or 0 (true or false) according to whether the
+       terminal supports the given capability or not.
 
        Between  the  <EM>boolean</EM> <EM>flags</EM> section and the <EM>number</EM> section, a null byte
        will be inserted, if necessary,  to  ensure  that  the  <EM>number</EM>  section
        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.
+       format, allowing users to  define  capabilities  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.  <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):
 
        <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.
+       To   maintain   compatibility,  the  library  presents  the  same  data
+       structures 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.
+       capabilities than  are  actually  present  in  the  file.   Either  the
+       database   may   have  been  updated  since  <STRONG>setupterm</STRONG>  was  recompiled
+       (resulting 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 boolean, number, and string capabilities.
 
 
 </PRE><H3><a name="h3-Binary-format">Binary format</a></H3><PRE>
        UNIX System V curses used a directory-tree of  binary  files,  one  per
        terminal description.
 
-       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.
+       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 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
 
 
 </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.
+       Direct  access  to  the  <STRONG>TERMTYPE</STRONG>  structure  is  provided  for  legacy
+       applications.  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
+       capabilities.
 
 
 </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.
+       between  uppercase  and  lowercase,  <STRONG>ncurses</STRONG>  represents   the   "first
+       character"  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:
+       As an example, here is a description  for  the  Lear-Siegler  ADM-3,  a
+       popular though rather stupid early terminal:
 
            adm3a|lsi adm3a,
                    am,
 </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  4096  bytes in the legacy
+           format.
 
        <STRONG>o</STRONG>   total compiled entries cannot exceed 32768 bytes  in  the  extended
            format.
        <STRONG>o</STRONG>   the name field cannot exceed 128 bytes.
 
        Compiled  entries  are  limited to 32768 bytes because offsets into the
-       <EM>strings</EM> <EM>table</EM> use two-byte integers.  The legacy format could have sup-
-       ported 32768-byte entries, but was limited a virtual memory page's 4096
-       bytes.
+       <EM>strings</EM> <EM>table</EM> use two-byte integers.   The  legacy  format  could  have
+       supported  32768-byte  entries, but was limited a virtual memory page's
+       4096 bytes.
 
 
 </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
-       /usr/share/terminfo/*/*  compiled terminal capability data base
+       /usr/share/terminfo/*/*  compiled terminal capability database
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>