ncurses 6.2 - patch 20200314
[ncurses.git] / doc / html / man / terminfo.5.html
index 366da6548e31edd0b0195816a92efefb7161415c..6e879dd41e28d9fbdf3819ef2bc06104d6719bab 100644 (file)
@@ -1,12 +1,12 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   * t
   * DO NOT EDIT THIS FILE BY HAND!
-  * It is generated from terminfo.head, Caps, and terminfo.tail.
+  * It is generated from terminfo.head,  ./../include/Caps ./../include/Caps-ncurses, and terminfo.tail.
   * 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-2000,2002 Free Software Foundation, Inc.              *
+  * Copyright 2018-2019,2020 Thomas E. Dickey                                *
+  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: terminfo.head,v 1.10 2002/08/17 23:37:10 tom Exp @
+  * @Id: terminfo.head,v 1.39 2020/02/02 23:34:34 tom Exp @
   * Head of terminfo man page ends here
-  * @Id: terminfo.tail,v 1.35 2002/04/20 16:49:33 tom Exp @
-  * Beginning of terminfo.tail file
+  ****************************************************************************
+  * Copyright 2018-2019,2020 Thomas E. Dickey                                *
+  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "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: terminfo.tail,v 1.99 2020/02/02 23:34:34 tom Exp @
+  *.in -2
+  *.in +2
+  *.in -2
+  *.in +2
   *.TH
 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
-<TITLE>TERMINFO 5   File Formats</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
+<TITLE>terminfo 5   File Formats</TITLE>
+<link rel="author" 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>
-       <EM>Terminfo</EM>  is  a  data  base  describing terminals, used by
-       screen-oriented programs  such  as  <STRONG><A HREF="nvi.1.html">nvi(1)</A></STRONG>,  <STRONG><A HREF="rogue.1.html">rogue(1)</A></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.
-
-       Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
-       fields (embedded commas may be escaped with a backslash or
-       notated as \054).  White space after the `,' separator  is
-       ignored.   The  first  entry  for  each terminal gives the
-       names which are known for the terminal, separated  by  `|'
-       characters.   The  first  name  given  is  the most common
-       abbreviation for the terminal, the last name given  should
-       be  a  long  name  fully identifying the terminal, and all
-       others are understood as synonyms for the  terminal  name.
-       All names but the last should be in lower case and contain
-       no blanks; the last name may well contain upper  case  and
-       blanks for readability.
-
-       Terminal names (except for the last, verbose entry) should
-       be chosen using the following conventions.  The particular
-       piece  of  hardware  making  up the terminal should have a
-       root name, thus ``hp2621''.  This name should not  contain
-       hyphens.  Modes that the hardware can be in, or user pref-
-       erences, should be indicated by appending a hyphen  and  a
-       mode  suffix.   Thus,  a vt100 in 132 column mode would be
-       vt100-w.  The following suffixes should be used where pos-
-       sible:
-
-      <STRONG>Suffix</STRONG>                  <STRONG>Meaning</STRONG>                   <STRONG>Example</STRONG>
-      -<EM>nn</EM>      Number of lines on the screen            aaa-60
-      -<EM>n</EM>p      Number of pages of memory                c100-4p
-      -am      With automargins (usually the default)   vt100-am
-      -m       Mono mode; suppress color                ansi-m
-      -mc      Magic cookie; spaces when highlighting   wy30-mc
-      -na      No arrow keys (leave them in local)      c100-na
-      -nam     Without automatic margins                vt100-nam
-      -nl      No status line                           att4415-nl
-      -ns      No status line                           hp2626-ns
-      -rv      Reverse video                            c100-rv
-      -s       Enable status line                       vt100-s
-      -vb      Use visible bell instead of beep         wy370-vb
-      -w       Wide mode (&gt; 80 columns, usually 132)    vt100-w
-
-       For  more  on terminal naming conventions, see the <STRONG>term(7)</STRONG>
-       manual page.
-
-   <STRONG>Capabilities</STRONG>
-       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,
-
-       The <STRONG>variable</STRONG> is the name by which the programmer  (at  the
-       terminfo level) accesses the capability.
-
-       The  <STRONG>capname</STRONG>  is  the  short  name used in the text of the
-       database, and is used by a person updating  the  database.
-       Whenever  possible,  capnames are chosen to be the same as
-       or similar to the ANSI X3.64-1979 standard (now superseded
-       by  ECMA-48,  which uses identical or very similar names).
-       Semantics are also intended to match those of the specifi-
-       cation.
-
-       The  termcap code is the old <STRONG>termcap</STRONG> capability name (some
-       capabilities are new, and have names which termcap did not
-       originate).
-
-       Capability  names have no hard length limit, but an infor-
-       mal limit of 5 characters has been adopted  to  keep  them
-       short  and  to  allow  the tabs in the source file <STRONG>Caps</STRONG> to
-       line up nicely.
-
-       Finally, the description  field  attempts  to  convey  the
-       semantics  of  the capability.  You may find some codes in
-       the description field:
+</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>lynx(1)</STRONG>, <STRONG>mutt(1)</STRONG>, and  other  curses  applica-
+       tions,  using  high-level calls to libraries such as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.  It is
+       also used via low-level calls by non-curses applications which  may  be
+       screen-oriented (such as <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>) or non-screen (such as <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>).
+
+       <EM>Terminfo</EM> describes terminals by giving a set of capabilities which they
+       have, by specifying how to perform screen operations, and by specifying
+       padding requirements and initialization sequences.
+
+       This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200314).
+
+
+</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
+       Entries in <EM>terminfo</EM> consist of a sequence of fields:
+
+       <STRONG>o</STRONG>   Each  field  ends  with a comma "," (embedded commas may be escaped
+           with a backslash or written as "\054").
+
+       <STRONG>o</STRONG>   White space between fields is ignored.
+
+       <STRONG>o</STRONG>   The first field in a <EM>terminfo</EM> entry begins in the first column.
+
+       <STRONG>o</STRONG>   Newlines and leading whitespace (spaces or tabs) may  be  used  for
+           formatting  entries for readability.  These are removed from parsed
+           entries.
+
+           The <STRONG>infocmp</STRONG> <STRONG>-f</STRONG> and <STRONG>-W</STRONG> options rely on this to  format  if-then-else
+           expressions,  or to enforce maximum line-width.  The resulting for-
+           matted terminal description can be read by <STRONG>tic</STRONG>.
+
+       <STRONG>o</STRONG>   The first field for each terminal gives the names which  are  known
+           for the terminal, separated by "|" characters.
+
+           The first name given is the most common abbreviation for the termi-
+           nal (its primary name), the last name given should be a  long  name
+           fully  identifying  the terminal (see <STRONG><A HREF="curs_termattrs.3x.html">longname(3x)</A></STRONG>), and all others
+           are treated as synonyms (aliases) for the primary terminal name.
+
+           X/Open Curses advises that all names but  the  last  should  be  in
+           lower  case  and  contain no blanks; the last name may well contain
+           upper case and blanks for readability.
+
+           This implementation is not so strict; it allows mixed case  in  the
+           primary name and aliases.  If the last name has no embedded blanks,
+           it allows that to be both an alias and a  verbose  name  (but  will
+           warn about this ambiguity).
+
+       <STRONG>o</STRONG>   Lines  beginning with a "#" in the first column are treated as com-
+           ments.
+
+           While comment lines are legal at any point, the output of <STRONG>captoinfo</STRONG>
+           and  <STRONG>infotocap</STRONG>  (aliases  for <STRONG>tic</STRONG>) will move comments so they occur
+           only between entries.
+
+       Terminal names (except for the last, verbose entry)  should  be  chosen
+       using the following conventions.  The particular piece of hardware mak-
+       ing up the terminal should have a root name, thus "hp2621".  This  name
+       should not contain hyphens.  Modes that the hardware can be in, or user
+       preferences, should be indicated by appending a hyphen and a mode  suf-
+       fix.  Thus, a vt100 in 132-column mode would be vt100-w.  The following
+       suffixes should be used where possible:
+
+            <STRONG>Suffix</STRONG>                  <STRONG>Meaning</STRONG>                   <STRONG>Example</STRONG>
+            -<EM>nn</EM>      Number of lines on the screen            aaa-60
+            -<EM>n</EM>p      Number of pages of memory                c100-4p
+            -am      With automargins (usually the default)   vt100-am
+            -m       Mono mode; suppress color                ansi-m
+            -mc      Magic cookie; spaces when highlighting   wy30-mc
+            -na      No arrow keys (leave them in local)      c100-na
+            -nam     Without automatic margins                vt100-nam
+            -nl      No status line                           att4415-nl
+            -ns      No status line                           hp2626-ns
+            -rv      Reverse video                            c100-rv
+            -s       Enable status line                       vt100-s
+            -vb      Use visible bell instead of beep         wy370-vb
+            -w       Wide mode (&gt; 80 columns, usually 132)    vt100-w
+
+       For more on terminal naming conventions, see the <STRONG><A HREF="term.7.html">term(7)</A></STRONG> manual page.
+
+
+</PRE><H3><a name="h3-Terminfo-Capabilities-Syntax">Terminfo Capabilities Syntax</a></H3><PRE>
+       The terminfo entry consists of  several  <EM>capabilities</EM>,  i.e.,  features
+       that  the  terminal  has, or methods for exercising the terminal's fea-
+       tures.
+
+       After the first field (giving the name(s) of the terminal entry), there
+       should be one or more <EM>capability</EM> fields.  These are boolean, numeric or
+       string names with corresponding values:
+
+       <STRONG>o</STRONG>   Boolean capabilities are true  when  present,  false  when  absent.
+           There is no explicit value for boolean capabilities.
+
+       <STRONG>o</STRONG>   Numeric  capabilities  have  a  "#"  following  the  name,  then an
+           unsigned decimal integer value.
+
+       <STRONG>o</STRONG>   String capabilities have a "=" following the name, then  an  string
+           of characters making up the capability value.
+
+           String  capabilities  can be split into multiple lines, just as the
+           fields comprising a terminal  entry  can  be  split  into  multiple
+           lines.   While  blanks  between fields are ignored, blanks embedded
+           within a string value are retained, except for leading blanks on  a
+           line.
+
+       Any  capability  can  be  <EM>canceled</EM>,  i.e., suppressed from the terminal
+       entry, by following its name with "@" rather than a capability value.
+
+
+</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 excep-
+       tions.  In the definition of the variant, the string capability <STRONG>use</STRONG> can
+       be given with the name of the base terminal:
+
+       <STRONG>o</STRONG>   The  capabilities  given before <STRONG>use</STRONG> override those in the base type
+           named by <STRONG>use</STRONG>.
+
+       <STRONG>o</STRONG>   If there are multiple <STRONG>use</STRONG> capabilities, they are merged in  reverse
+           order.   That  is,  the rightmost <STRONG>use</STRONG> reference is processed first,
+           then the one to its left, and so forth.
+
+       <STRONG>o</STRONG>   Capabilities given explicitly in the entry override  those  brought
+           in by <STRONG>use</STRONG> references.
+
+       A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of the use ref-
+       erence that imports it, where <EM>xx</EM> is the capability.  For  example,  the
+       entry
+
+              2621-nl, smkx@, rmkx@, use=2621,
+
+       defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG> capabilities, and
+       hence does not turn on the function key labels  when  in  visual  mode.
+       This  is  useful  for  different modes for a terminal, or for different
+       user preferences.
+
+       An entry included via <STRONG>use</STRONG> can contain canceled capabilities, which have
+       the  same  effect as if those cancels were inline in the using terminal
+       entry.
+
+
+</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,
+
+       The <STRONG>variable</STRONG> is the name by  which  the  programmer  (at  the  terminfo
+       level) accesses the capability.
+
+       The  <STRONG>capname</STRONG> is the short name used in the text of the database, and is
+       used by a person updating the database.   Whenever  possible,  capnames
+       are chosen to be the same as or similar to the ANSI X3.64-1979 standard
+       (now superseded by  ECMA-48,  which  uses  identical  or  very  similar
+       names).   Semantics  are also intended to match those of the specifica-
+       tion.
+
+       The termcap code is the old <STRONG>termcap</STRONG> capability name (some  capabilities
+       are new, and have names which termcap did not originate).
+
+       Capability  names have no hard length limit, but an informal limit of 5
+       characters has been adopted to keep them short and to allow the tabs in
+       the source file <STRONG>Caps</STRONG> to line up nicely.
+
+       Finally,  the description field attempts to convey the semantics of the
+       capability.  You may find some codes in the description field:
 
        (P)    indicates that padding may be specified
 
-       #[1-9] in the description field indicates that the  string
-              is passed through tparm with parms as given (#<EM>i</EM>).
+       #[1-9] in the description field indicates that  the  string  is  passed
+              through tparm with parms as given (#<EM>i</EM>).
 
-       (P*)   indicates  that  padding  may vary in proportion to
-              the number of lines affected
+       (P*)   indicates  that  padding may vary in proportion to the number of
+              lines affected
 
        (#<EM>i</EM>)   indicates the <EM>i</EM>th parameter.
 
 
        These are the boolean capabilities:
 
-               <STRONG>Variable</STRONG>          <STRONG>Cap-</STRONG>  <STRONG>TCap</STRONG>      <STRONG>Description</STRONG>
-               <STRONG>Booleans</STRONG>          <STRONG>name</STRONG>  <STRONG>Code</STRONG>
-       auto_left_margin          bw    bw    cub1 wraps from col-
-                                             umn 0 to last column
-       auto_right_margin         am    am    terminal has auto-
-                                             matic margins
-       back_color_erase          bce   ut    screen erased with
-                                             background color
-       can_change                ccc   cc    terminal can re-
-                                             define existing col-
-                                             ors
-
-       ceol_standout_glitch      xhp   xs    standout not erased
-                                             by overwriting (hp)
-       col_addr_glitch           xhpa  YA    only positive motion
-                                             for hpa/mhpa caps
-       cpi_changes_res           cpix  YF    changing character
-                                             pitch changes reso-
-                                             lution
-       cr_cancels_micro_mode     crxm  YB    using cr turns off
-                                             micro mode
-       dest_tabs_magic_smso      xt    xt    tabs destructive,
-                                             magic so char
-                                             (t1061)
-       eat_newline_glitch        xenl  xn    newline ignored
-                                             after 80 cols (con-
-                                             cept)
-       erase_overstrike          eo    eo    can erase over-
-                                             strikes with a blank
-       generic_type              gn    gn    generic line type
-       hard_copy                 hc    hc    hardcopy terminal
-       hard_cursor               chts  HC    cursor is hard to
-                                             see
-       has_meta_key              km    km    Has a meta key
-                                             (i.e., sets 8th-bit)
-       has_print_wheel           daisy YC    printer needs opera-
-                                             tor to change char-
-                                             acter set
-       has_status_line           hs    hs    has extra status
-                                             line
-       hue_lightness_saturation  hls   hl    terminal uses only
-                                             HLS color notation
-                                             (Tektronix)
-       insert_null_glitch        in    in    insert mode distin-
-                                             guishes nulls
-       lpi_changes_res           lpix  YG    changing line pitch
-                                             changes resolution
-       memory_above              da    da    display may be
-                                             retained above the
-                                             screen
-       memory_below              db    db    display may be
-                                             retained below the
-                                             screen
-       move_insert_mode          mir   mi    safe to move while
-                                             in insert mode
-       move_standout_mode        msgr  ms    safe to move while
-                                             in standout mode
-       needs_xon_xoff            nxon  nx    padding will not
-                                             work, xon/xoff
-                                             required
-       no_esc_ctlc               xsb   xb    beehive (f1=escape,
-                                             f2=ctrl C)
-       no_pad_char               npc   NP    pad character does
-                                             not exist
-
-
-       non_dest_scroll_region    ndscr ND    scrolling region is
-                                             non-destructive
-       non_rev_rmcup             nrrmc NR    smcup does not
-                                             reverse rmcup
-       over_strike               os    os    terminal can over-
-                                             strike
-       prtr_silent               mc5i  5i    printer will not
-                                             echo on screen
-       row_addr_glitch           xvpa  YD    only positive motion
-                                             for vpa/mvpa caps
-       semi_auto_right_margin    sam   YE    printing in last
-                                             column causes cr
-       status_line_esc_ok        eslok es    escape can be used
-                                             on the status line
-       tilde_glitch              hz    hz    cannot print ~'s
-                                             (hazeltine)
-       transparent_underline     ul    ul    underline character
-                                             overstrikes
-       xon_xoff                  xon   xo    terminal uses
-                                             xon/xoff handshaking
+
+                  <STRONG>Variable</STRONG>            <STRONG>Cap-</STRONG>      <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
+                  <STRONG>Booleans</STRONG>            <STRONG>name</STRONG>      <STRONG>Code</STRONG>
+          auto_left_margin            bw        bw     cub1 wraps from col-
+                                                       umn 0 to last column
+          auto_right_margin           am        am     terminal has auto-
+                                                       matic margins
+          back_color_erase            bce       ut     screen erased with
+                                                       background color
+
+
+
+          can_change                  ccc       cc     terminal can re-
+                                                       define existing col-
+                                                       ors
+          ceol_standout_glitch        xhp       xs     standout not erased
+                                                       by overwriting (hp)
+          col_addr_glitch             xhpa      YA     only positive motion
+                                                       for hpa/mhpa caps
+          cpi_changes_res             cpix      YF     changing character
+                                                       pitch changes reso-
+                                                       lution
+          cr_cancels_micro_mode       crxm      YB     using cr turns off
+                                                       micro mode
+          dest_tabs_magic_smso        xt        xt     tabs destructive,
+                                                       magic so char
+                                                       (t1061)
+          eat_newline_glitch          xenl      xn     newline ignored
+                                                       after 80 cols (con-
+                                                       cept)
+          erase_overstrike            eo        eo     can erase over-
+                                                       strikes with a blank
+          generic_type                gn        gn     generic line type
+          hard_copy                   hc        hc     hardcopy terminal
+          hard_cursor                 chts      HC     cursor is hard to
+                                                       see
+          has_meta_key                km        km     Has a meta key
+                                                       (i.e., sets 8th-bit)
+          has_print_wheel             daisy     YC     printer needs opera-
+                                                       tor to change char-
+                                                       acter set
+          has_status_line             hs        hs     has extra status
+                                                       line
+          hue_lightness_saturation    hls       hl     terminal uses only
+                                                       HLS color notation
+                                                       (Tektronix)
+          insert_null_glitch          in        in     insert mode distin-
+                                                       guishes nulls
+          lpi_changes_res             lpix      YG     changing line pitch
+                                                       changes resolution
+          memory_above                da        da     display may be
+                                                       retained above the
+                                                       screen
+          memory_below                db        db     display may be
+                                                       retained below the
+                                                       screen
+          move_insert_mode            mir       mi     safe to move while
+                                                       in insert mode
+          move_standout_mode          msgr      ms     safe to move while
+                                                       in standout mode
+          needs_xon_xoff              nxon      nx     padding will not
+                                                       work, xon/xoff
+                                                       required
+          no_esc_ctlc                 xsb       xb     beehive (f1=escape,
+                                                       f2=ctrl C)
+          no_pad_char                 npc       NP     pad character does
+                                                       not exist
+          non_dest_scroll_region      ndscr     ND     scrolling region is
+                                                       non-destructive
+          non_rev_rmcup               nrrmc     NR     smcup does not
+                                                       reverse rmcup
+          over_strike                 os        os     terminal can over-
+                                                       strike
+          prtr_silent                 mc5i      5i     printer will not
+                                                       echo on screen
+          row_addr_glitch             xvpa      YD     only positive motion
+                                                       for vpa/mvpa caps
+
+          semi_auto_right_margin      sam       YE     printing in last
+                                                       column causes cr
+          status_line_esc_ok          eslok     es     escape can be used
+                                                       on the status line
+          tilde_glitch                hz        hz     cannot print ~'s
+                                                       (Hazeltine)
+          transparent_underline       ul        ul     underline character
+                                                       overstrikes
+          xon_xoff                    xon       xo     terminal uses
+                                                       xon/xoff handshaking
 
        These are the numeric capabilities:
 
-            <STRONG>Variable</STRONG>         <STRONG>Cap-</STRONG>     <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
-             <STRONG>Numeric</STRONG>         <STRONG>name</STRONG>     <STRONG>Code</STRONG>
-       columns               cols     co     number of columns in
-                                             a line
-       init_tabs             it       it     tabs initially every
-                                             # spaces
-       label_height          lh       lh     rows in each label
-       label_width           lw       lw     columns in each
-                                             label
-       lines                 lines    li     number of lines on
-                                             screen or page
-       lines_of_memory       lm       lm     lines of memory if &gt;
-                                             line. 0 means varies
-       magic_cookie_glitch   xmc      sg     number of blank
-                                             characters left by
-                                             smso or rmso
-       max_attributes        ma       ma     maximum combined
-                                             attributes terminal
-                                             can handle
-       max_colors            colors   Co     maximum number of
-                                             colors on screen
-       max_pairs             pairs    pa     maximum number of
-                                             color-pairs on the
-                                             screen
-       maximum_windows       wnum     MW     maximum number of
-                                             defineable windows
-       no_color_video        ncv      NC     video attributes
-                                             that cannot be used
-                                             with colors
-
-
-       num_labels            nlab     Nl     number of labels on
-                                             screen
-       padding_baud_rate     pb       pb     lowest baud rate
-                                             where padding needed
-       virtual_terminal      vt       vt     virtual terminal
-                                             number (CB/unix)
-       width_status_line     wsl      ws     number of columns in
-                                             status line
-
-       The  following  numeric  capabilities  are  present in the
-       SVr4.0 term structure, but are not yet documented  in  the
-       man page.  They came in with SVr4's printer support.
-
-             <STRONG>Variable</STRONG>         <STRONG>Cap-</STRONG>    <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
-             <STRONG>Numeric</STRONG>          <STRONG>name</STRONG>    <STRONG>Code</STRONG>
-       bit_image_entwining    bitwin  Yo     number of passes for
-                                             each bit-image row
-       bit_image_type         bitype  Yp     type of bit-image
-                                             device
-       buffer_capacity        bufsz   Ya     numbers of bytes
-                                             buffered before
-                                             printing
-       buttons                btns    BT     number of buttons on
-                                             mouse
-       dot_horz_spacing       spinh   Yc     spacing of dots hor-
-                                             izontally in dots
-                                             per inch
-       dot_vert_spacing       spinv   Yb     spacing of pins ver-
-                                             tically in pins per
-                                             inch
-       max_micro_address      maddr   Yd     maximum value in
-                                             micro_..._address
-       max_micro_jump         mjump   Ye     maximum value in
-                                             parm_..._micro
-       micro_col_size         mcs     Yf     character step size
-                                             when in micro mode
-       micro_line_size        mls     Yg     line step size when
-                                             in micro mode
-       number_of_pins         npins   Yh     numbers of pins in
-                                             print-head
-       output_res_char        orc     Yi     horizontal resolu-
-                                             tion in units per
-                                             line
-       output_res_horz_inch   orhi    Yk     horizontal resolu-
-                                             tion in units per
-                                             inch
-       output_res_line        orl     Yj     vertical resolution
-                                             in units per line
-       output_res_vert_inch   orvi    Yl     vertical resolution
-                                             in units per inch
-       print_rate             cps     Ym     print rate in char-
-                                             acters per second
-
-
-       wide_char_size         widcs   Yn     character step size
-                                             when in double wide
-                                             mode
+
+                  <STRONG>Variable</STRONG>            <STRONG>Cap-</STRONG>      <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
+                   <STRONG>Numeric</STRONG>            <STRONG>name</STRONG>      <STRONG>Code</STRONG>
+          columns                     cols      co     number of columns in
+                                                       a line
+          init_tabs                   it        it     tabs initially every
+                                                       # spaces
+          label_height                lh        lh     rows in each label
+          label_width                 lw        lw     columns in each
+                                                       label
+          lines                       lines     li     number of lines on
+                                                       screen or page
+          lines_of_memory             lm        lm     lines of memory if &gt;
+                                                       line. 0 means varies
+          magic_cookie_glitch         xmc       sg     number of blank
+                                                       characters left by
+                                                       smso or rmso
+          max_attributes              ma        ma     maximum combined
+                                                       attributes terminal
+                                                       can handle
+          max_colors                  colors    Co     maximum number of
+                                                       colors on screen
+          max_pairs                   pairs     pa     maximum number of
+                                                       color-pairs on the
+                                                       screen
+          maximum_windows             wnum      MW     maximum number of
+                                                       definable windows
+          no_color_video              ncv       NC     video attributes
+                                                       that cannot be used
+                                                       with colors
+          num_labels                  nlab      Nl     number of labels on
+                                                       screen
+          padding_baud_rate           pb        pb     lowest baud rate
+                                                       where padding needed
+          virtual_terminal            vt        vt     virtual terminal
+                                                       number (CB/unix)
+          width_status_line           wsl       ws     number of columns in
+                                                       status line
+
+       The  following  numeric  capabilities  are  present  in the SVr4.0 term
+       structure, but are not yet documented in the man page.   They  came  in
+       with SVr4's printer support.
+
+
+                  <STRONG>Variable</STRONG>            <STRONG>Cap-</STRONG>      <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
+                   <STRONG>Numeric</STRONG>            <STRONG>name</STRONG>      <STRONG>Code</STRONG>
+          bit_image_entwining         bitwin    Yo     number of passes for
+                                                       each bit-image row
+          bit_image_type              bitype    Yp     type of bit-image
+                                                       device
+
+
+
+          buffer_capacity             bufsz     Ya     numbers of bytes
+                                                       buffered before
+                                                       printing
+          buttons                     btns      BT     number of buttons on
+                                                       mouse
+          dot_horz_spacing            spinh     Yc     spacing of dots hor-
+                                                       izontally in dots
+                                                       per inch
+          dot_vert_spacing            spinv     Yb     spacing of pins ver-
+                                                       tically in pins per
+                                                       inch
+          max_micro_address           maddr     Yd     maximum value in
+                                                       micro_..._address
+          max_micro_jump              mjump     Ye     maximum value in
+                                                       parm_..._micro
+          micro_col_size              mcs       Yf     character step size
+                                                       when in micro mode
+          micro_line_size             mls       Yg     line step size when
+                                                       in micro mode
+          number_of_pins              npins     Yh     numbers of pins in
+                                                       print-head
+          output_res_char             orc       Yi     horizontal resolu-
+                                                       tion in units per
+                                                       line
+          output_res_horz_inch        orhi      Yk     horizontal resolu-
+                                                       tion in units per
+                                                       inch
+          output_res_line             orl       Yj     vertical resolution
+                                                       in units per line
+          output_res_vert_inch        orvi      Yl     vertical resolution
+                                                       in units per inch
+          print_rate                  cps       Ym     print rate in char-
+                                                       acters per second
+          wide_char_size              widcs     Yn     character step size
+                                                       when in double wide
+                                                       mode
 
        These are the string capabilities:
 
-               <STRONG>Variable</STRONG>          <STRONG>Cap-</STRONG>   <STRONG>TCap</STRONG>     <STRONG>Description</STRONG>
-                <STRONG>String</STRONG>           <STRONG>name</STRONG>   <STRONG>Code</STRONG>
-       acs_chars                 acsc   ac   graphics charset
-                                             pairs, based on
-                                             vt100
-       back_tab                  cbt    bt   back tab (P)
-       bell                      bel    bl   audible signal
-                                             (bell) (P)
-       carriage_return           cr     cr   carriage return (P*)
-                                             (P*)
-       change_char_pitch         cpi    ZA   Change number of
-                                             characters per inch
-                                             to #1
-       change_line_pitch         lpi    ZB   Change number of
-                                             lines per inch to #1
-       change_res_horz           chr    ZC   Change horizontal
-                                             resolution to #1
-       change_res_vert           cvr    ZD   Change vertical res-
-                                             olution to #1
-       change_scroll_region      csr    cs   change region to
-                                             line #1 to line #2
-                                             (P)
-       char_padding              rmp    rP   like ip but when in
-                                             insert mode
-       clear_all_tabs            tbc    ct   clear all tab stops
-                                             (P)
-       clear_margins             mgc    MC   clear right and left
-                                             soft margins
-       clear_screen              clear  cl   clear screen and
-                                             home cursor (P*)
-       clr_bol                   el1    cb   Clear to beginning
-                                             of line
-       clr_eol                   el     ce   clear to end of line
-                                             (P)
-       clr_eos                   ed     cd   clear to end of
-                                             screen (P*)
-       column_address            hpa    ch   horizontal position
-                                             #1, absolute (P)
-       command_character         cmdch  CC   terminal settable
-                                             cmd character in
-                                             prototype !?
-       create_window             cwin   CW   define a window #1
-                                             from #2,#3 to #4,#5
-       cursor_address            cup    cm   move to row #1
-                                             columns #2
-       cursor_down               cud1   do   down one line
-
-
-       cursor_home               home   ho   home cursor (if no
-                                             cup)
-       cursor_invisible          civis  vi   make cursor invisi-
-                                             ble
-       cursor_left               cub1   le   move left one space
-       cursor_mem_address        mrcup  CM   memory relative cur-
-                                             sor addressing, move
-                                             to row #1 columns #2
-       cursor_normal             cnorm  ve   make cursor appear
-                                             normal (undo
-                                             civis/cvvis)
-       cursor_right              cuf1   nd   non-destructive
-                                             space (move right
-                                             one space)
-       cursor_to_ll              ll     ll   last line, first
-                                             column (if no cup)
-       cursor_up                 cuu1   up   up one line
-       cursor_visible            cvvis  vs   make cursor very
-                                             visible
-       define_char               defc   ZE   Define a character
-                                             #1, #2 dots wide,
-                                             descender #3
-       delete_character          dch1   dc   delete character
-                                             (P*)
-       delete_line               dl1    dl   delete line (P*)
-       dial_phone                dial   DI   dial number #1
-       dis_status_line           dsl    ds   disable status line
-       display_clock             dclk   DK   display clock
-       down_half_line            hd     hd   half a line down
-       ena_acs                   enacs  eA   enable alternate
-                                             char set
-       enter_alt_charset_mode    smacs  as   start alternate
-                                             character set (P)
-       enter_am_mode             smam   SA   turn on automatic
-                                             margins
-       enter_blink_mode          blink  mb   turn on blinking
-       enter_bold_mode           bold   md   turn on bold (extra
-                                             bright) mode
-       enter_ca_mode             smcup  ti   string to start pro-
-                                             grams using cup
-       enter_delete_mode         smdc   dm   enter delete mode
-       enter_dim_mode            dim    mh   turn on half-bright
-                                             mode
-       enter_doublewide_mode     swidm  ZF   Enter double-wide
-                                             mode
-       enter_draft_quality       sdrfq  ZG   Enter draft-quality
-                                             mode
-       enter_insert_mode         smir   im   enter insert mode
-       enter_italics_mode        sitm   ZH   Enter italic mode
-       enter_leftward_mode       slm    ZI   Start leftward car-
-                                             riage motion
-       enter_micro_mode          smicm  ZJ   Start micro-motion
-                                             mode
-
-       enter_near_letter_quality snlq   ZK   Enter NLQ mode
-       enter_normal_quality      snrmq  ZL   Enter normal-quality
-                                             mode
-       enter_protected_mode      prot   mp   turn on protected
-                                             mode
-       enter_reverse_mode        rev    mr   turn on reverse
-                                             video mode
-       enter_secure_mode         invis  mk   turn on blank mode
-                                             (characters invisi-
-                                             ble)
-       enter_shadow_mode         sshm   ZM   Enter shadow-print
-                                             mode
-       enter_standout_mode       smso   so   begin standout mode
-       enter_subscript_mode      ssubm  ZN   Enter subscript mode
-       enter_superscript_mode    ssupm  ZO   Enter superscript
-                                             mode
-       enter_underline_mode      smul   us   begin underline mode
-       enter_upward_mode         sum    ZP   Start upward car-
-                                             riage motion
-       enter_xon_mode            smxon  SX   turn on xon/xoff
-                                             handshaking
-       erase_chars               ech    ec   erase #1 characters
-                                             (P)
-       exit_alt_charset_mode     rmacs  ae   end alternate char-
-                                             acter set (P)
-       exit_am_mode              rmam   RA   turn off automatic
-                                             margins
-       exit_attribute_mode       sgr0   me   turn off all
-                                             attributes
-       exit_ca_mode              rmcup  te   strings to end pro-
-                                             grams using cup
-       exit_delete_mode          rmdc   ed   end delete mode
-       exit_doublewide_mode      rwidm  ZQ   End double-wide mode
-       exit_insert_mode          rmir   ei   exit insert mode
-       exit_italics_mode         ritm   ZR   End italic mode
-       exit_leftward_mode        rlm    ZS   End left-motion mode
-       exit_micro_mode           rmicm  ZT   End micro-motion
-                                             mode
-       exit_shadow_mode          rshm   ZU   End shadow-print
-                                             mode
-       exit_standout_mode        rmso   se   exit standout mode
-       exit_subscript_mode       rsubm  ZV   End subscript mode
-       exit_superscript_mode     rsupm  ZW   End superscript mode
-       exit_underline_mode       rmul   ue   exit underline mode
-       exit_upward_mode          rum    ZX   End reverse charac-
-                                             ter motion
-       exit_xon_mode             rmxon  RX   turn off xon/xoff
-                                             handshaking
-       fixed_pause               pause  PA   pause for 2-3 sec-
-                                             onds
-       flash_hook                hook   fh   flash switch hook
-       flash_screen              flash  vb   visible bell (may
-                                             not move cursor)
-
-       form_feed                 ff     ff   hardcopy terminal
-                                             page eject (P*)
-       from_status_line          fsl    fs   return from status
-                                             line
-       goto_window               wingo  WG   go to window #1
-       hangup                    hup    HU   hang-up phone
-       init_1string              is1    i1   initialization
-                                             string
-       init_2string              is2    is   initialization
-                                             string
-       init_3string              is3    i3   initialization
-                                             string
-       init_file                 if     if   name of initializa-
-                                             tion file
-       init_prog                 iprog  iP   path name of program
-                                             for initialization
-       initialize_color          initc  Ic   initialize color #1
-                                             to (#2,#3,#4)
-       initialize_pair           initp  Ip   Initialize color
-                                             pair #1 to
-                                             fg=(#2,#3,#4),
-                                             bg=(#5,#6,#7)
-       insert_character          ich1   ic   insert character (P)
-       insert_line               il1    al   insert line (P*)
-       insert_padding            ip     ip   insert padding after
-                                             inserted character
-       key_a1                    ka1    K1   upper left of keypad
-       key_a3                    ka3    K3   upper right of key-
-                                             pad
-       key_b2                    kb2    K2   center of keypad
-       key_backspace             kbs    kb   backspace key
-       key_beg                   kbeg   @1   begin key
-       key_btab                  kcbt   kB   back-tab key
-       key_c1                    kc1    K4   lower left of keypad
-       key_c3                    kc3    K5   lower right of key-
-                                             pad
-       key_cancel                kcan   @2   cancel key
-       key_catab                 ktbc   ka   clear-all-tabs key
-       key_clear                 kclr   kC   clear-screen or
-                                             erase key
-       key_close                 kclo   @3   close key
-       key_command               kcmd   @4   command key
-       key_copy                  kcpy   @5   copy key
-       key_create                kcrt   @6   create key
-       key_ctab                  kctab  kt   clear-tab key
-       key_dc                    kdch1  kD   delete-character key
-       key_dl                    kdl1   kL   delete-line key
-       key_down                  kcud1  kd   down-arrow key
-       key_eic                   krmir  kM   sent by rmir or smir
-                                             in insert mode
-       key_end                   kend   @7   end key
-       key_enter                 kent   @8   enter/send key
-
-
-       key_eol                   kel    kE   clear-to-end-of-line
-                                             key
-       key_eos                   ked    kS   clear-to-end-of-
-                                             screen key
-       key_exit                  kext   @9   exit key
-       key_f0                    kf0    k0   F0 function key
-       key_f1                    kf1    k1   F1 function key
-       key_f10                   kf10   k;   F10 function key
-       key_f11                   kf11   F1   F11 function key
-       key_f12                   kf12   F2   F12 function key
-       key_f13                   kf13   F3   F13 function key
-       key_f14                   kf14   F4   F14 function key
-       key_f15                   kf15   F5   F15 function key
-       key_f16                   kf16   F6   F16 function key
-       key_f17                   kf17   F7   F17 function key
-       key_f18                   kf18   F8   F18 function key
-       key_f19                   kf19   F9   F19 function key
-       key_f2                    kf2    k2   F2 function key
-       key_f20                   kf20   FA   F20 function key
-       key_f21                   kf21   FB   F21 function key
-       key_f22                   kf22   FC   F22 function key
-       key_f23                   kf23   FD   F23 function key
-       key_f24                   kf24   FE   F24 function key
-       key_f25                   kf25   FF   F25 function key
-       key_f26                   kf26   FG   F26 function key
-       key_f27                   kf27   FH   F27 function key
-       key_f28                   kf28   FI   F28 function key
-       key_f29                   kf29   FJ   F29 function key
-       key_f3                    kf3    k3   F3 function key
-       key_f30                   kf30   FK   F30 function key
-       key_f31                   kf31   FL   F31 function key
-       key_f32                   kf32   FM   F32 function key
-       key_f33                   kf33   FN   F33 function key
-       key_f34                   kf34   FO   F34 function key
-       key_f35                   kf35   FP   F35 function key
-       key_f36                   kf36   FQ   F36 function key
-       key_f37                   kf37   FR   F37 function key
-       key_f38                   kf38   FS   F38 function key
-       key_f39                   kf39   FT   F39 function key
-       key_f4                    kf4    k4   F4 function key
-       key_f40                   kf40   FU   F40 function key
-       key_f41                   kf41   FV   F41 function key
-       key_f42                   kf42   FW   F42 function key
-       key_f43                   kf43   FX   F43 function key
-       key_f44                   kf44   FY   F44 function key
-       key_f45                   kf45   FZ   F45 function key
-       key_f46                   kf46   Fa   F46 function key
-       key_f47                   kf47   Fb   F47 function key
-       key_f48                   kf48   Fc   F48 function key
-       key_f49                   kf49   Fd   F49 function key
-       key_f5                    kf5    k5   F5 function key
-       key_f50                   kf50   Fe   F50 function key
-       key_f51                   kf51   Ff   F51 function key
-
-       key_f52                   kf52   Fg   F52 function key
-       key_f53                   kf53   Fh   F53 function key
-       key_f54                   kf54   Fi   F54 function key
-       key_f55                   kf55   Fj   F55 function key
-       key_f56                   kf56   Fk   F56 function key
-       key_f57                   kf57   Fl   F57 function key
-       key_f58                   kf58   Fm   F58 function key
-       key_f59                   kf59   Fn   F59 function key
-       key_f6                    kf6    k6   F6 function key
-       key_f60                   kf60   Fo   F60 function key
-       key_f61                   kf61   Fp   F61 function key
-       key_f62                   kf62   Fq   F62 function key
-       key_f63                   kf63   Fr   F63 function key
-       key_f7                    kf7    k7   F7 function key
-       key_f8                    kf8    k8   F8 function key
-       key_f9                    kf9    k9   F9 function key
-       key_find                  kfnd   @0   find key
-       key_help                  khlp   %1   help key
-       key_home                  khome  kh   home key
-       key_ic                    kich1  kI   insert-character key
-       key_il                    kil1   kA   insert-line key
-       key_left                  kcub1  kl   left-arrow key
-       key_ll                    kll    kH   lower-left key (home
-                                             down)
-       key_mark                  kmrk   %2   mark key
-       key_message               kmsg   %3   message key
-       key_move                  kmov   %4   move key
-       key_next                  knxt   %5   next key
-       key_npage                 knp    kN   next-page key
-       key_open                  kopn   %6   open key
-       key_options               kopt   %7   options key
-       key_ppage                 kpp    kP   previous-page key
-       key_previous              kprv   %8   previous key
-       key_print                 kprt   %9   print key
-       key_redo                  krdo   %0   redo key
-       key_reference             kref   &amp;1   reference key
-       key_refresh               krfr   &amp;2   refresh key
-       key_replace               krpl   &amp;3   replace key
-       key_restart               krst   &amp;4   restart key
-       key_resume                kres   &amp;5   resume key
-       key_right                 kcuf1  kr   right-arrow key
-       key_save                  ksav   &amp;6   save key
-       key_sbeg                  kBEG   &amp;9   shifted begin key
-       key_scancel               kCAN   &amp;0   shifted cancel key
-       key_scommand              kCMD   *1   shifted command key
-       key_scopy                 kCPY   *2   shifted copy key
-       key_screate               kCRT   *3   shifted create key
-       key_sdc                   kDC    *4   shifted delete-char-
-                                             acter key
-       key_sdl                   kDL    *5   shifted delete-line
-                                             key
-       key_select                kslt   *6   select key
-       key_send                  kEND   *7   shifted end key
-
-       key_seol                  kEOL   *8   shifted clear-to-
-                                             end-of-line key
-       key_sexit                 kEXT   *9   shifted exit key
-       key_sf                    kind   kF   scroll-forward key
-       key_sfind                 kFND   *0   shifted find key
-       key_shelp                 kHLP   #1   shifted help key
-       key_shome                 kHOM   #2   shifted home key
-       key_sic                   kIC    #3   shifted insert-char-
-                                             acter key
-       key_sleft                 kLFT   #4   shifted left-arrow
-                                             key
-       key_smessage              kMSG   %a   shifted message key
-       key_smove                 kMOV   %b   shifted move key
-       key_snext                 kNXT   %c   shifted next key
-       key_soptions              kOPT   %d   shifted options key
-       key_sprevious             kPRV   %e   shifted previous key
-       key_sprint                kPRT   %f   shifted print key
-       key_sr                    kri    kR   scroll-backward key
-       key_sredo                 kRDO   %g   shifted redo key
-       key_sreplace              kRPL   %h   shifted replace key
-       key_sright                kRIT   %i   shifted right-arrow
-                                             key
-       key_srsume                kRES   %j   shifted resume key
-       key_ssave                 kSAV   !1   shifted save key
-       key_ssuspend              kSPD   !2   shifted suspend key
-       key_stab                  khts   kT   set-tab key
-       key_sundo                 kUND   !3   shifted undo key
-       key_suspend               kspd   &amp;7   suspend key
-       key_undo                  kund   &amp;8   undo key
-       key_up                    kcuu1  ku   up-arrow key
-       keypad_local              rmkx   ke   leave 'key-
-                                             board_transmit' mode
-       keypad_xmit               smkx   ks   enter 'key-
-                                             board_transmit' mode
-       lab_f0                    lf0    l0   label on function
-                                             key f0 if not f0
-       lab_f1                    lf1    l1   label on function
-                                             key f1 if not f1
-       lab_f10                   lf10   la   label on function
-                                             key f10 if not f10
-       lab_f2                    lf2    l2   label on function
-                                             key f2 if not f2
-       lab_f3                    lf3    l3   label on function
-                                             key f3 if not f3
-       lab_f4                    lf4    l4   label on function
-                                             key f4 if not f4
-       lab_f5                    lf5    l5   label on function
-                                             key f5 if not f5
-       lab_f6                    lf6    l6   label on function
-                                             key f6 if not f6
-       lab_f7                    lf7    l7   label on function
-                                             key f7 if not f7
-
-
-       lab_f8                    lf8    l8   label on function
-                                             key f8 if not f8
-       lab_f9                    lf9    l9   label on function
-                                             key f9 if not f9
-       label_format              fln    Lf   label format
-       label_off                 rmln   LF   turn off soft labels
-       label_on                  smln   LO   turn on soft labels
-       meta_off                  rmm    mo   turn off meta mode
-       meta_on                   smm    mm   turn on meta mode
-                                             (8th-bit on)
-       micro_column_address      mhpa   ZY   Like column_address
-                                             in micro mode
-       micro_down                mcud1  ZZ   Like cursor_down in
-                                             micro mode
-       micro_left                mcub1  Za   Like cursor_left in
-                                             micro mode
-       micro_right               mcuf1  Zb   Like cursor_right in
-                                             micro mode
-       micro_row_address         mvpa   Zc   Like row_address #1
-                                             in micro mode
-       micro_up                  mcuu1  Zd   Like cursor_up in
-                                             micro mode
-       newline                   nel    nw   newline (behave like
-                                             cr followed by lf)
-       order_of_pins             porder Ze   Match software bits
-                                             to print-head pins
-       orig_colors               oc     oc   Set all color pairs
-                                             to the original ones
-       orig_pair                 op     op   Set default pair to
-                                             its original value
-       pad_char                  pad    pc   padding char
-                                             (instead of null)
-       parm_dch                  dch    DC   delete #1 characters
-                                             (P*)
-       parm_delete_line          dl     DL   delete #1 lines (P*)
-       parm_down_cursor          cud    DO   down #1 lines (P*)
-       parm_down_micro           mcud   Zf   Like parm_down_cur-
-                                             sor in micro mode
-       parm_ich                  ich    IC   insert #1 characters
-                                             (P*)
-       parm_index                indn   SF   scroll forward #1
-                                             lines (P)
-       parm_insert_line          il     AL   insert #1 lines (P*)
-       parm_left_cursor          cub    LE   move #1 characters
-                                             to the left (P)
-       parm_left_micro           mcub   Zg   Like parm_left_cur-
-                                             sor in micro mode
-       parm_right_cursor         cuf    RI   move #1 characters
-                                             to the right (P*)
-       parm_right_micro          mcuf   Zh   Like parm_right_cur-
-                                             sor in micro mode
-       parm_rindex               rin    SR   scroll back #1 lines
-                                             (P)
-
-       parm_up_cursor            cuu    UP   up #1 lines (P*)
-       parm_up_micro             mcuu   Zi   Like parm_up_cursor
-                                             in micro mode
-       pkey_key                  pfkey  pk   program function key
-                                             #1 to type string #2
-       pkey_local                pfloc  pl   program function key
-                                             #1 to execute string
-                                             #2
-       pkey_xmit                 pfx    px   program function key
-                                             #1 to transmit
-                                             string #2
-       plab_norm                 pln    pn   program label #1 to
-                                             show string #2
-       print_screen              mc0    ps   print contents of
-                                             screen
-       prtr_non                  mc5p   pO   turn on printer for
-                                             #1 bytes
-       prtr_off                  mc4    pf   turn off printer
-       prtr_on                   mc5    po   turn on printer
-       pulse                     pulse  PU   select pulse dialing
-       quick_dial                qdial  QD   dial number #1 with-
-                                             out checking
-       remove_clock              rmclk  RC   remove clock
-       repeat_char               rep    rp   repeat char #1 #2
-                                             times (P*)
-       req_for_input             rfi    RF   send next input char
-                                             (for ptys)
-       reset_1string             rs1    r1   reset string
-       reset_2string             rs2    r2   reset string
-       reset_3string             rs3    r3   reset string
-       reset_file                rf     rf   name of reset file
-       restore_cursor            rc     rc   restore cursor to
-                                             position of last
-                                             save_cursor
-       row_address               vpa    cv   vertical position #1
-                                             absolute (P)
-       save_cursor               sc     sc   save current cursor
-                                             position (P)
-       scroll_forward            ind    sf   scroll text up (P)
-       scroll_reverse            ri     sr   scroll text down (P)
-       select_char_set           scs    Zj   Select character
-                                             set, #1
-       set_attributes            sgr    sa   define video
-                                             attributes #1-#9
-                                             (PG9)
-       set_background            setb   Sb   Set background color
-                                             #1
-       set_bottom_margin         smgb   Zk   Set bottom margin at
-                                             current line
-       set_bottom_margin_parm    smgbp  Zl   Set bottom margin at
-                                             line #1 or (if smgtp
-                                             is not given) #2
-                                             lines from bottom
-
-       set_clock                 sclk   SC   set clock, #1 hrs #2
-                                             mins #3 secs
-       set_color_pair            scp    sp   Set current color
-                                             pair to #1
-       set_foreground            setf   Sf   Set foreground color
-                                             #1
-       set_left_margin           smgl   ML   set left soft margin
-                                             at current column.
-                                             See smgl. (ML is not
-                                             in BSD termcap).
-       set_left_margin_parm      smglp  Zm   Set left (right)
-                                             margin at column #1
-       set_right_margin          smgr   MR   set right soft mar-
-                                             gin at current col-
-                                             umn
-       set_right_margin_parm     smgrp  Zn   Set right margin at
-                                             column #1
-       set_tab                   hts    st   set a tab in every
-                                             row, current columns
-       set_top_margin            smgt   Zo   Set top margin at
-                                             current line
-       set_top_margin_parm       smgtp  Zp   Set top (bottom)
-                                             margin at row #1
-       set_window                wind   wi   current window is
-                                             lines #1-#2 cols
-                                             #3-#4
-       start_bit_image           sbim   Zq   Start printing bit
-                                             image graphics
-       start_char_set_def        scsd   Zr   Start character set
-                                             definition #1, with
-                                             #2 characters in the
-                                             set
-       stop_bit_image            rbim   Zs   Stop printing bit
-                                             image graphics
-       stop_char_set_def         rcsd   Zt   End definition of
-                                             character set #1
-       subscript_characters      subcs  Zu   List of subscript-
-                                             able characters
-       superscript_characters    supcs  Zv   List of superscript-
-                                             able characters
-       tab                       ht     ta   tab to next 8-space
-                                             hardware tab stop
-       these_cause_cr            docr   Zw   Printing any of
-                                             these characters
-                                             causes CR
-       to_status_line            tsl    ts   move to status line,
-                                             column #1
-       tone                      tone   TO   select touch tone
-                                             dialing
-       underline_char            uc     uc   underline char and
-                                             move past it
-       up_half_line              hu     hu   half a line up
-       user0                     u0     u0   User string #0
-
-       user1                     u1     u1   User string #1
-       user2                     u2     u2   User string #2
-       user3                     u3     u3   User string #3
-       user4                     u4     u4   User string #4
-       user5                     u5     u5   User string #5
-       user6                     u6     u6   User string #6
-       user7                     u7     u7   User string #7
-       user8                     u8     u8   User string #8
-       user9                     u9     u9   User string #9
-       wait_tone                 wait   WA   wait for dial-tone
-       xoff_character            xoffc  XF   XOFF character
-       xon_character             xonc   XN   XON character
-       zero_motion               zerom  Zx   No motion for subse-
-                                             quent character
-
-       The following  string  capabilities  are  present  in  the
-       SVr4.0  term structure, but were originally not documented
-       in the man page.
-
-               <STRONG>Variable</STRONG>          <STRONG>Cap-</STRONG>     <STRONG>TCap</STRONG>    <STRONG>Description</STRONG>
-                <STRONG>String</STRONG>           <STRONG>name</STRONG>     <STRONG>Code</STRONG>
-       alt_scancode_esc          scesa    S8   Alternate escape
-                                               for scancode emu-
-                                               lation
-       bit_image_carriage_return bicr     Yv   Move to beginning
-                                               of same row
-       bit_image_newline         binel    Zz   Move to next row
-                                               of the bit image
-       bit_image_repeat          birep    Xy   Repeat bit image
-                                               cell #1 #2 times
-       char_set_names            csnm     Zy   Produce #1'th item
-                                               from list of char-
-                                               acter set names
-       code_set_init             csin     ci   Init sequence for
-                                               multiple codesets
-       color_names               colornm  Yw   Give name for
-                                               color #1
-       define_bit_image_region   defbi    Yx   Define rectan-
-                                               gualar bit image
-                                               region
-       device_type               devt     dv   Indicate lan-
-                                               guage/codeset sup-
-                                               port
-       display_pc_char           dispc    S1   Display PC charac-
-                                               ter #1
-       end_bit_image_region      endbi    Yy   End a bit-image
-                                               region
-       enter_pc_charset_mode     smpch    S2   Enter PC character
-                                               display mode
-       enter_scancode_mode       smsc     S4   Enter PC scancode
-                                               mode
-       exit_pc_charset_mode      rmpch    S3   Exit PC character
-                                               display mode
-
-       exit_scancode_mode        rmsc     S5   Exit PC scancode
-                                               mode
-       get_mouse                 getm     Gm   Curses should get
-                                               button events,
-                                               parameter #1 not
-                                               documented.
-       key_mouse                 kmous    Km   Mouse event has
-                                               occurred
-       mouse_info                minfo    Mi   Mouse status
-                                               information
-       pc_term_options           pctrm    S6   PC terminal
-                                               options
-       pkey_plab                 pfxl     xl   Program function
-                                               key #1 to type
-                                               string #2 and show
-                                               string #3
-       req_mouse_pos             reqmp    RQ   Request mouse
-                                               position
-       scancode_escape           scesc    S7   Escape for scan-
-                                               code emulation
-       set0_des_seq              s0ds     s0   Shift to codeset 0
-                                               (EUC set 0, ASCII)
-       set1_des_seq              s1ds     s1   Shift to codeset 1
-       set2_des_seq              s2ds     s2   Shift to codeset 2
-       set3_des_seq              s3ds     s3   Shift to codeset 3
-       set_a_background          setab    AB   Set background
-                                               color to #1, using
-                                               ANSI escape
-       set_a_foreground          setaf    AF   Set foreground
-                                               color to #1, using
-                                               ANSI escape
-       set_color_band            setcolor Yz   Change to ribbon
-                                               color #1
-       set_lr_margin             smglr    ML   Set both left and
-                                               right margins to
-                                               #1, #2.  (ML is
-                                               not in BSD term-
-                                               cap).
-       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.   They are some
-        post-4.1 versions of System V curses, e.g.,  Solaris  2.5
-        and  IRIX  6.x.   The  <STRONG>ncurses</STRONG> termcap names for them are
-        invented; according 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 entries after SVr4.1; beware!
-
-                <STRONG>Variable</STRONG>         <STRONG>Cap-</STRONG>   <STRONG>TCap</STRONG>     <STRONG>Description</STRONG>
-
-                 <STRONG>String</STRONG>          <STRONG>name</STRONG>   <STRONG>Code</STRONG>
-        enter_horizontal_hl_mode ehhlm  Xh   Enter horizontal
-                                             highlight mode
-        enter_left_hl_mode       elhlm  Xl   Enter left highlight
-                                             mode
-        enter_low_hl_mode        elohlm Xo   Enter low highlight
-                                             mode
-        enter_right_hl_mode      erhlm  Xr   Enter right high-
-                                             light mode
-        enter_top_hl_mode        ethlm  Xt   Enter top highlight
-                                             mode
-        enter_vertical_hl_mode   evhlm  Xv   Enter vertical high-
-                                             light mode
-        set_a_attributes         sgr1   sA   Define second set of
-                                             video attributes
-                                             #1-#6
-        set_pglen_inch           slengthsL   YI Set page length
-                                             to #1 hundredth of
-                                             an inch
-
-
-   <STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG>
-       The following entry, describing an ANSI-standard terminal,
-       is representative of what a <STRONG>terminfo</STRONG> entry  for  a  modern
-       terminal typically looks like.
-
-     ansi|ansi/pc-term compatible with color,
-             mc5i,
-             colors#8, ncv#3, pairs#64,
-             cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-             cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
-             ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%p1%dG, ht=\E[I,
-             ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, .indn=\E[%p1%dT,
-             kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
-             kcuf1=\E[C, kcuu1=\E[A, kf1=\E[M, kf10=\E[V,
-             kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P,
-             kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
-             kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
-             op=\E[37;40m, rep=%p1%c\E[%p2%{1}%-%db,
-             rin=\E[%p1%dT, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B,
-             s3ds=\E+B, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-             setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-             setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-             sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
-             sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
-             u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%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 ``#''.
-       Capabilities in <EM>terminfo</EM> are of three types: Boolean capa-
-       bilities which indicate that the terminal has some partic-
-       ular feature, numeric capabilities giving the size of  the
-       terminal  or  the  size  of  particular delays, and 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
-       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
-       numeric capabilities may be specified in decimal, octal or
-       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
-       end of line sequence) are given by the two-character code,
-       an  `=',  and  then  a string ending at the next following
-       `,'.
-
-       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,
-       backspace, form-feed, and space.  Other escapes include <STRONG>\^</STRONG>
-       for <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</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 terminals, provid-
-       ing  CS7 is specified.  See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.)  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.
-
-       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>
-       If  the environment variable TERMINFO is set, it is inter-
-       preted as the pathname of a directory containing the  com-
-       piled description you are working on.  Only that directory
-       is searched.
-
-       If TERMINFO is not set, the <STRONG>ncurses</STRONG> version  of  the  ter-
-       minfo  reader  code  will  instead  look  in the directory
-       <STRONG>$HOME/.terminfo</STRONG> for a compiled description.  If  it  fails
-       to  find  one  there,  and  the  environment variable TER-
-       MINFO_DIRS is set, it will interpret the contents of  that
-       variable  as  a list of colon- separated directories to be
-       searched (an empty entry is interpreted as  a  command  to
-       search  <EM>/usr/share/terminfo</EM>).   If no description is found
-       in any of the TERMINFO_DIRS directories, the fetch  fails.
-
-       If  neither  TERMINFO  nor  TERMINFO_DIRS is set, the last
-       place  tried  will  be  the  system  terminfo   directory,
-       <EM>/usr/share/terminfo</EM>.
-
-       (Neither  the  <STRONG>$HOME/.terminfo</STRONG>  lookups  nor TERMINFO_DIRS
-       extensions  are  supported  under  stock  System  V   ter-
-       minfo/curses.)
-
-
-   <STRONG>Preparing</STRONG> <STRONG>Descriptions</STRONG>
-       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
-       <EM>terminfo</EM> and to build up a  description  gradually,  using
-       partial descriptions with <EM>vi</EM> or some other screen-oriented
-       program to check that they are correct.  Be aware  that  a
-       very unusual terminal may expose deficiencies in the abil-
-       ity of the <EM>terminfo</EM> file to describe it  or  bugs  in  the
-       screen-handling code of the test program.
-
-       To  get the padding for insert line right (if the terminal
-       manufacturer did not document it) a severe test is to edit
-       a  large file at 9600 baud, delete 16 or so lines from the
-       middle of the screen, then hit the `u' key  several  times
-       quickly.   If the terminal messes up, more padding is usu-
-       ally needed.  A similar test can be used for insert  char-
-       acter.
-
-
-   <STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG>
-       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
-       the <STRONG>lines</STRONG> capability.  If the terminal wraps around to the
-       beginning  of the next line when it reaches the right mar-
-       gin, then it should have the <STRONG>am</STRONG> capability.  If the termi-
-       nal  can  clear its screen, leaving the cursor in the home
-       position,  then  this  is  given  by  the   <STRONG>clear</STRONG>   string
-       capability.   If  the  terminal  overstrikes  (rather than
-       clearing a position when a character is struck over)  then
-       it  should  have  the <STRONG>os</STRONG> capability.  If the terminal is a
-       printing terminal, with no soft copy unit, give it both <STRONG>hc</STRONG>
-       and  <STRONG>os</STRONG>.   (<STRONG>os</STRONG> applies to storage scope terminals, such as
-       TEKTRONIX 4010 series, as well as hard copy and APL termi-
-       nals.)   If there is a code to move the cursor to the left
-       edge of the current row, give this as <STRONG>cr</STRONG>.  (Normally  this
-       will  be  carriage return, control M.)  If there is a code
-       to produce an audible signal (bell, beep, etc)  give  this
-       as <STRONG>bel</STRONG>.
-
-       If  there is a code to move the cursor one position to the
-       left (such as backspace) that capability should  be  given
-       as  <STRONG>cub1</STRONG>.   Similarly, codes to move to the right, up, and
-       down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and <STRONG>cud1</STRONG>.  These local
-       cursor  motions  should not alter the text they pass over,
-       for example, you would not normally use  `<STRONG>cuf1</STRONG>= '  because
-       the space would erase the character moved over.
-
-       A  very  important  point  here  is  that the local cursor
-       motions encoded in <EM>terminfo</EM> are undefined at the left  and
-       top  edges  of  a  CRT  terminal.   Programs  should never
-       attempt to backspace around the left edge,  unless  <STRONG>bw</STRONG>  is
-       given, and never attempt to go up locally off the top.  In
-       order to scroll text up, a program will go to  the  bottom
-       left corner of the screen and send the <STRONG>ind</STRONG> (index) string.
-
-       To scroll text down, a program goes to the top left corner
-       of  the  screen  and  sends the <STRONG>ri</STRONG> (reverse index) string.
-       The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined  when  not  on  their
-       respective corners of the screen.
-
-       Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG>
-       and <STRONG>rin</STRONG> which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except
-       that  they take one parameter, and scroll that many lines.
-       They are also undefined except at the appropriate edge  of
-       the screen.
-
-       The  <STRONG>am</STRONG>  capability tells whether the cursor sticks at the
-       right edge of the screen when text  is  output,  but  this
-       does not necessarily apply to a <STRONG>cuf1</STRONG> from the last column.
-       The only local motion which is defined from the left  edge
-       is  if  <STRONG>bw</STRONG>  is  given, then a <STRONG>cub1</STRONG> from the left edge will
-       move to the right edge of the previous row.  If <STRONG>bw</STRONG> is  not
-       given,  the effect is undefined.  This is useful for draw-
-       ing a box around the edge of the screen, for example.   If
-       the  terminal has switch selectable automatic margins, the
-       <EM>terminfo</EM> file usually assumes that this is on;  i.e.,  <STRONG>am</STRONG>.
-       If  the  terminal  has  a command which moves to the first
-       column of the next line, that command can be given as  <STRONG>nel</STRONG>
-       (newline).   It  does not matter if the command clears the
-       remainder of the current line, so if the terminal  has  no
-       <STRONG>cr</STRONG>  and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
-       out of one or both of them.
-
-       These  capabilities  suffice  to  describe  hard-copy  and
-       "glass-tty"  terminals.   Thus  the  model  33 teletype is
-       described as
-
-     33|tty33|tty|model 33 teletype,
-     bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
+
+                  <STRONG>Variable</STRONG>            <STRONG>Cap-</STRONG>      <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
+                   <STRONG>String</STRONG>             <STRONG>name</STRONG>      <STRONG>Code</STRONG>
+          acs_chars                   acsc      ac     graphics charset
+                                                       pairs, based on
+                                                       vt100
+          back_tab                    cbt       bt     back tab (P)
+          bell                        bel       bl     audible signal
+                                                       (bell) (P)
+          carriage_return             cr        cr     carriage return (P*)
+                                                       (P*)
+          change_char_pitch           cpi       ZA     Change number of
+                                                       characters per inch
+                                                       to #1
+          change_line_pitch           lpi       ZB     Change number of
+                                                       lines per inch to #1
+          change_res_horz             chr       ZC     Change horizontal
+                                                       resolution to #1
+          change_res_vert             cvr       ZD     Change vertical res-
+                                                       olution to #1
+          change_scroll_region        csr       cs     change region to
+                                                       line #1 to line #2
+                                                       (P)
+          char_padding                rmp       rP     like ip but when in
+                                                       insert mode
+
+
+          clear_all_tabs              tbc       ct     clear all tab stops
+                                                       (P)
+          clear_margins               mgc       MC     clear right and left
+                                                       soft margins
+          clear_screen                clear     cl     clear screen and
+                                                       home cursor (P*)
+          clr_bol                     el1       cb     Clear to beginning
+                                                       of line
+          clr_eol                     el        ce     clear to end of line
+                                                       (P)
+          clr_eos                     ed        cd     clear to end of
+                                                       screen (P*)
+          column_address              hpa       ch     horizontal position
+                                                       #1, absolute (P)
+          command_character           cmdch     CC     terminal settable
+                                                       cmd character in
+                                                       prototype !?
+          create_window               cwin      CW     define a window #1
+                                                       from #2,#3 to #4,#5
+          cursor_address              cup       cm     move to row #1 col-
+                                                       umns #2
+          cursor_down                 cud1      do     down one line
+          cursor_home                 home      ho     home cursor (if no
+                                                       cup)
+          cursor_invisible            civis     vi     make cursor invisi-
+                                                       ble
+          cursor_left                 cub1      le     move left one space
+          cursor_mem_address          mrcup     CM     memory relative cur-
+                                                       sor addressing, move
+                                                       to row #1 columns #2
+          cursor_normal               cnorm     ve     make cursor appear
+                                                       normal (undo
+                                                       civis/cvvis)
+          cursor_right                cuf1      nd     non-destructive
+                                                       space (move right
+                                                       one space)
+          cursor_to_ll                ll        ll     last line, first
+                                                       column (if no cup)
+          cursor_up                   cuu1      up     up one line
+          cursor_visible              cvvis     vs     make cursor very
+                                                       visible
+          define_char                 defc      ZE     Define a character
+                                                       #1, #2 dots wide,
+                                                       descender #3
+          delete_character            dch1      dc     delete character
+                                                       (P*)
+          delete_line                 dl1       dl     delete line (P*)
+          dial_phone                  dial      DI     dial number #1
+          dis_status_line             dsl       ds     disable status line
+          display_clock               dclk      DK     display clock
+          down_half_line              hd        hd     half a line down
+          ena_acs                     enacs     eA     enable alternate
+                                                       char set
+          enter_alt_charset_mode      smacs     as     start alternate
+                                                       character set (P)
+          enter_am_mode               smam      SA     turn on automatic
+                                                       margins
+          enter_blink_mode            blink     mb     turn on blinking
+          enter_bold_mode             bold      md     turn on bold (extra
+                                                       bright) mode
+          enter_ca_mode               smcup     ti     string to start pro-
+                                                       grams using cup
+          enter_delete_mode           smdc      dm     enter delete mode
+          enter_dim_mode              dim       mh     turn on half-bright
+                                                       mode
+
+          enter_doublewide_mode       swidm     ZF     Enter double-wide
+                                                       mode
+          enter_draft_quality         sdrfq     ZG     Enter draft-quality
+                                                       mode
+          enter_insert_mode           smir      im     enter insert mode
+          enter_italics_mode          sitm      ZH     Enter italic mode
+          enter_leftward_mode         slm       ZI     Start leftward car-
+                                                       riage motion
+          enter_micro_mode            smicm     ZJ     Start micro-motion
+                                                       mode
+          enter_near_letter_quality   snlq      ZK     Enter NLQ mode
+          enter_normal_quality        snrmq     ZL     Enter normal-quality
+                                                       mode
+          enter_protected_mode        prot      mp     turn on protected
+                                                       mode
+          enter_reverse_mode          rev       mr     turn on reverse
+                                                       video mode
+          enter_secure_mode           invis     mk     turn on blank mode
+                                                       (characters invisi-
+                                                       ble)
+          enter_shadow_mode           sshm      ZM     Enter shadow-print
+                                                       mode
+          enter_standout_mode         smso      so     begin standout mode
+          enter_subscript_mode        ssubm     ZN     Enter subscript mode
+          enter_superscript_mode      ssupm     ZO     Enter superscript
+                                                       mode
+          enter_underline_mode        smul      us     begin underline mode
+          enter_upward_mode           sum       ZP     Start upward car-
+                                                       riage motion
+          enter_xon_mode              smxon     SX     turn on xon/xoff
+                                                       handshaking
+          erase_chars                 ech       ec     erase #1 characters
+                                                       (P)
+          exit_alt_charset_mode       rmacs     ae     end alternate char-
+                                                       acter set (P)
+          exit_am_mode                rmam      RA     turn off automatic
+                                                       margins
+          exit_attribute_mode         sgr0      me     turn off all
+                                                       attributes
+          exit_ca_mode                rmcup     te     strings to end pro-
+                                                       grams using cup
+          exit_delete_mode            rmdc      ed     end delete mode
+          exit_doublewide_mode        rwidm     ZQ     End double-wide mode
+          exit_insert_mode            rmir      ei     exit insert mode
+          exit_italics_mode           ritm      ZR     End italic mode
+          exit_leftward_mode          rlm       ZS     End left-motion mode
+          exit_micro_mode             rmicm     ZT     End micro-motion
+                                                       mode
+          exit_shadow_mode            rshm      ZU     End shadow-print
+                                                       mode
+          exit_standout_mode          rmso      se     exit standout mode
+          exit_subscript_mode         rsubm     ZV     End subscript mode
+          exit_superscript_mode       rsupm     ZW     End superscript mode
+          exit_underline_mode         rmul      ue     exit underline mode
+          exit_upward_mode            rum       ZX     End reverse charac-
+                                                       ter motion
+          exit_xon_mode               rmxon     RX     turn off xon/xoff
+                                                       handshaking
+          fixed_pause                 pause     PA     pause for 2-3 sec-
+                                                       onds
+          flash_hook                  hook      fh     flash switch hook
+          flash_screen                flash     vb     visible bell (may
+                                                       not move cursor)
+          form_feed                   ff        ff     hardcopy terminal
+                                                       page eject (P*)
+
+          from_status_line            fsl       fs     return from status
+                                                       line
+          goto_window                 wingo     WG     go to window #1
+          hangup                      hup       HU     hang-up phone
+          init_1string                is1       i1     initialization
+                                                       string
+          init_2string                is2       is     initialization
+                                                       string
+          init_3string                is3       i3     initialization
+                                                       string
+          init_file                   if        if     name of initializa-
+                                                       tion file
+          init_prog                   iprog     iP     path name of program
+                                                       for initialization
+          initialize_color            initc     Ic     initialize color #1
+                                                       to (#2,#3,#4)
+          initialize_pair             initp     Ip     Initialize color
+                                                       pair #1 to
+                                                       fg=(#2,#3,#4),
+                                                       bg=(#5,#6,#7)
+          insert_character            ich1      ic     insert character (P)
+          insert_line                 il1       al     insert line (P*)
+          insert_padding              ip        ip     insert padding after
+                                                       inserted character
+          key_a1                      ka1       K1     upper left of keypad
+          key_a3                      ka3       K3     upper right of key-
+                                                       pad
+          key_b2                      kb2       K2     center of keypad
+          key_backspace               kbs       kb     backspace key
+          key_beg                     kbeg      @1     begin key
+          key_btab                    kcbt      kB     back-tab key
+          key_c1                      kc1       K4     lower left of keypad
+          key_c3                      kc3       K5     lower right of key-
+                                                       pad
+          key_cancel                  kcan      @2     cancel key
+          key_catab                   ktbc      ka     clear-all-tabs key
+          key_clear                   kclr      kC     clear-screen or
+                                                       erase key
+          key_close                   kclo      @3     close key
+          key_command                 kcmd      @4     command key
+          key_copy                    kcpy      @5     copy key
+          key_create                  kcrt      @6     create key
+          key_ctab                    kctab     kt     clear-tab key
+          key_dc                      kdch1     kD     delete-character key
+          key_dl                      kdl1      kL     delete-line key
+          key_down                    kcud1     kd     down-arrow key
+          key_eic                     krmir     kM     sent by rmir or smir
+                                                       in insert mode
+          key_end                     kend      @7     end key
+          key_enter                   kent      @8     enter/send key
+          key_eol                     kel       kE     clear-to-end-of-line
+                                                       key
+          key_eos                     ked       kS     clear-to-end-of-
+                                                       screen key
+          key_exit                    kext      @9     exit key
+          key_f0                      kf0       k0     F0 function key
+          key_f1                      kf1       k1     F1 function key
+          key_f10                     kf10      k;     F10 function key
+          key_f11                     kf11      F1     F11 function key
+          key_f12                     kf12      F2     F12 function key
+          key_f13                     kf13      F3     F13 function key
+          key_f14                     kf14      F4     F14 function key
+          key_f15                     kf15      F5     F15 function key
+          key_f16                     kf16      F6     F16 function key
+          key_f17                     kf17      F7     F17 function key
+
+          key_f18                     kf18      F8     F18 function key
+          key_f19                     kf19      F9     F19 function key
+          key_f2                      kf2       k2     F2 function key
+          key_f20                     kf20      FA     F20 function key
+          key_f21                     kf21      FB     F21 function key
+          key_f22                     kf22      FC     F22 function key
+          key_f23                     kf23      FD     F23 function key
+          key_f24                     kf24      FE     F24 function key
+          key_f25                     kf25      FF     F25 function key
+          key_f26                     kf26      FG     F26 function key
+          key_f27                     kf27      FH     F27 function key
+          key_f28                     kf28      FI     F28 function key
+          key_f29                     kf29      FJ     F29 function key
+          key_f3                      kf3       k3     F3 function key
+          key_f30                     kf30      FK     F30 function key
+          key_f31                     kf31      FL     F31 function key
+          key_f32                     kf32      FM     F32 function key
+          key_f33                     kf33      FN     F33 function key
+          key_f34                     kf34      FO     F34 function key
+          key_f35                     kf35      FP     F35 function key
+          key_f36                     kf36      FQ     F36 function key
+          key_f37                     kf37      FR     F37 function key
+          key_f38                     kf38      FS     F38 function key
+          key_f39                     kf39      FT     F39 function key
+          key_f4                      kf4       k4     F4 function key
+          key_f40                     kf40      FU     F40 function key
+          key_f41                     kf41      FV     F41 function key
+          key_f42                     kf42      FW     F42 function key
+          key_f43                     kf43      FX     F43 function key
+          key_f44                     kf44      FY     F44 function key
+          key_f45                     kf45      FZ     F45 function key
+          key_f46                     kf46      Fa     F46 function key
+          key_f47                     kf47      Fb     F47 function key
+          key_f48                     kf48      Fc     F48 function key
+          key_f49                     kf49      Fd     F49 function key
+          key_f5                      kf5       k5     F5 function key
+          key_f50                     kf50      Fe     F50 function key
+          key_f51                     kf51      Ff     F51 function key
+          key_f52                     kf52      Fg     F52 function key
+          key_f53                     kf53      Fh     F53 function key
+          key_f54                     kf54      Fi     F54 function key
+          key_f55                     kf55      Fj     F55 function key
+          key_f56                     kf56      Fk     F56 function key
+          key_f57                     kf57      Fl     F57 function key
+          key_f58                     kf58      Fm     F58 function key
+          key_f59                     kf59      Fn     F59 function key
+          key_f6                      kf6       k6     F6 function key
+          key_f60                     kf60      Fo     F60 function key
+          key_f61                     kf61      Fp     F61 function key
+          key_f62                     kf62      Fq     F62 function key
+          key_f63                     kf63      Fr     F63 function key
+          key_f7                      kf7       k7     F7 function key
+          key_f8                      kf8       k8     F8 function key
+          key_f9                      kf9       k9     F9 function key
+          key_find                    kfnd      @0     find key
+          key_help                    khlp      %1     help key
+          key_home                    khome     kh     home key
+          key_ic                      kich1     kI     insert-character key
+          key_il                      kil1      kA     insert-line key
+          key_left                    kcub1     kl     left-arrow key
+          key_ll                      kll       kH     lower-left key (home
+                                                       down)
+          key_mark                    kmrk      %2     mark key
+          key_message                 kmsg      %3     message key
+          key_move                    kmov      %4     move key
+
+          key_next                    knxt      %5     next key
+          key_npage                   knp       kN     next-page key
+          key_open                    kopn      %6     open key
+          key_options                 kopt      %7     options key
+          key_ppage                   kpp       kP     previous-page key
+          key_previous                kprv      %8     previous key
+          key_print                   kprt      %9     print key
+          key_redo                    krdo      %0     redo key
+          key_reference               kref      &amp;1     reference key
+          key_refresh                 krfr      &amp;2     refresh key
+          key_replace                 krpl      &amp;3     replace key
+          key_restart                 krst      &amp;4     restart key
+          key_resume                  kres      &amp;5     resume key
+          key_right                   kcuf1     kr     right-arrow key
+          key_save                    ksav      &amp;6     save key
+          key_sbeg                    kBEG      &amp;9     shifted begin key
+          key_scancel                 kCAN      &amp;0     shifted cancel key
+          key_scommand                kCMD      *1     shifted command key
+          key_scopy                   kCPY      *2     shifted copy key
+          key_screate                 kCRT      *3     shifted create key
+          key_sdc                     kDC       *4     shifted delete-char-
+                                                       acter key
+          key_sdl                     kDL       *5     shifted delete-line
+                                                       key
+          key_select                  kslt      *6     select key
+          key_send                    kEND      *7     shifted end key
+          key_seol                    kEOL      *8     shifted clear-to-
+                                                       end-of-line key
+          key_sexit                   kEXT      *9     shifted exit key
+          key_sf                      kind      kF     scroll-forward key
+          key_sfind                   kFND      *0     shifted find key
+          key_shelp                   kHLP      #1     shifted help key
+          key_shome                   kHOM      #2     shifted home key
+          key_sic                     kIC       #3     shifted insert-char-
+                                                       acter key
+          key_sleft                   kLFT      #4     shifted left-arrow
+                                                       key
+          key_smessage                kMSG      %a     shifted message key
+          key_smove                   kMOV      %b     shifted move key
+          key_snext                   kNXT      %c     shifted next key
+          key_soptions                kOPT      %d     shifted options key
+          key_sprevious               kPRV      %e     shifted previous key
+          key_sprint                  kPRT      %f     shifted print key
+          key_sr                      kri       kR     scroll-backward key
+          key_sredo                   kRDO      %g     shifted redo key
+          key_sreplace                kRPL      %h     shifted replace key
+          key_sright                  kRIT      %i     shifted right-arrow
+                                                       key
+          key_srsume                  kRES      %j     shifted resume key
+          key_ssave                   kSAV      !1     shifted save key
+          key_ssuspend                kSPD      !2     shifted suspend key
+          key_stab                    khts      kT     set-tab key
+          key_sundo                   kUND      !3     shifted undo key
+          key_suspend                 kspd      &amp;7     suspend key
+          key_undo                    kund      &amp;8     undo key
+          key_up                      kcuu1     ku     up-arrow key
+          keypad_local                rmkx      ke     leave 'key-
+                                                       board_transmit' mode
+          keypad_xmit                 smkx      ks     enter 'key-
+                                                       board_transmit' mode
+          lab_f0                      lf0       l0     label on function
+                                                       key f0 if not f0
+          lab_f1                      lf1       l1     label on function
+                                                       key f1 if not f1
+
+
+          lab_f10                     lf10      la     label on function
+                                                       key f10 if not f10
+          lab_f2                      lf2       l2     label on function
+                                                       key f2 if not f2
+          lab_f3                      lf3       l3     label on function
+                                                       key f3 if not f3
+          lab_f4                      lf4       l4     label on function
+                                                       key f4 if not f4
+          lab_f5                      lf5       l5     label on function
+                                                       key f5 if not f5
+          lab_f6                      lf6       l6     label on function
+                                                       key f6 if not f6
+          lab_f7                      lf7       l7     label on function
+                                                       key f7 if not f7
+          lab_f8                      lf8       l8     label on function
+                                                       key f8 if not f8
+          lab_f9                      lf9       l9     label on function
+                                                       key f9 if not f9
+          label_format                fln       Lf     label format
+          label_off                   rmln      LF     turn off soft labels
+          label_on                    smln      LO     turn on soft labels
+          meta_off                    rmm       mo     turn off meta mode
+          meta_on                     smm       mm     turn on meta mode
+                                                       (8th-bit on)
+          micro_column_address        mhpa      ZY     Like column_address
+                                                       in micro mode
+          micro_down                  mcud1     ZZ     Like cursor_down in
+                                                       micro mode
+          micro_left                  mcub1     Za     Like cursor_left in
+                                                       micro mode
+          micro_right                 mcuf1     Zb     Like cursor_right in
+                                                       micro mode
+          micro_row_address           mvpa      Zc     Like row_address #1
+                                                       in micro mode
+          micro_up                    mcuu1     Zd     Like cursor_up in
+                                                       micro mode
+          newline                     nel       nw     newline (behave like
+                                                       cr followed by lf)
+          order_of_pins               porder    Ze     Match software bits
+                                                       to print-head pins
+          orig_colors                 oc        oc     Set all color pairs
+                                                       to the original ones
+          orig_pair                   op        op     Set default pair to
+                                                       its original value
+          pad_char                    pad       pc     padding char
+                                                       (instead of null)
+          parm_dch                    dch       DC     delete #1 characters
+                                                       (P*)
+          parm_delete_line            dl        DL     delete #1 lines (P*)
+          parm_down_cursor            cud       DO     down #1 lines (P*)
+          parm_down_micro             mcud      Zf     Like parm_down_cur-
+                                                       sor in micro mode
+          parm_ich                    ich       IC     insert #1 characters
+                                                       (P*)
+          parm_index                  indn      SF     scroll forward #1
+                                                       lines (P)
+          parm_insert_line            il        AL     insert #1 lines (P*)
+          parm_left_cursor            cub       LE     move #1 characters
+                                                       to the left (P)
+          parm_left_micro             mcub      Zg     Like parm_left_cur-
+                                                       sor in micro mode
+          parm_right_cursor           cuf       RI     move #1 characters
+                                                       to the right (P*)
+          parm_right_micro            mcuf      Zh     Like parm_right_cur-
+                                                       sor in micro mode
+
+          parm_rindex                 rin       SR     scroll back #1 lines
+                                                       (P)
+          parm_up_cursor              cuu       UP     up #1 lines (P*)
+          parm_up_micro               mcuu      Zi     Like parm_up_cursor
+                                                       in micro mode
+          pkey_key                    pfkey     pk     program function key
+                                                       #1 to type string #2
+          pkey_local                  pfloc     pl     program function key
+                                                       #1 to execute string
+                                                       #2
+          pkey_xmit                   pfx       px     program function key
+                                                       #1 to transmit
+                                                       string #2
+          plab_norm                   pln       pn     program label #1 to
+                                                       show string #2
+          print_screen                mc0       ps     print contents of
+                                                       screen
+          prtr_non                    mc5p      pO     turn on printer for
+                                                       #1 bytes
+          prtr_off                    mc4       pf     turn off printer
+          prtr_on                     mc5       po     turn on printer
+          pulse                       pulse     PU     select pulse dialing
+          quick_dial                  qdial     QD     dial number #1 with-
+                                                       out checking
+          remove_clock                rmclk     RC     remove clock
+          repeat_char                 rep       rp     repeat char #1 #2
+                                                       times (P*)
+          req_for_input               rfi       RF     send next input char
+                                                       (for ptys)
+          reset_1string               rs1       r1     reset string
+          reset_2string               rs2       r2     reset string
+          reset_3string               rs3       r3     reset string
+          reset_file                  rf        rf     name of reset file
+          restore_cursor              rc        rc     restore cursor to
+                                                       position of last
+                                                       save_cursor
+          row_address                 vpa       cv     vertical position #1
+                                                       absolute (P)
+          save_cursor                 sc        sc     save current cursor
+                                                       position (P)
+          scroll_forward              ind       sf     scroll text up (P)
+          scroll_reverse              ri        sr     scroll text down (P)
+          select_char_set             scs       Zj     Select character
+                                                       set, #1
+          set_attributes              sgr       sa     define video
+                                                       attributes #1-#9
+                                                       (PG9)
+          set_background              setb      Sb     Set background color
+                                                       #1
+          set_bottom_margin           smgb      Zk     Set bottom margin at
+                                                       current line
+          set_bottom_margin_parm      smgbp     Zl     Set bottom margin at
+                                                       line #1 or (if smgtp
+                                                       is not given) #2
+                                                       lines from bottom
+          set_clock                   sclk      SC     set clock, #1 hrs #2
+                                                       mins #3 secs
+          set_color_pair              scp       sp     Set current color
+                                                       pair to #1
+          set_foreground              setf      Sf     Set foreground color
+                                                       #1
+
+
+
+
+
+          set_left_margin             smgl      ML     set left soft margin
+                                                       at current col-
+                                                       umn.     See smgl.
+                                                       (ML is not in BSD
+                                                       termcap).
+          set_left_margin_parm        smglp     Zm     Set left (right)
+                                                       margin at column #1
+          set_right_margin            smgr      MR     set right soft mar-
+                                                       gin at current col-
+                                                       umn
+          set_right_margin_parm       smgrp     Zn     Set right margin at
+                                                       column #1
+          set_tab                     hts       st     set a tab in every
+                                                       row, current columns
+          set_top_margin              smgt      Zo     Set top margin at
+                                                       current line
+          set_top_margin_parm         smgtp     Zp     Set top (bottom)
+                                                       margin at row #1
+          set_window                  wind      wi     current window is
+                                                       lines #1-#2 cols
+                                                       #3-#4
+          start_bit_image             sbim      Zq     Start printing bit
+                                                       image graphics
+          start_char_set_def          scsd      Zr     Start character set
+                                                       definition #1, with
+                                                       #2 characters in the
+                                                       set
+          stop_bit_image              rbim      Zs     Stop printing bit
+                                                       image graphics
+          stop_char_set_def           rcsd      Zt     End definition of
+                                                       character set #1
+          subscript_characters        subcs     Zu     List of subscript-
+                                                       able characters
+          superscript_characters      supcs     Zv     List of superscript-
+                                                       able characters
+          tab                         ht        ta     tab to next 8-space
+                                                       hardware tab stop
+          these_cause_cr              docr      Zw     Printing any of
+                                                       these characters
+                                                       causes CR
+          to_status_line              tsl       ts     move to status line,
+                                                       column #1
+          tone                        tone      TO     select touch tone
+                                                       dialing
+          underline_char              uc        uc     underline char and
+                                                       move past it
+          up_half_line                hu        hu     half a line up
+          user0                       u0        u0     User string #0
+          user1                       u1        u1     User string #1
+          user2                       u2        u2     User string #2
+          user3                       u3        u3     User string #3
+          user4                       u4        u4     User string #4
+          user5                       u5        u5     User string #5
+          user6                       u6        u6     User string #6
+          user7                       u7        u7     User string #7
+          user8                       u8        u8     User string #8
+          user9                       u9        u9     User string #9
+          wait_tone                   wait      WA     wait for dial-tone
+          xoff_character              xoffc     XF     XOFF character
+          xon_character               xonc      XN     XON character
+          zero_motion                 zerom     Zx     No motion for subse-
+                                                       quent character
+
+       The following string capabilities are present in the SVr4.0 term struc-
+       ture, but were originally not documented in the man page.
+
+
+                  <STRONG>Variable</STRONG>            <STRONG>Cap-</STRONG>       <STRONG>TCap</STRONG>      <STRONG>Description</STRONG>
+                   <STRONG>String</STRONG>             <STRONG>name</STRONG>       <STRONG>Code</STRONG>
+          alt_scancode_esc            scesa      S8     Alternate escape
+                                                        for scancode emu-
+                                                        lation
+          bit_image_carriage_return   bicr       Yv     Move to beginning
+                                                        of same row
+          bit_image_newline           binel      Zz     Move to next row
+                                                        of the bit image
+          bit_image_repeat            birep      Xy     Repeat bit image
+                                                        cell #1 #2 times
+          char_set_names              csnm       Zy     Produce #1'th item
+                                                        from list of char-
+                                                        acter set names
+          code_set_init               csin       ci     Init sequence for
+                                                        multiple codesets
+          color_names                 colornm    Yw     Give name for
+                                                        color #1
+          define_bit_image_region     defbi      Yx     Define rectangular
+                                                        bit image region
+          device_type                 devt       dv     Indicate lan-
+                                                        guage/codeset sup-
+                                                        port
+          display_pc_char             dispc      S1     Display PC charac-
+                                                        ter #1
+          end_bit_image_region        endbi      Yy     End a bit-image
+                                                        region
+          enter_pc_charset_mode       smpch      S2     Enter PC character
+                                                        display mode
+          enter_scancode_mode         smsc       S4     Enter PC scancode
+                                                        mode
+          exit_pc_charset_mode        rmpch      S3     Exit PC character
+                                                        display mode
+          exit_scancode_mode          rmsc       S5     Exit PC scancode
+                                                        mode
+          get_mouse                   getm       Gm     Curses should get
+                                                        button events,
+                                                        parameter #1 not
+                                                        documented.
+          key_mouse                   kmous      Km     Mouse event has
+                                                        occurred
+          mouse_info                  minfo      Mi     Mouse status
+                                                        information
+          pc_term_options             pctrm      S6     PC terminal
+                                                        options
+          pkey_plab                   pfxl       xl     Program function
+                                                        key #1 to type
+                                                        string #2 and show
+                                                        string #3
+          req_mouse_pos               reqmp      RQ     Request mouse
+                                                        position
+          scancode_escape             scesc      S7     Escape for scan-
+                                                        code emulation
+          set0_des_seq                s0ds       s0     Shift to codeset 0
+                                                        (EUC set 0, ASCII)
+          set1_des_seq                s1ds       s1     Shift to codeset 1
+          set2_des_seq                s2ds       s2     Shift to codeset 2
+          set3_des_seq                s3ds       s3     Shift to codeset 3
+          set_a_background            setab      AB     Set background
+                                                        color to #1, using
+                                                        ANSI escape
+          set_a_foreground            setaf      AF     Set foreground
+                                                        color to #1, using
+                                                        ANSI escape
+
+          set_color_band              setcolor   Yz     Change to ribbon
+                                                        color #1
+          set_lr_margin               smglr      ML     Set both left and
+                                                        right margins to
+                                                        #1, #2.  (ML is
+                                                        not in BSD term-
+                                                        cap).
+          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 capabilities.  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.  According 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 entries after SVr4.1; beware!
+
+
+                  <STRONG>Variable</STRONG>            <STRONG>Cap-</STRONG>      <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
+                   <STRONG>String</STRONG>             <STRONG>name</STRONG>      <STRONG>Code</STRONG>
+          enter_horizontal_hl_mode    ehhlm     Xh     Enter horizontal
+                                                       highlight mode
+          enter_left_hl_mode          elhlm     Xl     Enter left highlight
+                                                       mode
+          enter_low_hl_mode           elohlm    Xo     Enter low highlight
+                                                       mode
+          enter_right_hl_mode         erhlm     Xr     Enter right high-
+                                                       light mode
+          enter_top_hl_mode           ethlm     Xt     Enter top highlight
+                                                       mode
+          enter_vertical_hl_mode      evhlm     Xv     Enter vertical high-
+                                                       light mode
+          set_a_attributes            sgr1      sA     Define second set of
+                                                       video attributes
+                                                       #1-#6
+          set_pglen_inch              slength   YI     Set page length to
+                                                       #1 hundredth of an
+                                                       inch (some implemen-
+                                                       tations use sL for
+                                                       termcap).
+
+
+</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
+       capabilities.
+
+       <STRONG>ncurses</STRONG> addresses this limitation by  allowing  user-defined  capabili-
+       ties.  The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG> option for this pur-
+       pose.  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 recog-
+       nize, it infers its type (boolean, number or string)  from  the  syntax
+       and   makes   an   extended  table  entry  for  that  capability.   The
+       <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG> function makes  this  information  conditionally
+       available to applications.  The ncurses library provides the data leav-
+       ing 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> 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 interface.
+
+       While termcap is said to be extensible because it does not use a prede-
+       fined set of capabilities, in practice it has been limited to the capa-
+       bilities  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 particu-
+       lar,  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.
+
+
+</PRE><H3><a name="h3-A-Sample-Entry">A Sample Entry</a></H3><PRE>
+       The following entry, describing an ANSI-standard terminal, is represen-
+       tative of what a <STRONG>terminfo</STRONG> entry for a modern terminal  typically  looks
+       like.
+
+       ansi|ansi/pc-term compatible with color,
+               am, mc5i, mir, msgr,
+               colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
+               acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260
+                    j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303
+                    u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+               bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+               cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+               cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+               cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+               dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+               el1=\E[1K, home=\E[H, hpa=\E[%i%p1%dG, ht=\E[I, hts=\EH,
+               ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+               indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+               kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
+               mc4=\E[4i, mc5=\E[5i, nel=\r\E[S, op=\E[39;49m,
+               rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rin=\E[%p1%dT,
+               rmacs=\E[10m, rmpch=\E[10m, rmso=\E[m, rmul=\E[m,
+               s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, s3ds=\E+B,
+               setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+               sgr=\E[0;10%?%p1%t;7%;
+                          %?%p2%t;4%;
+                          %?%p3%t;7%;
+                          %?%p4%t;5%;
+                          %?%p6%t;1%;
+                          %?%p7%t;8%;
+                          %?%p9%t;11%;m,
+               sgr0=\E[0;10m, smacs=\E[11m, smpch=\E[11m, smso=\E[7m,
+               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 "#".  Capabilities in <EM>terminfo</EM> are of three types:
+
+       <STRONG>o</STRONG>   Boolean capabilities which indicate that the terminal has some par-
+           ticular feature,
+
+       <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 be used to
+           perform particular terminal operations.
+
+
+</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 terminal has, gives the
+       value "80" for ansi.  Values for numeric capabilities may be  specified
+       in decimal, octal or hexadecimal, using the C programming language con-
+       ventions (e.g., 255, 0377 and 0xff or 0xFF).
+
+       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 ",".
+
+       A number of escape sequences are provided in the string valued capabil-
+       ities for easy encoding of characters there:
+
+       <STRONG>o</STRONG>   Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character,
+
+       <STRONG>o</STRONG>   <STRONG>^x</STRONG> maps to a control-x for any appropriate <EM>x</EM>, and
+
+       <STRONG>o</STRONG>   the sequences
+
+             <STRONG>\n</STRONG>, <STRONG>\l</STRONG>, <STRONG>\r</STRONG>, <STRONG>\t</STRONG>, <STRONG>\b</STRONG>, <STRONG>\f</STRONG>, and <STRONG>\s</STRONG>
+
+           produce
+
+             <EM>newline</EM>, <EM>line-feed</EM>, <EM>return</EM>, <EM>tab</EM>, <EM>backspace</EM>, <EM>form-feed</EM>, and <EM>space</EM>,
+
+           respectively.
+
+       X/Open Curses does not say what "appropriate <EM>x</EM>" might be.  In practice,
+       that is a printable ASCII graphic character.  The special case "^?"  is
+       interpreted  as  DEL (127).  In all other cases, the character value is
+       AND'd with 0x1f, mapping to ASCII control codes in the range 0  through
+       31.
+
+       Other escapes include
+
+       <STRONG>o</STRONG>   <STRONG>\^</STRONG> for <STRONG>^</STRONG>,
+
+       <STRONG>o</STRONG>   <STRONG>\\</STRONG> for <STRONG>\</STRONG>,
+
+       <STRONG>o</STRONG>   <STRONG>\</STRONG>, for comma,
+
+       <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 terminals, providing CS7 is  specified.
+           See <STRONG>stty(1)</STRONG>.
+
+           The  reason  for  this quirk is to maintain binary compatibility of
+           the compiled terminfo files with other implementations,  e.g.,  the
+           SVr4  systems,  which  document  this.  Compiled terminfo files use
+           null-terminated strings, with no  lengths.   Modifying  this  would
+           require a new binary format, which would not work with other imple-
+           mentations.
+
+       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 <STRONG><A HREF="curs_terminfo.3x.html">tputs(3x)</A></STRONG> to provide this delay.
+
+       <STRONG>o</STRONG>   The delay must be a number with at most one decimal place of preci-
+           sion; it may be followed by suffixes "*" or "/" or both.
+
+       <STRONG>o</STRONG>   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.
+
+       <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.
+
+
+</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 which can be overridden by envi-
+       ronment variables.   Before  starting  to  search,  <STRONG>ncurses</STRONG>  eliminates
+       duplicates in its search list.
+
+       <STRONG>o</STRONG>   If  the  environment variable TERMINFO is set, it is interpreted as
+           the pathname of a directory containing the compiled description you
+           are working on.  Only that directory is searched.
+
+       <STRONG>o</STRONG>   If  TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in the directory
+           <STRONG>$HOME/.terminfo</STRONG> for a compiled description.
+
+       <STRONG>o</STRONG>   Next, if the environment variable  TERMINFO_DIRS  is  set,  <STRONG>ncurses</STRONG>
+           will  interpret  the  contents of that variable as a list of colon-
+           separated directories (or database files) to be searched.
+
+           An empty directory name (i.e., if the variable begins or ends  with
+           a  colon, or contains adjacent colons) is interpreted as the system
+           location <EM>/usr/share/terminfo</EM>.
+
+       <STRONG>o</STRONG>   Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations:
+
+           <STRONG>o</STRONG>   a   list    of    directories    (/usr/local/ncurses/share/ter-
+               minfo:/usr/share/terminfo), and
+
+           <STRONG>o</STRONG>   the  system  terminfo  directory, <EM>/usr/share/terminfo</EM> (the com-
+               piled-in default).
+
+
+</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  <EM>terminfo</EM>  and  to  build  up  a
+       description gradually, using partial descriptions with <EM>vi</EM> or some other
+       screen-oriented program to check that they are correct.  Be aware  that
+       a  very  unusual terminal may expose deficiencies in the ability of the
+       <EM>terminfo</EM> file to describe it or bugs in the screen-handling code of the
+       test program.
+
+       To  get the padding for insert line right (if the terminal manufacturer
+       did not document it) a severe test is to edit  a  large  file  at  9600
+       baud, delete 16 or so lines from the middle of the screen, then hit the
+       "u" key several times quickly.  If the terminal messes up, more padding
+       is usually needed.  A similar test can be used for insert character.
+
+
+</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 the <STRONG>lines</STRONG> capability.  If the terminal
+       wraps around to the beginning of the next  line  when  it  reaches  the
+       right  margin,  then it should have the <STRONG>am</STRONG> capability.  If the terminal
+       can clear its screen, leaving the cursor in  the  home  position,  then
+       this  is  given  by the <STRONG>clear</STRONG> string capability.  If the terminal over-
+       strikes (rather than clearing a position when  a  character  is  struck
+       over)  then  it  should  have  the <STRONG>os</STRONG> capability.  If the terminal is a
+       printing terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>.  (<STRONG>os</STRONG>
+       applies  to  storage scope terminals, such as TEKTRONIX 4010 series, as
+       well as hard copy and APL terminals.)  If there is a code to  move  the
+       cursor to the left edge of the current row, give this as <STRONG>cr</STRONG>.  (Normally
+       this will be carriage return, control/M.)  If there is a code  to  pro-
+       duce an audible signal (bell, beep, etc) give this as <STRONG>bel</STRONG>.
+
+       If there is a code to move the cursor one position to the left (such as
+       backspace) that capability should be given as <STRONG>cub1</STRONG>.   Similarly,  codes
+       to  move  to the right, up, and down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and
+       <STRONG>cud1</STRONG>.  These local cursor motions should not alter the text  they  pass
+       over,  for  example,  you  would  not normally use "<STRONG>cuf1</STRONG>= " because the
+       space would erase the character moved over.
+
+       A very important point here is that the local cursor motions encoded in
+       <EM>terminfo</EM>  are  undefined  at  the left and top edges of a CRT terminal.
+       Programs should never attempt to backspace around the left edge, unless
+       <STRONG>bw</STRONG>  is given, and never attempt to go up locally off the top.  In order
+       to scroll text up, a program will go to the bottom left corner  of  the
+       screen and send the <STRONG>ind</STRONG> (index) string.
+
+       To  scroll  text  down,  a  program  goes to the top left corner of the
+       screen and sends the <STRONG>ri</STRONG> (reverse index) string.  The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG>
+       are undefined when not on their respective corners of the screen.
+
+       Parameterized  versions  of  the  scrolling  sequences are <STRONG>indn</STRONG> and <STRONG>rin</STRONG>
+       which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except that they  take  one
+       parameter,  and scroll that many lines.  They are also undefined except
+       at the appropriate edge of the screen.
+
+       The <STRONG>am</STRONG> capability tells whether the cursor sticks at the right edge  of
+       the  screen when text is output, but this does not necessarily apply to
+       a <STRONG>cuf1</STRONG> from the last column.  The only local motion  which  is  defined
+       from  the  left  edge is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge
+       will move to the right edge of the previous row.  If <STRONG>bw</STRONG> is  not  given,
+       the  effect  is undefined.  This is useful for drawing a box around the
+       edge of the screen, for example.  If the terminal has switch selectable
+       automatic  margins,  the <EM>terminfo</EM> file usually assumes that this is on;
+       i.e., <STRONG>am</STRONG>.  If the terminal has a command which moves to the first  col-
+       umn  of  the next line, that command can be given as <STRONG>nel</STRONG> (newline).  It
+       does not matter if the command clears  the  remainder  of  the  current
+       line,  so  if the terminal has no <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to
+       craft a working <STRONG>nel</STRONG> out of one or both of them.
+
+       These capabilities suffice to describe hard-copy and "glass-tty" termi-
+       nals.  Thus the model 33 teletype is described as
+
+       33|tty33|tty|model 33 teletype,
+               bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
 
        while the Lear Siegler ADM-3 is described as
 
-     adm3|3|lsi adm3,
-     am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
-     ind=^J, lines#24,
+       adm3|3|lsi adm3,
+               am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
+               ind=^J, lines#24,
 
 
-   <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
-       Cursor addressing and other strings  requiring  parameters
-       in  the  terminal  are described by a parameterized string
-       capability, with <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG> like escapes <STRONG>%x</STRONG>  in  it.   For
-       example,  to  address  the  cursor,  the <STRONG>cup</STRONG> capability is
-       given, using two parameters: the row and column to address
-       to.  (Rows and columns are numbered from zero and refer to
-       the physical screen visible to the user, not to any unseen
-       memory.)   If  the  terminal  has  memory  relative cursor
-       addressing, that can be indicated by <STRONG>mrcup</STRONG>.
+</PRE><H3><a name="h3-Parameterized-Strings">Parameterized Strings</a></H3><PRE>
+       Cursor  addressing and other strings requiring parameters in the termi-
+       nal are described by a parameterized string  capability,  with  <EM>printf</EM>-
+       like escapes such as <EM>%x</EM> in it.  For example, to address the cursor, the
+       <STRONG>cup</STRONG> capability is given, using two parameters: the row  and  column  to
+       address  to.  (Rows and columns are numbered from zero and refer to the
+       physical screen visible to the user, not to any unseen memory.)  If the
+       terminal  has  memory relative cursor addressing, that can be indicated
+       by <STRONG>mrcup</STRONG>.
 
-       The parameter mechanism uses a stack and special  <STRONG>%</STRONG>  codes
-       to  manipulate  it.  Typically a sequence will push one of
-       the parameters onto the stack and then print  it  in  some
-       format.  Often more complex operations are necessary.
+       The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes to  manipulate
+       it.   Typically  a  sequence  will  push one of the parameters onto the
+       stack and then print it in some format.  Print (e.g., "%d") is  a  spe-
+       cial case.  Other operations, including "%t" pop their operand from the
+       stack.  It is noted that more complex operations are  often  necessary,
+       e.g., in the <STRONG>sgr</STRONG> string.
 
        The <STRONG>%</STRONG> encodings have the following meanings:
 
-            %%        outputs `%'
-            %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
-                      as in <STRONG>printf</STRONG>, flags are [-+#] and space
-            %c        print pop() like %c in printf()
-            %s        print pop() like %s in printf()
-
-            %p[1-9]   push <EM>i</EM>'th parm
-            %P[a-z]   set dynamic variable [a-z] to pop()
-            %g[a-z]   get dynamic variable [a-z] and push it
-            %P[A-Z]   set static variable [a-z] to pop()
-            %g[A-Z]   get static variable [a-z] and push it
-            %'<EM>c</EM>'      char constant <EM>c</EM>
-            %{<EM>nn</EM>}     integer constant <EM>nn</EM>
-            %l        push strlen(pop)
-
-            %+ %- %* %/ %m
-                      arithmetic (%m is mod): push(pop() op pop())
-            %&amp; %| %^  bit operations: push(pop() op pop())
-            %= %&gt; %&lt;  logical operations: push(pop() op pop())
-            %A, %O    logical and &amp; or operations (for conditionals)
-            %! %~     unary operations push(op pop())
-            %i        add 1 to first two parameters (for ANSI terminals)
-
-            %? expr %t thenpart %e elsepart %;
-                      if-then-else, %e elsepart is optional.
-                      else-if's are possible a la Algol 68:
-                      %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
-                      ci are conditions, bi are bodies.
-
-       Binary operations are in postfix form with the operands in
-       the usual order.  That  is,  to  get  x-5  one  would  use
-       "%gx%{5}%-".   %P  and  %g variables are persistent across
-       escape-string evaluations.
-
-       Consider the HP2645, which, to get to row 3 and column 12,
-       needs  to  be  sent  \E&amp;a12c03Y padded for 6 milliseconds.
-       Note that the order of the rows and  columns  is  inverted
-       here,  and that the row and column are printed as two dig-
-       its.  Thus its <STRONG>cup</STRONG> capability is "cup=6\E&amp;%p2%2dc%p1%2dY".
-
-       The Microterm ACT-IV needs the current row and column sent
-       preceded by a <STRONG>^T</STRONG>, with the row and column  simply  encoded
-       in  binary,  "cup=^T%p1%c%p2%c".  Terminals which use "%c"
-       need to be able to backspace the  cursor  (<STRONG>cub1</STRONG>),  and  to
-       move the cursor up one line on the screen (<STRONG>cuu1</STRONG>).  This is
-       necessary because it is not always safe to transmit <STRONG>\n</STRONG>  <STRONG>^D</STRONG>
-       and  <STRONG>\r</STRONG>,  as  the system may change or discard them.  (The
-       library routines dealing with terminfo set  tty  modes  so
-       that tabs are never expanded, so \t is safe to send.  This
-       turns out to be essential for the Ann Arbor 4080.)
-
-       A final example is the LSI ADM-3a, which uses row and col-
-       umn  offset  by  a  blank  character,  thus  "cup=\E=%p1%'
-       '%+%c%p2%' '%+%c".  After sending `\E=', this  pushes  the
-       first  parameter, pushes the ASCII value for a space (32),
-       adds them (pushing the sum on the stack in  place  of  the
-       two  previous  values) and outputs that value as a charac-
-       ter.  Then the same is  done  for  the  second  parameter.
-       More complex arithmetic is possible using the stack.
-
-
-   <STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
-       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-
-       hand corner can be given as <STRONG>ll</STRONG>; this may involve going  up
-       with  <STRONG>cuu1</STRONG>  from  the  home position, but a program should
-       never do this itself (unless <STRONG>ll</STRONG> does) because it can  make
-       no  assumption about the effect of moving up from the home
-       position.  Note that the home  position  is  the  same  as
-       addressing to (0,0): to the top left corner of the screen,
-       not of memory.  (Thus, the \EH sequence  on  HP  terminals
-       cannot be used for <STRONG>home</STRONG>.)
-
-       If the terminal has row or column absolute cursor address-
-       ing, these can be given as single  parameter  capabilities
-       <STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi-
-       tion absolute).  Sometimes these are shorter than the more
-       general  two  parameter  sequence (as with the hp2645) and
-       can be used in preference to <STRONG>cup</STRONG>.  If there are parameter-
-       ized  local  motions  (e.g.,  move  <EM>n</EM> spaces to the right)
-       these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single
-       parameter  indicating  how many spaces to move.  These are
-       primarily useful if the terminal does not have  <STRONG>cup</STRONG>,  such
-       as the TEKTRONIX 4025.
-
-       If the terminal needs to be in a special mode when running
-       a program that uses these capabilities, the codes to enter
-       and  exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>.  This
-       arises, for example, from terminals like the Concept  with
-       more  than  one  page of memory.  If the terminal has only
-       memory relative cursor addressing and not screen  relative
-       cursor addressing, a one screen-sized window must be fixed
-       into the terminal for cursor addressing to work  properly.
-       This is also used for the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets
-       the command character to be the one used by terminfo.   If
-       the  <STRONG>smcup</STRONG>  sequence  will not restore the screen after an
-       <STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting
+       <STRONG>%%</STRONG>   outputs "%"
+
+       <STRONG>%</STRONG><EM>[[</EM>:<EM>]flags][width[.precision]][</EM><STRONG>doxXs</STRONG><EM>]</EM>
+            as  in  <STRONG>printf(3)</STRONG>,  flags are <EM>[-+#]</EM> and <EM>space</EM>.  Use a ":" to allow
+            the next character to be a "-" flag, avoiding interpreting "%-" as
+            an operator.
+
+       %c   print <EM>pop()</EM> like %c 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 <EM>pop()</EM>
+
+       <STRONG>%g</STRONG><EM>[a-z]/</EM>
+            get dynamic variable <EM>[a-z]</EM> and push it
+
+       <STRONG>%P</STRONG><EM>[A-Z]</EM>
+            set static variable <EM>[a-z]</EM> to <EM>pop()</EM>
+
+       <STRONG>%g</STRONG><EM>[A-Z]</EM>
+            get static variable <EM>[a-z]</EM> and push it
+
+            The  terms  "static"  and "dynamic" are misleading.  Historically,
+            these are simply two different sets of variables, whose values are
+            not  reset  between calls to <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>.  However, that fact is not
+            documented in other implementations.  Relying on it will adversely
+            impact portability to other implementations.
+
+       <STRONG>%'</STRONG><EM>c</EM><STRONG>'</STRONG> char constant <EM>c</EM>
+
+       <STRONG>%{</STRONG><EM>nn</EM><STRONG>}</STRONG>
+            integer constant <EM>nn</EM>
+
+       <STRONG>%l</STRONG>   push strlen(pop)
+
+       <STRONG>%+</STRONG>, <STRONG>%-</STRONG>, <STRONG>%*</STRONG>, <STRONG>%/</STRONG>, <STRONG>%m</STRONG>
+            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> <EM>op</EM> <EM>pop())</EM>
+
+       <STRONG>%=</STRONG>, <STRONG>%&gt;</STRONG>, <STRONG>%&lt;</STRONG>
+            logical operations: <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM>
+
+       <STRONG>%A</STRONG>, <STRONG>%O</STRONG>
+            logical AND and OR operations (for conditionals)
+
+       <STRONG>%!</STRONG>, <STRONG>%~</STRONG>
+            unary operations (logical and bit complement): <EM>push(op</EM> <EM>pop())</EM>
+
+       <STRONG>%i</STRONG>   add 1 to first two parameters (for ANSI terminals)
+
+       <STRONG>%?</STRONG> <EM>expr</EM> <STRONG>%t</STRONG> <EM>thenpart</EM> <STRONG>%e</STRONG> <EM>elsepart</EM> <STRONG>%;</STRONG>
+            This forms an if-then-else.  The <STRONG>%e</STRONG> <EM>elsepart</EM> is optional.  Usually
+            the <STRONG>%?</STRONG> <EM>expr</EM> part pushes a value onto the stack,  and  <STRONG>%t</STRONG>  pops  it
+            from  the  stack,  testing if it is nonzero (true).  If it is zero
+            (false), control passes to the <STRONG>%e</STRONG> (else) part.
+
+            It is possible to form else-if's a la Algol 68:
+            <STRONG>%?</STRONG> c1 <STRONG>%t</STRONG> b1 <STRONG>%e</STRONG> c2 <STRONG>%t</STRONG> b2 <STRONG>%e</STRONG> c3 <STRONG>%t</STRONG> b3 <STRONG>%e</STRONG> c4 <STRONG>%t</STRONG> b4 <STRONG>%e</STRONG> <STRONG>%;</STRONG>
+
+            where ci are conditions, bi are bodies.
+
+            Use the <STRONG>-f</STRONG> option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the  structure  of  if-
+            then-else's.  Some strings, e.g., <STRONG>sgr</STRONG> can be very complicated when
+            written on one line.  The <STRONG>-f</STRONG> option splits the string  into  lines
+            with the parts indented.
+
+       Binary  operations  are  in postfix form with the operands in the usual
+       order.  That is, to get x-5 one would use "%gx%{5}%-".  <STRONG>%P</STRONG> and <STRONG>%g</STRONG> vari-
+       ables are persistent across escape-string evaluations.
+
+       Consider  the HP2645, which, to get to row 3 and column 12, needs to be
+       sent \E&amp;a12c03Y padded for 6 milliseconds.  Note that the order of  the
+       rows  and  columns  is  inverted  here, and that the row and column are
+       printed   as   two   digits.     Thus    its    <STRONG>cup</STRONG>    capability    is
+       "cup=6\E&amp;%p2%2dc%p1%2dY".
+
+       The  Microterm ACT-IV needs the current row and column sent preceded by
+       a  <STRONG>^T</STRONG>,  with  the  row   and   column   simply   encoded   in   binary,
+       "cup=^T%p1%c%p2%c".   Terminals  which  use  "%c"  need  to  be able to
+       backspace the cursor (<STRONG>cub1</STRONG>), and to move the cursor up one line on  the
+       screen  (<STRONG>cuu1</STRONG>).   This  is  necessary  because it is not always safe to
+       transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG> and <STRONG>\r</STRONG>, as the system may change or discard them.   (The
+       library  routines  dealing with terminfo set tty modes so that tabs are
+       never expanded, so \t is safe to send.  This turns out to be  essential
+       for the Ann Arbor 4080.)
+
+       A  final example is the LSI ADM-3a, which uses row and column offset by
+       a blank character, thus "cup=\E=%p1%' '%+%c%p2%' '%+%c".  After sending
+       "\E=",  this  pushes  the first parameter, pushes the ASCII value for a
+       space (32), adds them (pushing the sum on the stack in place of the two
+       previous  values) and outputs that value as a character.  Then the same
+       is done for the second parameter.  More complex arithmetic is  possible
+       using the stack.
+
+
+</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-hand corner can be given as <STRONG>ll</STRONG>; this may
+       involve going up with <STRONG>cuu1</STRONG> from the home position, but a program should
+       never do this itself (unless <STRONG>ll</STRONG> does) because it can make no assumption
+       about the effect of moving up from the home position.   Note  that  the
+       home  position is the same as addressing to (0,0): to the top left cor-
+       ner of the screen, not of memory.  (Thus, the \EH sequence on HP termi-
+       nals cannot be used for <STRONG>home</STRONG>.)
+
+       If the terminal has row or column absolute cursor addressing, these can
+       be given as single  parameter  capabilities  <STRONG>hpa</STRONG>  (horizontal  position
+       absolute)  and  <STRONG>vpa</STRONG>  (vertical position absolute).  Sometimes these are
+       shorter than the more general  two  parameter  sequence  (as  with  the
+       hp2645)  and can be used in preference to <STRONG>cup</STRONG>.  If there are parameter-
+       ized local motions (e.g., move <EM>n</EM> spaces to  the  right)  these  can  be
+       given  as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single parameter indicating how
+       many spaces to move.  These are primarily useful if the  terminal  does
+       not have <STRONG>cup</STRONG>, such as the TEKTRONIX 4025.
+
+       If  the  terminal  needs to be in a special mode when running a program
+       that uses these capabilities, the codes to enter and exit this mode can
+       be  given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>.  This arises, for example, from terminals
+       like the Concept with more than one page of memory.   If  the  terminal
+       has only memory relative cursor addressing and not screen relative cur-
+       sor addressing, a one screen-sized window must be fixed into the termi-
+       nal  for cursor addressing to work properly.  This is also used for the
+       TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets the command character to  be  the  one
+       used  by  terminfo.   If the <STRONG>smcup</STRONG> sequence will not restore the screen
+       after an <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>
-       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
-       beginning of the line to the current  position  inclusive,
-       leaving  the  cursor  where it is, this should be given as
-       <STRONG>el1</STRONG>.  If the terminal can clear from the current  position
-       to  the  end  of the display, then this should be given as
-       <STRONG>ed</STRONG>.  <STRONG>Ed</STRONG> is only defined from the first column of  a  line.
-       (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>
-       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
-       must then appear on the newly blank line.  If the terminal
-       can delete the line which the  cursor  is  on,  then  this
-       should  be  given as <STRONG>dl1</STRONG>; this is done only from the first
-       position on the line to be deleted.  Versions of  <STRONG>il1</STRONG>  and
-       <STRONG>dl1</STRONG>  which  take  a  single parameter and insert or delete
-       that many lines can be given as <STRONG>il</STRONG> and <STRONG>dl</STRONG>.
-
-       If the terminal has a settable scrolling region (like  the
-       vt100)  the  command to set this can be described with the
-       <STRONG>csr</STRONG> capability, which takes two parameters:  the  top  and
-       bottom lines of the scrolling region.  The cursor position
-       is, alas, undefined after using this command.
-
-       It is possible to get the effect of insert or delete  line
-       using <STRONG>csr</STRONG> on a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save
-       and restore cursor) commands may be  useful  for  ensuring
-       that  your  synthesized insert/delete string does not move
-       the cursor.  (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does  this
-       synthesis   automatically,   so   you   need  not  compose
+</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 beginning of the line to the current
+       position inclusive, leaving the cursor where  it  is,  this  should  be
+       given  as  <STRONG>el1</STRONG>.  If the terminal can clear from the current position to
+       the end of the display, then this should be given as <STRONG>ed</STRONG>.   <STRONG>Ed</STRONG>  is  only
+       defined from the first column of a line.  (Thus, it can be simulated by
+       a request to delete a large number of lines, if a true <STRONG>ed</STRONG> is not avail-
+       able.)
+
+
+</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 must then appear on the newly
+       blank line.  If the terminal can delete the line which  the  cursor  is
+       on,  then this should be given as <STRONG>dl1</STRONG>; this is done only from the first
+       position on the line to be deleted.  Versions of <STRONG>il1</STRONG> and <STRONG>dl1</STRONG> which take
+       a single parameter and insert or delete that many lines can be given as
+       <STRONG>il</STRONG> and <STRONG>dl</STRONG>.
+
+       If the terminal has a settable scrolling region (like  the  vt100)  the
+       command  to  set  this  can be described with the <STRONG>csr</STRONG> capability, which
+       takes two parameters: the top and bottom lines of the scrolling region.
+       The cursor position is, alas, undefined after using this command.
+
+       It  is possible to get the effect of insert or delete line using <STRONG>csr</STRONG> on
+       a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save and restore cursor)  com-
+       mands  may  be  useful for ensuring that your synthesized insert/delete
+       string does not move the cursor.  (Note that  the  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>  library
+       does   this   synthesis   automatically,   so   you  need  not  compose
        insert/delete strings for an entry with <STRONG>csr</STRONG>).
 
-       Yet another way to construct insert and delete might be to
-       use  a  combination  of index with the memory-lock feature
-       found on some terminals (like the HP-700/90 series,  which
-       however also has insert/delete).
-
-       Inserting  lines  at  the  top or bottom of the screen can
-       also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals  without  a
-       true  insert/delete line, and is often faster even on ter-
-       minals with those features.
-
-       The boolean <STRONG>non_dest_scroll_region</STRONG> should be set  if  each
-       scrolling  window  is effectively a view port on a screen-
-       sized canvas.  To  test  for  this  capability,  create  a
-       scrolling  region in the middle of the screen, write some-
-       thing to the bottom line, move the cursor to  the  top  of
-       the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>.  If the data
-       scrolled off the bottom  of  the  region  by  the  <STRONG>ri</STRONG>  re-
-       appears,  then scrolling is non-destructive.  System V and
-       XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG>  will  simu-
-       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.
-
-       If the terminal has the ability to define a window as part
-       of  memory,  which all commands affect, it should be given
-       as the parameterized string <STRONG>wind</STRONG>.  The four parameters are
-       the  starting  and ending lines in memory and the starting
-       and ending columns in memory, in that order.
-
-       If the terminal can retain display memory above, then  the
-       <STRONG>da</STRONG>  capability  should  be given; if display memory can be
-       retained below, then <STRONG>db</STRONG> should be given.   These  indicate
-       that  deleting  a  line  or  scrolling may bring non-blank
-       lines up from below or that scrolling  back  with  <STRONG>ri</STRONG>  may
+       Yet another way to construct insert and delete might be to use a combi-
+       nation  of  index  with the memory-lock feature found on some terminals
+       (like the HP-700/90 series, which however also has insert/delete).
+
+       Inserting lines at the top or bottom of the screen  can  also  be  done
+       using  <STRONG>ri</STRONG>  or  <STRONG>ind</STRONG> on many terminals without a true insert/delete line,
+       and is often faster even on terminals with those features.
+
+       The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each scrolling win-
+       dow  is  effectively a view port on a screen-sized canvas.  To test for
+       this capability, create a scrolling region in the middle of the screen,
+       write  something  to the bottom line, move the cursor to the top of the
+       region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>.  If the data scrolled off the
+       bottom  of  the  region  by  the  <STRONG>ri</STRONG> re-appears, then scrolling is non-
+       destructive.  System V and XSI Curses expect that <STRONG>ind</STRONG>,  <STRONG>ri</STRONG>,  <STRONG>indn</STRONG>,  and
+       <STRONG>rin</STRONG>  will  simulate 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>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 as the parameterized
+       string <STRONG>wind</STRONG>.  The four parameters are the starting and ending lines  in
+       memory and the starting and ending columns in memory, in that order.
+
+       If the terminal can retain display memory above, then the <STRONG>da</STRONG> capability
+       should be given; if display memory  can  be  retained  below,  then  <STRONG>db</STRONG>
+       should  be given.  These indicate that deleting a line or scrolling may
+       bring non-blank 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>
-       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
-       operations affect only the characters on the current  line
-       and  shift  characters  off  the  end of the line rigidly.
-       Other terminals, such as the Concept 100  and  the  Perkin
-       Elmer  Owl,  make  a distinction between typed and untyped
-       blanks on the screen, shifting upon an  insert  or  delete
-       only  to  an  untyped  blank on the screen which is either
-       eliminated, or expanded to two untyped  blanks.   You  can
-       determine  the  kind  of terminal you have by clearing the
-       screen and then typing text separated by  cursor  motions.
-       Type  "abc    def" using local cursor motions (not spaces)
-       between the "abc" and the "def".  Then position the cursor
-       before  the "abc" and put the terminal in insert mode.  If
-       typing characters causes the rest of  the  line  to  shift
-       rigidly and characters to fall off the end, then your ter-
-       minal does not  distinguish  between  blanks  and  untyped
-       positions.   If  the  "abc" shifts over to the "def" which
-       then move together around the end of the current line  and
-       onto  the  next as you insert, you have the second type of
-       terminal, and should give the capability <STRONG>in</STRONG>, which  stands
-       for "insert null".  While these are two logically separate
-       attributes (one line versus multi-line  insert  mode,  and
-       special  treatment of untyped spaces) we have seen no ter-
-       minals whose insert mode cannot be described with the sin-
-       gle attribute.
-
-       Terminfo  can describe both terminals which have an insert
-       mode, and terminals which send a simple sequence to open a
-       blank  position  on  the  current  line.  Give as <STRONG>smir</STRONG> the
-       sequence to get  into  insert  mode.   Give  as  <STRONG>rmir</STRONG>  the
-       sequence  to  leave  insert  mode.   Now  give as <STRONG>ich1</STRONG> any
-       sequence needed to be sent just before sending the charac-
-       ter  to  be  inserted.   Most terminals with a true insert
-       mode will not give <STRONG>ich1</STRONG>; terminals which send  a  sequence
-       to open a screen position should give it here.
-
-       If  your terminal has both, insert mode is usually prefer-
-       able to <STRONG>ich1</STRONG>.   Technically,  you  should  not  give  both
-       unless  the  terminal actually requires both to be used in
-       combination.  Accordingly,  some  non-curses  applications
-       get  confused  if both are present; the symptom is doubled
-       characters in an update using insert.  This requirement is
-       now rare; most <STRONG>ich</STRONG> sequences do not require previous smir,
-       and most smir insert modes do not require <STRONG>ich1</STRONG> before each
-       character.   Therefore,  the  new  <STRONG>curses</STRONG> actually assumes
-       this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG>  as
-       appropriate (but not both).  If you have to write an entry
-       to be used under new curses for a terminal old  enough  to
-       need both, include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
-
-       If post insert padding is needed, give this as a number of
-       milliseconds in <STRONG>ip</STRONG> (a string option).  Any other  sequence
-       which  may  need  to  be  sent after an insert of a single
-       character may also be given in <STRONG>ip</STRONG>.  If your terminal needs
-       both to be placed into an `insert mode' and a special code
-       to precede each inserted character,  then  both  <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
-       and  <STRONG>ich1</STRONG>  can  be  given, and both will be used.  The <STRONG>ich</STRONG>
-       capability, with one parameter, <EM>n</EM>, will repeat the effects
-       of <STRONG>ich1</STRONG> <EM>n</EM> times.
-
-       If padding is necessary between characters typed while not
-       in insert mode, give this  as  a  number  of  milliseconds
-       padding in <STRONG>rmp</STRONG>.
-
-       It  is  occasionally  necessary  to  move  around while in
-       insert mode to delete characters on the same  line  (e.g.,
-       if  there is a tab after the insertion position).  If your
-       terminal allows motion while in insert mode you  can  give
-       the  capability  <STRONG>mir</STRONG>  to  speed up inserting in this case.
-       Omitting <STRONG>mir</STRONG>  will  affect  only  speed.   Some  terminals
-       (notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way
-       their insert mode works.
-
-       Finally, you can specify <STRONG>dch1</STRONG> to delete a  single  charac-
-       ter,  <STRONG>dch</STRONG>  with  one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
-       and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and  exit
-       delete  mode  (any mode the terminal needs to be placed in
-       for <STRONG>dch1</STRONG> to work).
-
-       A command to erase <EM>n</EM> characters (equivalent to  outputting
-       <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>
-       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>
-       <EM>out</EM> <EM>mode</EM>, representing a good, high contrast, easy-on-the-
-       eyes, format for highlighting  error  messages  and  other
-       attention  getters.   (If you have a choice, reverse video
-       plus half-bright is good, or reverse  video  alone.)   The
-       sequences  to  enter  and  exit standout mode are given as
-       <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively.  If the code to  change  into
-       or  out  of  standout  mode  leaves  one or even two blank
-       spaces on the screen, as the TVI 912 and Teleray 1061  do,
-       then <STRONG>xmc</STRONG> should be given to tell how many spaces are left.
-
-       Codes to begin underlining  and  end  underlining  can  be
-       given  as <STRONG>smul</STRONG> and <STRONG>rmul</STRONG> respectively.  If the terminal has
-       a code to underline the current  character  and  move  the
-       cursor one space to the right, such as the Microterm Mime,
-       this can be given as <STRONG>uc</STRONG>.
-
-       Other capabilities to  enter  various  highlighting  modes
-       include  <STRONG>blink</STRONG>  (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG>
-       (dim or half-bright) <STRONG>invis</STRONG> (blanking  or  invisible  text)
-       <STRONG>prot</STRONG>  (protected)  <STRONG>rev</STRONG>  (reverse video) <STRONG>sgr0</STRONG> (turn off <EM>all</EM>
-       attribute modes)  <STRONG>smacs</STRONG>  (enter  alternate  character  set
-       mode)  and  <STRONG>rmacs</STRONG>  (exit  alternate  character  set mode).
-       Turning on any of these modes singly may or may  not  turn
-       off other modes.
-
-       If  there  is  a sequence to set arbitrary combinations of
-       modes, this should be given as <STRONG>sgr</STRONG> (set attributes),  tak-
-       ing  9 parameters.  Each parameter is either 0 or nonzero,
-       as the corresponding attribute is on or off.  The 9 param-
-       eters  are, in order: standout, underline, reverse, blink,
-       dim, bold, blank, protect, alternate character  set.   Not
-       all  modes  need be supported by <STRONG>sgr</STRONG>, only those for which
-       corresponding separate attribute commands exist.
+</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 operations affect only the charac-
+       ters on the current line and shift characters off the end of  the  line
+       rigidly.  Other terminals, such as the Concept 100 and the Perkin Elmer
+       Owl, make a distinction between typed and untyped blanks on the screen,
+       shifting  upon  an  insert  or  delete  only to an untyped blank on the
+       screen which is either eliminated, or expanded to two untyped blanks.
+
+       You can determine the kind of terminal you have by clearing the  screen
+       and  then  typing  text separated by cursor motions.  Type "abc    def"
+       using local cursor motions (not  spaces)  between  the  "abc"  and  the
+       "def".   Then position the cursor before the "abc" and put the terminal
+       in insert mode.  If typing characters causes the rest of  the  line  to
+       shift  rigidly  and  characters to fall off the end, then your terminal
+       does not distinguish between blanks  and  untyped  positions.   If  the
+       "abc"  shifts over to the "def" which then move together around the end
+       of the current line and onto the next as you insert, you have the  sec-
+       ond  type  of terminal, and should give the capability <STRONG>in</STRONG>, which stands
+       for "insert null".
+
+       While these are two logically  separate  attributes  (one  line  versus
+       multi-line  insert  mode,  and  special treatment of untyped spaces) we
+       have seen no terminals whose insert mode cannot be described  with  the
+       single attribute.
+
+       Terminfo  can  describe  both  terminals which have an insert mode, and
+       terminals which send a simple sequence to open a blank position on  the
+       current line.  Give as <STRONG>smir</STRONG> the sequence to get into insert mode.  Give
+       as <STRONG>rmir</STRONG> the sequence to leave  insert  mode.   Now  give  as  <STRONG>ich1</STRONG>  any
+       sequence  needed  to  be  sent  just before sending the character to be
+       inserted.  Most terminals with a true insert mode will not  give  <STRONG>ich1</STRONG>;
+       terminals  which  send a sequence to open a screen position should give
+       it here.
+
+       If your terminal has both, insert mode is usually preferable  to  <STRONG>ich1</STRONG>.
+       Technically,  you  should  not  give  both unless the terminal actually
+       requires both to be used in combination.  Accordingly, some  non-curses
+       applications  get  confused if both are present; the symptom is doubled
+       characters in an update using insert.  This requirement  is  now  rare;
+       most  <STRONG>ich</STRONG>  sequences do not require previous smir, and most smir insert
+       modes do not require <STRONG>ich1</STRONG> before each character.   Therefore,  the  new
+       <STRONG>curses</STRONG>  actually  assumes this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or
+       <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as appropriate (but not both).  If you have to write an  entry
+       to  be  used  under  new curses for a terminal old enough to need both,
+       include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
+
+       If post insert padding is needed, give this as a number of milliseconds
+       in  <STRONG>ip</STRONG> (a string option).  Any other sequence which may need to be sent
+       after an insert of a single character may also be given in <STRONG>ip</STRONG>.  If your
+       terminal  needs  both  to be placed into an "insert mode" and a special
+       code to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>  and  <STRONG>ich1</STRONG>
+       can  be  given,  and  both  will be used.  The <STRONG>ich</STRONG> capability, with one
+       parameter, <EM>n</EM>, will repeat the effects of <STRONG>ich1</STRONG> <EM>n</EM> times.
+
+       If padding is necessary between characters typed while  not  in  insert
+       mode, give this as a number of milliseconds padding in <STRONG>rmp</STRONG>.
+
+       It  is  occasionally  necessary  to move around while in insert mode to
+       delete characters on the same line (e.g., if there is a tab  after  the
+       insertion  position).   If  your terminal allows motion while in insert
+       mode you can give the capability <STRONG>mir</STRONG> to  speed  up  inserting  in  this
+       case.   Omitting  <STRONG>mir</STRONG>  will affect only speed.  Some terminals (notably
+       Datamedia's) must not have <STRONG>mir</STRONG> because of the  way  their  insert  mode
+       works.
+
+       Finally,  you  can  specify <STRONG>dch1</STRONG> to delete a single character, <STRONG>dch</STRONG> with
+       one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM> and  delete  mode  by  giving
+       <STRONG>smdc</STRONG>  and  <STRONG>rmdc</STRONG>  to  enter  and exit delete mode (any mode the terminal
+       needs to be placed in for <STRONG>dch1</STRONG> to work).
+
+       A command to erase <EM>n</EM> characters  (equivalent  to  outputting  <EM>n</EM>  blanks
+       without moving the cursor) can be given as <STRONG>ech</STRONG> with one parameter.
+
+
+</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 different ways.  You  should  choose  one
+       display  form  as  <EM>standout</EM>  <EM>mode</EM>,  representing a good, high contrast,
+       easy-on-the-eyes, format for  highlighting  error  messages  and  other
+       attention  getters.   (If  you  have a choice, reverse video plus half-
+       bright is good, or reverse video alone.)  The sequences  to  enter  and
+       exit  standout  mode  are given as <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively.  If the
+       code to change into or out of standout mode  leaves  one  or  even  two
+       blank  spaces  on  the screen, as the TVI 912 and Teleray 1061 do, then
+       <STRONG>xmc</STRONG> should be given to tell how many spaces are left.
+
+       Codes to begin underlining and end underlining can be given as <STRONG>smul</STRONG> and
+       <STRONG>rmul</STRONG> respectively.  If the terminal has a code to underline the current
+       character and move the cursor one space  to  the  right,  such  as  the
+       Microterm Mime, this can be given as <STRONG>uc</STRONG>.
+
+       Other  capabilities  to  enter various highlighting modes include <STRONG>blink</STRONG>
+       (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG> (dim or  half-bright)  <STRONG>invis</STRONG>
+       (blanking  or invisible text) <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG>
+       (turn off <EM>all</EM> attribute modes) <STRONG>smacs</STRONG>  (enter  alternate  character  set
+       mode) and <STRONG>rmacs</STRONG> (exit alternate character set mode).  Turning on any of
+       these modes singly may or may not turn off other modes.
+
+       If there is a sequence to set arbitrary  combinations  of  modes,  this
+       should  be  given  as  <STRONG>sgr</STRONG> (set attributes), taking 9 parameters.  Each
+       parameter is either 0 or nonzero, as the corresponding attribute is  on
+       or  off.  The 9 parameters are, in order: standout, underline, reverse,
+       blink, dim, bold, blank, protect, alternate  character  set.   Not  all
+       modes need be supported by <STRONG>sgr</STRONG>, only those for which corresponding sep-
+       arate attribute commands exist.
 
        For example, the DEC vt220 supports most of the modes:
 
-           <STRONG>tparm</STRONG> <STRONG>parameter</STRONG>   <STRONG>attribute</STRONG>    <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
-
-           none              none         \E[0m
-           p1                standout     \E[0;1;7m
-           p2                underline    \E[0;4m
-           p3                reverse      \E[0;7m
-           p4                blink        \E[0;5m
-           p5                dim          not available
-           p6                bold         \E[0;1m
-           p7                invis        \E[0;8m
-           p8                protect      not used
-           p9                altcharset   ^O (off) ^N (on)
-
-       We begin each escape sequence by turning off any  existing
-       modes,  since  there  is no quick way to determine whether
-       they are active.  Standout is set up to be the combination
-       of  reverse  and  bold.   The vt220 terminal has a protect
-       mode, though it is not commonly used  in  sgr  because  it
-       protects  characters  on  the  screen from the host's era-
-       sures.  The altcharset mode also is different in  that  it
-       is  either ^O or ^N, depending on whether it is off or on.
-       If all modes are turned  on,  the  resulting  sequence  is
-       \E[0;1;4;5;7;8m^N.
-
-       Some  sequences  are common to different modes.  For exam-
-       ple, ;7 is output when either p1 or p3 is true,  that  is,
-       if either standout or reverse modes are turned on.
-
-       Writing  out  the above sequences, along with their depen-
-       dencies yields
-
-         <STRONG>sequence</STRONG>    <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG>     <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
-
-         \E[0       always              \E[0
-         ;1         if p1 or p6         %?%p1%p6%|%t;1%;
-         ;4         if p2               %?%p2%|%t;4%;
-         ;5         if p4               %?%p4%|%t;5%;
-         ;7         if p1 or p3         %?%p1%p3%|%t;7%;
-         ;8         if p7               %?%p7%|%t;8%;
-
-         m          always              m
-         ^N or ^O   if p9 ^N, else ^O   %?%p9%t^N%e^O%;
+               <STRONG>tparm</STRONG> <STRONG>parameter</STRONG>      <STRONG>attribute</STRONG>        <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
+
+               none                 none             \E[0m
+               p1                   standout         \E[0;1;7m
+               p2                   underline        \E[0;4m
+               p3                   reverse          \E[0;7m
+               p4                   blink            \E[0;5m
+               p5                   dim              not available
+               p6                   bold             \E[0;1m
+               p7                   invis            \E[0;8m
+               p8                   protect          not used
+               p9                   altcharset       ^O (off) ^N (on)
+
+       We begin each escape sequence by turning off any existing modes,  since
+       there  is  no quick way to determine whether they are active.  Standout
+       is set up to be the combination of reverse and bold.  The vt220  termi-
+       nal  has  a protect mode, though it is not commonly used in sgr because
+       it protects characters on the screen from  the  host's  erasures.   The
+       altcharset  mode  also  is  different  in  that  it is either ^O or ^N,
+       depending on whether it is off or on.  If all modes are turned on,  the
+       resulting sequence is \E[0;1;4;5;7;8m^N.
+
+       Some  sequences are common to different modes.  For example, ;7 is out-
+       put when either p1 or p3 is  true,  that  is,  if  either  standout  or
+       reverse modes are turned on.
+
+       Writing out the above sequences, along with their dependencies yields
+
+            <STRONG>sequence</STRONG>             <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG>      <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
+
+            \E[0                 always              \E[0
+            ;1                   if p1 or p6         %?%p1%p6%|%t;1%;
+            ;4                   if p2               %?%p2%|%t;4%;
+            ;5                   if p4               %?%p4%|%t;5%;
+            ;7                   if p1 or p3         %?%p1%p3%|%t;7%;
+            ;8                   if p7               %?%p7%|%t;8%;
+            m                    always              m
+            ^N or ^O             if p9 ^N, else ^O   %?%p9%t^N%e^O%;
 
        Putting this all together into the sgr sequence gives:
 
-           sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
-               %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-
-       Remember that if you specify sgr, you  must  also  specify
-       sgr0.
-
-       Terminals  with  the ``magic cookie'' glitch (<STRONG>xmc</STRONG>) deposit
-       special  ``cookies''  when   they   receive   mode-setting
-       sequences,  which affect the display algorithm rather than
-       having extra bits for  each  character.   Some  terminals,
-       such  as  the  HP  2621, automatically leave standout mode
-       when they move to a new line or the cursor  is  addressed.
-       Programs  using  standout  mode  should exit standout mode
-       before moving the cursor or sending a newline, unless  the
-       <STRONG>msgr</STRONG>  capability,  asserting  that  it  is safe to move in
-       standout mode, is present.
-
-       If the terminal has a way of flashing the screen to  indi-
-       cate  an  error quietly (a bell replacement) then this can
-       be given as <STRONG>flash</STRONG>; it must not move the cursor.
-
-       If the cursor needs to be made more  visible  than  normal
-       when it is not on the bottom line (to make, for example, a
-       non-blinking underline into an easier  to  find  block  or
-       blinking underline) give this sequence as <STRONG>cvvis</STRONG>.  If there
-       is a way to make the  cursor  completely  invisible,  give
-       that as <STRONG>civis</STRONG>.  The capability <STRONG>cnorm</STRONG> should be given which
-       undoes the effects of both of these modes.
-
-       If your terminal correctly generates underlined characters
-       (with  no  special  codes  needed) even though it does not
-       overstrike, then you should give the capability <STRONG>ul</STRONG>.  If  a
-       character  overstriking  another leaves both characters on
-       the screen, specify the capability <STRONG>os</STRONG>.  If overstrikes are
-       erasable  with  a  blank, then this should be indicated by
+           sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
+               %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+
+       Remember  that  if  you specify sgr, you must also specify sgr0.  Also,
+       some implementations rely on sgr being given if sgr0 is, Not  all  ter-
+       minfo  entries  necessarily have an sgr string, however.  Many terminfo
+       entries are derived from termcap entries which have no sgr string.  The
+       only drawback to adding an sgr string is that termcap also assumes that
+       sgr0 does not exit alternate character set mode.
+
+       Terminals with the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit  special  "cook-
+       ies" when they receive mode-setting sequences, which affect the display
+       algorithm rather than having extra bits for each character.  Some  ter-
+       minals,  such  as  the  HP 2621, automatically leave standout mode when
+       they move to a new line or the cursor  is  addressed.   Programs  using
+       standout  mode  should  exit  standout mode before moving the cursor or
+       sending a newline, unless the <STRONG>msgr</STRONG> capability,  asserting  that  it  is
+       safe to move in standout mode, is present.
+
+       If  the  terminal has a way of flashing the screen to indicate an error
+       quietly (a bell replacement) then this can be given as <STRONG>flash</STRONG>;  it  must
+       not move the cursor.
+
+       If  the cursor needs to be made more visible than normal when it is not
+       on the bottom line (to make, for example, a non-blinking underline into
+       an  easier  to  find block or blinking underline) give this sequence as
+       <STRONG>cvvis</STRONG>.  If there is a way to make the cursor completely invisible, give
+       that  as  <STRONG>civis</STRONG>.  The capability <STRONG>cnorm</STRONG> should be given which undoes the
+       effects of both of these modes.
+
+       If your terminal correctly generates  underlined  characters  (with  no
+       special  codes  needed)  even  though  it does not overstrike, then you
+       should give the capability <STRONG>ul</STRONG>.  If  a  character  overstriking  another
+       leaves  both  characters  on the screen, specify the capability <STRONG>os</STRONG>.  If
+       overstrikes are 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>
-       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-
-       pad only works in local (this applies, for example, to the
-       unshifted HP 2621 keys).  If the  keypad  can  be  set  to
-       transmit  or  not  transmit,  give these codes as <STRONG>smkx</STRONG> and
-       <STRONG>rmkx</STRONG>.  Otherwise the keypad is assumed to always transmit.
-       The  codes  sent by the left arrow, right arrow, up arrow,
-       down arrow, and home keys can be given  as  <STRONG>kcub1,</STRONG>  <STRONG>kcuf1,</STRONG>
-       <STRONG>kcuu1,</STRONG>  <STRONG>kcud1,</STRONG>  and  <STRONG>khome</STRONG>  respectively.   If  there  are
-       function keys such as f0, f1, ...,  f10,  the  codes  they
-       send  can  be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>.  If these keys
-       have labels other than the default  f0  through  f10,  the
-       labels  can  be  given  as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>.  The codes
-       transmitted by certain other special keys  can  be  given:
-       <STRONG>kll</STRONG>  (home  down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs),
-       <STRONG>kctab</STRONG> (clear the tab stop in  this  column),  <STRONG>kclr</STRONG>  (clear
-       screen  or  erase  key),  <STRONG>kdch1</STRONG>  (delete  character), <STRONG>kdl1</STRONG>
-       (delete line), <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end
-       of  line),  <STRONG>ked</STRONG>  (clear  to  end of screen), <STRONG>kich1</STRONG> (insert
-       character or enter insert mode), <STRONG>kil1</STRONG> (insert  line),  <STRONG>knp</STRONG>
-       (next  page),  <STRONG>kpp</STRONG>  (previous  page),  <STRONG>kind</STRONG>  (scroll  for-
-       ward/down), <STRONG>kri</STRONG> (scroll backward/up), <STRONG>khts</STRONG> (set a tab stop
-       in  this column).  In addition, if the keypad has a 3 by 3
-       array of keys including the four  arrow  keys,  the  other
-       five  keys  can  be  given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.
-       These keys are useful when the effects of a 3 by 3  direc-
-       tional pad are needed.
-
-       Strings  to  program  function keys can be given as <STRONG>pfkey</STRONG>,
-       <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>.  A string to program screen labels  should
-       be  specified  as  <STRONG>pln</STRONG>.   Each  of these strings takes two
-       parameters: the function key number to program (from 0  to
-       10)  and the string to program it with.  Function key num-
-       bers out of this range may program  undefined  keys  in  a
-       terminal  dependent  manner.   The  difference between the
-       capabilities is that <STRONG>pfkey</STRONG> causes pressing the  given  key
-       to  be the same as the user typing the given string; <STRONG>pfloc</STRONG>
-       causes the string to be executed by the terminal in local;
-       and  <STRONG>pfx</STRONG>  causes  the string to be transmitted to the com-
-       puter.
-
-       The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of pro-
-       grammable  screen  labels  and their width and height.  If
-       there are commands to turn the labels  on  and  off,  give
-       them  in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>.  <STRONG>smln</STRONG> is normally output after one
-       or more pln sequences to make sure that the change becomes
-       visible.
-
-
-   <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
-       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
-       preceding tab stop can be given as <STRONG>cbt</STRONG>.  By convention, if
-       the  teletype  modes indicate that tabs are being expanded
-       by the computer rather than being sent  to  the  terminal,
-       programs  should  not  use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are pre-
-       sent, since the user may not have the tab  stops  properly
-       set.   If  the  terminal  has hardware tabs which are ini-
-       tially 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
-       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
-       they are properly set.
-
-       Other  capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
-       tion strings for the terminal, <STRONG>iprog</STRONG>, the path name  of  a
-       program  to be run to initialize the terminal, and <STRONG>if</STRONG>, the
-       name of a file  containing  long  initialization  strings.
-       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
-       will  be  printed  in the following order: run the program
-       <STRONG>iprog</STRONG>; output <STRONG>is1</STRONG>; <STRONG>is2</STRONG>; set the margins  using  <STRONG>mgc</STRONG>,  <STRONG>smgl</STRONG>
-       and  <STRONG>smgr</STRONG>;  set tabs using <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>; print the file <STRONG>if</STRONG>;
-       and finally output <STRONG>is3</STRONG>.
-
-       Most initialization is done with  <STRONG>is2</STRONG>.   Special  terminal
-       modes can be set up without duplicating strings by putting
-       the common sequences in <STRONG>is2</STRONG> and special cases in  <STRONG>is1</STRONG>  and
-       <STRONG>is3</STRONG>.   A pair of sequences that does a harder reset from a
-       totally unknown state can be  analogously  given  as  <STRONG>rs1</STRONG>,
-       <STRONG>rs2</STRONG>,  <STRONG>rf</STRONG>, and <STRONG>rs3</STRONG>, analogous to <STRONG>is2</STRONG> and <STRONG>if</STRONG>.  These strings
-       are output by the <EM>reset</EM> 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 produce  annoy-
-       ing  effects on the screen and are not necessary when log-
-       ging in.  For example, the command to set the  vt100  into
-       80-column  mode  would  normally  be  part  of <STRONG>is2</STRONG>, but it
-       causes an annoying glitch of the screen and  is  not  nor-
-       mally  needed  since the terminal is usually already in 80
-       column mode.
-
-       If there are commands to set and clear tab stops, they can
-       be  given  as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
-       stop in the current column of every row).  If a more  com-
-       plex  sequence  is  needed  to  set  the  tabs than can be
-       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>
-       Many  older  and  slower  terminals  don't  support either
-       XON/XOFF or DTR handshaking, including hard copy terminals
-       and  some  very  archaic CRTs (including, for example, DEC
-       VT100s).  These may require padding characters after  cer-
-       tain cursor motions and screen changes.
-
-       If the terminal uses xon/xoff handshaking for flow control
-       (that is, it automatically emits ^S back to the host  when
-       its input buffers are close to full), set <STRONG>xon</STRONG>.  This capa-
-       bility suppresses the emission of padding.  You  can  also
-       set  it for memory-mapped console devices effectively that
-       don't have a  speed  limit.   Padding  information  should
-       still  be  included so that routines can make better deci-
-       sions about relative costs, but actual pad characters will
-       not be transmitted.
-
-       If  <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
-       at baud rates below the value of <STRONG>pb</STRONG>.  If the entry has  no
-       padding  baud rate, then whether padding is emitted or not
-       is completely controlled by <STRONG>xon</STRONG>.
-
-       If the terminal requires other than a null (zero)  charac-
-       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>
-       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).
-
-       The simplest case  is  a  status  line  which  is  cursor-
-       addressable  but  not part of the main scrolling region on
-       the screen; the Heathkit H19 has a  status  line  of  this
-       kind,  as  would  a 24-line VT100 with a 23-line scrolling
-       region set up on initialization.  This situation is  indi-
-       cated by the <STRONG>hs</STRONG> capability.
-
-       Some terminals with status lines need special sequences to
-       access the status line.   These  may  be  expressed  as  a
-       string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
-       a given zero-origin column on the status line.  The  capa-
-       bility <STRONG>fsl</STRONG> must return to the main-screen cursor positions
-       before the last <STRONG>tsl</STRONG>.  You may need  to  embed  the  string
-       values  of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
-       and <STRONG>fsl</STRONG> to accomplish this.
-
-       The status line is normally assumed to be the  same  width
-       as  the width of the terminal.  If this is untrue, you can
-       specify it with the numeric capability <STRONG>wsl</STRONG>.
-
-       A command to erase or blank the status line may be  speci-
-       fied as <STRONG>dsl</STRONG>.
-
-       The   boolean   capability  <STRONG>eslok</STRONG>  specifies  that  escape
-       sequences, tabs, etc., work ordinarily in the status line.
-
-       The  <STRONG>ncurses</STRONG>  implementation does not yet use any of these
-       capabilities.  They are documented here in case they  ever
-       become important.
-
-
-   <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
-       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
-       characters from the AT&amp;T  4410v1  added.   This  alternate
-       character set may be specified by the <STRONG>acsc</STRONG> capability.
-
-                <STRONG>Glyph</STRONG>             <STRONG>ACS</STRONG>            <STRONG>Ascii</STRONG>      <STRONG>VT100</STRONG>
-                 <STRONG>Name</STRONG>             <STRONG>Name</STRONG>           <STRONG>Default</STRONG>    <STRONG>Name</STRONG>
-       UK pound sign              ACS_STERLING   f          }
-       arrow pointing down        ACS_DARROW     v          .
-       arrow pointing left        ACS_LARROW     &lt;          ,
-       arrow pointing right       ACS_RARROW     &gt;          +
-       arrow pointing up          ACS_UARROW     ^          -
-       board of squares           ACS_BOARD      #          h
-       bullet                     ACS_BULLET     o          ~
-       checker board (stipple)    ACS_CKBOARD    :          a
-       degree symbol              ACS_DEGREE     \          f
-       diamond                    ACS_DIAMOND    +          `
-       greater-than-or-equal-to   ACS_GEQUAL     &gt;          z
-       greek pi                   ACS_PI         *          {
-       horizontal line            ACS_HLINE      -          q
-       lantern symbol             ACS_LANTERN    #          i
-       large plus or crossover    ACS_PLUS       +          n
-       less-than-or-equal-to      ACS_LEQUAL     &lt;          y
-       lower left corner          ACS_LLCORNER   +          m
-       lower right corner         ACS_LRCORNER   +          j
-       not-equal                  ACS_NEQUAL     !          |
-       plus/minus                 ACS_PLMINUS    #          g
-       scan line 1                ACS_S1         ~          o
-       scan line 3                ACS_S3         -          p
-       scan line 7                ACS_S7         -          r
-       scan line 9                ACS_S9         _          s
-       solid square block         ACS_BLOCK      #          0
-       tee pointing down          ACS_TTEE       +          w
-       tee pointing left          ACS_RTEE       +          u
-       tee pointing right         ACS_LTEE       +          t
-       tee pointing up            ACS_BTEE       +          v
-       upper left corner          ACS_ULCORNER   +          l
-       upper right corner         ACS_URCORNER   +          k
-       vertical line              ACS_VLINE      |          x
-
-       The  best  way to define a new device's graphics set is to
-       add a column to a copy of this table  for  your  terminal,
-       giving   the   character   which   (when  emitted  between
-       <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the  correspond-
-       ing  graphic.  Then read off the VT100/your terminal char-
-       acter pairs right to left in sequence;  these  become  the
-       ACSC string.
-
-
-   <STRONG>Color</STRONG> <STRONG>Handling</STRONG>
-       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
-       foreground and background characters independently, mixing
-       them  into  N  * N color-pairs.  On HP-like terminals, the
-       use must set each color pair up separately (foreground and
-       background  are  not  independently  settable).   Up  to M
-       color-pairs may be  set  up  from  2*M  different  colors.
-       ANSI-compatible terminals are Tektronix-like.
-
-       Some basic color capabilities are independent of the color
-       method.  The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify
-       the  maximum numbers of colors and color-pairs that can be
-       displayed simultaneously.  The <STRONG>op</STRONG> (original  pair)  string
-       resets  foreground  and background colors to their default
-       values for the terminal.  The <STRONG>oc</STRONG> string resets all  colors
-       or  color-pairs  to their default values for the terminal.
-       Some terminals  (including  many  PC  terminal  emulators)
-       erase  screen  areas  with  the  current  background color
-       rather than the power-up default background; these  should
-       have the boolean capability <STRONG>bce</STRONG>.
-
-       To  change the current foreground or background color on a
-       Tektronix-type terminal, use <STRONG>setaf</STRONG> (set  ANSI  foreground)
-       and  <STRONG>setab</STRONG>  (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
-       and <STRONG>setb</STRONG> (set background).  These take one parameter,  the
-       color  number.   The  SVr4  documentation  describes  only
-       <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says  that  "If  the  terminal
-       supports ANSI escape sequences to set background and fore-
-       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
-       defined."
-
-       The  <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>  and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
-       numeric argument each.  Argument values 0-7  are  portably
-       defined  as  follows  (the  middle  column is the symbolic
-       #define available in the header for the <STRONG>curses</STRONG> or  <STRONG>ncurses</STRONG>
-       libraries).  The terminal hardware is free to map these as
-       it likes, but the RGB values indicate normal locations  in
-       color space.
-
-             <STRONG>Color</STRONG>       <STRONG>#define</STRONG>       <STRONG>Value</STRONG>       <STRONG>RGB</STRONG>
-             black     <STRONG>COLOR_BLACK</STRONG>       0     0, 0, 0
-             red       <STRONG>COLOR_RED</STRONG>         1     max,0,0
-             green     <STRONG>COLOR_GREEN</STRONG>       2     0,max,0
-             yellow    <STRONG>COLOR_YELLOW</STRONG>      3     max,max,0
-             blue      <STRONG>COLOR_BLUE</STRONG>        4     0,0,max
-             magenta   <STRONG>COLOR_MAGENTA</STRONG>     5     max,0,max
-             cyan      <STRONG>COLOR_CYAN</STRONG>        6     0,max,max
-             white     <STRONG>COLOR_WHITE</STRONG>       7     max,max,max
-
-       On  an  HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
-       parameter to set which color pair is current.
-
-       On a Tektronix-like terminal, the capability  <STRONG>ccc</STRONG>  may  be
-       present  to  indicate that colors can be modified.  If so,
-       the <STRONG>initc</STRONG> capability will take a color number (0 to <STRONG>colors</STRONG>
-       -  1)and  three  more parameters which describe the color.
-       These three parameters default to being interpreted as RGB
-       (Red,  Green, Blue) values.  If the boolean capability <STRONG>hls</STRONG>
-       is present, they are instead as HLS (Hue, Lightness, Satu-
-       ration) indices.  The ranges are terminal-dependent.
-
-       On  an  HP-like  terminal, <STRONG>initp</STRONG> may give a capability for
-       changing a color-pair value.  It will take  seven  parame-
-       ters;  a  color-pair  number (0 to <STRONG>max_pairs</STRONG> - 1), and two
-       triples describing first background  and  then  foreground
-       colors.   These  parameters  must be (Red, Green, Blue) or
-       (Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
-
-       On some color terminals, colors collide  with  highlights.
-       You can register these collisions with the <STRONG>ncv</STRONG> capability.
-       This is a bit-mask of attributes not to be used when  col-
-       ors  are  enabled.  The correspondence with the attributes
-       understood by <STRONG>curses</STRONG> is as follows:
-
-                      <STRONG>Attribute</STRONG>      <STRONG>Bit</STRONG>   <STRONG>Decimal</STRONG>
-                      A_STANDOUT     0     1
-                      A_UNDERLINE    1     2
-                      A_REVERSE      2     4
-                      A_BLINK        3     8
-                      A_DIM          4     16
-                      A_BOLD         5     32
-                      A_INVIS        6     64
-                      A_PROTECT      7     128
-                      A_ALTCHARSET   8     256
-
-       For example,  on  many  IBM  PC  consoles,  the  underline
-       attribute  collides  with the foreground color blue and is
-       not available in color mode.  These  should  have  an  <STRONG>ncv</STRONG>
-       capability of 2.
-
-       SVr4  curses  does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
-       and optimizes the output in favor of colors.
-
-
-   <STRONG>Miscellaneous</STRONG>
-       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-
-       nal does not have a pad character, specify npc.  Note that
-       ncurses implements  the  termcap-compatible  <STRONG>PC</STRONG>  variable;
-       though  the  application  may  set this value to something
-       other than a null, ncurses will test  <STRONG>npc</STRONG>  first  and  use
-       napms if the terminal has no pad character.
-
-       If  the terminal can move up or down half a line, this can
-       be indicated with <STRONG>hu</STRONG>  (half-line  up)  and  <STRONG>hd</STRONG>  (half-line
-       down).  This is primarily useful for superscripts and sub-
-       scripts on hard-copy terminals.  If a  hard-copy  terminal
-       can  eject  to  the next page (form feed), give this as <STRONG>ff</STRONG>
-       (usually control L).
-
-       If there is a command to repeat a given character a  given
-       number  of times (to save time transmitting a large number
-       of identical characters) this can be  indicated  with  the
-       parameterized  string  <STRONG>rep</STRONG>.   The  first  parameter is the
-       character to be repeated and the second is the  number  of
-       times  to repeat it.  Thus, tparm(repeat_char, 'x', 10) is
-       the same as `xxxxxxxxxx'.
-
-       If the terminal has a settable command character, such  as
-       the  TEKTRONIX  4025, this can be indicated with <STRONG>cmdch</STRONG>.  A
-       prototype command character is chosen which is used in all
-       capabilities.   This character is given in the <STRONG>cmdch</STRONG> capa-
-       bility to identify it.  The following convention  is  sup-
-       ported  on  some  UNIX  systems:  The environment is to be
-       searched for a <STRONG>CC</STRONG> variable, and if found, all  occurrences
-       of the prototype character are replaced with the character
-       in the environment variable.
-
-       Terminal descriptions that do  not  represent  a  specific
-       kind of known terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and
-       <EM>network</EM>, should include the  <STRONG>gn</STRONG>  (generic)  capability  so
-       that  programs  can  complain that they do not know how to
-       talk to the terminal.  (This capability does not apply  to
-       <EM>virtual</EM>   terminal   descriptions  for  which  the  escape
-       sequences are known.)
-
-       If the terminal has a ``meta key'' which acts as  a  shift
-       key,  setting  the  8th  bit of any character transmitted,
-       this fact can be indicated with <STRONG>km</STRONG>.   Otherwise,  software
-       will assume that the 8th bit is parity and it will usually
-       be cleared.  If strings exist to turn this  ``meta  mode''
-       on and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
-
-       If  the terminal has more lines of memory than will fit on
-       the screen at once, the number of lines of memory  can  be
-       indicated  with  <STRONG>lm</STRONG>.   A  value of <STRONG>lm</STRONG>#0 indicates that the
-       number of lines is not fixed, but that there is still more
-       memory than fits on the screen.
-
-       If the terminal is one of those supported by the UNIX vir-
-       tual terminal protocol, the terminal number can  be  given
-       as <STRONG>vt</STRONG>.
-
-       Media copy strings which control an auxiliary printer con-
-       nected to the terminal can be given as <STRONG>mc0</STRONG>: print the con-
-       tents  of  the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>:
-       turn on the printer.  When the printer  is  on,  all  text
-       sent  to  the terminal will be sent to the printer.  It is
-       undefined whether the text is also displayed on the termi-
-       nal screen when the printer is on.  A variation <STRONG>mc5p</STRONG> takes
-       one parameter, and leaves the printer on for as many char-
-       acters  as  the  value  of  the  parameter, then turns the
-       printer off.  The parameter should not  exceed  255.   All
-       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>
-       Hazeltine terminals, which do not allow `~' characters  to
-       be displayed should indicate <STRONG>hz</STRONG>.
-
-       Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>
-       wrap, such as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
-
-       If  <STRONG>el</STRONG>  is  required  to  get  rid of standout (instead of
-       merely writing normal text on top of it),  <STRONG>xhp</STRONG>  should  be
-       given.
-
-       Teleray  terminals,  where  tabs turn all characters moved
-       over to blanks, should  indicate  <STRONG>xt</STRONG>  (destructive  tabs).
-       Note:    the    variable    indicating    this    is   now
-       `dest_tabs_magic_smso'; in older  versions,  it  was  tel-
-       eray_glitch.  This glitch is also taken to mean that it is
-       not possible to position the cursor on top  of  a  ``magic
-       cookie'', that to erase standout mode it is instead neces-
-       sary to use delete and insert line.  The ncurses implemen-
-       tation ignores this glitch.
-
-       The  Beehive Superbee, which is unable to correctly trans-
-       mit the escape or control C characters, has <STRONG>xsb</STRONG>,  indicat-
-       ing  that the f1 key is used for escape and f2 for control
-       C.  (Only certain Superbees have this  problem,  depending
-       on  the  ROM.)  Note that in older terminfo versions, this
-       capability  was  called  `beehive_glitch';   it   is   now
-       `no_esc_ctl_c'.
-
-       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>
-       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-
-       ant,  the string capability <STRONG>use</STRONG> can be given with the name
-       of the base terminal.  The capabilities given  before  <STRONG>use</STRONG>
-       override  those  in  the base type named by <STRONG>use</STRONG>.  If there
-       are multiple <STRONG>use</STRONG> capabilities, they are merged in  reverse
-       order.   That is, the rightmost <STRONG>use</STRONG> reference is processed
-       first, then the one to its left, and so forth.   Capabili-
-       ties  given explicitly in the entry override those brought
-       in by <STRONG>use</STRONG> references.
-
-       A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of
-       the  use  reference that imports it, where <EM>xx</EM> is the capa-
-       bility.  For example, the entry
-                   2621-nl, smkx@, rmkx@, use=2621,
-
-       defines a 2621-nl that does not  have  the  <STRONG>smkx</STRONG>  or  <STRONG>rmkx</STRONG>
-       capabilities,  and hence does not turn on the function key
-       labels when in visual mode.  This is useful for  different
-       modes for a terminal, or for different user preferences.
-
-
-   <STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG>
-       Long  terminfo  entries  are  unlikely to be a problem; to
-       date, no entry has even approached terminfo's  4K  string-
-       table  maximum.   Unfortunately,  the termcap translations
-       are much more  strictly  limited  (to  1K),  thus  termcap
-       translations  of long terminfo entries can cause problems.
-
-       The man pages for 4.3BSD and older versions  of  tgetent()
-       instruct  the user to allocate a 1K buffer for the termcap
-       entry.  The entry  gets  null-terminated  by  the  termcap
-       library, so that makes the maximum safe length for a term-
-       cap entry 1k-1 (1023) bytes.  Depending on what the appli-
-       cation  and the termcap library being used does, and where
-       in the termcap file the terminal type  that  tgetent()  is
-       searching for is, several bad things can happen.
-
-       Some  termcap libraries print a warning message or exit if
-       they find an entry that's longer than 1023  bytes;  others
-       don't;  others  truncate  the entries to 1023 bytes.  Some
-       application programs allocate more than the recommended 1K
-       for the termcap entry; others don't.
-
-       Each termcap entry has two important sizes associated with
-       it: before "tc" expansion, and after "tc" expansion.  "tc"
-       is  the  capability that tacks on another termcap entry to
-       the end of the current one, to add  on  its  capabilities.
-       If  a  termcap entry doesn't use the "tc" capability, then
-       of course the two lengths are the same.
-
-       The "before tc expansion" length  is  the  most  important
-       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 tgetent() strips out while reading it.  Some termcap
-       libraries  strip  off  the final newline, too (GNU termcap
-       does not).  Now suppose:
-
-       *    a termcap entry before expansion is  more  than  1023
-            bytes long,
-
-       *    and the application has only allocated a 1k buffer,
-
-       *    and  the  termcap library (like the one in BSD/OS 1.1
-            and GNU) reads the whole entry into  the  buffer,  no
-            matter  what  its length, to see if it's the entry it
-            wants,
-
-       *    and tgetent() is searching for a terminal  type  that
-            either is the long entry, appears in the termcap file
-            after the long entry, or doesn't appear in  the  file
-            at  all  (so  that  tgetent() has to search the whole
-            termcap file).
-
-       Then tgetent() 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.
-
-       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 tgetent() only does "tc" expan-
-       sion once it's 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
-       and  applications,  a  core  dump,  warnings, or incorrect
-       operation.  If it's too long even before  "tc"  expansion,
-       it will have this effect even for users of some other ter-
-       minal types and users whose TERM variable does not have  a
-       termcap entry.
-
-       When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> imple-
-       mentation of <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> issues warning messages when the  pre-
-       tc  length  of  a termcap translation is too long.  The -c
-       (check) option also checks resolved (after  tc  expansion)
-       lengths.
-
-   <STRONG>Binary</STRONG> <STRONG>Compatibility</STRONG>
-       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
-       HP-UX and AIX) 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.
+</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 keypad only works in local (this applies,
+       for example, to the unshifted HP 2621 keys).  If the keypad can be  set
+       to transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and <STRONG>rmkx</STRONG>.  Other-
+       wise the keypad is assumed to always transmit.
 
+       The codes sent by the left arrow, right arrow, up  arrow,  down  arrow,
+       and  home  keys  can  be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG> <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG>
+       respectively.  If there are function keys such as f0, f1, ..., f10, the
+       codes  they  send  can  be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>.  If these keys
+       have labels other than the default f0 through f10, the  labels  can  be
+       given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>.
 
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
-       Some  SVr4  <STRONG>curses</STRONG>  implementations,  and  all previous to
-       SVr4, don't interpret the %A and %O operators in parameter
-       strings.
-
-       SVr4/XPG4  do  not  specify whether <STRONG>msgr</STRONG> licenses movement
-       while in an alternate-character-set mode (such modes  may,
-       among other things, map CR and NL to characters that don't
-       trigger  local  motions).   The   <STRONG>ncurses</STRONG>   implementation
-       ignores  <STRONG>msgr</STRONG>  in <STRONG>ALTCHARSET</STRONG> mode.  This raises the possi-
-       bility that an XPG4  implementation  making  the  opposite
-       interpretation  may need terminfo entries made for <STRONG>ncurses</STRONG>
-       to have <STRONG>msgr</STRONG> turned off.
-
-       The <STRONG>ncurses</STRONG> library handles insert-character  and  insert-
-       character modes in a slightly non-standard way to get bet-
-       ter update efficiency.  See  the  <STRONG>Insert/Delete</STRONG>  <STRONG>Character</STRONG>
-       subsection above.
-
-       The   parameter   substitutions  for  <STRONG>set_clock</STRONG>  and  <STRONG>dis-</STRONG>
-       <STRONG>play_clock</STRONG> are not documented in SVr4 or  the  XSI  Curses
-       standard.  They are deduced from the documentation for the
-       AT&amp;T 505 terminal.
-
-       Be careful assigning the <STRONG>kmous</STRONG>  capability.   The  <STRONG>ncurses</STRONG>
-       wants  to  interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
-       and emulators like xterm that  can  return  mouse-tracking
-       information in the keyboard-input stream.
-
-       Different  commercial ports of terminfo and curses support
-       different subsets of the XSI Curses standard and (in  some
-       cases) different extension sets.  Here is a summary, accu-
-       rate as of October 1995:
-
-       <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabili-
-       ties.
-
-       <STRONG>SGI</STRONG>  --  Supports  the  SVr4  set,  adds  one undocumented
-       extended string capability (<STRONG>set_pglen</STRONG>).
-
-       <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of  ter-
-       minfo  capabilities.   The booleans end with <STRONG>xon_xoff</STRONG>; the
-       numerics with  <STRONG>width_status_line</STRONG>;  and  the  strings  with
-       <STRONG>prtr_non</STRONG>.
-
-       <STRONG>HP/UX</STRONG>  --  Supports  the  SVr1  subset,  plus the SVr[234]
-       numerics <STRONG>num_labels</STRONG>, <STRONG>label_height</STRONG>, <STRONG>label_width</STRONG>, plus func-
-       tion  keys  11  through  63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
-       <STRONG>label_off</STRONG>, plus some incompatible extensions in the string
-       table.
-
-       <STRONG>AIX</STRONG>  --  Supports  the  SVr1 subset, plus function keys 11
-       through 63, plus a number  of  incompatible  string  table
-       extensions.
-
-       <STRONG>OSF</STRONG>  -- Supports both the SVr4 set and the AIX extensions.
+       The codes transmitted by certain other special keys can be given:
 
+       <STRONG>o</STRONG>   <STRONG>kll</STRONG> (home down),
 
-</PRE>
-<H2>FILES</H2><PRE>
-       /usr/share/terminfo/?/*  files     containing     terminal
-                                descriptions
+       <STRONG>o</STRONG>   <STRONG>kbs</STRONG> (backspace),
 
+       <STRONG>o</STRONG>   <STRONG>ktbc</STRONG> (clear all tabs),
 
+       <STRONG>o</STRONG>   <STRONG>kctab</STRONG> (clear the tab stop in this column),
 
-</PRE>
-<H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+       <STRONG>o</STRONG>   <STRONG>kclr</STRONG> (clear screen or erase key),
 
+       <STRONG>o</STRONG>   <STRONG>kdch1</STRONG> (delete character),
 
-</PRE>
-<H2>AUTHORS</H2><PRE>
-       Zeyd  M.  Ben-Halim,  Eric  S.  Raymond, Thomas E. Dickey.
-       Based on pcurses by Pavel Curtis.
+       <STRONG>o</STRONG>   <STRONG>kdl1</STRONG> (delete line),
+
+       <STRONG>o</STRONG>   <STRONG>krmir</STRONG> (exit insert mode),
+
+       <STRONG>o</STRONG>   <STRONG>kel</STRONG> (clear to end of line),
+
+       <STRONG>o</STRONG>   <STRONG>ked</STRONG> (clear to end of screen),
+
+       <STRONG>o</STRONG>   <STRONG>kich1</STRONG> (insert character or enter insert mode),
+
+       <STRONG>o</STRONG>   <STRONG>kil1</STRONG> (insert line),
+
+       <STRONG>o</STRONG>   <STRONG>knp</STRONG> (next page),
+
+       <STRONG>o</STRONG>   <STRONG>kpp</STRONG> (previous page),
 
+       <STRONG>o</STRONG>   <STRONG>kind</STRONG> (scroll forward/down),
 
+       <STRONG>o</STRONG>   <STRONG>kri</STRONG> (scroll backward/up),
 
+       <STRONG>o</STRONG>   <STRONG>khts</STRONG> (set a tab stop in this column).
 
+       In  addition,  if  the  keypad has a 3 by 3 array of keys including the
+       four arrow keys, the other five keys can be given  as  <STRONG>ka1</STRONG>,  <STRONG>ka3</STRONG>,  <STRONG>kb2</STRONG>,
+       <STRONG>kc1</STRONG>,  and  <STRONG>kc3</STRONG>.   These  keys  are  useful when the effects of a 3 by 3
+       directional pad are needed.
 
+       Strings to program function keys can be given as <STRONG>pfkey</STRONG>, <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>.
+       A  string to program screen labels should be specified as <STRONG>pln</STRONG>.  Each of
+       these strings takes two parameters: the function key number to  program
+       (from 0 to 10) and the string to program it with.  Function key numbers
+       out of this range may program undefined keys in  a  terminal  dependent
+       manner.   The  difference between the capabilities is that <STRONG>pfkey</STRONG> causes
+       pressing the given key to be the same as  the  user  typing  the  given
+       string;  <STRONG>pfloc</STRONG>  causes  the  string  to  be executed by the terminal in
+       local; and <STRONG>pfx</STRONG> causes the string to be transmitted to the computer.
 
+       The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG>  define  the  number  of  programmable
+       screen  labels  and  their  width and height.  If there are commands to
+       turn the labels on and off, give them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>.  <STRONG>smln</STRONG>  is  nor-
+       mally  output  after  one  or  more pln sequences to make sure that the
+       change becomes visible.
 
 
+</PRE><H3><a name="h3-Tabs-and-Initialization">Tabs and Initialization</a></H3><PRE>
+       A few capabilities are used only for tabs:
 
+       <STRONG>o</STRONG>   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).
 
+       <STRONG>o</STRONG>   A "back-tab" command which moves leftward to the preceding tab stop
+           can be given as <STRONG>cbt</STRONG>.
 
+           By convention, if the teletype modes indicate that tabs  are  being
+           expanded  by  the  computer rather than being sent to the terminal,
+           programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are  present,  since
+           the user may not have the tab stops properly set.
 
+       <STRONG>o</STRONG>   If  the  terminal has hardware tabs which are 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.
 
+           The <STRONG>it</STRONG> capability is normally used by 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
+           they are properly set.
 
+       Other capabilities include
 
+       <STRONG>o</STRONG>   <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initialization strings for the terminal,
 
+       <STRONG>o</STRONG>   <STRONG>iprog</STRONG>,  the path name of a program to be run to initialize the ter-
+           minal,
 
+       <STRONG>o</STRONG>   and <STRONG>if</STRONG>, the name of a file containing long initialization strings.
 
+       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 <STRONG>tput</STRONG>  program,  each  time  the
+       user logs in.  They will be printed in the following order:
 
+              run the program
+                     <STRONG>iprog</STRONG>
 
+              output
+                     <STRONG>is1</STRONG> and
+                     <STRONG>is2</STRONG>
 
+              set the margins using
+                     <STRONG>mgc</STRONG> or
+                     <STRONG>smglp</STRONG> and <STRONG>smgrp</STRONG> or
+                     <STRONG>smgl</STRONG> and <STRONG>smgr</STRONG>
 
+              set tabs using
+                     <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>
 
+              print the file
+                     <STRONG>if</STRONG>
 
+              and finally output
+                     <STRONG>is3</STRONG>.
 
+       Most  initialization  is  done with <STRONG>is2</STRONG>.  Special terminal modes can be
+       set up without duplicating strings by putting the common  sequences  in
+       <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and <STRONG>is3</STRONG>.
 
+       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>, analogous to <STRONG>is1</STRONG> <STRONG>,</STRONG> <STRONG>is2</STRONG> <STRONG>,</STRONG> <STRONG>if</STRONG>
+       and  <STRONG>is3</STRONG>  respectively.   These  strings  are output by <EM>reset</EM> option of
+       <STRONG>tput</STRONG>, or by the <STRONG>reset</STRONG> program (an alias of <STRONG>tset</STRONG>), 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 produce annoying effects on the screen
+       and are not necessary when logging in.  For example, the command to set
+       the vt100 into 80-column mode would normally be part  of  <STRONG>is2</STRONG>,  but  it
+       causes  an  annoying  glitch  of  the screen and is not normally needed
+       since the terminal is usually already in 80-column mode.
+
+       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
+       <STRONG>reset</STRONG> program falls back upon the corresponding initialization capabil-
+       ity string.
+
+       If there are commands to set and clear tab stops, they can be given  as
+       <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab stop in the current column
+       of every row).  If a more complex sequence is needed to  set  the  tabs
+       than can be described by this, the sequence can be placed in <STRONG>is2</STRONG> or <STRONG>if</STRONG>.
+
+       The  <STRONG>tput</STRONG>  <STRONG>reset</STRONG>  command uses the same capability strings as the <STRONG>reset</STRONG>
+       command, although the two programs (<STRONG>tput</STRONG> and <STRONG>reset</STRONG>)  provide  different
+       command-line options.
+
+       In practice, these terminfo capabilities are not often used in initial-
+       ization of tabs (though they are required for the <STRONG>tabs</STRONG> program):
+
+       <STRONG>o</STRONG>   Almost all hardware terminals (at least those which supported tabs)
+           initialized those to every <EM>eight</EM> columns:
+
+           The  only  exception  was  the  AT&amp;T 2300 series, which set tabs to
+           every <EM>five</EM> columns.
+
+       <STRONG>o</STRONG>   In particular, developers of the hardware terminals which are  com-
+           monly  used  as models for modern terminal emulators provided docu-
+           mentation demonstrating that <EM>eight</EM> columns were the standard.
+
+       <STRONG>o</STRONG>   Because of this, the terminal initialization programs <STRONG>tput</STRONG> and <STRONG>tset</STRONG>
+           use   the  <STRONG>tbc</STRONG>  (<STRONG>clear_all_tabs</STRONG>)  and  <STRONG>hts</STRONG>  (<STRONG>set_tab</STRONG>)  capabilities
+           directly only when the <STRONG>it</STRONG> (<STRONG>init_tabs</STRONG>) capability is set to a  value
+           other than <EM>eight</EM>.
+
+
+</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 VT100s).  These may require padding char-
+       acters after certain cursor motions and screen changes.
+
+       If the terminal uses xon/xoff handshaking for flow control (that is, it
+       automatically  emits  ^S  back  to  the host when its input buffers are
+       close to full), set <STRONG>xon</STRONG>.  This capability suppresses  the  emission  of
+       padding.   You can also set it for memory-mapped console devices effec-
+       tively that do not have a  speed  limit.   Padding  information  should
+       still be included so that routines can make better decisions about rel-
+       ative costs, but actual pad characters will not be transmitted.
+
+       If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed at baud rates
+       below  the  value  of  <STRONG>pb</STRONG>.  If the entry has no padding baud rate, then
+       whether padding is emitted or not is completely controlled by <STRONG>xon</STRONG>.
+
+       If the terminal requires other than a null (zero) character as  a  pad,
+       then  this  can  be  given as <STRONG>pad</STRONG>.  Only the first character of the <STRONG>pad</STRONG>
+       string is used.
+
+
+</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).
+
+       The  simplest case is a status line which is cursor-addressable but not
+       part of the main scrolling region on the screen; the Heathkit H19 has a
+       status  line  of  this  kind,  as  would a 24-line VT100 with a 23-line
+       scrolling region set up on initialization.  This situation is indicated
+       by the <STRONG>hs</STRONG> capability.
+
+       Some  terminals  with status lines need special sequences to access the
+       status line.  These may be expressed as a string with single  parameter
+       <STRONG>tsl</STRONG>  which takes the cursor to a given zero-origin column on the status
+       line.  The capability <STRONG>fsl</STRONG> must return to the main-screen  cursor  posi-
+       tions  before the last <STRONG>tsl</STRONG>.  You may need to embed the string values of
+       <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG> and <STRONG>fsl</STRONG>  to  accomplish
+       this.
+
+       The  status  line is normally assumed to be the same width as the width
+       of the terminal.  If this is  untrue,  you  can  specify  it  with  the
+       numeric capability <STRONG>wsl</STRONG>.
+
+       A command to erase or blank the status line may be specified as <STRONG>dsl</STRONG>.
+
+       The  boolean  capability  <STRONG>eslok</STRONG>  specifies that escape sequences, tabs,
+       etc., work ordinarily in the status line.
+
+       The <STRONG>ncurses</STRONG> implementation does not yet use any of these  capabilities.
+       They are documented here in case they ever become important.
+
+
+</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> have built-in support for most of the drawing char-
+       acters  supported  by  the  VT100,  with  some characters from the AT&amp;T
+       4410v1 added.  This alternate character set may  be  specified  by  the
+       <STRONG>acsc</STRONG> capability.
+
+         <STRONG>Glyph</STRONG>                       <STRONG>ACS</STRONG>            <STRONG>Ascii</STRONG>     <STRONG>acsc</STRONG>     <STRONG>acsc</STRONG>
+         <STRONG>Name</STRONG>                        <STRONG>Name</STRONG>           <STRONG>Default</STRONG>   <STRONG>Char</STRONG>     <STRONG>Value</STRONG>
+         --------------------------------------------------------------------
+         arrow pointing right        ACS_RARROW     &gt;         +        0x2b
+         arrow pointing left         ACS_LARROW     &lt;         ,        0x2c
+         arrow pointing up           ACS_UARROW     ^         -        0x2d
+         arrow pointing down         ACS_DARROW     v         .        0x2e
+         solid square block          ACS_BLOCK      #         0        0x30
+         diamond                     ACS_DIAMOND    +         `        0x60
+         checker board (stipple)     ACS_CKBOARD    :         a        0x61
+         degree symbol               ACS_DEGREE     \         f        0x66
+         plus/minus                  ACS_PLMINUS    #         g        0x67
+         board of squares            ACS_BOARD      #         h        0x68
+         lantern symbol              ACS_LANTERN    #         i        0x69
+         lower right corner          ACS_LRCORNER   +         j        0x6a
+         upper right corner          ACS_URCORNER   +         k        0x6b
+         upper left corner           ACS_ULCORNER   +         l        0x6c
+         lower left corner           ACS_LLCORNER   +         m        0x6d
+         large plus or crossover     ACS_PLUS       +         n        0x6e
+         scan line 1                 ACS_S1         ~         o        0x6f
+         scan line 3                 ACS_S3         -         p        0x70
+         horizontal line             ACS_HLINE      -         q        0x71
+         scan line 7                 ACS_S7         -         r        0x72
+         scan line 9                 ACS_S9         _         s        0x73
+         tee pointing right          ACS_LTEE       +         t        0x74
+         tee pointing left           ACS_RTEE       +         u        0x75
+         tee pointing up             ACS_BTEE       +         v        0x76
+         tee pointing down           ACS_TTEE       +         w        0x77
+         vertical line               ACS_VLINE      |         x        0x78
+         less-than-or-equal-to       ACS_LEQUAL     &lt;         y        0x79
+         greater-than-or-equal-to    ACS_GEQUAL     &gt;         z        0x7a
+         greek pi                    ACS_PI         *         {        0x7b
+         not-equal                   ACS_NEQUAL     !         |        0x7c
+         UK pound sign               ACS_STERLING   f         }        0x7d
+         bullet                      ACS_BULLET     o         ~        0x7e
+
+       A few notes apply to the table itself:
+
+       <STRONG>o</STRONG>   X/Open  Curses  incorrectly  states that the mapping for <EM>lantern</EM> is
+           uppercase "I" although Unix implementations use the  lowercase  "i"
+           mapping.
+
+       <STRONG>o</STRONG>   The  DEC  VT100  implemented graphics using the alternate character
+           set feature, temporarily switching <EM>modes</EM> and sending characters  in
+           the range 0x60 (96) to 0x7e (126) (the <STRONG>acsc</STRONG> <STRONG>Value</STRONG> column in the ta-
+           ble).
+
+       <STRONG>o</STRONG>   The AT&amp;T terminal added graphics characters outside that range.
+
+           Some of the characters within the range do  not  match  the  VT100;
+           presumably  they  were  used in the AT&amp;T terminal: <EM>board</EM> <EM>of</EM> <EM>squares</EM>
+           replaces the VT100 <EM>newline</EM> symbol, while  <EM>lantern</EM>  <EM>symbol</EM>  replaces
+           the VT100 <EM>vertical</EM> <EM>tab</EM> symbol.  The other VT100 symbols for control
+           characters (<EM>horizontal</EM> <EM>tab</EM>, <EM>carriage</EM> <EM>return</EM> and <EM>line-feed</EM>) are  not
+           (re)used in curses.
+
+       The  best  way to define a new device's graphics set is to add a column
+       to a copy of this table for your terminal, giving the  character  which
+       (when  emitted  between  <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG>  switches) will be rendered as the
+       corresponding graphic.  Then read off the VT100/your terminal character
+       pairs right to left in sequence; these become the ACSC string.
+
+
+</PRE><H3><a name="h3-Color-Handling">Color Handling</a></H3><PRE>
+       The  curses  library  functions <STRONG>init_pair</STRONG> and <STRONG>init_color</STRONG> manipulate the
+       <EM>color</EM>  <EM>pairs</EM>  and  <EM>color</EM>  <EM>values</EM>  discussed  in   this   section   (see
+       <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> for details on these and related functions).
+
+       Most color terminals are either "Tektronix-like" or "HP-like":
+
+       <STRONG>o</STRONG>   Tektronix-like terminals have a predefined set of <EM>N</EM> colors (where <EM>N</EM>
+           is usually 8), and can set character-cell foreground and background
+           characters independently, mixing them into <EM>N</EM> * <EM>N</EM> color-pairs.
+
+       <STRONG>o</STRONG>   On  HP-like  terminals,  the user must set each color pair up sepa-
+           rately (foreground and background are not independently  settable).
+           Up to <EM>M</EM> color-pairs may be set up from 2*<EM>M</EM> different colors.  ANSI-
+           compatible terminals are Tektronix-like.
+
+       Some basic color capabilities are independent of the color method.  The
+       numeric  capabilities  <STRONG>colors</STRONG>  and <STRONG>pairs</STRONG> specify the maximum numbers of
+       colors and color-pairs that can be displayed  simultaneously.   The  <STRONG>op</STRONG>
+       (original pair) string resets foreground and background colors to their
+       default values for the terminal.  The <STRONG>oc</STRONG> string resets  all  colors  or
+       color-pairs  to  their default values for the terminal.  Some terminals
+       (including many PC terminal emulators) erase screen areas with the cur-
+       rent  background  color  rather  than  the power-up default background;
+       these should have the boolean capability <STRONG>bce</STRONG>.
+
+       While the curses library works with <EM>color</EM> <EM>pairs</EM> (reflecting the inabil-
+       ity  of  some  devices to set foreground and background colors indepen-
+       dently), there are separate capabilities for setting these features:
+
+       <STRONG>o</STRONG>   To change the current foreground or  background  color  on  a  Tek-
+           tronix-type  terminal,  use  <STRONG>setaf</STRONG>  (set ANSI foreground) and <STRONG>setab</STRONG>
+           (set ANSI background) or <STRONG>setf</STRONG> (set foreground) and <STRONG>setb</STRONG> (set  back-
+           ground).   These  take  one  parameter, the color number.  The SVr4
+           documentation describes only <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says  that
+           "If  the  terminal supports ANSI escape sequences to set background
+           and foreground, they should be coded as <STRONG>setaf</STRONG>  and  <STRONG>setab</STRONG>,  respec-
+           tively.
+
+       <STRONG>o</STRONG>   If  the  terminal supports other escape sequences to set background
+           and foreground, they should be coded  as  <STRONG>setf</STRONG>  and  <STRONG>setb</STRONG>,  respec-
+           tively.   The  <STRONG>vidputs</STRONG>  and the <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> functions use the <STRONG>setaf</STRONG>
+           and <STRONG>setab</STRONG> capabilities if they are defined.
+
+       The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single numeric  argu-
+       ment  each.  Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> are portably defined as
+       follows (the middle column is the symbolic  #define  available  in  the
+       header  for the <STRONG>curses</STRONG> or <STRONG>ncurses</STRONG> libraries).  The terminal hardware is
+       free to map these as it likes, but the RGB values indicate normal loca-
+       tions in color space.
+
+                    <STRONG>Color</STRONG>       <STRONG>#define</STRONG>       <STRONG>Value</STRONG>       <STRONG>RGB</STRONG>
+                    black     <STRONG>COLOR_BLACK</STRONG>       0     0, 0, 0
+                    red       <STRONG>COLOR_RED</STRONG>         1     max,0,0
+                    green     <STRONG>COLOR_GREEN</STRONG>       2     0,max,0
+                    yellow    <STRONG>COLOR_YELLOW</STRONG>      3     max,max,0
+                    blue      <STRONG>COLOR_BLUE</STRONG>        4     0,0,max
+                    magenta   <STRONG>COLOR_MAGENTA</STRONG>     5     max,0,max
+                    cyan      <STRONG>COLOR_CYAN</STRONG>        6     0,max,max
+                    white     <STRONG>COLOR_WHITE</STRONG>       7     max,max,max
+
+       The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond to a different
+       mapping, i.e.,
+
+                    <STRONG>Color</STRONG>       <STRONG>#define</STRONG>       <STRONG>Value</STRONG>       <STRONG>RGB</STRONG>
+                    black     <STRONG>COLOR_BLACK</STRONG>       0     0, 0, 0
+                    blue      <STRONG>COLOR_BLUE</STRONG>        1     0,0,max
+                    green     <STRONG>COLOR_GREEN</STRONG>       2     0,max,0
+                    cyan      <STRONG>COLOR_CYAN</STRONG>        3     0,max,max
+                    red       <STRONG>COLOR_RED</STRONG>         4     max,0,0
+                    magenta   <STRONG>COLOR_MAGENTA</STRONG>     5     max,0,max
+                    yellow    <STRONG>COLOR_YELLOW</STRONG>      6     max,max,0
+                    white     <STRONG>COLOR_WHITE</STRONG>       7     max,max,max
+
+       It is important to not confuse the two sets of color capabilities; oth-
+       erwise red/blue will be interchanged on the display.
+
+       On  an  HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number parameter to
+       set which color pair is current.
+
+       Some terminals allow the <EM>color</EM> <EM>values</EM> to be modified:
+
+       <STRONG>o</STRONG>   On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be present  to
+           indicate  that colors can be modified.  If so, the <STRONG>initc</STRONG> capability
+           will take a color number (0 to <STRONG>colors</STRONG> - 1)and three more parameters
+           which  describe the color.  These three parameters default to being
+           interpreted as RGB (Red, Green, Blue) values.  If the boolean capa-
+           bility  <STRONG>hls</STRONG>  is  present,  they are instead as HLS (Hue, Lightness,
+           Saturation) indices.  The ranges are terminal-dependent.
+
+       <STRONG>o</STRONG>   On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for changing  a
+           color-pair value.  It will take seven parameters; a color-pair num-
+           ber (0 to <STRONG>max_pairs</STRONG> - 1), and two triples  describing  first  back-
+           ground  and then foreground colors.  These parameters must be (Red,
+           Green, Blue) or (Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
+
+       On some color terminals, colors collide with highlights.  You can  reg-
+       ister  these collisions with the <STRONG>ncv</STRONG> capability.  This is a bit-mask of
+       attributes not to be used when colors are enabled.  The  correspondence
+       with the attributes understood by <STRONG>curses</STRONG> is as follows:
+
+                  <STRONG>Attribute</STRONG>              <STRONG>Bit</STRONG>   <STRONG>Decimal</STRONG>      <STRONG>Set</STRONG> <STRONG>by</STRONG>
+                  A_STANDOUT             0     1            sgr
+                  A_UNDERLINE            1     2            sgr
+                  A_REVERSE              2     4            sgr
+                  A_BLINK                3     8            sgr
+                  A_DIM                  4     16           sgr
+                  A_BOLD                 5     32           sgr
+                  A_INVIS                6     64           sgr
+                  A_PROTECT              7     128          sgr
+
+                  A_ALTCHARSET           8     256          sgr
+                  A_HORIZONTAL           9     512          sgr1
+                  A_LEFT                 10    1024         sgr1
+                  A_LOW                  11    2048         sgr1
+                  A_RIGHT                12    4096         sgr1
+                  A_TOP                  13    8192         sgr1
+                  A_VERTICAL             14    16384        sgr1
+                  A_ITALIC               15    32768        sitm
+
+       For  example, on many IBM PC consoles, the underline attribute collides
+       with the foreground color blue and is  not  available  in  color  mode.
+       These should have an <STRONG>ncv</STRONG> capability of 2.
+
+       SVr4  curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it and optimizes
+       the output in favor of colors.
+
+
+</PRE><H3><a name="h3-Miscellaneous">Miscellaneous</a></H3><PRE>
+       If the terminal requires other than a null (zero) character as  a  pad,
+       then  this  can  be  given as pad.  Only the first character of the pad
+       string is used.  If the terminal does not have a pad character, specify
+       npc.   Note that ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
+       though the application may set this value to  something  other  than  a
+       null,  ncurses will test <STRONG>npc</STRONG> first and use napms if the terminal has no
+       pad character.
+
+       If the terminal can move up or down half a line, this can be  indicated
+       with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line down).  This is primarily use-
+       ful for superscripts and subscripts on hard-copy terminals.  If a hard-
+       copy  terminal  can eject to the next page (form feed), give this as <STRONG>ff</STRONG>
+       (usually control/L).
+
+       If there is a command to repeat a given character  a  given  number  of
+       times  (to  save  time transmitting a large number of identical charac-
+       ters) this can be indicated with the  parameterized  string  <STRONG>rep</STRONG>.   The
+       first  parameter  is the character to be repeated and the second is the
+       number of times to repeat it.  Thus, tparm(repeat_char, 'x', 10) is the
+       same as "xxxxxxxxxx".
+
+       If the terminal has a settable command character, such as the TEKTRONIX
+       4025, this can be indicated with <STRONG>cmdch</STRONG>.  A prototype command  character
+       is  chosen  which is used in all capabilities.  This character is given
+       in the <STRONG>cmdch</STRONG> capability to identify it.  The  following  convention  is
+       supported on some UNIX systems: The environment is to be searched for a
+       <STRONG>CC</STRONG> variable, and if found, all occurrences of the  prototype  character
+       are replaced with the character in the environment variable.
+
+       Terminal  descriptions  that  do not represent a specific kind of known
+       terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and  <EM>network</EM>,  should  include
+       the  <STRONG>gn</STRONG> (generic) capability so that programs can complain that they do
+       not know how to talk to the terminal.  (This capability does not  apply
+       to  <EM>virtual</EM>  terminal  descriptions  for which the escape sequences are
+       known.)
+
+       If the terminal has a "meta key" which acts as a shift key, setting the
+       8th  bit  of any character transmitted, this fact can be indicated with
+       <STRONG>km</STRONG>.  Otherwise, software will assume that the 8th bit is parity and  it
+       will  usually be cleared.  If strings exist to turn this "meta mode" on
+       and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
+
+       If the terminal has more lines of memory than will fit on the screen at
+       once,  the number of lines of memory can be indicated with <STRONG>lm</STRONG>.  A value
+       of <STRONG>lm</STRONG>#0 indicates that the number of lines is not fixed, but that there
+       is still more memory than fits on the screen.
+
+       If  the terminal is one of those supported by the UNIX virtual terminal
+       protocol, the terminal number can be given as <STRONG>vt</STRONG>.
+
+       Media copy strings which control an auxiliary printer connected to  the
+       terminal  can  be  given as <STRONG>mc0</STRONG>: print the contents of the screen, <STRONG>mc4</STRONG>:
+       turn off the printer, and <STRONG>mc5</STRONG>: turn on the printer.  When  the  printer
+       is  on,  all text sent to the terminal will be sent to the printer.  It
+       is undefined whether the text is also displayed on the terminal  screen
+       when  the  printer  is  on.   A variation <STRONG>mc5p</STRONG> takes one parameter, and
+       leaves the printer on for as many characters as the value of the param-
+       eter, then turns the printer off.  The parameter should not exceed 255.
+       All text, including <STRONG>mc4</STRONG>, is transparently passed to the  printer  while
+       an <STRONG>mc5p</STRONG> is in effect.
+
+
+</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>.
+
+       Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>  wrap,  such
+       as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
+
+       If  <STRONG>el</STRONG>  is  required  to get rid of standout (instead of merely writing
+       normal text on top of it), <STRONG>xhp</STRONG> should be given.
+
+       Teleray terminals, where tabs turn all characters moved over to blanks,
+       should  indicate  <STRONG>xt</STRONG> (destructive tabs).  Note: the variable indicating
+       this is now "dest_tabs_magic_smso"; in  older  versions,  it  was  tel-
+       eray_glitch.  This glitch is also taken to mean that it is not possible
+       to position the cursor on top of a "magic cookie", that to erase stand-
+       out  mode  it  is instead necessary to use delete and insert line.  The
+       ncurses implementation ignores this glitch.
+
+       The Beehive Superbee, which is unable to correctly transmit the  escape
+       or  control/C  characters,  has <STRONG>xsb</STRONG>, indicating that the f1 key is used
+       for escape and f2 for control/C.  (Only  certain  Superbees  have  this
+       problem,  depending on the ROM.)  Note that in older terminfo versions,
+       this capability was called "beehive_glitch"; it is now "no_esc_ctl_c".
+
+       Other specific terminal problems may be corrected by adding more  capa-
+       bilities of the form <STRONG>x</STRONG><EM>x</EM>.
+
+
+</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.   Unfor-
+       tunately,  the  termcap translations are much more strictly limited (to
+       1023 bytes), thus termcap translations of  long  terminfo  entries  can
+       cause problems.
+
+       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> is  searching  for  is,
+       several bad things can happen.
+
+       Some  termcap libraries print a warning message or exit if they find an
+       entry that's longer than 1023 bytes; others do not; others truncate the
+       entries  to  1023  bytes.  Some application programs allocate more than
+       the recommended 1K for the termcap entry; others do not.
+
+       Each termcap entry has two important sizes associated with  it:  before
+       "tc"  expansion, and after "tc" expansion.  "tc" is the capability that
+       tacks on another termcap entry to the end of the current one, to add on
+       its capabilities.  If a termcap entry does not use the "tc" capability,
+       then of course the two lengths are the same.
+
+       The "before tc expansion" length is the most important one, because  it
+       affects  more than just users of that particular 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
+       libraries strip off the final newline, too (GNU termcap does not).  Now
+       suppose:
+
+       <STRONG>o</STRONG>   a termcap entry before expansion is more than 1023 bytes long,
+
+       <STRONG>o</STRONG>   and the application has only allocated a 1k buffer,
+
+       <STRONG>o</STRONG>   and  the termcap library (like the one in BSD/OS 1.1 and GNU) reads
+           the whole entry into the buffer, no 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 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 vulnera-
+       ble; modern telnets pass along values like the terminal type  automati-
+       cally.   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.
+
+       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" 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 and applications, a core
+       dump, warnings, or incorrect operation.  If it is too long even  before
+       "tc"  expansion,  it will have this effect even for users of some other
+       terminal types and users whose TERM variable does not  have  a  termcap
+       entry.
 
+       When  in  -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> implementation of
+       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> issues warning messages when the pre-tc  length  of  a  termcap
+       translation  is  too  long.  The -c (check) option also checks resolved
+       (after tc expansion) lengths.
 
 
+</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 HP-UX  and  AIX)  which  diverged
+       from  System  V terminfo after SVr1, and have added extension capabili-
+       ties to the string table that (in the binary format) collide with  Sys-
+       tem V and XSI Curses extensions.
+
+
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+       Searching   for  terminal  descriptions  in  <STRONG>$HOME/.terminfo</STRONG>  and  TER-
+       MINFO_DIRS is not supported by older implementations.
+
+       Some SVr4 <STRONG>curses</STRONG> implementations, and all  previous  to  SVr4,  do  not
+       interpret the %A and %O operators in parameter strings.
+
+       SVr4/XPG4  do  not  specify  whether <STRONG>msgr</STRONG> licenses movement while in an
+       alternate-character-set mode (such modes may, among other  things,  map
+       CR  and  NL  to  characters  that  do  not trigger local motions).  The
+       <STRONG>ncurses</STRONG> implementation ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG>  mode.   This  raises
+       the  possibility that an XPG4 implementation making the opposite inter-
+       pretation may need terminfo entries  made  for  <STRONG>ncurses</STRONG>  to  have  <STRONG>msgr</STRONG>
+       turned off.
 
+       The <STRONG>ncurses</STRONG> library handles insert-character and insert-character modes
+       in a slightly non-standard way to get better  update  efficiency.   See
+       the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG> subsection above.
+
+       The  parameter  substitutions  for  <STRONG>set_clock</STRONG> and <STRONG>display_clock</STRONG> are not
+       documented in SVr4 or the XSI Curses standard.  They are  deduced  from
+       the documentation for the AT&amp;T 505 terminal.
 
+       Be  careful  assigning the <STRONG>kmous</STRONG> capability.  The <STRONG>ncurses</STRONG> library wants
+       to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals and  emulators  like
+       xterm  that can return mouse-tracking information in the keyboard-input
+       stream.
 
+       X/Open Curses does not mention  italics.   Portable  applications  must
+       assume  that  numeric  capabilities  are  signed  16-bit  values.  This
+       includes the <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM> (ncv) capability.   The  32768  mask  value
+       used  for  italics with ncv can be confused with an absent or cancelled
+       ncv.  If italics should work with colors, then the ncv  value  must  be
+       specified, even if it is zero.
 
+       Different  commercial  ports  of  terminfo and curses support different
+       subsets of the XSI Curses standard and (in some cases) different exten-
+       sion sets.  Here is a summary, accurate as of October 1995:
 
+       <STRONG>o</STRONG>   <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabilities.
 
+       <STRONG>o</STRONG>   <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented extended string
+           capability (<STRONG>set_pglen</STRONG>).
 
+       <STRONG>o</STRONG>   <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of terminfo capa-
+           bilities.   The  booleans  end  with  <STRONG>xon_xoff</STRONG>;  the  numerics with
+           <STRONG>width_status_line</STRONG>; and the strings with <STRONG>prtr_non</STRONG>.
 
+       <STRONG>o</STRONG>   <STRONG>HP/UX</STRONG> -- Supports the  SVr1  subset,  plus  the  SVr[234]  numerics
+           <STRONG>num_labels</STRONG>,   <STRONG>label_height</STRONG>,  <STRONG>label_width</STRONG>,  plus  function  keys  11
+           through 63, plus <STRONG>plab_norm</STRONG>,  <STRONG>label_on</STRONG>,  and  <STRONG>label_off</STRONG>,  plus  some
+           incompatible extensions in the string table.
 
+       <STRONG>o</STRONG>   <STRONG>AIX</STRONG>  -- Supports the SVr1 subset, plus function keys 11 through 63,
+           plus a number of incompatible string table extensions.
 
+       <STRONG>o</STRONG>   <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
 
 
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
+       /usr/share/terminfo/?/*  files containing terminal descriptions
 
 
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+       <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <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><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>,  <STRONG>curs_vari-</STRONG>
+       <STRONG><A HREF="curs_variables.3x.html">ables(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>.  <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
 
 
+</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-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></li>
+<li><a href="#h3-Terminfo-Capabilities-Syntax">Terminfo Capabilities Syntax</a></li>
+<li><a href="#h3-Similar-Terminals">Similar Terminals</a></li>
+<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-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>