]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/terminfo.5.html
ncurses 6.0 - patch 20161119
[ncurses.git] / doc / html / man / terminfo.5.html
index 850775ea436b6fec40756ef5e7a714154d12cdcd..3ab6070bb64fe6c1d2e7f019d3356f41b4ff257f 100644 (file)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <!-- 
   * t
   * DO NOT EDIT THIS FILE BY HAND!
@@ -6,7 +5,7 @@
   * Note: this must be run through tbl before nroff.
   * The magic cookie on the first line triggers this under some man programs.
   ****************************************************************************
-  * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2013,2016 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            *
@@ -32,9 +31,9 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp @
+  * @Id: terminfo.head,v 1.22 2016/10/15 17:02:31 tom Exp @
   * Head of terminfo man page ends here
-  * @Id: terminfo.tail,v 1.68 2013/11/09 15:20:48 tom Exp @
+  * @Id: terminfo.tail,v 1.74 2016/11/05 21:15:43 Alain.Williams Exp @
   * Beginning of terminfo.tail file
   * This file is part of ncurses.
   * See "terminfo.head" for copyright.
   *.in +2
   *.TH
 -->
+<!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>terminfo 5   File Formats</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>terminfo 5   File Formats</H1>
-<HR>
+<H1 class="no-header">terminfo 5   File Formats</H1>
 <PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>                   File Formats                  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 
 
-</PRE>
-<H2>NAME</H2><PRE>
+</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
        terminfo - terminal capability data base
 
 
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
+</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
        /usr/share/terminfo/*/*
 
 
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
        <EM>Terminfo</EM>  is  a  data  base  describing terminals, used by
        screen-oriented programs  such  as  <STRONG>nvi(1)</STRONG>,  <STRONG>rogue(1)</STRONG>  and
        libraries  such  as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.  <EM>Terminfo</EM> describes termi-
        nals by giving a set of capabilities which they  have,  by
        specifying how to perform screen operations, and by speci-
        fying padding requirements and  initialization  sequences.
-       This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+       This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
 
        Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
        fields (embedded commas may be escaped with a backslash or
        For more on terminal naming conventions, see  the  <STRONG>term(7)</STRONG>
        manual page.
 
-   <STRONG>Predefined</STRONG> <STRONG>Capabilities</STRONG>
+
+</PRE><H3><a name="h3-Predefined-Capabilities">Predefined Capabilities</a></H3><PRE>
        The  following  is  a  complete  table of the capabilities
        included in a terminfo description block and available  to
        terminfo-using code.  In each line of the table,
        status_line_esc_ok        eslok  es   escape can be used
                                              on the status line
        tilde_glitch              hz     hz   cannot print ~'s
-                                             (hazeltine)
+                                             (Hazeltine)
 
 
        transparent_underline     ul     ul   underline character
                                              color-pairs on the
                                              screen
        maximum_windows           wnum   MW   maximum number of
-                                             defineable windows
+                                             definable windows
        no_color_video            ncv    NC   video attributes
                                              that cannot be used
                                              with colors
                                                multiple codesets
        color_names               colornm  Yw   Give name for
                                                color #1
-       define_bit_image_region   defbi    Yx   Define rectan-
-                                               gualar bit image
-                                               region
+       define_bit_image_region   defbi    Yx   Define rectangular
+                                               bit image region
        device_type               devt     dv   Indicate lan-
                                                guage/codeset sup-
                                                port
        set_page_length           slines   YZ   Set page length to
                                                #1 lines
 
+
        set_tb_margin             smgtb    MT   Sets both top and
                                                bottom margins to
                                                #1, #2
 
-        The  XSI  Curses  standard added these hardcopy capabili-
+        The XSI Curses standard added  these  hardcopy  capabili-
         ties.  They were used in some post-4.1 versions of System
         V curses, e.g., Solaris 2.5 and IRIX 6.x.  Except for <STRONG>YI</STRONG>,
         the <STRONG>ncurses</STRONG> termcap names for them are invented.  Accord-
-        ing  to  the  XSI  Curses  standard, they have no termcap
+        ing to the XSI Curses  standard,  they  have  no  termcap
         names.  If your compiled terminfo entries use these, they
-        may  not  be  binary-compatible  with  System  V terminfo
+        may not  be  binary-compatible  with  System  V  terminfo
         entries after SVr4.1; beware!
 
 
                                              tations use sL for
                                              termcap).
 
-   <STRONG>User-Defined</STRONG> <STRONG>Capabilities</STRONG>
-       The preceding section listed the <EM>predefined</EM>  capabilities.
-       They  deal  with  some  special  features for terminals no
-       longer (or possibly never) produced.   Occasionally  there
-       are  special features of newer terminals which are awkward
+
+</PRE><H3><a name="h3-User-Defined-Capabilities">User-Defined Capabilities</a></H3><PRE>
+       The  preceding section listed the <EM>predefined</EM> capabilities.
+       They deal with some  special  features  for  terminals  no
+       longer  (or  possibly never) produced.  Occasionally there
+       are special features of newer terminals which are  awkward
        or impossible to represent by reusing the predefined capa-
        bilities.
 
        <STRONG>ncurses</STRONG> addresses this limitation by allowing user-defined
        capabilities.  The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG>
-       option  for  this  purpose.   When  <STRONG>-x</STRONG>  is set, <STRONG>tic</STRONG> treats
-       unknown capabilities as user-defined.   That  is,  if  <STRONG>tic</STRONG>
-       encounters  a capability name which it does not recognize,
-       it infers its type (boolean, number or  string)  from  the
+       option for this purpose.   When  <STRONG>-x</STRONG>  is  set,  <STRONG>tic</STRONG>  treats
+       unknown  capabilities  as  user-defined.   That is, if <STRONG>tic</STRONG>
+       encounters a capability name which it does not  recognize,
+       it  infers  its  type (boolean, number or string) from the
        syntax and makes an extended table entry for that capabil-
-       ity.  The <STRONG>use_extended_names</STRONG> function makes this  informa-
+       ity.   The <STRONG>use_extended_names</STRONG> function makes this informa-
        tion conditionally available to applications.  The ncurses
-       library provides the data leaving most of the behavior  to
+       library  provides the data leaving most of the behavior to
        applications:
 
        <STRONG>o</STRONG>   User-defined capability strings whose name begins with
            "k" are treated as function keys.
 
-       <STRONG>o</STRONG>   The types (boolean, number, string) determined by  <STRONG>tic</STRONG>
+       <STRONG>o</STRONG>   The  types (boolean, number, string) determined by <STRONG>tic</STRONG>
            can be inferred by successful calls on <STRONG>tigetflag</STRONG>, etc.
 
-       <STRONG>o</STRONG>   If  the  capability name happens to be two characters,
-           the capability is also available through  the  termcap
+       <STRONG>o</STRONG>   If the capability name happens to be  two  characters,
+           the  capability  is also available through the termcap
            interface.
 
        While termcap is said to be extensible because it does not
-       use a predefined set of capabilities, in practice  it  has
-       been  limited  to  the  capabilities  defined  by terminfo
-       implementations.  As  a  rule,  user-defined  capabilities
+       use  a  predefined set of capabilities, in practice it has
+       been limited  to  the  capabilities  defined  by  terminfo
+       implementations.   As  a  rule,  user-defined capabilities
        intended for use by termcap applications should be limited
-       to booleans and numbers to avoid  running  past  the  1023
-       byte  limit  assumed  by termcap implementations and their
-       applications.  In particular, providing extended  sets  of
-       function  keys  (past the 60 numbered keys and the handful
+       to  booleans  and  numbers  to avoid running past the 1023
+       byte limit assumed by termcap  implementations  and  their
+       applications.   In  particular, providing extended sets of
+       function keys (past the 60 numbered keys and  the  handful
        of special named keys) is best done using the longer names
        available using terminfo.
 
-   <STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG>
+
+</PRE><H3><a name="h3-A-Sample-Entry">A Sample Entry</a></H3><PRE>
        The following entry, describing an ANSI-standard terminal,
-       is representative of what a <STRONG>terminfo</STRONG> entry  for  a  modern
+       is  representative  of  what a <STRONG>terminfo</STRONG> entry for a modern
        terminal typically looks like.
 
        ansi|ansi/pc-term compatible with color,
                smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
                u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,
 
-       Entries  may continue onto multiple lines by placing white
-       space at the beginning of  each  line  except  the  first.
-       Comments  may  be  included  on  lines beginning with "#".
+       Entries may continue onto multiple lines by placing  white
+       space  at  the  beginning  of  each line except the first.
+       Comments may be included  on  lines  beginning  with  "#".
        Capabilities in <EM>terminfo</EM> are of three types:
 
-       <STRONG>o</STRONG>   Boolean capabilities which indicate that the  terminal
+       <STRONG>o</STRONG>   Boolean  capabilities which indicate that the terminal
            has some particular feature,
 
-       <STRONG>o</STRONG>   numeric  capabilities  giving the size of the terminal
+       <STRONG>o</STRONG>   numeric capabilities giving the size of  the  terminal
            or the size of particular delays, and
 
-       <STRONG>o</STRONG>   string capabilities, which give a sequence  which  can
+       <STRONG>o</STRONG>   string  capabilities,  which give a sequence which can
            be used to perform particular terminal operations.
 
-   <STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG>
-       All  capabilities have names.  For instance, the fact that
-       ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM>  (i.e.,  an
-       automatic  return  and line-feed when the end of a line is
-       reached) is indicated by the  capability  <STRONG>am</STRONG>.   Hence  the
+
+</PRE><H3><a name="h3-Types-of-Capabilities">Types of Capabilities</a></H3><PRE>
+       All capabilities have names.  For instance, the fact  that
+       ANSI-standard  terminals  have <EM>automatic</EM> <EM>margins</EM> (i.e., an
+       automatic return and line-feed when the end of a  line  is
+       reached)  is  indicated  by  the capability <STRONG>am</STRONG>.  Hence the
        description of ansi includes <STRONG>am</STRONG>.  Numeric capabilities are
-       followed by the character "#" and then a  positive  value.
-       Thus  <STRONG>cols</STRONG>, which indicates the number of columns the ter-
-       minal has, gives the value  "80"  for  ansi.   Values  for
+       followed  by  the character "#" and then a positive value.
+       Thus <STRONG>cols</STRONG>, which indicates the number of columns the  ter-
+       minal  has,  gives  the  value  "80" for ansi.  Values for
        numeric capabilities may be specified in decimal, octal or
-       hexadecimal, using the C programming language  conventions
+       hexadecimal,  using the C programming language conventions
        (e.g., 255, 0377 and 0xff or 0xFF).
 
-       Finally,  string valued capabilities, such as <STRONG>el</STRONG> (clear to
+       Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear  to
        end of line sequence) are given by the two-character code,
-       an  "=",  and  then  a string ending at the next following
+       an "=", and then a string ending  at  the  next  following
        ",".
 
-       A number of escape sequences are provided  in  the  string
+       A  number  of  escape sequences are provided in the string
        valued capabilities for easy encoding of characters there.
-       Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG>  maps  to  a
-       control-x  for  any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
-       <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a  newline,  line-feed,  return,  tab,
+       Both  <STRONG>\E</STRONG>  and  <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
+       control-x for any appropriate x, and the sequences  <STRONG>\n</STRONG>  <STRONG>\l</STRONG>
+       <STRONG>\r</STRONG>  <STRONG>\t</STRONG>  <STRONG>\b</STRONG>  <STRONG>\f</STRONG>  <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
        backspace, form-feed, and space.  Other escapes include
 
        <STRONG>o</STRONG>   <STRONG>\^</STRONG> for <STRONG>^</STRONG>,
 
        <STRONG>o</STRONG>   and <STRONG>\0</STRONG> for null.
 
-           <STRONG>\0</STRONG>  will  produce  \200,  which  does  not terminate a
-           string but behaves as a null character on most  termi-
+           <STRONG>\0</STRONG> will produce  \200,  which  does  not  terminate  a
+           string  but behaves as a null character on most termi-
            nals, providing CS7 is specified.  See <STRONG>stty(1)</STRONG>.
 
-           The  reason  for this quirk is to maintain binary com-
-           patibility of the compiled terminfo files  with  other
-           implementations,  e.g.,  the SVr4 systems, which docu-
-           ment this.  Compiled terminfo  files  use  null-termi-
-           nated  strings, with no lengths.  Modifying this would
+           The reason for this quirk is to maintain  binary  com-
+           patibility  of  the compiled terminfo files with other
+           implementations, e.g., the SVr4 systems,  which  docu-
+           ment  this.   Compiled  terminfo files use null-termi-
+           nated strings, with no lengths.  Modifying this  would
            require a new binary format, which would not work with
            other implementations.
 
-       Finally,  characters  may  be  given as three octal digits
+       Finally, characters may be given  as  three  octal  digits
        after a <STRONG>\</STRONG>.
 
-       A delay in milliseconds may appear anywhere  in  a  string
-       capability,  enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;,
-       and padding characters are supplied by  <EM>tputs</EM>  to  provide
-       this  delay.   The delay must be a number with at most one
-       decimal place of precision; it may be followed by suffixes
-       "*"  or  "/"  or  both.   A "*" indicates that the padding
-       required is proportional to the number of  lines  affected
-       by  the  operation,  and  the  amount  given  is  the per-
-       affected-unit padding required.  (In the  case  of  insert
-       character,  the  factor  is  still  the  number  of  <EM>lines</EM>
-       affected.)  Normally, padding is advisory  if  the  device
-       has  the  <STRONG>xon</STRONG>  capability; it is used for cost computation
-       but does not trigger delays.  A "/" suffix indicates  that
-       the  padding  is mandatory and forces a delay of the given
-       number of milliseconds even on devices for  which  <STRONG>xon</STRONG>  is
-       present to indicate flow control.
+       A  delay  in  milliseconds may appear anywhere in a string
+       capability, enclosed in $&lt;..&gt; brackets, as in  <STRONG>el</STRONG>=\EK$&lt;5&gt;,
+       and  padding  characters  are supplied by <STRONG>tputs</STRONG> to provide
+       this delay.
+
+       <STRONG>o</STRONG>   The delay must be a number with at  most  one  decimal
+           place of precision; it may be followed by suffixes "*"
+           or "/" or both.
+
+       <STRONG>o</STRONG>   A "*" indicates that the padding required  is  propor-
+           tional  to  the number of lines affected by the opera-
+           tion, and the amount given  is  the  per-affected-unit
+           padding  required.   (In the case of insert character,
+           the factor is still the number of <EM>lines</EM> affected.)
+
+           Normally, padding is advisory if the  device  has  the
+           <STRONG>xon</STRONG>  capability;  it  is used for cost computation but
+           does not trigger delays.
+
+       <STRONG>o</STRONG>   A "/" suffix indicates that the padding  is  mandatory
+           and forces a delay of the given number of milliseconds
+           even on devices for which <STRONG>xon</STRONG> is present  to  indicate
+           flow control.
 
        Sometimes  individual  capabilities must be commented out.
        To do this, put a period before the capability name.   For
        example, see the second <STRONG>ind</STRONG> in the example above.
 
-   <STRONG>Fetching</STRONG> <STRONG>Compiled</STRONG> <STRONG>Descriptions</STRONG>
+
+</PRE><H3><a name="h3-Fetching-Compiled-Descriptions">Fetching Compiled Descriptions</a></H3><PRE>
        The  <STRONG>ncurses</STRONG> library searches for terminal descriptions in
        several places.  It uses only the first description found.
        The  library  has  a  compiled-in list of places to search
            database files) to be searched.
 
            An empty directory name (i.e., if the variable  begins
-           or  ends  with a colon, or contains adacent colons) is
+           or  ends with a colon, or contains adjacent colons) is
            interpreted as  the  system  location  <EM>/usr/share/ter-</EM>
            <EM>minfo</EM>.
 
            <STRONG>o</STRONG>   the system terminfo directory, <EM>/usr/share/terminfo</EM>
                (the compiled-in default).
 
-   <STRONG>Preparing</STRONG> <STRONG>Descriptions</STRONG>
+
+</PRE><H3><a name="h3-Preparing-Descriptions">Preparing Descriptions</a></H3><PRE>
        We now outline how to prepare descriptions  of  terminals.
        The  most  effective way to prepare a terminal description
        is by imitating the description of a similar  terminal  in
        ally  needed.  A similar test can be used for insert char-
        acter.
 
-   <STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG>
+
+</PRE><H3><a name="h3-Basic-Capabilities">Basic Capabilities</a></H3><PRE>
        The number of columns on each line  for  the  terminal  is
        given  by the <STRONG>cols</STRONG> numeric capability.  If the terminal is
        a CRT, then the number of lines on the screen is given  by
                am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
                ind=^J, lines#24,
 
-   <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
+
+</PRE><H3><a name="h3-Parameterized-Strings">Parameterized Strings</a></H3><PRE>
        Cursor  addressing  and other strings requiring parameters
        in the terminal are described by  a  parameterized  string
        capability,  with  <EM>printf</EM>-like  escapes  such as <EM>%x</EM> in it.
             to allow the next character to be a "-" flag,  avoid-
             ing interpreting "%-" as an operator.
 
-       %c   print pop() like %c in <STRONG>printf</STRONG>
+       %c   print <EM>pop()</EM> like %c in <STRONG>printf</STRONG>
 
-       <STRONG>%s</STRONG>   print pop() like %s in <STRONG>printf</STRONG>
+       <STRONG>%s</STRONG>   print <EM>pop()</EM> like %s in <STRONG>printf</STRONG>
 
        <STRONG>%p</STRONG><EM>[1-9]</EM>
             push <EM>i</EM>'th parameter
 
        <STRONG>%P</STRONG><EM>[a-z]</EM>
-            set dynamic variable <EM>[a-z]</EM> to pop()
+            set dynamic variable <EM>[a-z]</EM> to <EM>pop()</EM>
 
        <STRONG>%g</STRONG><EM>[a-z]/</EM>
             get dynamic variable <EM>[a-z]</EM> and push it
        <STRONG>%l</STRONG>   push strlen(pop)
 
        <STRONG>%+</STRONG>, <STRONG>%-</STRONG>, <STRONG>%*</STRONG>, <STRONG>%/</STRONG>, <STRONG>%m</STRONG>
-            arithmetic (%m is mod): <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM>
+            arithmetic (%m is <EM>mod</EM>): <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM>
 
        <STRONG>%&amp;</STRONG>, <STRONG>%|</STRONG>, <STRONG>%^</STRONG>
             bit operations (AND, OR and exclusive-OR): <EM>push(pop()</EM>
 
        <STRONG>%!</STRONG>, <STRONG>%~</STRONG>
             unary   operations   (logical  and  bit  complement):
-            push(op pop())
+            <EM>push(op</EM> <EM>pop())</EM>
 
        <STRONG>%i</STRONG>   add 1 to first two parameters (for ANSI terminals)
 
        ter.  Then the same is  done  for  the  second  parameter.
        More complex arithmetic is possible using the stack.
 
-   <STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
+
+</PRE><H3><a name="h3-Cursor-Motions">Cursor Motions</a></H3><PRE>
        If the terminal has a fast way to home the cursor (to very
        upper left corner of screen) then this  can  be  given  as
        <STRONG>home</STRONG>;  similarly  a fast way of getting to the lower left-
        <STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting
        <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
 
-   <STRONG>Area</STRONG> <STRONG>Clears</STRONG>
+
+</PRE><H3><a name="h3-Area-Clears">Area Clears</a></H3><PRE>
        If the terminal can clear from the current position to the
        end of the line, leaving the  cursor  where  it  is,  this
        should be given as <STRONG>el</STRONG>.  If the terminal can clear from the
        (Thus,  it can be simulated by a request to delete a large
        number of lines, if a true <STRONG>ed</STRONG> is not available.)
 
-   <STRONG>Insert/delete</STRONG> <STRONG>line</STRONG> <STRONG>and</STRONG> <STRONG>vertical</STRONG> <STRONG>motions</STRONG>
+
+</PRE><H3><a name="h3-Insert_delete-line-and-vertical-motions">Insert/delete line and vertical motions</a></H3><PRE>
        If the terminal can open a new blank line before the  line
        where  the cursor is, this should be given as <STRONG>il1</STRONG>; this is
        done only from the first position of a line.   The  cursor
        late  destructive  scrolling; their documentation cautions
        you not to define <STRONG>csr</STRONG> unless this is  true.   This  <STRONG>curses</STRONG>
        implementation is more liberal and will do explicit erases
-       after scrolling if <STRONG>ndstr</STRONG> is defined.
+       after scrolling if <STRONG>ndsrc</STRONG> is defined.
 
        If the terminal has the ability to define a window as part
        of  memory,  which all commands affect, it should be given
        lines up from below or that scrolling  back  with  <STRONG>ri</STRONG>  may
        bring down non-blank lines.
 
-   <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
+
+</PRE><H3><a name="h3-Insert_Delete-Character">Insert/Delete Character</a></H3><PRE>
        There  are  two  basic kinds of intelligent terminals with
        respect to insert/delete character which can be  described
        using  <EM>terminfo.</EM>   The most common insert/delete character
        <EM>n</EM>  blanks  without  moving the cursor) can be given as <STRONG>ech</STRONG>
        with one parameter.
 
-   <STRONG>Highlighting,</STRONG> <STRONG>Underlining,</STRONG> <STRONG>and</STRONG> <STRONG>Visible</STRONG> <STRONG>Bells</STRONG>
+
+</PRE><H3><a name="h3-Highlighting_-Underlining_-and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></H3><PRE>
        If  your  terminal  has  one  or  more  kinds  of  display
        attributes,  these  can be represented in a number of dif-
        ferent ways.  You should choose one display form as <EM>stand-</EM>
        erasable with a blank, then this should  be  indicated  by
        giving <STRONG>eo</STRONG>.
 
-   <STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
+
+</PRE><H3><a name="h3-Keypad-and-Function-Keys">Keypad and Function Keys</a></H3><PRE>
        If the terminal has a keypad that transmits codes when the
        keys are pressed, this information  can  be  given.   Note
        that it is not possible to handle terminals where the key-
        or more pln sequences to make sure that the change becomes
        visible.
 
-   <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
+
+</PRE><H3><a name="h3-Tabs-and-Initialization">Tabs and Initialization</a></H3><PRE>
        If the terminal has hardware tabs, the command to  advance
        to  the  next tab stop can be given as <STRONG>ht</STRONG> (usually control
        I).  A "back-tab" command which moves leftward to the pre-
        initially  set every <EM>n</EM> spaces when the terminal is powered
        up, the numeric parameter <STRONG>it</STRONG> is given, showing the  number
        of  spaces  the tabs are set to.  This is normally used by
-       the <EM>tset</EM> command to determine whether to set the mode  for
+       the <STRONG>tset</STRONG> command to determine whether to set the mode  for
        hardware  tab expansion, and whether to set the tab stops.
        If the terminal has tab stops that can be  saved  in  non-
        volatile  memory, the terminfo description can assume that
        These strings are expected to set the terminal into  modes
        consistent  with  the  rest  of  the terminfo description.
        They are normally sent to the terminal, by the <EM>init</EM> option
-       of  the  <EM>tput</EM>  program,  each time the user logs in.  They
+       of  the  <STRONG>tput</STRONG>  program,  each time the user logs in.  They
        will be printed in the following order:
 
               run the program
        A set of sequences that does a harder reset from a totally
        unknown state can be given as <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rf</STRONG> and <STRONG>rs3</STRONG>, analo-
        gous  to  <STRONG>is1</STRONG>  <STRONG>,</STRONG>  <STRONG>is2</STRONG>  <STRONG>,</STRONG>  <STRONG>if</STRONG>  and <STRONG>is3</STRONG> respectively.  These
-       strings are output by the <EM>reset</EM>  program,  which  is  used
+       strings are output by the <STRONG>reset</STRONG>  program,  which  is  used
        when  the terminal gets into a wedged state.  Commands are
        normally placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if  they  pro-
        duce  annoying effects on the screen and are not necessary
        normally  needed  since the terminal is usually already in
        80 column mode.
 
-       The <EM>reset</EM> program writes strings including <STRONG>iprog</STRONG>, etc., in
+       The <STRONG>reset</STRONG> program writes strings including <STRONG>iprog</STRONG>, etc., in
        the  same  order  as  the  <EM>init</EM>  program, using <STRONG>rs1</STRONG>, etc.,
        instead of <STRONG>is1</STRONG>, etc.  If any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset
-       capability  strings  are  missing, the <EM>reset</EM> program falls
+       capability  strings  are  missing, the <STRONG>reset</STRONG> program falls
        back  upon  the  corresponding  initialization  capability
        string.
 
        described  by  this,  the sequence can be placed in <STRONG>is2</STRONG> or
        <STRONG>if</STRONG>.
 
-   <STRONG>Delays</STRONG> <STRONG>and</STRONG> <STRONG>Padding</STRONG>
+
+</PRE><H3><a name="h3-Delays-and-Padding">Delays and Padding</a></H3><PRE>
        Many older and slower  terminals  do  not  support  either
        XON/XOFF or DTR handshaking, including hard copy terminals
        and some very archaic CRTs (including,  for  example,  DEC
        ter as a pad, then this can be given  as  <STRONG>pad</STRONG>.   Only  the
        first character of the <STRONG>pad</STRONG> string is used.
 
-   <STRONG>Status</STRONG> <STRONG>Lines</STRONG>
+
+</PRE><H3><a name="h3-Status-Lines">Status Lines</a></H3><PRE>
        Some  terminals  have  an extra "status line" which is not
        normally used by software (and thus  not  counted  in  the
        terminal's <STRONG>lines</STRONG> capability).
        capabilities.  They are documented here in case they  ever
        become important.
 
-   <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
+
+</PRE><H3><a name="h3-Line-Graphics">Line Graphics</a></H3><PRE>
        Many  terminals  have  alternate character sets useful for
        forms-drawing.  Terminfo and <STRONG>curses</STRONG> build in  support  for
        the  drawing  characters supported by the VT100, with some
        acter pairs right to left in sequence;  these  become  the
        ACSC string.
 
-   <STRONG>Color</STRONG> <STRONG>Handling</STRONG>
+
+</PRE><H3><a name="h3-Color-Handling">Color Handling</a></H3><PRE>
        Most  color  terminals are either "Tektronix-like" or "HP-
        like".  Tektronix-like terminals have a predefined set  of
        N  colors  (where N usually 8), and can set character-cell
        ground, they should be coded as <STRONG>setaf</STRONG> and  <STRONG>setab</STRONG>,  respec-
        tively.   If  the terminal supports other escape sequences
        to set background and foreground, they should be coded  as
-       <STRONG>setf</STRONG>  and  <STRONG>setb</STRONG>, respectively.  The <EM>vidputs()</EM> function and
-       the refresh functions use <STRONG>setaf</STRONG>  and  <STRONG>setab</STRONG>  if  they  are
+       <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively.  The <STRONG>vidputs</STRONG> function and the
+       refresh  functions  use  <STRONG>setaf</STRONG>  and  <STRONG>setab</STRONG>  if  they   are
        defined."
 
        The  <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>  and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
        SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses  recognizes  it
        and optimizes the output in favor of colors.
 
-   <STRONG>Miscellaneous</STRONG>
+
+</PRE><H3><a name="h3-Miscellaneous">Miscellaneous</a></H3><PRE>
        If  the terminal requires other than a null (zero) charac-
        ter as a pad, then this can be given  as  pad.   Only  the
        first  character of the pad string is used.  If the termi-
        text,  including  <STRONG>mc4</STRONG>,  is  transparently  passed  to  the
        printer while an <STRONG>mc5p</STRONG> is in effect.
 
-   <STRONG>Glitches</STRONG> <STRONG>and</STRONG> <STRONG>Braindamage</STRONG>
+
+</PRE><H3><a name="h3-Glitches-and-Braindamage">Glitches and Braindamage</a></H3><PRE>
        Hazeltine  terminals, which do not allow "~" characters to
        be displayed should indicate <STRONG>hz</STRONG>.
 
        Other  specific  terminal  problems  may  be  corrected by
        adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
 
-   <STRONG>Similar</STRONG> <STRONG>Terminals</STRONG>
+
+</PRE><H3><a name="h3-Similar-Terminals">Similar Terminals</a></H3><PRE>
        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  vari-
        labels when in visual mode.  This is useful for  different
        modes for a terminal, or for different user preferences.
 
-   <STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG>
+
+</PRE><H3><a name="h3-Pitfalls-of-Long-Entries">Pitfalls of Long Entries</a></H3><PRE>
        Long  terminfo  entries  are  unlikely to be a problem; to
        date, no entry has even  approached  terminfo's  4096-byte
        string-table maximum.  Unfortunately, the termcap transla-
        termcap  translations  of  long terminfo entries can cause
        problems.
 
-       The man pages for 4.3BSD and older versions  of  <STRONG>tgetent()</STRONG>
+       The man pages for 4.3BSD and  older  versions  of  <STRONG>tgetent</STRONG>
        instruct  the  user to allocate a 1024-byte buffer for the
        termcap entry.  The  entry  gets  null-terminated  by  the
        termcap library, so that makes the maximum safe length for
        a termcap entry 1k-1 (1023) bytes.  Depending on what  the
        application  and  the termcap library being used does, and
-       where in the termcap file the terminal type that <STRONG>tgetent()</STRONG>
+       where in the termcap file the terminal type  that  <STRONG>tgetent</STRONG>
        is searching for is, several bad things can happen.
 
        Some  termcap libraries print a warning message or exit if
        one,  because it affects more than just users of that par-
        ticular terminal.  This is the length of the entry  as  it
        exists in /etc/termcap, minus the backslash-newline pairs,
-       which <STRONG>tgetent()</STRONG> strips out while reading it.  Some termcap
+       which <STRONG>tgetent</STRONG> strips out while reading it.   Some  termcap
        libraries  strip  off  the final newline, too (GNU termcap
        does not).  Now suppose:
 
            matter  what  its length, to see if it is the entry it
            wants,
 
-       <STRONG>o</STRONG>   and <STRONG>tgetent()</STRONG> is searching for a  terminal  type  that
+       <STRONG>o</STRONG>   and <STRONG>tgetent</STRONG> is searching  for  a  terminal  type  that
            either  is the long entry, appears in the termcap file
            after the long entry, or does not appear in  the  file
-           at  all  (so  that  <STRONG>tgetent()</STRONG>  has to search the whole
-           termcap file).
-
-       Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps  its  stack,
-       and  probably core dump the program.  Programs like telnet
-       are particularly vulnerable;  modern  telnets  pass  along
-       values  like the terminal type automatically.  The results
-       are almost as undesirable with  a  termcap  library,  like
-       SunOS  4.1.3  and Ultrix 4.4, that prints warning messages
-       when it reads an overly long termcap entry.  If a  termcap
-       library  truncates  long  entries,  like  OSF/1 3.0, it is
-       immune to dying here but will return  incorrect  data  for
-       the terminal.
+           at  all (so that <STRONG>tgetent</STRONG> has to search the whole term-
+           cap file).
+
+       Then <STRONG>tgetent</STRONG> will overwrite memory, perhaps its stack, and
+       probably  core dump the program.  Programs like telnet are
+       particularly vulnerable; modern telnets pass along  values
+       like  the  terminal  type  automatically.  The results are
+       almost as undesirable with a termcap library,  like  SunOS
+       4.1.3 and Ultrix 4.4, that prints warning messages when it
+       reads an overly long termcap entry.  If a termcap  library
+       truncates  long  entries,  like OSF/1 3.0, it is immune to
+       dying here but will return incorrect data for  the  termi-
+       nal.
 
        The "after tc expansion" length will have a similar effect
        to the above, but only for people who actually set TERM to
-       that  terminal type, since <STRONG>tgetent()</STRONG> only does "tc" expan-
-       sion once it is found the terminal  type  it  was  looking
-       for, not while searching.
+       that terminal type, since <STRONG>tgetent</STRONG> only does "tc" expansion
+       once it is found the terminal type it was looking for, not
+       while searching.
 
        In summary, a termcap entry that is longer than 1023 bytes
        can cause, on various combinations  of  termcap  libraries
        (check) option also checks resolved (after  tc  expansion)
        lengths.
 
-   <STRONG>Binary</STRONG> <STRONG>Compatibility</STRONG>
+
+</PRE><H3><a name="h3-Binary-Compatibility">Binary Compatibility</a></H3><PRE>
        It  is not wise to count on portability of binary terminfo
        entries between commercial UNIX versions.  The problem  is
        that  there  are  at least two versions of terminfo (under
        and XSI Curses extensions.
 
 
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
        Searching for terminal descriptions in <STRONG>$HOME/.terminfo</STRONG> and
        TERMINFO_DIRS is not supported by older implementations.
 
        <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
 
 
-</PRE>
-<H2>FILES</H2><PRE>
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
        /usr/share/terminfo/?/*  files     containing     terminal
                                 descriptions
 
 
-</PRE>
-<H2>SEE ALSO</H2><PRE>
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,   <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG>printf(3)</STRONG>,  <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
        <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>.
 
 
-</PRE>
-<H2>AUTHORS</H2><PRE>
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
        Zeyd M. Ben-Halim, Eric  S.  Raymond,  Thomas  E.  Dickey.
        Based on pcurses by Pavel Curtis.
 
 
                                                             <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 </PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
+<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-Predefined-Capabilities">Predefined Capabilities</a></li>
+<li><a href="#h3-User-Defined-Capabilities">User-Defined Capabilities</a></li>
+<li><a href="#h3-A-Sample-Entry">A Sample Entry</a></li>
+<li><a href="#h3-Types-of-Capabilities">Types of Capabilities</a></li>
+<li><a href="#h3-Fetching-Compiled-Descriptions">Fetching Compiled Descriptions</a></li>
+<li><a href="#h3-Preparing-Descriptions">Preparing Descriptions</a></li>
+<li><a href="#h3-Basic-Capabilities">Basic Capabilities</a></li>
+<li><a href="#h3-Parameterized-Strings">Parameterized Strings</a></li>
+<li><a href="#h3-Cursor-Motions">Cursor Motions</a></li>
+<li><a href="#h3-Area-Clears">Area Clears</a></li>
+<li><a href="#h3-Insert_delete-line-and-vertical-motions">Insert/delete line and vertical motions</a></li>
+<li><a href="#h3-Insert_Delete-Character">Insert/Delete Character</a></li>
+<li><a href="#h3-Highlighting_-Underlining_-and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></li>
+<li><a href="#h3-Keypad-and-Function-Keys">Keypad and Function Keys</a></li>
+<li><a href="#h3-Tabs-and-Initialization">Tabs and Initialization</a></li>
+<li><a href="#h3-Delays-and-Padding">Delays and Padding</a></li>
+<li><a href="#h3-Status-Lines">Status Lines</a></li>
+<li><a href="#h3-Line-Graphics">Line Graphics</a></li>
+<li><a href="#h3-Color-Handling">Color Handling</a></li>
+<li><a href="#h3-Miscellaneous">Miscellaneous</a></li>
+<li><a href="#h3-Glitches-and-Braindamage">Glitches and Braindamage</a></li>
+<li><a href="#h3-Similar-Terminals">Similar Terminals</a></li>
+<li><a href="#h3-Pitfalls-of-Long-Entries">Pitfalls of Long Entries</a></li>
+<li><a href="#h3-Binary-Compatibility">Binary Compatibility</a></li>
+</ul>
+</li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</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>