]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/terminfo.5.html
ncurses 6.4 - patch 20240224
[ncurses.git] / doc / html / man / terminfo.5.html
index 20c89d92dc5fbabd14b12fff201a4f6725ca8a62..374e703486494001993de031f3cd731f85b14a62 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-2004,2006 Free Software Foundation, Inc.              *
+  * Copyright 2018-2023,2024 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.13 2006/05/13 15:35:45 tom Exp @
-  * Head of terminfo man page ends here
-  * @Id: terminfo.tail,v 1.44 2006/04/01 22:47:01 tom Exp @
-  * Beginning of terminfo.tail file
-  * This file is part of ncurses.
-  * See "terminfo.head" for copyright.
-  *.in -2
-  *.in +2
-  *.in -2
-  *.in +2
-  *.TH
+  * @Id: terminfo.head,v 1.63 2024/01/13 23:07:27 tom Exp @
 -->
+<!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=iso-8859-1">
+<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 2024-01-13 ncurses 6.4 File formats</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
+
 </HEAD>
 <BODY>
-<H1>TERMINFO 5   File Formats</H1>
-<HR>
+<H1 class="no-header">terminfo 5 2024-01-13 ncurses 6.4 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>
+<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>
-       terminfo - terminal capability data base
+</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
+       <STRONG>terminfo</STRONG> - terminal capability database
 
 
-</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.
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
-
-       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.
-
-       Lines beginning with a `#' in the first column are treated
-       as  comments.  While comment lines are legal at any point,
-       the output of <EM>captoinfo</EM> and <EM>infotocap</EM>  (aliases  for  <EM>tic</EM>)
-       will move comments so they occur only between entries.
-
-       Newlines  and  leading  tabs  may  be  used for formatting
-       entries for readability.  These are  removed  from  parsed
-       entries.   The  <EM>infocmp</EM> <EM>-f</EM> option relies on this to format
-       if-then-else expressions: the result can be read by <EM>tic</EM>.
-
-       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  database describing terminals, used by screen-oriented
+       programs  such  as  <STRONG>nvi(1)</STRONG>,  <STRONG>lynx(1)</STRONG>,   <STRONG>mutt(1)</STRONG>,   and   other   curses
+       applications,  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 <EM>ncurses</EM> version 6.4 (patch 20240224).
+
+
+</PRE><H3><a name="h3-terminfo-Entry-Syntax"><EM>terminfo</EM> 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
+           formatted 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
+           terminal  (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
+           comments.
+
+           While comment lines are valid 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
+       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 preferences, 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 possible:
+
+       <STRONG>Suffix</STRONG>   <STRONG>Example</STRONG>     <STRONG>Meaning</STRONG>
+       ------------------------------------------------------------------------
+       -<EM>nn</EM>      aaa-60      Number of lines on the screen
+       -<EM>n</EM>p      c100-4p     Number of pages of memory
+       -am      vt100-am    With automargins (usually the default)
+       -m       ansi-m      Mono mode; suppress color
+       -mc      wy30-mc     Magic cookie; spaces when highlighting
+       -na      c100-na     No arrow keys (leave them in local)
+       -nam     vt100-nam   Without automatic margins
+       -nl      hp2621-nl   No status line
+       -ns      hp2626-ns   No status line
+       -rv      c100-rv     Reverse video
+       -s       vt100-s     Enable status line
+       -vb      wy370-vb    Use visible bell instead of beep
+       -w       vt100-w     Wide mode (&gt; 80 columns, usually 132)
+
+       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"><EM>terminfo</EM> 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
+       features.
+
+       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
+       exceptions.  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
+       reference 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,
+
+       <STRONG>o</STRONG>   The <STRONG>variable</STRONG> is the name by which the programmer (at  the  terminfo
+           level) accesses the capability.
+
+       <STRONG>o</STRONG>   The  <STRONG>capname</STRONG>  (<EM>Cap-name</EM>)  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 specification.
+
+           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.
+
+       <STRONG>o</STRONG>   The   <STRONG>termcap</STRONG>   (<EM>Tcap</EM>)  code  is  the  old  capability  name  (some
+           capabilities  are  new,  and  have  names  which  termcap  did  not
+           originate).
+
+       <STRONG>o</STRONG>   Finally,  the <STRONG>description</STRONG> 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 <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> with parameters as given (#<EM>i</EM>).
+
+              If  no  parameters  are  listed  in the description, passing the
+              string through <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> may give unexpected results,  e.g.,  if
+              it contains percent (%%) signs.
 
-       (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.
 
+                                      <STRONG>Code</STRONG>
+       <STRONG>Boolean</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG>    <STRONG>TI</STRONG>        <STRONG>TC</STRONG>  <STRONG>Description</STRONG>
+       ------------------------------------------------------------------------
+
+       <STRONG>auto_left_margin</STRONG>           <STRONG>bw</STRONG>        <STRONG>bw</STRONG>  cub1 wraps from column 0 to
+                                                last column
+       <STRONG>auto_right_margin</STRONG>          <STRONG>am</STRONG>        <STRONG>am</STRONG>  terminal has automatic margins
+       <STRONG>no_esc_ctlc</STRONG>                <STRONG>xsb</STRONG>       <STRONG>xb</STRONG>  beehive (f1=escape, f2=ctrl C)
+       <STRONG>ceol_standout_glitch</STRONG>       <STRONG>xhp</STRONG>       <STRONG>xs</STRONG>  standout not erased by
+                                                overwriting (hp)
+       <STRONG>eat_newline_glitch</STRONG>         <STRONG>xenl</STRONG>      <STRONG>xn</STRONG>  newline ignored after 80 cols
+                                                (concept)
+       <STRONG>erase_overstrike</STRONG>           <STRONG>eo</STRONG>        <STRONG>eo</STRONG>  can erase overstrikes with a
+                                                blank
+       <STRONG>generic_type</STRONG>               <STRONG>gn</STRONG>        <STRONG>gn</STRONG>  generic line type
+       <STRONG>hard_copy</STRONG>                  <STRONG>hc</STRONG>        <STRONG>hc</STRONG>  hardcopy terminal
+       <STRONG>has_meta_key</STRONG>               <STRONG>km</STRONG>        <STRONG>km</STRONG>  Has a meta key (i.e., sets
+                                                8th-bit)
+       <STRONG>has_status_line</STRONG>            <STRONG>hs</STRONG>        <STRONG>hs</STRONG>  has extra status line
+       <STRONG>insert_null_glitch</STRONG>         <STRONG>in</STRONG>        <STRONG>in</STRONG>  insert mode distinguishes
+                                                nulls
+       <STRONG>memory_above</STRONG>               <STRONG>da</STRONG>        <STRONG>da</STRONG>  display may be retained above
+                                                the screen
+       <STRONG>memory_below</STRONG>               <STRONG>db</STRONG>        <STRONG>db</STRONG>  display may be retained below
+                                                the screen
+       <STRONG>move_insert_mode</STRONG>           <STRONG>mir</STRONG>       <STRONG>mi</STRONG>  safe to move while in insert
+                                                mode
+       <STRONG>move_standout_mode</STRONG>         <STRONG>msgr</STRONG>      <STRONG>ms</STRONG>  safe to move while in standout
+                                                mode
+       <STRONG>over_strike</STRONG>                <STRONG>os</STRONG>        <STRONG>os</STRONG>  terminal can overstrike
+       <STRONG>status_line_esc_ok</STRONG>         <STRONG>eslok</STRONG>     <STRONG>es</STRONG>  escape can be used on the
+                                                status line
+       <STRONG>dest_tabs_magic_smso</STRONG>       <STRONG>xt</STRONG>        <STRONG>xt</STRONG>  tabs destructive, magic so
+                                                char (t1061)
+       <STRONG>tilde_glitch</STRONG>               <STRONG>hz</STRONG>        <STRONG>hz</STRONG>  cannot print ~'s (Hazeltine)
+       <STRONG>transparent_underline</STRONG>      <STRONG>ul</STRONG>        <STRONG>ul</STRONG>  underline character
+                                                overstrikes
+       <STRONG>xon_xoff</STRONG>                   <STRONG>xon</STRONG>       <STRONG>xo</STRONG>  terminal uses xon/xoff
+                                                handshaking
+       <STRONG>needs_xon_xoff</STRONG>             <STRONG>nxon</STRONG>      <STRONG>nx</STRONG>  padding will not work,
+                                                xon/xoff required
+       <STRONG>prtr_silent</STRONG>                <STRONG>mc5i</STRONG>      <STRONG>5i</STRONG>  printer will not echo on
+                                                screen
+       <STRONG>hard_cursor</STRONG>                <STRONG>chts</STRONG>      <STRONG>HC</STRONG>  cursor is hard to see
+       <STRONG>non_rev_rmcup</STRONG>              <STRONG>nrrmc</STRONG>     <STRONG>NR</STRONG>  smcup does not reverse rmcup
+       <STRONG>no_pad_char</STRONG>                <STRONG>npc</STRONG>       <STRONG>NP</STRONG>  pad character does not exist
+       <STRONG>non_dest_scroll_region</STRONG>     <STRONG>ndscr</STRONG>     <STRONG>ND</STRONG>  scrolling region is non-
+                                                destructive
+       <STRONG>can_change</STRONG>                 <STRONG>ccc</STRONG>       <STRONG>cc</STRONG>  terminal can re-define
+                                                existing colors
+       <STRONG>back_color_erase</STRONG>           <STRONG>bce</STRONG>       <STRONG>ut</STRONG>  screen erased with background
+                                                color
+       <STRONG>hue_lightness_saturation</STRONG>   <STRONG>hls</STRONG>       <STRONG>hl</STRONG>  terminal uses only HLS color
+                                                notation (Tektronix)
+       <STRONG>col_addr_glitch</STRONG>            <STRONG>xhpa</STRONG>      <STRONG>YA</STRONG>  only positive motion for
+                                                hpa/mhpa caps
+       <STRONG>cr_cancels_micro_mode</STRONG>      <STRONG>crxm</STRONG>      <STRONG>YB</STRONG>  using cr turns off micro mode
+       <STRONG>has_print_wheel</STRONG>            <STRONG>daisy</STRONG>     <STRONG>YC</STRONG>  printer needs operator to
+                                                change character set
+       <STRONG>row_addr_glitch</STRONG>            <STRONG>xvpa</STRONG>      <STRONG>YD</STRONG>  only positive motion for
+                                                vpa/mvpa caps
+       <STRONG>semi_auto_right_margin</STRONG>     <STRONG>sam</STRONG>       <STRONG>YE</STRONG>  printing in last column causes
+                                                cr
+       <STRONG>cpi_changes_res</STRONG>            <STRONG>cpix</STRONG>      <STRONG>YF</STRONG>  changing character pitch
+                                                changes resolution
+       <STRONG>lpi_changes_res</STRONG>            <STRONG>lpix</STRONG>      <STRONG>YG</STRONG>  changing line pitch changes
+                                                resolution
+
+                                      <STRONG>Code</STRONG>
+
+       <STRONG>Numeric</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG>    <STRONG>TI</STRONG>        <STRONG>TC</STRONG>  <STRONG>Description</STRONG>
+       ------------------------------------------------------------------------
+       <STRONG>columns</STRONG>                    <STRONG>cols</STRONG>      <STRONG>co</STRONG>  number of columns in a line
+       <STRONG>init_tabs</STRONG>                  <STRONG>it</STRONG>        <STRONG>it</STRONG>  tabs initially every # spaces
+       <STRONG>lines</STRONG>                      <STRONG>lines</STRONG>     <STRONG>li</STRONG>  number of lines on screen or
+                                                page
+       <STRONG>lines_of_memory</STRONG>            <STRONG>lm</STRONG>        <STRONG>lm</STRONG>  lines of memory if &gt; line. 0
+                                                means varies
+       <STRONG>magic_cookie_glitch</STRONG>        <STRONG>xmc</STRONG>       <STRONG>sg</STRONG>  number of blank characters
+                                                left by smso or rmso
+       <STRONG>padding_baud_rate</STRONG>          <STRONG>pb</STRONG>        <STRONG>pb</STRONG>  lowest baud rate where padding
+                                                needed
+       <STRONG>virtual_terminal</STRONG>           <STRONG>vt</STRONG>        <STRONG>vt</STRONG>  virtual terminal number
+                                                (CB/unix)
+       <STRONG>width_status_line</STRONG>          <STRONG>wsl</STRONG>       <STRONG>ws</STRONG>  number of columns in status
+                                                line
+       <STRONG>num_labels</STRONG>                 <STRONG>nlab</STRONG>      <STRONG>Nl</STRONG>  number of labels on screen
+       <STRONG>label_height</STRONG>               <STRONG>lh</STRONG>        <STRONG>lh</STRONG>  rows in each label
+       <STRONG>label_width</STRONG>                <STRONG>lw</STRONG>        <STRONG>lw</STRONG>  columns in each label
+       <STRONG>max_attributes</STRONG>             <STRONG>ma</STRONG>        <STRONG>ma</STRONG>  maximum combined attributes
+                                                terminal can handle
+       <STRONG>maximum_windows</STRONG>            <STRONG>wnum</STRONG>      <STRONG>MW</STRONG>  maximum number of definable
+                                                windows
+       <STRONG>max_colors</STRONG>                 <STRONG>colors</STRONG>    <STRONG>Co</STRONG>  maximum number of colors on
+                                                screen
+       <STRONG>max_pairs</STRONG>                  <STRONG>pairs</STRONG>     <STRONG>pa</STRONG>  maximum number of color-pairs
+                                                on the screen
+       <STRONG>no_color_video</STRONG>             <STRONG>ncv</STRONG>       <STRONG>NC</STRONG>  video attributes that cannot
+                                                be used with colors
+
+       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>Code</STRONG>
+       <STRONG>Numeric</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG>    <STRONG>TI</STRONG>        <STRONG>TC</STRONG>  <STRONG>Description</STRONG>
+       ------------------------------------------------------------------------
+       <STRONG>buffer_capacity</STRONG>            <STRONG>bufsz</STRONG>     <STRONG>Ya</STRONG>  numbers of bytes buffered
+                                                before printing
+       <STRONG>dot_vert_spacing</STRONG>           <STRONG>spinv</STRONG>     <STRONG>Yb</STRONG>  spacing of pins vertically in
+                                                pins per inch
+       <STRONG>dot_horz_spacing</STRONG>           <STRONG>spinh</STRONG>     <STRONG>Yc</STRONG>  spacing of dots horizontally
+                                                in dots per inch
+       <STRONG>max_micro_address</STRONG>          <STRONG>maddr</STRONG>     <STRONG>Yd</STRONG>  maximum value in
+                                                micro_..._address
+       <STRONG>max_micro_jump</STRONG>             <STRONG>mjump</STRONG>     <STRONG>Ye</STRONG>  maximum value in
+                                                parm_..._micro
+       <STRONG>micro_col_size</STRONG>             <STRONG>mcs</STRONG>       <STRONG>Yf</STRONG>  character step size when in
+                                                micro mode
+       <STRONG>micro_line_size</STRONG>            <STRONG>mls</STRONG>       <STRONG>Yg</STRONG>  line step size when in micro
+                                                mode
+       <STRONG>number_of_pins</STRONG>             <STRONG>npins</STRONG>     <STRONG>Yh</STRONG>  numbers of pins in print-head
+       <STRONG>output_res_char</STRONG>            <STRONG>orc</STRONG>       <STRONG>Yi</STRONG>  horizontal resolution in units
+                                                per line
+       <STRONG>output_res_line</STRONG>            <STRONG>orl</STRONG>       <STRONG>Yj</STRONG>  vertical resolution in units
+                                                per line
+       <STRONG>output_res_horz_inch</STRONG>       <STRONG>orhi</STRONG>      <STRONG>Yk</STRONG>  horizontal resolution in units
+                                                per inch
+       <STRONG>output_res_vert_inch</STRONG>       <STRONG>orvi</STRONG>      <STRONG>Yl</STRONG>  vertical resolution in units
+                                                per inch
+       <STRONG>print_rate</STRONG>                 <STRONG>cps</STRONG>       <STRONG>Ym</STRONG>  print rate in characters per
+                                                second
+       <STRONG>wide_char_size</STRONG>             <STRONG>widcs</STRONG>     <STRONG>Yn</STRONG>  character step size when in
+                                                double wide mode
+       <STRONG>buttons</STRONG>                    <STRONG>btns</STRONG>      <STRONG>BT</STRONG>  number of buttons on mouse
+
+       <STRONG>bit_image_entwining</STRONG>        <STRONG>bitwin</STRONG>    <STRONG>Yo</STRONG>  number of passes for each bit-
+                                                image row
+       <STRONG>bit_image_type</STRONG>             <STRONG>bitype</STRONG>    <STRONG>Yp</STRONG>  type of bit-image device
+
+                                      <STRONG>Code</STRONG>
+       <STRONG>String</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG>     <STRONG>TI</STRONG>        <STRONG>TC</STRONG>  <STRONG>Description</STRONG>
+       ------------------------------------------------------------------------
+       <STRONG>back_tab</STRONG>                   <STRONG>cbt</STRONG>       <STRONG>bt</STRONG>  back tab (P)
+       <STRONG>bell</STRONG>                       <STRONG>bel</STRONG>       <STRONG>bl</STRONG>  audible signal (bell) (P)
+       <STRONG>carriage_return</STRONG>            <STRONG>cr</STRONG>        <STRONG>cr</STRONG>  carriage return (P*) (P*)
+       <STRONG>change_scroll_region</STRONG>       <STRONG>csr</STRONG>       <STRONG>cs</STRONG>  change region to line #1 to
+                                                line #2 (P)
+       <STRONG>clear_all_tabs</STRONG>             <STRONG>tbc</STRONG>       <STRONG>ct</STRONG>  clear all tab stops (P)
+       <STRONG>clear_screen</STRONG>               <STRONG>clear</STRONG>     <STRONG>cl</STRONG>  clear screen and home cursor
+                                                (P*)
+       <STRONG>clr_eol</STRONG>                    <STRONG>el</STRONG>        <STRONG>ce</STRONG>  clear to end of line (P)
+       <STRONG>clr_eos</STRONG>                    <STRONG>ed</STRONG>        <STRONG>cd</STRONG>  clear to end of screen (P*)
+       <STRONG>column_address</STRONG>             <STRONG>hpa</STRONG>       <STRONG>ch</STRONG>  horizontal position #1,
+                                                absolute (P)
+       <STRONG>command_character</STRONG>          <STRONG>cmdch</STRONG>     <STRONG>CC</STRONG>  terminal settable cmd
+                                                character in prototype !?
+       <STRONG>cursor_address</STRONG>             <STRONG>cup</STRONG>       <STRONG>cm</STRONG>  move to row #1 columns #2
+       <STRONG>cursor_down</STRONG>                <STRONG>cud1</STRONG>      <STRONG>do</STRONG>  down one line
+       <STRONG>cursor_home</STRONG>                <STRONG>home</STRONG>      <STRONG>ho</STRONG>  home cursor (if no cup)
+       <STRONG>cursor_invisible</STRONG>           <STRONG>civis</STRONG>     <STRONG>vi</STRONG>  make cursor invisible
+       <STRONG>cursor_left</STRONG>                <STRONG>cub1</STRONG>      <STRONG>le</STRONG>  move left one space
+       <STRONG>cursor_mem_address</STRONG>         <STRONG>mrcup</STRONG>     <STRONG>CM</STRONG>  memory relative cursor
+                                                addressing, move to row #1
+                                                columns #2
+       <STRONG>cursor_normal</STRONG>              <STRONG>cnorm</STRONG>     <STRONG>ve</STRONG>  make cursor appear normal
+                                                (undo civis/cvvis)
+       <STRONG>cursor_right</STRONG>               <STRONG>cuf1</STRONG>      <STRONG>nd</STRONG>  non-destructive space (move
+                                                right one space)
+       <STRONG>cursor_to_ll</STRONG>               <STRONG>ll</STRONG>        <STRONG>ll</STRONG>  last line, first column (if no
+                                                cup)
+       <STRONG>cursor_up</STRONG>                  <STRONG>cuu1</STRONG>      <STRONG>up</STRONG>  up one line
+       <STRONG>cursor_visible</STRONG>             <STRONG>cvvis</STRONG>     <STRONG>vs</STRONG>  make cursor very visible
+       <STRONG>delete_character</STRONG>           <STRONG>dch1</STRONG>      <STRONG>dc</STRONG>  delete character (P*)
+       <STRONG>delete_line</STRONG>                <STRONG>dl1</STRONG>       <STRONG>dl</STRONG>  delete line (P*)
+       <STRONG>dis_status_line</STRONG>            <STRONG>dsl</STRONG>       <STRONG>ds</STRONG>  disable status line
+       <STRONG>down_half_line</STRONG>             <STRONG>hd</STRONG>        <STRONG>hd</STRONG>  half a line down
+       <STRONG>enter_alt_charset_mode</STRONG>     <STRONG>smacs</STRONG>     <STRONG>as</STRONG>  start alternate character set
+                                                (P)
+       <STRONG>enter_blink_mode</STRONG>           <STRONG>blink</STRONG>     <STRONG>mb</STRONG>  turn on blinking
+       <STRONG>enter_bold_mode</STRONG>            <STRONG>bold</STRONG>      <STRONG>md</STRONG>  turn on bold (extra bright)
+                                                mode
+       <STRONG>enter_ca_mode</STRONG>              <STRONG>smcup</STRONG>     <STRONG>ti</STRONG>  string to start programs using
+                                                cup
+       <STRONG>enter_delete_mode</STRONG>          <STRONG>smdc</STRONG>      <STRONG>dm</STRONG>  enter delete mode
+       <STRONG>enter_dim_mode</STRONG>             <STRONG>dim</STRONG>       <STRONG>mh</STRONG>  turn on half-bright mode
+       <STRONG>enter_insert_mode</STRONG>          <STRONG>smir</STRONG>      <STRONG>im</STRONG>  enter insert mode
+       <STRONG>enter_secure_mode</STRONG>          <STRONG>invis</STRONG>     <STRONG>mk</STRONG>  turn on blank mode (characters
+                                                invisible)
+       <STRONG>enter_protected_mode</STRONG>       <STRONG>prot</STRONG>      <STRONG>mp</STRONG>  turn on protected mode
+       <STRONG>enter_reverse_mode</STRONG>         <STRONG>rev</STRONG>       <STRONG>mr</STRONG>  turn on reverse video mode
+       <STRONG>enter_standout_mode</STRONG>        <STRONG>smso</STRONG>      <STRONG>so</STRONG>  begin standout mode
+       <STRONG>enter_underline_mode</STRONG>       <STRONG>smul</STRONG>      <STRONG>us</STRONG>  begin underline mode
+       <STRONG>erase_chars</STRONG>                <STRONG>ech</STRONG>       <STRONG>ec</STRONG>  erase #1 characters (P)
+       <STRONG>exit_alt_charset_mode</STRONG>      <STRONG>rmacs</STRONG>     <STRONG>ae</STRONG>  end alternate character set
+                                                (P)
+       <STRONG>exit_attribute_mode</STRONG>        <STRONG>sgr0</STRONG>      <STRONG>me</STRONG>  turn off all attributes
+       <STRONG>exit_ca_mode</STRONG>               <STRONG>rmcup</STRONG>     <STRONG>te</STRONG>  strings to end programs using
+                                                cup
+       <STRONG>exit_delete_mode</STRONG>           <STRONG>rmdc</STRONG>      <STRONG>ed</STRONG>  end delete mode
+       <STRONG>exit_insert_mode</STRONG>           <STRONG>rmir</STRONG>      <STRONG>ei</STRONG>  exit insert mode
+
+       <STRONG>exit_standout_mode</STRONG>         <STRONG>rmso</STRONG>      <STRONG>se</STRONG>  exit standout mode
+       <STRONG>exit_underline_mode</STRONG>        <STRONG>rmul</STRONG>      <STRONG>ue</STRONG>  exit underline mode
+       <STRONG>flash_screen</STRONG>               <STRONG>flash</STRONG>     <STRONG>vb</STRONG>  visible bell (may not move
+                                                cursor)
+       <STRONG>form_feed</STRONG>                  <STRONG>ff</STRONG>        <STRONG>ff</STRONG>  hardcopy terminal page eject
+                                                (P*)
+       <STRONG>from_status_line</STRONG>           <STRONG>fsl</STRONG>       <STRONG>fs</STRONG>  return from status line
+       <STRONG>init_1string</STRONG>               <STRONG>is1</STRONG>       <STRONG>i1</STRONG>  initialization string
+       <STRONG>init_2string</STRONG>               <STRONG>is2</STRONG>       <STRONG>is</STRONG>  initialization string
+       <STRONG>init_3string</STRONG>               <STRONG>is3</STRONG>       <STRONG>i3</STRONG>  initialization string
+       <STRONG>init_file</STRONG>                  <STRONG>if</STRONG>        <STRONG>if</STRONG>  name of initialization file
+       <STRONG>insert_character</STRONG>           <STRONG>ich1</STRONG>      <STRONG>ic</STRONG>  insert character (P)
+       <STRONG>insert_line</STRONG>                <STRONG>il1</STRONG>       <STRONG>al</STRONG>  insert line (P*)
+       <STRONG>insert_padding</STRONG>             <STRONG>ip</STRONG>        <STRONG>ip</STRONG>  insert padding after inserted
+                                                character
+       <STRONG>key_backspace</STRONG>              <STRONG>kbs</STRONG>       <STRONG>kb</STRONG>  backspace key
+       <STRONG>key_catab</STRONG>                  <STRONG>ktbc</STRONG>      <STRONG>ka</STRONG>  clear-all-tabs key
+       <STRONG>key_clear</STRONG>                  <STRONG>kclr</STRONG>      <STRONG>kC</STRONG>  clear-screen or erase key
+       <STRONG>key_ctab</STRONG>                   <STRONG>kctab</STRONG>     <STRONG>kt</STRONG>  clear-tab key
+       <STRONG>key_dc</STRONG>                     <STRONG>kdch1</STRONG>     <STRONG>kD</STRONG>  delete-character key
+       <STRONG>key_dl</STRONG>                     <STRONG>kdl1</STRONG>      <STRONG>kL</STRONG>  delete-line key
+       <STRONG>key_down</STRONG>                   <STRONG>kcud1</STRONG>     <STRONG>kd</STRONG>  down-arrow key
+       <STRONG>key_eic</STRONG>                    <STRONG>krmir</STRONG>     <STRONG>kM</STRONG>  sent by rmir or smir in insert
+                                                mode
+       <STRONG>key_eol</STRONG>                    <STRONG>kel</STRONG>       <STRONG>kE</STRONG>  clear-to-end-of-line key
+       <STRONG>key_eos</STRONG>                    <STRONG>ked</STRONG>       <STRONG>kS</STRONG>  clear-to-end-of-screen key
+       <STRONG>key_f0</STRONG>                     <STRONG>kf0</STRONG>       <STRONG>k0</STRONG>  F0 function key
+       <STRONG>key_f1</STRONG>                     <STRONG>kf1</STRONG>       <STRONG>k1</STRONG>  F1 function key
+       <STRONG>key_f10</STRONG>                    <STRONG>kf10</STRONG>      <STRONG>k;</STRONG>  F10 function key
+       <STRONG>key_f2</STRONG>                     <STRONG>kf2</STRONG>       <STRONG>k2</STRONG>  F2 function key
+       <STRONG>key_f3</STRONG>                     <STRONG>kf3</STRONG>       <STRONG>k3</STRONG>  F3 function key
+       <STRONG>key_f4</STRONG>                     <STRONG>kf4</STRONG>       <STRONG>k4</STRONG>  F4 function key
+       <STRONG>key_f5</STRONG>                     <STRONG>kf5</STRONG>       <STRONG>k5</STRONG>  F5 function key
+       <STRONG>key_f6</STRONG>                     <STRONG>kf6</STRONG>       <STRONG>k6</STRONG>  F6 function key
+       <STRONG>key_f7</STRONG>                     <STRONG>kf7</STRONG>       <STRONG>k7</STRONG>  F7 function key
+       <STRONG>key_f8</STRONG>                     <STRONG>kf8</STRONG>       <STRONG>k8</STRONG>  F8 function key
+       <STRONG>key_f9</STRONG>                     <STRONG>kf9</STRONG>       <STRONG>k9</STRONG>  F9 function key
+       <STRONG>key_home</STRONG>                   <STRONG>khome</STRONG>     <STRONG>kh</STRONG>  home key
+       <STRONG>key_ic</STRONG>                     <STRONG>kich1</STRONG>     <STRONG>kI</STRONG>  insert-character key
+       <STRONG>key_il</STRONG>                     <STRONG>kil1</STRONG>      <STRONG>kA</STRONG>  insert-line key
+       <STRONG>key_left</STRONG>                   <STRONG>kcub1</STRONG>     <STRONG>kl</STRONG>  left-arrow key
+       <STRONG>key_ll</STRONG>                     <STRONG>kll</STRONG>       <STRONG>kH</STRONG>  lower-left key (home down)
+       <STRONG>key_npage</STRONG>                  <STRONG>knp</STRONG>       <STRONG>kN</STRONG>  next-page key
+       <STRONG>key_ppage</STRONG>                  <STRONG>kpp</STRONG>       <STRONG>kP</STRONG>  previous-page key
+       <STRONG>key_right</STRONG>                  <STRONG>kcuf1</STRONG>     <STRONG>kr</STRONG>  right-arrow key
+       <STRONG>key_sf</STRONG>                     <STRONG>kind</STRONG>      <STRONG>kF</STRONG>  scroll-forward key
+       <STRONG>key_sr</STRONG>                     <STRONG>kri</STRONG>       <STRONG>kR</STRONG>  scroll-backward key
+       <STRONG>key_stab</STRONG>                   <STRONG>khts</STRONG>      <STRONG>kT</STRONG>  set-tab key
+       <STRONG>key_up</STRONG>                     <STRONG>kcuu1</STRONG>     <STRONG>ku</STRONG>  up-arrow key
+       <STRONG>keypad_local</STRONG>               <STRONG>rmkx</STRONG>      <STRONG>ke</STRONG>  leave keyboard transmit mode
+       <STRONG>keypad_xmit</STRONG>                <STRONG>smkx</STRONG>      <STRONG>ks</STRONG>  enter keyboard transmit mode
+       <STRONG>lab_f0</STRONG>                     <STRONG>lf0</STRONG>       <STRONG>l0</STRONG>  label on function key f0 if
+                                                not f0
+       <STRONG>lab_f1</STRONG>                     <STRONG>lf1</STRONG>       <STRONG>l1</STRONG>  label on function key f1 if
+                                                not f1
+       <STRONG>lab_f10</STRONG>                    <STRONG>lf10</STRONG>      <STRONG>la</STRONG>  label on function key f10 if
+                                                not f10
+       <STRONG>lab_f2</STRONG>                     <STRONG>lf2</STRONG>       <STRONG>l2</STRONG>  label on function key f2 if
+                                                not f2
+       <STRONG>lab_f3</STRONG>                     <STRONG>lf3</STRONG>       <STRONG>l3</STRONG>  label on function key f3 if
+                                                not f3
+       <STRONG>lab_f4</STRONG>                     <STRONG>lf4</STRONG>       <STRONG>l4</STRONG>  label on function key f4 if
+                                                not f4
+       <STRONG>lab_f5</STRONG>                     <STRONG>lf5</STRONG>       <STRONG>l5</STRONG>  label on function key f5 if
+                                                not f5
+
+       <STRONG>lab_f6</STRONG>                     <STRONG>lf6</STRONG>       <STRONG>l6</STRONG>  label on function key f6 if
+                                                not f6
+       <STRONG>lab_f7</STRONG>                     <STRONG>lf7</STRONG>       <STRONG>l7</STRONG>  label on function key f7 if
+                                                not f7
+       <STRONG>lab_f8</STRONG>                     <STRONG>lf8</STRONG>       <STRONG>l8</STRONG>  label on function key f8 if
+                                                not f8
+       <STRONG>lab_f9</STRONG>                     <STRONG>lf9</STRONG>       <STRONG>l9</STRONG>  label on function key f9 if
+                                                not f9
+       <STRONG>meta_off</STRONG>                   <STRONG>rmm</STRONG>       <STRONG>mo</STRONG>  turn off meta mode
+       <STRONG>meta_on</STRONG>                    <STRONG>smm</STRONG>       <STRONG>mm</STRONG>  turn on meta mode (8th-bit on)
+       <STRONG>newline</STRONG>                    <STRONG>nel</STRONG>       <STRONG>nw</STRONG>  newline (behave like cr
+                                                followed by lf)
+       <STRONG>pad_char</STRONG>                   <STRONG>pad</STRONG>       <STRONG>pc</STRONG>  padding char (instead of null)
+       <STRONG>parm_dch</STRONG>                   <STRONG>dch</STRONG>       <STRONG>DC</STRONG>  delete #1 characters (P*)
+       <STRONG>parm_delete_line</STRONG>           <STRONG>dl</STRONG>        <STRONG>DL</STRONG>  delete #1 lines (P*)
+       <STRONG>parm_down_cursor</STRONG>           <STRONG>cud</STRONG>       <STRONG>DO</STRONG>  down #1 lines (P*)
+       <STRONG>parm_ich</STRONG>                   <STRONG>ich</STRONG>       <STRONG>IC</STRONG>  insert #1 characters (P*)
+       <STRONG>parm_index</STRONG>                 <STRONG>indn</STRONG>      <STRONG>SF</STRONG>  scroll forward #1 lines (P)
+       <STRONG>parm_insert_line</STRONG>           <STRONG>il</STRONG>        <STRONG>AL</STRONG>  insert #1 lines (P*)
+       <STRONG>parm_left_cursor</STRONG>           <STRONG>cub</STRONG>       <STRONG>LE</STRONG>  move #1 characters to the left
+                                                (P)
+       <STRONG>parm_right_cursor</STRONG>          <STRONG>cuf</STRONG>       <STRONG>RI</STRONG>  move #1 characters to the
+                                                right (P*)
+       <STRONG>parm_rindex</STRONG>                <STRONG>rin</STRONG>       <STRONG>SR</STRONG>  scroll back #1 lines (P)
+       <STRONG>parm_up_cursor</STRONG>             <STRONG>cuu</STRONG>       <STRONG>UP</STRONG>  up #1 lines (P*)
+       <STRONG>pkey_key</STRONG>                   <STRONG>pfkey</STRONG>     <STRONG>pk</STRONG>  program function key #1 to
+                                                type string #2
+       <STRONG>pkey_local</STRONG>                 <STRONG>pfloc</STRONG>     <STRONG>pl</STRONG>  program function key #1 to
+                                                execute string #2
+       <STRONG>pkey_xmit</STRONG>                  <STRONG>pfx</STRONG>       <STRONG>px</STRONG>  program function key #1 to
+                                                transmit string #2
+       <STRONG>print_screen</STRONG>               <STRONG>mc0</STRONG>       <STRONG>ps</STRONG>  print contents of screen
+       <STRONG>prtr_off</STRONG>                   <STRONG>mc4</STRONG>       <STRONG>pf</STRONG>  turn off printer
+       <STRONG>prtr_on</STRONG>                    <STRONG>mc5</STRONG>       <STRONG>po</STRONG>  turn on printer
+       <STRONG>repeat_char</STRONG>                <STRONG>rep</STRONG>       <STRONG>rp</STRONG>  repeat char #1 #2 times (P*)
+       <STRONG>reset_1string</STRONG>              <STRONG>rs1</STRONG>       <STRONG>r1</STRONG>  reset string
+       <STRONG>reset_2string</STRONG>              <STRONG>rs2</STRONG>       <STRONG>r2</STRONG>  reset string
+       <STRONG>reset_3string</STRONG>              <STRONG>rs3</STRONG>       <STRONG>r3</STRONG>  reset string
+       <STRONG>reset_file</STRONG>                 <STRONG>rf</STRONG>        <STRONG>rf</STRONG>  name of reset file
+       <STRONG>restore_cursor</STRONG>             <STRONG>rc</STRONG>        <STRONG>rc</STRONG>  restore cursor to position of
+                                                last save_cursor
+       <STRONG>row_address</STRONG>                <STRONG>vpa</STRONG>       <STRONG>cv</STRONG>  vertical position #1 absolute
+                                                (P)
+       <STRONG>save_cursor</STRONG>                <STRONG>sc</STRONG>        <STRONG>sc</STRONG>  save current cursor position
+                                                (P)
+       <STRONG>scroll_forward</STRONG>             <STRONG>ind</STRONG>       <STRONG>sf</STRONG>  scroll text up (P)
+       <STRONG>scroll_reverse</STRONG>             <STRONG>ri</STRONG>        <STRONG>sr</STRONG>  scroll text down (P)
+       <STRONG>set_attributes</STRONG>             <STRONG>sgr</STRONG>       <STRONG>sa</STRONG>  define video attributes #1-#9
+                                                (PG9)
+       <STRONG>set_tab</STRONG>                    <STRONG>hts</STRONG>       <STRONG>st</STRONG>  set a tab in every row,
+                                                current columns
+       <STRONG>set_window</STRONG>                 <STRONG>wind</STRONG>      <STRONG>wi</STRONG>  current window is lines #1-#2
+                                                cols #3-#4
+       <STRONG>tab</STRONG>                        <STRONG>ht</STRONG>        <STRONG>ta</STRONG>  tab to next 8-space hardware
+                                                tab stop
+       <STRONG>to_status_line</STRONG>             <STRONG>tsl</STRONG>       <STRONG>ts</STRONG>  move to status line, column #1
+       <STRONG>underline_char</STRONG>             <STRONG>uc</STRONG>        <STRONG>uc</STRONG>  underline char and move past
+                                                it
+       <STRONG>up_half_line</STRONG>               <STRONG>hu</STRONG>        <STRONG>hu</STRONG>  half a line up
+       <STRONG>init_prog</STRONG>                  <STRONG>iprog</STRONG>     <STRONG>iP</STRONG>  path name of program for
+                                                initialization
+       <STRONG>key_a1</STRONG>                     <STRONG>ka1</STRONG>       <STRONG>K1</STRONG>  upper left of keypad
+       <STRONG>key_a3</STRONG>                     <STRONG>ka3</STRONG>       <STRONG>K3</STRONG>  upper right of keypad
+       <STRONG>key_b2</STRONG>                     <STRONG>kb2</STRONG>       <STRONG>K2</STRONG>  center of keypad
+       <STRONG>key_c1</STRONG>                     <STRONG>kc1</STRONG>       <STRONG>K4</STRONG>  lower left of keypad
+
+       <STRONG>key_c3</STRONG>                     <STRONG>kc3</STRONG>       <STRONG>K5</STRONG>  lower right of keypad
+       <STRONG>prtr_non</STRONG>                   <STRONG>mc5p</STRONG>      <STRONG>pO</STRONG>  turn on printer for #1 bytes
+       <STRONG>char_padding</STRONG>               <STRONG>rmp</STRONG>       <STRONG>rP</STRONG>  like ip but when in insert
+                                                mode
+       <STRONG>acs_chars</STRONG>                  <STRONG>acsc</STRONG>      <STRONG>ac</STRONG>  graphics charset pairs, based
+                                                on vt100
+       <STRONG>plab_norm</STRONG>                  <STRONG>pln</STRONG>       <STRONG>pn</STRONG>  program label #1 to show
+                                                string #2
+       <STRONG>key_btab</STRONG>                   <STRONG>kcbt</STRONG>      <STRONG>kB</STRONG>  back-tab key
+       <STRONG>enter_xon_mode</STRONG>             <STRONG>smxon</STRONG>     <STRONG>SX</STRONG>  turn on xon/xoff handshaking
+       <STRONG>exit_xon_mode</STRONG>              <STRONG>rmxon</STRONG>     <STRONG>RX</STRONG>  turn off xon/xoff handshaking
+       <STRONG>enter_am_mode</STRONG>              <STRONG>smam</STRONG>      <STRONG>SA</STRONG>  turn on automatic margins
+       <STRONG>exit_am_mode</STRONG>               <STRONG>rmam</STRONG>      <STRONG>RA</STRONG>  turn off automatic margins
+       <STRONG>xon_character</STRONG>              <STRONG>xonc</STRONG>      <STRONG>XN</STRONG>  XON character
+       <STRONG>xoff_character</STRONG>             <STRONG>xoffc</STRONG>     <STRONG>XF</STRONG>  XOFF character
+       <STRONG>ena_acs</STRONG>                    <STRONG>enacs</STRONG>     <STRONG>eA</STRONG>  enable alternate char set
+       <STRONG>label_on</STRONG>                   <STRONG>smln</STRONG>      <STRONG>LO</STRONG>  turn on soft labels
+       <STRONG>label_off</STRONG>                  <STRONG>rmln</STRONG>      <STRONG>LF</STRONG>  turn off soft labels
+       <STRONG>key_beg</STRONG>                    <STRONG>kbeg</STRONG>      <STRONG>@1</STRONG>  begin key
+       <STRONG>key_cancel</STRONG>                 <STRONG>kcan</STRONG>      <STRONG>@2</STRONG>  cancel key
+       <STRONG>key_close</STRONG>                  <STRONG>kclo</STRONG>      <STRONG>@3</STRONG>  close key
+       <STRONG>key_command</STRONG>                <STRONG>kcmd</STRONG>      <STRONG>@4</STRONG>  command key
+       <STRONG>key_copy</STRONG>                   <STRONG>kcpy</STRONG>      <STRONG>@5</STRONG>  copy key
+       <STRONG>key_create</STRONG>                 <STRONG>kcrt</STRONG>      <STRONG>@6</STRONG>  create key
+       <STRONG>key_end</STRONG>                    <STRONG>kend</STRONG>      <STRONG>@7</STRONG>  end key
+       <STRONG>key_enter</STRONG>                  <STRONG>kent</STRONG>      <STRONG>@8</STRONG>  enter/send key
+       <STRONG>key_exit</STRONG>                   <STRONG>kext</STRONG>      <STRONG>@9</STRONG>  exit key
+       <STRONG>key_find</STRONG>                   <STRONG>kfnd</STRONG>      <STRONG>@0</STRONG>  find key
+       <STRONG>key_help</STRONG>                   <STRONG>khlp</STRONG>      <STRONG>%1</STRONG>  help key
+       <STRONG>key_mark</STRONG>                   <STRONG>kmrk</STRONG>      <STRONG>%2</STRONG>  mark key
+       <STRONG>key_message</STRONG>                <STRONG>kmsg</STRONG>      <STRONG>%3</STRONG>  message key
+       <STRONG>key_move</STRONG>                   <STRONG>kmov</STRONG>      <STRONG>%4</STRONG>  move key
+       <STRONG>key_next</STRONG>                   <STRONG>knxt</STRONG>      <STRONG>%5</STRONG>  next key
+       <STRONG>key_open</STRONG>                   <STRONG>kopn</STRONG>      <STRONG>%6</STRONG>  open key
+       <STRONG>key_options</STRONG>                <STRONG>kopt</STRONG>      <STRONG>%7</STRONG>  options key
+       <STRONG>key_previous</STRONG>               <STRONG>kprv</STRONG>      <STRONG>%8</STRONG>  previous key
+       <STRONG>key_print</STRONG>                  <STRONG>kprt</STRONG>      <STRONG>%9</STRONG>  print key
+       <STRONG>key_redo</STRONG>                   <STRONG>krdo</STRONG>      <STRONG>%0</STRONG>  redo key
+       <STRONG>key_reference</STRONG>              <STRONG>kref</STRONG>      <STRONG>&amp;1</STRONG>  reference key
+       <STRONG>key_refresh</STRONG>                <STRONG>krfr</STRONG>      <STRONG>&amp;2</STRONG>  refresh key
+       <STRONG>key_replace</STRONG>                <STRONG>krpl</STRONG>      <STRONG>&amp;3</STRONG>  replace key
+       <STRONG>key_restart</STRONG>                <STRONG>krst</STRONG>      <STRONG>&amp;4</STRONG>  restart key
+       <STRONG>key_resume</STRONG>                 <STRONG>kres</STRONG>      <STRONG>&amp;5</STRONG>  resume key
+       <STRONG>key_save</STRONG>                   <STRONG>ksav</STRONG>      <STRONG>&amp;6</STRONG>  save key
+       <STRONG>key_suspend</STRONG>                <STRONG>kspd</STRONG>      <STRONG>&amp;7</STRONG>  suspend key
+       <STRONG>key_undo</STRONG>                   <STRONG>kund</STRONG>      <STRONG>&amp;8</STRONG>  undo key
+       <STRONG>key_sbeg</STRONG>                   <STRONG>kBEG</STRONG>      <STRONG>&amp;9</STRONG>  shifted begin key
+       <STRONG>key_scancel</STRONG>                <STRONG>kCAN</STRONG>      <STRONG>&amp;0</STRONG>  shifted cancel key
+       <STRONG>key_scommand</STRONG>               <STRONG>kCMD</STRONG>      <STRONG>*1</STRONG>  shifted command key
+       <STRONG>key_scopy</STRONG>                  <STRONG>kCPY</STRONG>      <STRONG>*2</STRONG>  shifted copy key
+       <STRONG>key_screate</STRONG>                <STRONG>kCRT</STRONG>      <STRONG>*3</STRONG>  shifted create key
+       <STRONG>key_sdc</STRONG>                    <STRONG>kDC</STRONG>       <STRONG>*4</STRONG>  shifted delete-character key
+       <STRONG>key_sdl</STRONG>                    <STRONG>kDL</STRONG>       <STRONG>*5</STRONG>  shifted delete-line key
+       <STRONG>key_select</STRONG>                 <STRONG>kslt</STRONG>      <STRONG>*6</STRONG>  select key
+       <STRONG>key_send</STRONG>                   <STRONG>kEND</STRONG>      <STRONG>*7</STRONG>  shifted end key
+       <STRONG>key_seol</STRONG>                   <STRONG>kEOL</STRONG>      <STRONG>*8</STRONG>  shifted clear-to-end-of-line
+                                                key
+       <STRONG>key_sexit</STRONG>                  <STRONG>kEXT</STRONG>      <STRONG>*9</STRONG>  shifted exit key
+       <STRONG>key_sfind</STRONG>                  <STRONG>kFND</STRONG>      <STRONG>*0</STRONG>  shifted find key
+       <STRONG>key_shelp</STRONG>                  <STRONG>kHLP</STRONG>      <STRONG>#1</STRONG>  shifted help key
+       <STRONG>key_shome</STRONG>                  <STRONG>kHOM</STRONG>      <STRONG>#2</STRONG>  shifted home key
+       <STRONG>key_sic</STRONG>                    <STRONG>kIC</STRONG>       <STRONG>#3</STRONG>  shifted insert-character key
+       <STRONG>key_sleft</STRONG>                  <STRONG>kLFT</STRONG>      <STRONG>#4</STRONG>  shifted left-arrow key
+       <STRONG>key_smessage</STRONG>               <STRONG>kMSG</STRONG>      <STRONG>%a</STRONG>  shifted message key
+       <STRONG>key_smove</STRONG>                  <STRONG>kMOV</STRONG>      <STRONG>%b</STRONG>  shifted move key
+
+       <STRONG>key_snext</STRONG>                  <STRONG>kNXT</STRONG>      <STRONG>%c</STRONG>  shifted next key
+       <STRONG>key_soptions</STRONG>               <STRONG>kOPT</STRONG>      <STRONG>%d</STRONG>  shifted options key
+       <STRONG>key_sprevious</STRONG>              <STRONG>kPRV</STRONG>      <STRONG>%e</STRONG>  shifted previous key
+       <STRONG>key_sprint</STRONG>                 <STRONG>kPRT</STRONG>      <STRONG>%f</STRONG>  shifted print key
+       <STRONG>key_sredo</STRONG>                  <STRONG>kRDO</STRONG>      <STRONG>%g</STRONG>  shifted redo key
+       <STRONG>key_sreplace</STRONG>               <STRONG>kRPL</STRONG>      <STRONG>%h</STRONG>  shifted replace key
+       <STRONG>key_sright</STRONG>                 <STRONG>kRIT</STRONG>      <STRONG>%i</STRONG>  shifted right-arrow key
+       <STRONG>key_srsume</STRONG>                 <STRONG>kRES</STRONG>      <STRONG>%j</STRONG>  shifted resume key
+       <STRONG>key_ssave</STRONG>                  <STRONG>kSAV</STRONG>      <STRONG>!1</STRONG>  shifted save key
+       <STRONG>key_ssuspend</STRONG>               <STRONG>kSPD</STRONG>      <STRONG>!2</STRONG>  shifted suspend key
+       <STRONG>key_sundo</STRONG>                  <STRONG>kUND</STRONG>      <STRONG>!3</STRONG>  shifted undo key
+       <STRONG>req_for_input</STRONG>              <STRONG>rfi</STRONG>       <STRONG>RF</STRONG>  send next input char (for
+                                                ptys)
+       <STRONG>key_f11</STRONG>                    <STRONG>kf11</STRONG>      <STRONG>F1</STRONG>  F11 function key
+       <STRONG>key_f12</STRONG>                    <STRONG>kf12</STRONG>      <STRONG>F2</STRONG>  F12 function key
+       <STRONG>key_f13</STRONG>                    <STRONG>kf13</STRONG>      <STRONG>F3</STRONG>  F13 function key
+       <STRONG>key_f14</STRONG>                    <STRONG>kf14</STRONG>      <STRONG>F4</STRONG>  F14 function key
+       <STRONG>key_f15</STRONG>                    <STRONG>kf15</STRONG>      <STRONG>F5</STRONG>  F15 function key
+       <STRONG>key_f16</STRONG>                    <STRONG>kf16</STRONG>      <STRONG>F6</STRONG>  F16 function key
+       <STRONG>key_f17</STRONG>                    <STRONG>kf17</STRONG>      <STRONG>F7</STRONG>  F17 function key
+       <STRONG>key_f18</STRONG>                    <STRONG>kf18</STRONG>      <STRONG>F8</STRONG>  F18 function key
+       <STRONG>key_f19</STRONG>                    <STRONG>kf19</STRONG>      <STRONG>F9</STRONG>  F19 function key
+       <STRONG>key_f20</STRONG>                    <STRONG>kf20</STRONG>      <STRONG>FA</STRONG>  F20 function key
+       <STRONG>key_f21</STRONG>                    <STRONG>kf21</STRONG>      <STRONG>FB</STRONG>  F21 function key
+       <STRONG>key_f22</STRONG>                    <STRONG>kf22</STRONG>      <STRONG>FC</STRONG>  F22 function key
+       <STRONG>key_f23</STRONG>                    <STRONG>kf23</STRONG>      <STRONG>FD</STRONG>  F23 function key
+       <STRONG>key_f24</STRONG>                    <STRONG>kf24</STRONG>      <STRONG>FE</STRONG>  F24 function key
+       <STRONG>key_f25</STRONG>                    <STRONG>kf25</STRONG>      <STRONG>FF</STRONG>  F25 function key
+       <STRONG>key_f26</STRONG>                    <STRONG>kf26</STRONG>      <STRONG>FG</STRONG>  F26 function key
+       <STRONG>key_f27</STRONG>                    <STRONG>kf27</STRONG>      <STRONG>FH</STRONG>  F27 function key
+       <STRONG>key_f28</STRONG>                    <STRONG>kf28</STRONG>      <STRONG>FI</STRONG>  F28 function key
+       <STRONG>key_f29</STRONG>                    <STRONG>kf29</STRONG>      <STRONG>FJ</STRONG>  F29 function key
+       <STRONG>key_f30</STRONG>                    <STRONG>kf30</STRONG>      <STRONG>FK</STRONG>  F30 function key
+       <STRONG>key_f31</STRONG>                    <STRONG>kf31</STRONG>      <STRONG>FL</STRONG>  F31 function key
+       <STRONG>key_f32</STRONG>                    <STRONG>kf32</STRONG>      <STRONG>FM</STRONG>  F32 function key
+       <STRONG>key_f33</STRONG>                    <STRONG>kf33</STRONG>      <STRONG>FN</STRONG>  F33 function key
+       <STRONG>key_f34</STRONG>                    <STRONG>kf34</STRONG>      <STRONG>FO</STRONG>  F34 function key
+       <STRONG>key_f35</STRONG>                    <STRONG>kf35</STRONG>      <STRONG>FP</STRONG>  F35 function key
+       <STRONG>key_f36</STRONG>                    <STRONG>kf36</STRONG>      <STRONG>FQ</STRONG>  F36 function key
+       <STRONG>key_f37</STRONG>                    <STRONG>kf37</STRONG>      <STRONG>FR</STRONG>  F37 function key
+       <STRONG>key_f38</STRONG>                    <STRONG>kf38</STRONG>      <STRONG>FS</STRONG>  F38 function key
+       <STRONG>key_f39</STRONG>                    <STRONG>kf39</STRONG>      <STRONG>FT</STRONG>  F39 function key
+       <STRONG>key_f40</STRONG>                    <STRONG>kf40</STRONG>      <STRONG>FU</STRONG>  F40 function key
+       <STRONG>key_f41</STRONG>                    <STRONG>kf41</STRONG>      <STRONG>FV</STRONG>  F41 function key
+       <STRONG>key_f42</STRONG>                    <STRONG>kf42</STRONG>      <STRONG>FW</STRONG>  F42 function key
+       <STRONG>key_f43</STRONG>                    <STRONG>kf43</STRONG>      <STRONG>FX</STRONG>  F43 function key
+       <STRONG>key_f44</STRONG>                    <STRONG>kf44</STRONG>      <STRONG>FY</STRONG>  F44 function key
+       <STRONG>key_f45</STRONG>                    <STRONG>kf45</STRONG>      <STRONG>FZ</STRONG>  F45 function key
+       <STRONG>key_f46</STRONG>                    <STRONG>kf46</STRONG>      <STRONG>Fa</STRONG>  F46 function key
+       <STRONG>key_f47</STRONG>                    <STRONG>kf47</STRONG>      <STRONG>Fb</STRONG>  F47 function key
+       <STRONG>key_f48</STRONG>                    <STRONG>kf48</STRONG>      <STRONG>Fc</STRONG>  F48 function key
+       <STRONG>key_f49</STRONG>                    <STRONG>kf49</STRONG>      <STRONG>Fd</STRONG>  F49 function key
+       <STRONG>key_f50</STRONG>                    <STRONG>kf50</STRONG>      <STRONG>Fe</STRONG>  F50 function key
+       <STRONG>key_f51</STRONG>                    <STRONG>kf51</STRONG>      <STRONG>Ff</STRONG>  F51 function key
+       <STRONG>key_f52</STRONG>                    <STRONG>kf52</STRONG>      <STRONG>Fg</STRONG>  F52 function key
+       <STRONG>key_f53</STRONG>                    <STRONG>kf53</STRONG>      <STRONG>Fh</STRONG>  F53 function key
+       <STRONG>key_f54</STRONG>                    <STRONG>kf54</STRONG>      <STRONG>Fi</STRONG>  F54 function key
+       <STRONG>key_f55</STRONG>                    <STRONG>kf55</STRONG>      <STRONG>Fj</STRONG>  F55 function key
+       <STRONG>key_f56</STRONG>                    <STRONG>kf56</STRONG>      <STRONG>Fk</STRONG>  F56 function key
+       <STRONG>key_f57</STRONG>                    <STRONG>kf57</STRONG>      <STRONG>Fl</STRONG>  F57 function key
+       <STRONG>key_f58</STRONG>                    <STRONG>kf58</STRONG>      <STRONG>Fm</STRONG>  F58 function key
+       <STRONG>key_f59</STRONG>                    <STRONG>kf59</STRONG>      <STRONG>Fn</STRONG>  F59 function key
+       <STRONG>key_f60</STRONG>                    <STRONG>kf60</STRONG>      <STRONG>Fo</STRONG>  F60 function key
+       <STRONG>key_f61</STRONG>                    <STRONG>kf61</STRONG>      <STRONG>Fp</STRONG>  F61 function key
+       <STRONG>key_f62</STRONG>                    <STRONG>kf62</STRONG>      <STRONG>Fq</STRONG>  F62 function key
+
+       <STRONG>key_f63</STRONG>                    <STRONG>kf63</STRONG>      <STRONG>Fr</STRONG>  F63 function key
+       <STRONG>clr_bol</STRONG>                    <STRONG>el1</STRONG>       <STRONG>cb</STRONG>  Clear to beginning of line
+       <STRONG>clear_margins</STRONG>              <STRONG>mgc</STRONG>       <STRONG>MC</STRONG>  clear right and left soft
+                                                margins
+       <STRONG>set_left_margin</STRONG>            <STRONG>smgl</STRONG>      <STRONG>ML</STRONG>  set left soft margin at
+                                                current column.  (ML is not in
+                                                BSD termcap).
+       <STRONG>set_right_margin</STRONG>           <STRONG>smgr</STRONG>      <STRONG>MR</STRONG>  set right soft margin at
+                                                current column
+       <STRONG>label_format</STRONG>               <STRONG>fln</STRONG>       <STRONG>Lf</STRONG>  label format
+       <STRONG>set_clock</STRONG>                  <STRONG>sclk</STRONG>      <STRONG>SC</STRONG>  set clock, #1 hrs #2 mins #3
+                                                secs
+       <STRONG>display_clock</STRONG>              <STRONG>dclk</STRONG>      <STRONG>DK</STRONG>  display clock
+       <STRONG>remove_clock</STRONG>               <STRONG>rmclk</STRONG>     <STRONG>RC</STRONG>  remove clock
+       <STRONG>create_window</STRONG>              <STRONG>cwin</STRONG>      <STRONG>CW</STRONG>  define a window #1 from #2,#3
+                                                to #4,#5
+       <STRONG>goto_window</STRONG>                <STRONG>wingo</STRONG>     <STRONG>WG</STRONG>  go to window #1
+       <STRONG>hangup</STRONG>                     <STRONG>hup</STRONG>       <STRONG>HU</STRONG>  hang-up phone
+       <STRONG>dial_phone</STRONG>                 <STRONG>dial</STRONG>      <STRONG>DI</STRONG>  dial number #1
+       <STRONG>quick_dial</STRONG>                 <STRONG>qdial</STRONG>     <STRONG>QD</STRONG>  dial number #1 without
+                                                checking
+       <STRONG>tone</STRONG>                       <STRONG>tone</STRONG>      <STRONG>TO</STRONG>  select touch tone dialing
+       <STRONG>pulse</STRONG>                      <STRONG>pulse</STRONG>     <STRONG>PU</STRONG>  select pulse dialing
+       <STRONG>flash_hook</STRONG>                 <STRONG>hook</STRONG>      <STRONG>fh</STRONG>  flash switch hook
+       <STRONG>fixed_pause</STRONG>                <STRONG>pause</STRONG>     <STRONG>PA</STRONG>  pause for 2-3 seconds
+       <STRONG>wait_tone</STRONG>                  <STRONG>wait</STRONG>      <STRONG>WA</STRONG>  wait for dial-tone
+       <STRONG>user0</STRONG>                      <STRONG>u0</STRONG>        <STRONG>u0</STRONG>  User string #0
+       <STRONG>user1</STRONG>                      <STRONG>u1</STRONG>        <STRONG>u1</STRONG>  User string #1
+       <STRONG>user2</STRONG>                      <STRONG>u2</STRONG>        <STRONG>u2</STRONG>  User string #2
+       <STRONG>user3</STRONG>                      <STRONG>u3</STRONG>        <STRONG>u3</STRONG>  User string #3
+       <STRONG>user4</STRONG>                      <STRONG>u4</STRONG>        <STRONG>u4</STRONG>  User string #4
+       <STRONG>user5</STRONG>                      <STRONG>u5</STRONG>        <STRONG>u5</STRONG>  User string #5
+       <STRONG>user6</STRONG>                      <STRONG>u6</STRONG>        <STRONG>u6</STRONG>  User string #6
+       <STRONG>user7</STRONG>                      <STRONG>u7</STRONG>        <STRONG>u7</STRONG>  User string #7
+       <STRONG>user8</STRONG>                      <STRONG>u8</STRONG>        <STRONG>u8</STRONG>  User string #8
+       <STRONG>user9</STRONG>                      <STRONG>u9</STRONG>        <STRONG>u9</STRONG>  User string #9
+       <STRONG>orig_pair</STRONG>                  <STRONG>op</STRONG>        <STRONG>op</STRONG>  Set default pair to its
+                                                original value
+       <STRONG>orig_colors</STRONG>                <STRONG>oc</STRONG>        <STRONG>oc</STRONG>  Set all color pairs to the
+                                                original ones
+       <STRONG>initialize_color</STRONG>           <STRONG>initc</STRONG>     <STRONG>Ic</STRONG>  initialize color #1 to
+                                                (#2,#3,#4)
+       <STRONG>initialize_pair</STRONG>            <STRONG>initp</STRONG>     <STRONG>Ip</STRONG>  Initialize color pair #1 to
+                                                fg=(#2,#3,#4), bg=(#5,#6,#7)
+       <STRONG>set_color_pair</STRONG>             <STRONG>scp</STRONG>       <STRONG>sp</STRONG>  Set current color pair to #1
+       <STRONG>set_foreground</STRONG>             <STRONG>setf</STRONG>      <STRONG>Sf</STRONG>  Set foreground color #1
+       <STRONG>set_background</STRONG>             <STRONG>setb</STRONG>      <STRONG>Sb</STRONG>  Set background color #1
+       <STRONG>change_char_pitch</STRONG>          <STRONG>cpi</STRONG>       <STRONG>ZA</STRONG>  Change number of characters
+                                                per inch to #1
+       <STRONG>change_line_pitch</STRONG>          <STRONG>lpi</STRONG>       <STRONG>ZB</STRONG>  Change number of lines per
+                                                inch to #1
+       <STRONG>change_res_horz</STRONG>            <STRONG>chr</STRONG>       <STRONG>ZC</STRONG>  Change horizontal resolution
+                                                to #1
+       <STRONG>change_res_vert</STRONG>            <STRONG>cvr</STRONG>       <STRONG>ZD</STRONG>  Change vertical resolution to
+                                                #1
+       <STRONG>define_char</STRONG>                <STRONG>defc</STRONG>      <STRONG>ZE</STRONG>  Define a character #1, #2 dots
+                                                wide, descender #3
+       <STRONG>enter_doublewide_mode</STRONG>      <STRONG>swidm</STRONG>     <STRONG>ZF</STRONG>  Enter double-wide mode
+       <STRONG>enter_draft_quality</STRONG>        <STRONG>sdrfq</STRONG>     <STRONG>ZG</STRONG>  Enter draft-quality mode
+       <STRONG>enter_italics_mode</STRONG>         <STRONG>sitm</STRONG>      <STRONG>ZH</STRONG>  Enter italic mode
+       <STRONG>enter_leftward_mode</STRONG>        <STRONG>slm</STRONG>       <STRONG>ZI</STRONG>  Start leftward carriage motion
+       <STRONG>enter_micro_mode</STRONG>           <STRONG>smicm</STRONG>     <STRONG>ZJ</STRONG>  Start micro-motion mode
+       <STRONG>enter_near_letter_quality</STRONG>  <STRONG>snlq</STRONG>      <STRONG>ZK</STRONG>  Enter NLQ mode
+       <STRONG>enter_normal_quality</STRONG>       <STRONG>snrmq</STRONG>     <STRONG>ZL</STRONG>  Enter normal-quality mode
+       <STRONG>enter_shadow_mode</STRONG>          <STRONG>sshm</STRONG>      <STRONG>ZM</STRONG>  Enter shadow-print mode
+
+       <STRONG>enter_subscript_mode</STRONG>       <STRONG>ssubm</STRONG>     <STRONG>ZN</STRONG>  Enter subscript mode
+       <STRONG>enter_superscript_mode</STRONG>     <STRONG>ssupm</STRONG>     <STRONG>ZO</STRONG>  Enter superscript mode
+       <STRONG>enter_upward_mode</STRONG>          <STRONG>sum</STRONG>       <STRONG>ZP</STRONG>  Start upward carriage motion
+       <STRONG>exit_doublewide_mode</STRONG>       <STRONG>rwidm</STRONG>     <STRONG>ZQ</STRONG>  End double-wide mode
+       <STRONG>exit_italics_mode</STRONG>          <STRONG>ritm</STRONG>      <STRONG>ZR</STRONG>  End italic mode
+       <STRONG>exit_leftward_mode</STRONG>         <STRONG>rlm</STRONG>       <STRONG>ZS</STRONG>  End left-motion mode
+       <STRONG>exit_micro_mode</STRONG>            <STRONG>rmicm</STRONG>     <STRONG>ZT</STRONG>  End micro-motion mode
+       <STRONG>exit_shadow_mode</STRONG>           <STRONG>rshm</STRONG>      <STRONG>ZU</STRONG>  End shadow-print mode
+       <STRONG>exit_subscript_mode</STRONG>        <STRONG>rsubm</STRONG>     <STRONG>ZV</STRONG>  End subscript mode
+       <STRONG>exit_superscript_mode</STRONG>      <STRONG>rsupm</STRONG>     <STRONG>ZW</STRONG>  End superscript mode
+       <STRONG>exit_upward_mode</STRONG>           <STRONG>rum</STRONG>       <STRONG>ZX</STRONG>  End reverse character motion
+       <STRONG>micro_column_address</STRONG>       <STRONG>mhpa</STRONG>      <STRONG>ZY</STRONG>  Like column_address in micro
+                                                mode
+       <STRONG>micro_down</STRONG>                 <STRONG>mcud1</STRONG>     <STRONG>ZZ</STRONG>  Like cursor_down in micro mode
+       <STRONG>micro_left</STRONG>                 <STRONG>mcub1</STRONG>     <STRONG>Za</STRONG>  Like cursor_left in micro mode
+       <STRONG>micro_right</STRONG>                <STRONG>mcuf1</STRONG>     <STRONG>Zb</STRONG>  Like cursor_right in micro
+                                                mode
+       <STRONG>micro_row_address</STRONG>          <STRONG>mvpa</STRONG>      <STRONG>Zc</STRONG>  Like row_address #1 in micro
+                                                mode
+       <STRONG>micro_up</STRONG>                   <STRONG>mcuu1</STRONG>     <STRONG>Zd</STRONG>  Like cursor_up in micro mode
+       <STRONG>order_of_pins</STRONG>              <STRONG>porder</STRONG>    <STRONG>Ze</STRONG>  Match software bits to print-
+                                                head pins
+       <STRONG>parm_down_micro</STRONG>            <STRONG>mcud</STRONG>      <STRONG>Zf</STRONG>  Like parm_down_cursor in micro
+                                                mode
+       <STRONG>parm_left_micro</STRONG>            <STRONG>mcub</STRONG>      <STRONG>Zg</STRONG>  Like parm_left_cursor in micro
+                                                mode
+       <STRONG>parm_right_micro</STRONG>           <STRONG>mcuf</STRONG>      <STRONG>Zh</STRONG>  Like parm_right_cursor in
+                                                micro mode
+       <STRONG>parm_up_micro</STRONG>              <STRONG>mcuu</STRONG>      <STRONG>Zi</STRONG>  Like parm_up_cursor in micro
+                                                mode
+       <STRONG>select_char_set</STRONG>            <STRONG>scs</STRONG>       <STRONG>Zj</STRONG>  Select character set, #1
+       <STRONG>set_bottom_margin</STRONG>          <STRONG>smgb</STRONG>      <STRONG>Zk</STRONG>  Set bottom margin at current
+                                                line
+       <STRONG>set_bottom_margin_parm</STRONG>     <STRONG>smgbp</STRONG>     <STRONG>Zl</STRONG>  Set bottom margin at line #1
+                                                or (if smgtp is not given) #2
+                                                lines from bottom
+       <STRONG>set_left_margin_parm</STRONG>       <STRONG>smglp</STRONG>     <STRONG>Zm</STRONG>  Set left (right) margin at
+                                                column #1
+       <STRONG>set_right_margin_parm</STRONG>      <STRONG>smgrp</STRONG>     <STRONG>Zn</STRONG>  Set right margin at column #1
+       <STRONG>set_top_margin</STRONG>             <STRONG>smgt</STRONG>      <STRONG>Zo</STRONG>  Set top margin at current line
+       <STRONG>set_top_margin_parm</STRONG>        <STRONG>smgtp</STRONG>     <STRONG>Zp</STRONG>  Set top (bottom) margin at row
+                                                #1
+       <STRONG>start_bit_image</STRONG>            <STRONG>sbim</STRONG>      <STRONG>Zq</STRONG>  Start printing bit image
+                                                graphics
+       <STRONG>start_char_set_def</STRONG>         <STRONG>scsd</STRONG>      <STRONG>Zr</STRONG>  Start character set definition
+                                                #1, with #2 characters in the
+                                                set
+       <STRONG>stop_bit_image</STRONG>             <STRONG>rbim</STRONG>      <STRONG>Zs</STRONG>  Stop printing bit image
+                                                graphics
+       <STRONG>stop_char_set_def</STRONG>          <STRONG>rcsd</STRONG>      <STRONG>Zt</STRONG>  End definition of character
+                                                set #1
+       <STRONG>subscript_characters</STRONG>       <STRONG>subcs</STRONG>     <STRONG>Zu</STRONG>  List of subscriptable
+                                                characters
+       <STRONG>superscript_characters</STRONG>     <STRONG>supcs</STRONG>     <STRONG>Zv</STRONG>  List of superscriptable
+                                                characters
+       <STRONG>these_cause_cr</STRONG>             <STRONG>docr</STRONG>      <STRONG>Zw</STRONG>  Printing any of these
+                                                characters causes CR
+       <STRONG>zero_motion</STRONG>                <STRONG>zerom</STRONG>     <STRONG>Zx</STRONG>  No motion for subsequent
+                                                character
+
+       The  following  string  capabilities  are  present  in  the SVr4.0 term
+       structure, but were originally not documented in the man page.
+
+                                      <STRONG>Code</STRONG>
+
+
+       <STRONG>String</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG>     <STRONG>TI</STRONG>        <STRONG>TC</STRONG>  <STRONG>Description</STRONG>
+       ------------------------------------------------------------------------
+       <STRONG>char_set_names</STRONG>             <STRONG>csnm</STRONG>      <STRONG>Zy</STRONG>  Produce #1'th item from list
+                                                of character set names
+       <STRONG>key_mouse</STRONG>                  <STRONG>kmous</STRONG>     <STRONG>Km</STRONG>  Mouse event has occurred
+       <STRONG>mouse_info</STRONG>                 <STRONG>minfo</STRONG>     <STRONG>Mi</STRONG>  Mouse status information
+       <STRONG>req_mouse_pos</STRONG>              <STRONG>reqmp</STRONG>     <STRONG>RQ</STRONG>  Request mouse position
+       <STRONG>get_mouse</STRONG>                  <STRONG>getm</STRONG>      <STRONG>Gm</STRONG>  Curses should get button
+                                                events, parameter #1 not
+                                                documented.
+       <STRONG>set_a_foreground</STRONG>           <STRONG>setaf</STRONG>     <STRONG>AF</STRONG>  Set foreground color to #1,
+                                                using ANSI escape
+       <STRONG>set_a_background</STRONG>           <STRONG>setab</STRONG>     <STRONG>AB</STRONG>  Set background color to #1,
+                                                using ANSI escape
+       <STRONG>pkey_plab</STRONG>                  <STRONG>pfxl</STRONG>      <STRONG>xl</STRONG>  Program function key #1 to
+                                                type string #2 and show string
+                                                #3
+       <STRONG>device_type</STRONG>                <STRONG>devt</STRONG>      <STRONG>dv</STRONG>  Indicate language, codeset
+                                                support
+       <STRONG>code_set_init</STRONG>              <STRONG>csin</STRONG>      <STRONG>ci</STRONG>  Init sequence for multiple
+                                                codesets
+       <STRONG>set0_des_seq</STRONG>               <STRONG>s0ds</STRONG>      <STRONG>s0</STRONG>  Shift to codeset 0 (EUC set 0,
+                                                ASCII)
+       <STRONG>set1_des_seq</STRONG>               <STRONG>s1ds</STRONG>      <STRONG>s1</STRONG>  Shift to codeset 1
+       <STRONG>set2_des_seq</STRONG>               <STRONG>s2ds</STRONG>      <STRONG>s2</STRONG>  Shift to codeset 2
+       <STRONG>set3_des_seq</STRONG>               <STRONG>s3ds</STRONG>      <STRONG>s3</STRONG>  Shift to codeset 3
+       <STRONG>set_lr_margin</STRONG>              <STRONG>smglr</STRONG>     <STRONG>ML</STRONG>  Set both left and right
+                                                margins to #1, #2.  (ML is not
+                                                in BSD termcap).
+       <STRONG>set_tb_margin</STRONG>              <STRONG>smgtb</STRONG>     <STRONG>MT</STRONG>  Sets both top and bottom
+                                                margins to #1, #2
+       <STRONG>bit_image_repeat</STRONG>           <STRONG>birep</STRONG>     <STRONG>Xy</STRONG>  Repeat bit image cell #1 #2
+                                                times
+       <STRONG>bit_image_newline</STRONG>          <STRONG>binel</STRONG>     <STRONG>Zz</STRONG>  Move to next row of the bit
+                                                image
+       <STRONG>bit_image_carriage_return</STRONG>  <STRONG>bicr</STRONG>      <STRONG>Yv</STRONG>  Move to beginning of same row
+       <STRONG>color_names</STRONG>                <STRONG>colornm</STRONG>   <STRONG>Yw</STRONG>  Give name for color #1
+       <STRONG>define_bit_image_region</STRONG>    <STRONG>defbi</STRONG>     <STRONG>Yx</STRONG>  Define rectangular bit image
+                                                region
+       <STRONG>end_bit_image_region</STRONG>       <STRONG>endbi</STRONG>     <STRONG>Yy</STRONG>  End a bit-image region
+       <STRONG>set_color_band</STRONG>             <STRONG>setcolor</STRONG>  <STRONG>Yz</STRONG>  Change to ribbon color #1
+       <STRONG>set_page_length</STRONG>            <STRONG>slines</STRONG>    <STRONG>YZ</STRONG>  Set page length to #1 lines
+       <STRONG>display_pc_char</STRONG>            <STRONG>dispc</STRONG>     <STRONG>S1</STRONG>  Display PC character #1
+       <STRONG>enter_pc_charset_mode</STRONG>      <STRONG>smpch</STRONG>     <STRONG>S2</STRONG>  Enter PC character display
+                                                mode
+       <STRONG>exit_pc_charset_mode</STRONG>       <STRONG>rmpch</STRONG>     <STRONG>S3</STRONG>  Exit PC character display mode
+       <STRONG>enter_scancode_mode</STRONG>        <STRONG>smsc</STRONG>      <STRONG>S4</STRONG>  Enter PC scancode mode
+       <STRONG>exit_scancode_mode</STRONG>         <STRONG>rmsc</STRONG>      <STRONG>S5</STRONG>  Exit PC scancode mode
+       <STRONG>pc_term_options</STRONG>            <STRONG>pctrm</STRONG>     <STRONG>S6</STRONG>  PC terminal options
+       <STRONG>scancode_escape</STRONG>            <STRONG>scesc</STRONG>     <STRONG>S7</STRONG>  Escape for scancode emulation
+       <STRONG>alt_scancode_esc</STRONG>           <STRONG>scesa</STRONG>     <STRONG>S8</STRONG>  Alternate escape for scancode
+                                                emulation
+
+       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>Code</STRONG>
+       <STRONG>String</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG>     <STRONG>TI</STRONG>        <STRONG>TC</STRONG>  <STRONG>Description</STRONG>
+       ------------------------------------------------------------------------
+       <STRONG>enter_horizontal_hl_mode</STRONG>   <STRONG>ehhlm</STRONG>     <STRONG>Xh</STRONG>  Enter horizontal highlight
+                                                mode
+
+       <STRONG>enter_left_hl_mode</STRONG>         <STRONG>elhlm</STRONG>     <STRONG>Xl</STRONG>  Enter left highlight mode
+       <STRONG>enter_low_hl_mode</STRONG>          <STRONG>elohlm</STRONG>    <STRONG>Xo</STRONG>  Enter low highlight mode
+       <STRONG>enter_right_hl_mode</STRONG>        <STRONG>erhlm</STRONG>     <STRONG>Xr</STRONG>  Enter right highlight mode
+       <STRONG>enter_top_hl_mode</STRONG>          <STRONG>ethlm</STRONG>     <STRONG>Xt</STRONG>  Enter top highlight mode
+       <STRONG>enter_vertical_hl_mode</STRONG>     <STRONG>evhlm</STRONG>     <STRONG>Xv</STRONG>  Enter vertical highlight mode
+       <STRONG>set_a_attributes</STRONG>           <STRONG>sgr1</STRONG>      <STRONG>sA</STRONG>  Define second set of video
+                                                attributes #1-#6
+       <STRONG>set_pglen_inch</STRONG>             <STRONG>slength</STRONG>   <STRONG>YI</STRONG>  Set page length to #1
+                                                hundredth of an inch (some
+                                                implementations 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.
+
+       <EM>ncurses</EM>   addresses   this   limitation   by   allowing    user-defined
+       capabilities.   The  <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG> option for
+       this purpose.  When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats unknown capabilities as user-
+       defined.   That  is,  if <STRONG>tic</STRONG> encounters a capability name which it does
+       not recognize, it infers its type (Boolean, number or string) from  the
+       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  <EM>ncurses</EM>  library  provides the data
+       leaving most of the behavior to applications:
+
+       <STRONG>o</STRONG>   User-defined capability strings whose  name  begins  with  "k"  are
+           treated as function keys.
+
+       <STRONG>o</STRONG>   The  types  (Boolean,  number,  string)  determined  by  <STRONG>tic</STRONG> 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
+       predefined set of capabilities, in practice it has been limited to  the
+       capabilities  defined  by  terminfo  implementations.  As a rule, user-
+       defined capabilities intended for use by termcap applications should be
+       limited  to  Booleans  and  numbers to avoid running past the 1023 byte
+       limit assumed by termcap implementations and  their  applications.   In
+       particular,  providing  extended  sets  of  function  keys (past the 60
+       numbered keys and the handful of special named keys) is best done using
+       the longer names available using terminfo.
+
+       The  <EM>ncurses</EM>  library uses a few of these user-defined capabilities, as
+       described in <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.  Other user-defined capabilities  (including
+       function  keys)  are described in the terminal database, in the section
+       on <EM>NCURSES</EM> <EM>USER-DEFINABLE</EM> <EM>CAPABILITIES</EM>
+
+
+</PRE><H3><a name="h3-A-Sample-Entry">A Sample Entry</a></H3><PRE>
+       The  following  entry,  describing  an   ANSI-standard   terminal,   is
+       representative of what a <STRONG>terminfo</STRONG> entry for a modern 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
+           particular 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
+       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:
+
+       <STRONG>o</STRONG>   Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character,
+
+       <STRONG>o</STRONG>   <STRONG>^</STRONG><STRONG><EM>x</EM></STRONG> maps to a control-<EM>x</EM> 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
+           implementations.
+
+       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
+           precision; 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.
 
-       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
-
-       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
-
-       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 capabil-
-       ity.  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 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 car-
-       riage 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
+       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>
+       Terminal descriptions in <EM>ncurses</EM>  are  stored  in  terminal  databases.
+       These  databases,  which are found by their pathname, may be configured
+       either as directory trees or hashed databases (see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>),
+
+       The library  uses  a  compiled-in  list  of  pathnames,  which  can  be
+       overridden  by  environment  variables.   Before  starting  to  search,
+       <EM>ncurses</EM> checks the search list, eliminating  duplicates  and  pathnames
+       where  no  terminal  database  is found.  The <EM>ncurses</EM> library reads the
+       first description which passes its consistency checks.
+
+       <STRONG>o</STRONG>   The environment variable <STRONG>TERMINFO</STRONG> is checked first, for a  terminal
+           database containing the terminal description.
+
+       <STRONG>o</STRONG>   Next, <EM>ncurses</EM> looks in <EM>$HOME/.terminfo</EM> for a compiled description.
+
+           This  is an optional feature which may be omitted entirely from the
+           library,  or  limited  to  prevent  accidental  use  by  privileged
+           applications.
+
+       <STRONG>o</STRONG>   Next,  if  the  environment  variable <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is set, <EM>ncurses</EM>
+           interprets the contents of  that  variable  as  a  list  of  colon-
+           separated pathnames of terminal databases to be searched.
+
+           An  empty  pathname  (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, <EM>ncurses</EM> searches these compiled-in locations:
+
+           <STRONG>o</STRONG>   a list of directories (/usr/share/terminfo), and
+
+           <STRONG>o</STRONG>   the system terminfo directory, <EM>/usr/share/terminfo</EM>
+
+       The <STRONG>TERMINFO</STRONG> variable can contain a terminal description instead of the
+       pathname of a terminal database.  If this variable begins  with  "hex:"
+       or  "b64:"  then <EM>ncurses</EM> reads a terminal description from hexadecimal-
+       or base64-encoded data,  and  if  that  description  matches  the  name
+       sought,  will  use  that.   This encoded data can be set using the "-Q"
+       option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG>.
+
+       The preceding addresses the usual configuration of <EM>ncurses</EM>, which  uses
+       terminal  descriptions  prepared  in <EM>terminfo</EM> format.  While <EM>termcap</EM> is
+       less expressive,  <EM>ncurses</EM>  can  also  be  configured  to  read  <EM>termcap</EM>
+       descriptions.   In  that  configuration,  it  checks  the  <EM>TERMCAP</EM>  and
+       <EM>TERMPATH</EM> variables (for content and search  path,  respectively)  after
+       the system terminal database.
+
+
+</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
+       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 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
+       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 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
+       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,
+               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,
-
-
-   <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>.
-
-       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 special case.  Other
-       operations, including "%t"  pop  their  operand  from  the
-       stack.  It is noted that more complex operations are often
+               am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
+               ind=^J, lines#24,
+
+
+</PRE><H3><a name="h3-Parameterized-Strings">Parameterized Strings</a></H3><PRE>
+       Cursor  addressing  and  other  strings  requiring  parameters  in  the
+       terminal  are  described  by  a  parameterized  string capability, with
+       <EM>printf</EM>-like escapes such as <EM>%x</EM> in it.   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.  Print (e.g., "%d") is a
+       special 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:
 
+       <STRONG>%%</STRONG>   outputs "%"
 
-       %%   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.
 
-       %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
-            as in <STRONG>printf</STRONG>, flags are [-+#] and space
+       <STRONG>%c</STRONG>   print <EM>pop()</EM> like %c in <STRONG>printf</STRONG>
 
-       %c   print pop() like %c in <STRONG>printf</STRONG>
+       <STRONG>%s</STRONG>   print <EM>pop()</EM> like %s in <STRONG>printf</STRONG>
 
-       %s   print pop() like %s in <STRONG>printf</STRONG>
-
-       %p[1-9]
+       <STRONG>%p</STRONG><EM>[1-9]</EM>
             push <EM>i</EM>'th parameter
 
-       %P[a-z]
-            set dynamic variable [a-z] to pop()
+       <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
 
-       %g[a-z]
-            get dynamic variable [a-z] and push it
+       <STRONG>%P</STRONG><EM>[A-Z]</EM>
+            set static variable <EM>[a-z]</EM> to <EM>pop()</EM>
 
-       %P[A-Z]
-            set static variable [a-z] to pop()
+       <STRONG>%g</STRONG><EM>[A-Z]</EM>
+            get static variable <EM>[a-z]</EM> and push it
 
-       %g[A-Z]
-            get static variable [a-z] 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:
 
-            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>tparm</STRONG>.   However,  that fact is not documented in
-            other implementations.  Relying on it will  adversely
-            impact portability to other implementations.
+            <STRONG>o</STRONG>   SVr2 curses supported <EM>dynamic</EM> variables.  Those are  set  only
+                by  a  <STRONG>%P</STRONG>  operator.   A <STRONG>%g</STRONG> for a given variable without first
+                setting it with <STRONG>%P</STRONG> will give  unpredictable  results,  because
+                dynamic  variables  are  an  uninitialized  local array on the
+                stack in the <STRONG>tparm</STRONG> function.
 
-       %'<EM>c</EM>' char constant <EM>c</EM>
+            <STRONG>o</STRONG>   SVr3.2 curses supported <EM>static</EM> variables.  Those are an  array
+                in the <EM>TERMINAL</EM> structure (declared in <STRONG>term.h</STRONG>), and are zeroed
+                automatically when the <STRONG>setupterm</STRONG> function allocates the data.
 
-       %{<EM>nn</EM>}
+            <STRONG>o</STRONG>   SVr4 curses made no further improvements to the <EM>dynamic/static</EM>
+                variable feature.
+
+            <STRONG>o</STRONG>   Solaris  XPG4  curses does not distinguish between <EM>dynamic</EM> and
+                <EM>static</EM> variables.  They are the same.  Like SVr4 curses,  XPG4
+                curses does not initialize these explicitly.
+
+            <STRONG>o</STRONG>   Before  version  6.3,  <EM>ncurses</EM>  stores both <EM>dynamic</EM> and <EM>static</EM>
+                variables in persistent storage, initialized to zeros.
+
+            <STRONG>o</STRONG>   Beginning with version 6.3, <EM>ncurses</EM> stores <EM>static</EM> and  <EM>dynamic</EM>
+                variables in the same manner as SVr4.
+
+                <STRONG>o</STRONG>   Unlike   other   implementations,  <EM>ncurses</EM>  zeros  dynamic
+                    variables before the first <STRONG>%g</STRONG> or <STRONG>%P</STRONG> operator.
+
+                <STRONG>o</STRONG>   Like SVr2, the scope of dynamic variables  in  <EM>ncurses</EM>  is
+                    within the current call to <STRONG>tparm</STRONG>.  Use static variables if
+                    persistent storage is needed.
+
+       <STRONG>%'</STRONG><EM>c</EM><STRONG>'</STRONG> char constant <EM>c</EM>
+
+       <STRONG>%{</STRONG><EM>nn</EM><STRONG>}</STRONG>
             integer constant <EM>nn</EM>
 
-       %l   push strlen(pop)
+       <STRONG>%l</STRONG>   push strlen(pop)
 
-       %+ %- %* %/ %m
-            arithmetic (%m is mod): push(pop() op 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>
 
-       %&amp; %| %^
-            bit operations (AND, OR and exclusive-OR): push(pop()
-            op pop())
+       <STRONG>%&amp;</STRONG>, <STRONG>%|</STRONG>, <STRONG>%^</STRONG>
+            bit operations (AND, OR and exclusive-OR): <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM>
 
-       %= %&gt; %&lt;
-            logical operations: push(pop() op pop())
+       <STRONG>%=</STRONG>, <STRONG>%&gt;</STRONG>, <STRONG>%&lt;</STRONG>
+            logical operations: <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM>
 
-       %A, %O
+       <STRONG>%A</STRONG>, <STRONG>%O</STRONG>
             logical AND and OR operations (for conditionals)
 
-       %! %~
-            unary  operations  (logical  and   bit   complement):
-            push(op pop())
+       <STRONG>%!</STRONG>, <STRONG>%~</STRONG>
+            unary operations (logical and bit complement): <EM>push(op</EM> <EM>pop())</EM>
 
-       %i   add 1 to first two parameters (for ANSI terminals)
+       <STRONG>%i</STRONG>   add 1 to first two parameters (for ANSI terminals)
 
-       %? <EM>expr</EM> %t <EM>thenpart</EM> %e <EM>elsepart</EM> %;
-            This  forms  an  if-then-else.   The  %e  <EM>elsepart</EM> is
-            optional.  Usually the %? <EM>expr</EM> part  pushes  a  value
-            onto  the stack, and %t pops it from the stack, test-
-            ing if it is nonzero (true).  If it is zero  (false),
-            control passes to the %e (else) part.
+       <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:
-            %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
+            <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 struc-
-            ture  of  if-the-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}%-".  %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>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
+            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>
+       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.  The order of the rows and
+       columns is inverted here, and the row and column  are  printed  as  two
+       digits.  The corresponding terminal description is expressed thus:
+              cup=\E&amp;a%p2%dc%p1%dY$&lt;6&gt;,
+
+       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
+       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 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
+       parameterized  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>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
+
+
+</PRE><H3><a name="h3-Margins">Margins</a></H3><PRE>
+       SVr4 (and X/Open Curses) list several string capabilities  for  setting
+       margins.   Two  were  intended  for use with terminals, and another six
+       were intended for use with printers.
+
+       <STRONG>o</STRONG>   The two terminal capabilities assume that the terminal may have the
+           capability  of  setting the left and/or right margin at the current
+           cursor column position.
+
+       <STRONG>o</STRONG>   The printer capabilities assume that the printer may have two types
+           of capability:
+
+           <STRONG>o</STRONG>   the ability to set a top and/or bottom margin using the current
+               line position, and
+
+           <STRONG>o</STRONG>   parameterized capabilities for setting the top,  bottom,  left,
+               right margins given the number of rows or columns.
+
+       In  practice,  the  categorization into "terminal" and "printer" is not
+       suitable:
+
+       <STRONG>o</STRONG>   The AT&amp;T SVr4 terminal database uses  <STRONG>smgl</STRONG>  four  times,  for  AT&amp;T
+           hardware.
+
+           Three  of  the  four  are  printers.   They lack the ability to set
+           left/right margins by specifying the column.
+
+       <STRONG>o</STRONG>   Other (non-AT&amp;T) terminals may support margins but using  different
+           assumptions from AT&amp;T.
+
+           For  instance,  the DEC VT420 supports left/right margins, but only
+           using a column parameter.  As an added complication, the VT420 uses
+           two  settings to fully enable left/right margins (left/right margin
+           mode, and origin mode).  The  former  enables  the  margins,  which
+           causes  printed  text  to  wrap  within  margins, but the latter is
+           needed to prevent cursor-addressing outside those margins.
+
+       <STRONG>o</STRONG>   Both DEC VT420 left/right margins are set  with  a  single  control
+           sequence.  If either is omitted, the corresponding margin is set to
+           the left or right edge of the  display  (rather  than  leaving  the
+           margin unmodified).
+
+       These are the margin-related capabilities:
+
+                 <STRONG>Name</STRONG>    <STRONG>Description</STRONG>
+                 ---------------------------------------------------
+                 <STRONG>smgl</STRONG>    Set left margin at current column
+                 <STRONG>smgr</STRONG>    Set right margin at current column
+                 <STRONG>smgb</STRONG>    Set bottom margin at current line
+                 <STRONG>smgt</STRONG>    Set top margin at current line
+                 <STRONG>smgbp</STRONG>   Set bottom margin at line <EM>N</EM>
+                 <STRONG>smglp</STRONG>   Set left margin at column <EM>N</EM>
+                 <STRONG>smgrp</STRONG>   Set right margin at column <EM>N</EM>
+                 <STRONG>smgtp</STRONG>   Set top margin at line <EM>N</EM>
+                 <STRONG>smglr</STRONG>   Set both left and right margins to <EM>L</EM> and <EM>R</EM>
+                 <STRONG>smgtb</STRONG>   Set both top and bottom margins to <EM>T</EM> and <EM>B</EM>
+
+       When  writing  an  application that uses these string capabilities, the
+       pairs should be first checked to see if each capability in the pair  is
+       set or only one is set:
+
+       <STRONG>o</STRONG>   If  both  <STRONG>smglp</STRONG>  and  <STRONG>smgrp</STRONG>  are  set,  each  is used with a single
+           argument, <EM>N</EM>, that gives the column number of  the  left  and  right
+           margin, respectively.
+
+       <STRONG>o</STRONG>   If  both  <STRONG>smgtp</STRONG>  and <STRONG>smgbp</STRONG> are set, each is used to set the top and
+           bottom margin, respectively:
+
+           <STRONG>o</STRONG>   <STRONG>smgtp</STRONG> is used with a single argument, <EM>N</EM>, the line number of the
+               top margin.
+
+           <STRONG>o</STRONG>   <STRONG>smgbp</STRONG>  is  used with two arguments, <EM>N</EM> and <EM>M</EM>, that give the line
+               number of the bottom margin, the first counting from the top of
+               the  page  and  the  second  counting  from  the  bottom.  This
+               accommodates the two styles of specifying the bottom margin  in
+               different manufacturers' printers.
+
+           When  designing  a terminfo entry for a printer that has a settable
+           bottom margin, only the first or second argument  should  be  used,
+           depending on the printer.  When developing an application that uses
+           <STRONG>smgbp</STRONG> to set the bottom margin, both arguments must be given.
+
+       Conversely, when only one capability in the pair is set:
+
+       <STRONG>o</STRONG>   If only one of <STRONG>smglp</STRONG> and <STRONG>smgrp</STRONG> is set, then it  is  used  with  two
+           arguments, the column number of the left and right margins, in that
+           order.
+
+       <STRONG>o</STRONG>   Likewise, if only one of <STRONG>smgtp</STRONG> and <STRONG>smgbp</STRONG> is set, then  it  is  used
+           with  two  arguments  that give the top and bottom margins, in that
+           order, counting from the top of the page.
+
+           When designing a terminfo entry for a printer that requires setting
+           both  left and right or top and bottom margins simultaneously, only
+           one capability in the pairs <STRONG>smglp</STRONG> and  <STRONG>smgrp</STRONG>  or  <STRONG>smgtp</STRONG>  and  <STRONG>smgbp</STRONG>
+           should be defined, leaving the other unset.
+
+       Except  for  very  old terminal descriptions, e.g., those developed for
+       SVr4, the scheme just described  should  be  considered  obsolete.   An
+       improved set of capabilities was added late in the SVr4 releases (<STRONG>smglr</STRONG>
+       and <STRONG>smgtb</STRONG>),  which  explicitly  use  two  parameters  for  setting  the
+       left/right or top/bottom margins.
+
+       When setting margins, the line- and column-values are zero-based.
+
+       The  <STRONG>mgc</STRONG>  string  capability  should  be defined.  Applications such as
+       <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> rely upon this to reset all margins.
+
+
+</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
+       available.)
+
+
+</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)
+       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
        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
+       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 terminals 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 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
+</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
+       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  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
+       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 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 zero (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 separate 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 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
+       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 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%;
 
-           <STRONG>tparm</STRONG> <STRONG>parameter</STRONG>   <STRONG>attribute</STRONG>    <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
+       Putting this all together into the sgr sequence gives:
 
-           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)
+           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
+       terminfo  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
+       "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 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>.
 
-       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.
+</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>.
+       Otherwise the keypad is assumed to always transmit.
 
-       Writing out the above sequences, along with  their  depen-
-       dencies yields
+       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>sequence</STRONG>    <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG>     <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
+       <STRONG>o</STRONG>   <STRONG>kll</STRONG> (home down),
 
-         \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%;
+       <STRONG>o</STRONG>   <STRONG>kbs</STRONG> (backspace),
 
-         m          always              m
-         ^N or ^O   if p9 ^N, else ^O   %?%p9%t^N%e^O%;
+       <STRONG>o</STRONG>   <STRONG>ktbc</STRONG> (clear all tabs),
 
-       Putting this all together into the sgr sequence gives:
+       <STRONG>o</STRONG>   <STRONG>kctab</STRONG> (clear the tab stop in this column),
 
-           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.  Also, some implementations rely on sgr being  given
-       if  sgr0  is, Not all terminfo 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   ``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
-       giving <STRONG>eo</STRONG>.
+       <STRONG>o</STRONG>   <STRONG>kclr</STRONG> (clear screen or erase key),
+
+       <STRONG>o</STRONG>   <STRONG>kdch1</STRONG> (delete character),
+
+       <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.
 
-   <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  func-
-       tion  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  transmit-
-       ted  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 forward/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 includ-
-       ing  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 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
-       present, since the user may not have the tab  stops  prop-
-       erly  set.   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.  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:
+       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
+       normally 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
+           terminal,
+
+       <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> <STRONG>is2</STRONG>
+              output
+                     <STRONG>is1</STRONG> and
+                     <STRONG>is2</STRONG>
 
               set the margins using
-                     <STRONG>mgc</STRONG>, <STRONG>smgl</STRONG> and <STRONG>smgr</STRONG>
+                     <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>, analo-
-       gous to <STRONG>is1</STRONG> <STRONG>,</STRONG>  <STRONG>is2</STRONG>  <STRONG>,</STRONG>  <STRONG>if</STRONG>  and  <STRONG>is3</STRONG>  respectively.   These
-       strings  are  output  by  the <EM>reset</EM> program, which is used
-       when the terminal gets into a wedged state.  Commands  are
-       normally  placed  in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they pro-
-       duce annoying effects on the screen and are not  necessary
-       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 <EM>reset</EM> program writes strings including <STRONG>iprog</STRONG>, etc., in
-       the same order as  the  <EM>init</EM>  program,  using  <STRONG>rs1</STRONG>,  etc.,
-       instead of <STRONG>is1</STRONG>, etc.  If any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset
-       capability strings are missing, the  <EM>reset</EM>  program  falls
-       back  upon  the  corresponding  initialization  capability
-       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  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  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 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
-       do not 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)
-       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.
-
-
-   <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 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
+              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
+       capability 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
+       initialization 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
+           commonly used as models  for  modern  terminal  emulators  provided
+           documentation 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
+       characters 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
+       effectively that do not have a speed limit.  Padding information should
+       still be included so that routines  can  make  better  decisions  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) 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
+       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 specified as <STRONG>dsl</STRONG>.
+
+       The Boolean capability <STRONG>eslok</STRONG> specifies  that  escape  sequences,  tabs,
+       etc., work ordinarily in the status line.
+
+       The  <EM>ncurses</EM> 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
+       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>acsc</STRONG>
+       <STRONG>ACS</STRONG> <STRONG>Name</STRONG>      <STRONG>Value</STRONG>   <STRONG>Symbol</STRONG>   <STRONG>ASCII</STRONG> <STRONG>Fallback</STRONG> <STRONG>/</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
+       ------------------------------------------------------------------------
+       <STRONG>ACS_RARROW</STRONG>    0x2b      +      <STRONG>&gt;</STRONG>  arrow pointing right
+       <STRONG>ACS_LARROW</STRONG>    0x2c      ,      <STRONG>&lt;</STRONG>  arrow pointing left
+       <STRONG>ACS_UARROW</STRONG>    0x2d      -      <STRONG>^</STRONG>  arrow pointing up
+       <STRONG>ACS_DARROW</STRONG>    0x2e      .      <STRONG>v</STRONG>  arrow pointing down
+       <STRONG>ACS_BLOCK</STRONG>     0x30      0      <STRONG>#</STRONG>  solid square block
+       <STRONG>ACS_DIAMOND</STRONG>   0x60      `      <STRONG>+</STRONG>  diamond
+       <STRONG>ACS_CKBOARD</STRONG>   0x61      a      <STRONG>:</STRONG>  checker board (stipple)
+       <STRONG>ACS_DEGREE</STRONG>    0x66      f      <STRONG>\</STRONG>  degree symbol
+       <STRONG>ACS_PLMINUS</STRONG>   0x67      g      <STRONG>#</STRONG>  plus/minus
+       <STRONG>ACS_BOARD</STRONG>     0x68      h      <STRONG>#</STRONG>  board of squares
+       <STRONG>ACS_LANTERN</STRONG>   0x69      i      <STRONG>#</STRONG>  lantern symbol
+       <STRONG>ACS_LRCORNER</STRONG>  0x6a      j      <STRONG>+</STRONG>  lower right corner
+       <STRONG>ACS_URCORNER</STRONG>  0x6b      k      <STRONG>+</STRONG>  upper right corner
+       <STRONG>ACS_ULCORNER</STRONG>  0x6c      l      <STRONG>+</STRONG>  upper left corner
+       <STRONG>ACS_LLCORNER</STRONG>  0x6d      m      <STRONG>+</STRONG>  lower left corner
+       <STRONG>ACS_PLUS</STRONG>      0x6e      n      <STRONG>+</STRONG>  large plus or crossover
+       <STRONG>ACS_S1</STRONG>        0x6f      o      <STRONG>~</STRONG>  scan line 1
+       <STRONG>ACS_S3</STRONG>        0x70      p      <STRONG>-</STRONG>  scan line 3
+       <STRONG>ACS_HLINE</STRONG>     0x71      q      <STRONG>-</STRONG>  horizontal line
+       <STRONG>ACS_S7</STRONG>        0x72      r      <STRONG>-</STRONG>  scan line 7
+       <STRONG>ACS_S9</STRONG>        0x73      s      <STRONG>_</STRONG>  scan line 9
+       <STRONG>ACS_LTEE</STRONG>      0x74      t      <STRONG>+</STRONG>  tee pointing right
+       <STRONG>ACS_RTEE</STRONG>      0x75      u      <STRONG>+</STRONG>  tee pointing left
+       <STRONG>ACS_BTEE</STRONG>      0x76      v      <STRONG>+</STRONG>  tee pointing up
+       <STRONG>ACS_TTEE</STRONG>      0x77      w      <STRONG>+</STRONG>  tee pointing down
+       <STRONG>ACS_VLINE</STRONG>     0x78      x      <STRONG>|</STRONG>  vertical line
+       <STRONG>ACS_LEQUAL</STRONG>    0x79      y      <STRONG>&lt;</STRONG>  less-than-or-equal-to
+       <STRONG>ACS_GEQUAL</STRONG>    0x7a      z      <STRONG>&gt;</STRONG>  greater-than-or-equal-to
+       <STRONG>ACS_PI</STRONG>        0x7b      {      <STRONG>*</STRONG>  greek pi
+       <STRONG>ACS_NEQUAL</STRONG>    0x7c      |      <STRONG>!</STRONG>  not-equal
+       <STRONG>ACS_STERLING</STRONG>  0x7d      }      <STRONG>f</STRONG>  UK pound sign
+       <STRONG>ACS_BULLET</STRONG>    0x7e      ~      <STRONG>o</STRONG>  bullet
+
+       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
+           table).
+
+       <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
+           separately   (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
+       current 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
+       inability of some devices  to  set  foreground  and  background  colors
+       independently),  there  are  separate  capabilities  for  setting these
+       features:
+
+       <STRONG>o</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  foreground,  they  should  be  coded  as  <STRONG>setaf</STRONG>   and   <STRONG>setab</STRONG>,
+           respectively.
+
+       <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>,
+           respectively.   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
+       argument 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 <EM>ncurses</EM> 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
+
+       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;
+       otherwise 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
+           capability <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
+           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  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>
+                        --------------------------------------
+                        <STRONG>A_STANDOUT</STRONG>      0         1    <STRONG>sgr</STRONG>
+                        <STRONG>A_UNDERLINE</STRONG>     1         2    <STRONG>sgr</STRONG>
+                        <STRONG>A_REVERSE</STRONG>       2         4    <STRONG>sgr</STRONG>
+                        <STRONG>A_BLINK</STRONG>         3         8    <STRONG>sgr</STRONG>
+                        <STRONG>A_DIM</STRONG>           4        16    <STRONG>sgr</STRONG>
+                        <STRONG>A_BOLD</STRONG>          5        32    <STRONG>sgr</STRONG>
+                        <STRONG>A_INVIS</STRONG>         6        64    <STRONG>sgr</STRONG>
+                        <STRONG>A_PROTECT</STRONG>       7       128    <STRONG>sgr</STRONG>
+                        <STRONG>A_ALTCHARSET</STRONG>    8       256    <STRONG>sgr</STRONG>
+                        <STRONG>A_HORIZONTAL</STRONG>    9       512    <STRONG>sgr1</STRONG>
+                        <STRONG>A_LEFT</STRONG>         10      1024    <STRONG>sgr1</STRONG>
+                        <STRONG>A_LOW</STRONG>          11      2048    <STRONG>sgr1</STRONG>
+                        <STRONG>A_RIGHT</STRONG>        12      4096    <STRONG>sgr1</STRONG>
+                        <STRONG>A_TOP</STRONG>          13      8192    <STRONG>sgr1</STRONG>
+
+                        <STRONG>A_VERTICAL</STRONG>     14     16384    <STRONG>sgr1</STRONG>
+                        <STRONG>A_ITALIC</STRONG>       15     32768    <STRONG>sitm</STRONG>
+
+       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>, <EM>ncurses</EM> 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 <EM>ncurses</EM> implements the termcap-compatible <STRONG>PC</STRONG>  variable;
+       though  the  application  may  set this value to something other than a
+       null, <EM>ncurses</EM> 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 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
+       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>  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
+       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.
+
+
+</PRE><H3><a name="h3-Glitches-and-Brain-Damage">Glitches and Brain Damage</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
+       teleray_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 necessary to use  delete  and  insert
+       line.  The <EM>ncurses</EM> 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
+       capabilities 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.
+       Unfortunately, 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:
+
+       <STRONG>o</STRONG>   some termcap libraries print a warning message,
+
+       <STRONG>o</STRONG>   some exit if they find an entry that's longer than 1023 bytes,
+
+       <STRONG>o</STRONG>   some neither exit nor warn, doing nothing useful, and
+
+       <STRONG>o</STRONG>   some simply 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
+       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 <EM>TERM</EM> 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.
 
-             <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 capa-
-       bilities;  otherwise  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.
-
-       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 4096-byte
-       string-table maximum.  Unfortunately, the termcap transla-
-       tions 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  par-
-       ticular  terminal.   This is the length of the entry as it
-       exists in /etc/termcap, minus the backslash-newline pairs,
-       which <STRONG>tgetent()</STRONG> strips out while reading it.  Some termcap
-       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  <STRONG>tgetent()</STRONG>  is searching for a terminal type that
-            either is the long entry, appears in the termcap file
-            after  the long entry, or does not appear in the file
-            at all (so that <STRONG>tgetent()</STRONG> has  to  search  the  whole
-            termcap file).
-
-       Then  <STRONG>tgetent()</STRONG>  will overwrite memory, perhaps its stack,
-       and probably core dump the program.  Programs like  telnet
-       are  particularly  vulnerable;  modern  telnets pass along
-       values like the terminal type automatically.  The  results
-       are  almost  as  undesirable  with a termcap library, like
-       SunOS 4.1.3 and Ultrix 4.4, that prints  warning  messages
-       when  it reads an overly long termcap entry.  If a termcap
-       library truncates long entries,  like  OSF/1  3.0,  it  is
-       immune  to  dying  here but will return incorrect data for
-       the terminal.
-
-       The "after tc expansion" length will have a similar effect
-       to the above, but only for people who actually set TERM to
-       that terminal type, since <STRONG>tgetent()</STRONG> only does "tc"  expan-
-       sion once it'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.
+       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 <EM>TERM</EM> variable does not have a termcap
+       entry.
 
+       When in -C (translate to termcap) mode, the <EM>ncurses</EM>  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>
-<H2>EXTENSIONS</H2><PRE>
-       Some SVr4 <STRONG>curses</STRONG>  implementations,  and  all  previous  to
-       SVr4,  do not interpret the %A and %O operators in parame-
-       ter 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  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.
 
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
+       <EM>/usr/share/terminfo</EM>
+              compiled terminal description database directory
 
-</PRE>
-<H2>FILES</H2><PRE>
-       /usr/share/terminfo/?/*  files     containing     terminal
-                                descriptions
 
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+       Searching    for   terminal   descriptions   in   <EM>$HOME/.terminfo</EM>   and
+       <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is not supported by older implementations.
 
-</PRE>
-<H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+       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
+       <EM>ncurses</EM> implementation ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG>  mode.   This  raises
+       the  possibility  that  an  XPG4  implementation  making  the  opposite
+       interpretation may need terminfo entries made for <EM>ncurses</EM> to have  <STRONG>msgr</STRONG>
+       turned off.
 
-</PRE>
-<H2>AUTHORS</H2><PRE>
-       Zeyd M. Ben-Halim, Eric  S.  Raymond,  Thomas  E.  Dickey.
-       Based on pcurses by Pavel Curtis.
+       The <EM>ncurses</EM> 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 <EM>ncurses</EM> 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> (<STRONG>ncv</STRONG>) capability.   The  32768  mask  value
+       used  for  italics with <STRONG>ncv</STRONG> can be confused with an absent or cancelled
+       <STRONG>ncv</STRONG>.  If italics should work with colors, then the <STRONG>ncv</STRONG>  value  must  be
+       specified, even if it is zero.
+
+       Different  commercial  ports  of  <EM>terminfo</EM> and <EM>curses</EM> support different
+       subsets of XSI Curses and (in some cases) different  extensions.   Here
+       is  a  summary, accurate as of October 1995, after which the commercial
+       Unix market contracted and lost diversity.
+
+       <STRONG>o</STRONG>   SVr4, Solaris, and <EM>ncurses</EM> support all SVr4 capabilities.
+
+       <STRONG>o</STRONG>   IRIX supports the SVr4  set  and  adds  one  undocumented  extended
+           string capability (<STRONG>set_pglen</STRONG>).
+
+       <STRONG>o</STRONG>   SVr1   and   Ultrix   support   a  restricted  subset  of  <EM>terminfo</EM>
+           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>o</STRONG>   HP/UX   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 a number
+           of incompatible string table extensions.
+
+       <STRONG>o</STRONG>   AIX supports the SVr1 subset, plus function  keys  11  through  63,
+           plus a number of incompatible string table extensions.
+
+       <STRONG>o</STRONG>   OSF/1 supports both the SVr4 set and the AIX extensions.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+       Do  not  count  on  compiled  (binary)  <EM>terminfo</EM> entries being portable
+       between commercial Unix  systems.   At  least  two  implementations  of
+       <EM>terminfo</EM> (those of HP-UX and AIX) diverged from those of other System V
+       Unices after SVr1, adding extension capabilities to  the  string  table
+       that  (in  the  binary format) collide with subsequent System V and XSI
+       Curses extensions.
+
+
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+       Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.  Based on <EM>pcurses</EM>
+       by Pavel Curtis.
+
+
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+       <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,     <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>,    <STRONG><A HREF="tic.1m.html">tic(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><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,  <STRONG>printf(3)</STRONG>,  <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>,
+       <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
 
 
 
-                                                            <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
+ncurses 6.4                       2024-01-13                       <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-Margins">Margins</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-Brain-Damage">Glitches and Brain Damage</a></li>
+<li><a href="#h3-Pitfalls-of-Long-Entries">Pitfalls of Long Entries</a></li>
+</ul>
+</li>
+<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+</ul>
+</div>
 </BODY>
 </HTML>