]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/terminfo.5.html
ncurses 6.2 - patch 20211002
[ncurses.git] / doc / html / man / terminfo.5.html
index 5d128260bdab4cfaa8b0a63f876e33e4f22107ab..f4020d0351445f2b1bb9fea172d4b446ad2e12e1 100644 (file)
@@ -1,11 +1,12 @@
-<!-- 
+<!--
   * t
   * DO NOT EDIT THIS FILE BY HAND!
   * 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-2017,2018 Free Software Foundation, Inc.              *
+  * Copyright 2018-2020,2021 Thomas E. Dickey                                *
+  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * 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.35 2018/07/28 22:29:09 tom Exp @
+  * @Id: terminfo.head,v 1.41 2021/08/15 19:32:53 tom Exp @
   * Head of terminfo man page ends here
-  * @Id: terminfo.tail,v 1.93 2019/06/01 22:32:15 tom Exp @
-  * Beginning of terminfo.tail file
-  * This file is part of ncurses.
-  * See "terminfo.head" for copyright.
+  ****************************************************************************
+  * Copyright 2018-2020,2021 Thomas E. Dickey                                *
+  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: terminfo.tail,v 1.107 2021/10/02 20:54:06 tom Exp @
   *.in -2
   *.in +2
   *.in -2
@@ -61,7 +87,7 @@
 
 
 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
-       terminfo - terminal capability data base
+       terminfo - terminal capability database
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-       <EM>Terminfo</EM>  is  a data base describing terminals, used by screen-oriented
-       programs such as <STRONG>nvi(1)</STRONG>, <STRONG>rogue(1)</STRONG> and  libraries  such  as  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
+       <EM>Terminfo</EM>  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 describes
-       <STRONG>ncurses</STRONG> version 6.1 (patch 20190615).
+       padding requirements and initialization sequences.
+
+       This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20211002).
 
 
 </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
            entries.
 
            The  <STRONG>infocmp</STRONG>  <STRONG>-f</STRONG> and <STRONG>-W</STRONG> options rely on this to format if-then-else
-           expressions, or to enforce maximum line-width.  The resulting  for-
-           matted terminal description can be read by <STRONG>tic</STRONG>.
+           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 termi-
-           nal  (its  primary name), the last name given should be a long name
-           fully identifying the terminal (see <STRONG><A HREF="curs_termattrs.3x.html">longname(3x)</A></STRONG>), and  all  others
-           are treated as synonyms (aliases) for the primary terminal name.
+           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
+           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
+           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
+           it allows that to be both an alias and a  verbose  name  (but  will
            warn about this ambiguity).
 
-       <STRONG>o</STRONG>   Lines beginning with a "#" in the first column are treated as  com-
-           ments.
+       <STRONG>o</STRONG>   Lines  beginning  with  a  "#"  in  the first column are treated as
+           comments.
 
            While comment lines are legal at any point, the output of <STRONG>captoinfo</STRONG>
-           and <STRONG>infotocap</STRONG> (aliases for <STRONG>tic</STRONG>) will move comments  so  they  occur
+           and  <STRONG>infotocap</STRONG>  (aliases  for <STRONG>tic</STRONG>) will move comments so they occur
            only between entries.
 
-       Terminal  names  (except  for the last, verbose entry) should be chosen
-       using the following conventions.  The particular piece of hardware mak-
-       ing  up the terminal should have a root name, thus "hp2621".  This name
-       should not contain hyphens.  Modes that the hardware can be in, or user
-       preferences,  should be indicated by appending a hyphen and a mode suf-
-       fix.  Thus, a vt100 in 132 column mode would be vt100-w.  The following
-       suffixes should be used where possible:
+       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>Meaning</STRONG>                   <STRONG>Example</STRONG>
             -<EM>nn</EM>      Number of lines on the screen            aaa-60
 
 
 </PRE><H3><a name="h3-Terminfo-Capabilities-Syntax">Terminfo Capabilities Syntax</a></H3><PRE>
-       The  terminfo  entry  consists  of several <EM>capabilities</EM>, i.e., features
-       that the terminal has, or methods for exercising  the  terminal's  fea-
-       tures.
+       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.
+       <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
+       <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
+       <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
+           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
+       Any  capability  can  be  <EM>canceled</EM>,  i.e., suppressed from the terminal
        entry, by following its name with "@" rather than a capability value.
 
 
 </PRE><H3><a name="h3-Similar-Terminals">Similar Terminals</a></H3><PRE>
-       If  there  are  two  very  similar  terminals, one (the variant) can be
-       defined as being just like the other (the  base)  with  certain  excep-
-       tions.  In the definition of the variant, the string capability <STRONG>use</STRONG> can
-       be given with the name of the base terminal:
+       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
+       <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,
+       <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
+       <STRONG>o</STRONG>   Capabilities given explicitly in the entry override  those  brought
            in by <STRONG>use</STRONG> references.
 
-       A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of the use ref-
-       erence  that  imports it, where <EM>xx</EM> is the capability.  For example, the
-       entry
+       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
+       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
+       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
+       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
+       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
+       The  <STRONG>capname</STRONG> is the short name used in the text of the database, and is
+       used by a person updating the database.   Whenever  possible,  capnames
        are chosen to be the same as or similar to the ANSI X3.64-1979 standard
-       (now  superseded  by  ECMA-48,  which  uses  identical  or very similar
-       names).  Semantics are also intended to match those of  the  specifica-
-       tion.
+       (now superseded by  ECMA-48,  which  uses  identical  or  very  similar
+       names).    Semantics   are   also   intended  to  match  those  of  the
+       specification.
 
-       The  termcap code is the old <STRONG>termcap</STRONG> capability name (some capabilities
+       The termcap code is the old <STRONG>termcap</STRONG> capability name (some  capabilities
        are new, and have names which termcap did not originate).
 
-       Capability names have no hard length limit, but an informal limit of  5
+       Capability  names have no hard length limit, but an informal limit of 5
        characters has been adopted to keep them short and to allow the tabs in
        the source file <STRONG>Caps</STRONG> to line up nicely.
 
-       Finally, the description field attempts to convey the semantics of  the
+       Finally,  the description field attempts to convey the semantics of the
        capability.  You may find some codes in the description field:
 
        (P)    indicates that padding may be specified
 
-       #[1-9] in  the  description  field  indicates that the string is passed
-              through tparm with parms as given (#<EM>i</EM>).
+       #[1-9] in the description field indicates that  the  string  is  passed
+              through <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
+       (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>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
+
+
+
+          auto_left_margin            bw        bw     cub1 wraps from
+                                                       column 0 to last
+                                                       column
+          auto_right_margin           am        am     terminal has
+                                                       automatic margins
           back_color_erase            bce       ut     screen erased with
                                                        background color
           can_change                  ccc       cc     terminal can re-
-                                                       define existing col-
-                                                       ors
+                                                       define existing
+                                                       colors
           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
+                                                       pitch changes
+                                                       resolution
           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
+                                                       after 80 cols
+                                                       (concept)
+          erase_overstrike            eo        eo     can erase
+                                                       overstrikes 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_print_wheel             daisy     YC     printer needs
+                                                       operator to change
+                                                       character 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
+          insert_null_glitch          in        in     insert mode
+                                                       distinguishes nulls
           lpi_changes_res             lpix      YG     changing line pitch
                                                        changes resolution
           memory_above                da        da     display may be
                                                        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
+          over_strike                 os        os     terminal can
+                                                       overstrike
           prtr_silent                 mc5i      5i     printer will not
                                                        echo on screen
           row_addr_glitch             xvpa      YD     only positive motion
                                                        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
           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
+       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
                                                        printing
           buttons                     btns      BT     number of buttons on
                                                        mouse
-          dot_horz_spacing            spinh     Yc     spacing of dots hor-
-                                                       izontally in dots
+          dot_horz_spacing            spinh     Yc     spacing of dots
+                                                       horizontally in dots
+                                                       per inch
+          dot_vert_spacing            spinv     Yb     spacing of pins
+                                                       vertically in pins
                                                        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
                                                        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_char             orc       Yi     horizontal
+                                                       resolution in units
+                                                       per line
+          output_res_horz_inch        orhi      Yk     horizontal
+                                                       resolution 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
+          print_rate                  cps       Ym     print rate in
+                                                       characters per
+                                                       second
           wide_char_size              widcs     Yn     character step size
                                                        when in double wide
                                                        mode
                                                        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_res_vert             cvr       ZD     Change vertical
+                                                       resolution to #1
           change_scroll_region        csr       cs     change region to
                                                        line #1 to line #2
                                                        (P)
                                                        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
                                                        prototype !?
           create_window               cwin      CW     define a window #1
                                                        from #2,#3 to #4,#5
-          cursor_address              cup       cm     move to row #1 col-
-                                                       umns #2
+          cursor_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_invisible            civis     vi     make cursor
+                                                       invisible
           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_mem_address          mrcup     CM     memory relative
+                                                       cursor addressing,
+                                                       move to row #1
+                                                       columns #2
           cursor_normal               cnorm     ve     make cursor appear
                                                        normal (undo
                                                        civis/cvvis)
                                                        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_ca_mode               smcup     ti     string to start
+                                                       programs using cup
           enter_delete_mode           smdc      dm     enter delete mode
           enter_dim_mode              dim       mh     turn on half-bright
                                                        mode
                                                        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_leftward_mode         slm       ZI     Start leftward
+                                                       carriage motion
           enter_micro_mode            smicm     ZJ     Start micro-motion
                                                        mode
           enter_near_letter_quality   snlq      ZK     Enter NLQ mode
           enter_reverse_mode          rev       mr     turn on reverse
                                                        video mode
           enter_secure_mode           invis     mk     turn on blank mode
-                                                       (characters invisi-
-                                                       ble)
+                                                       (characters
+                                                       invisible)
           enter_shadow_mode           sshm      ZM     Enter shadow-print
                                                        mode
           enter_standout_mode         smso      so     begin standout 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_upward_mode           sum       ZP     Start upward
+                                                       carriage 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_alt_charset_mode       rmacs     ae     end alternate
+                                                       character 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_ca_mode                rmcup     te     strings to end
+                                                       programs 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_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_upward_mode            rum       ZX     End reverse
+                                                       character motion
+
+
           exit_xon_mode               rmxon     RX     turn off xon/xoff
                                                        handshaking
-          fixed_pause                 pause     PA     pause for 2-3 sec-
-                                                       onds
+          fixed_pause                 pause     PA     pause for 2-3
+                                                       seconds
           flash_hook                  hook      fh     flash switch hook
           flash_screen                flash     vb     visible bell (may
                                                        not move cursor)
                                                        string
           init_2string                is2       is     initialization
                                                        string
-
           init_3string                is3       i3     initialization
                                                        string
-          init_file                   if        if     name of initializa-
-                                                       tion file
+          init_file                   if        if     name of
+                                                       initialization file
           init_prog                   iprog     iP     path name of program
                                                        for initialization
           initialize_color            initc     Ic     initialize color #1
           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_a3                      ka3       K3     upper right of
+                                                       keypad
           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_c3                      kc3       K5     lower right of
+                                                       keypad
           key_cancel                  kcan      @2     cancel key
           key_catab                   ktbc      ka     clear-all-tabs key
           key_clear                   kclr      kC     clear-screen or
                                                        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_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_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_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_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_sdc                     kDC       *4     shifted delete-
+                                                       character key
           key_sdl                     kDL       *5     shifted delete-line
                                                        key
           key_select                  kslt      *6     select 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_sic                     kIC       #3     shifted insert-
+                                                       character key
           key_sleft                   kLFT      #4     shifted left-arrow
                                                        key
           key_smessage                kMSG      %a     shifted message 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
+
+          keypad_local                rmkx      ke     leave
+                                                       'keyboard_transmit'
+                                                       mode
+          keypad_xmit                 smkx      ks     enter
+                                                       'keyboard_transmit'
+                                                       mode
           lab_f0                      lf0       l0     label on function
                                                        key f0 if not f0
           lab_f1                      lf1       l1     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
                                                        (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_down_micro             mcud      Zf     Like
+                                                       parm_down_cursor 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_left_micro             mcub      Zg     Like
+                                                       parm_left_cursor 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_right_micro            mcuf      Zh     Like
+                                                       parm_right_cursor in
+                                                       micro mode
           parm_rindex                 rin       SR     scroll back #1 lines
                                                        (P)
           parm_up_cursor              cuu       UP     up #1 lines (P*)
                                                        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
           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
+          quick_dial                  qdial     QD     dial number #1
+                                                       without checking
           remove_clock                rmclk     RC     remove clock
           repeat_char                 rep       rp     repeat char #1 #2
                                                        times (P*)
                                                        #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
           set_foreground              setf      Sf     Set foreground color
                                                        #1
           set_left_margin             smgl      ML     set left soft margin
-                                                       at current col-
-                                                       umn.     See smgl.
-                                                       (ML is not in BSD
-                                                       termcap).
+                                                       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            smgr      MR     set right soft
+                                                       margin at current
+                                                       column
           set_right_margin_parm       smgrp     Zn     Set right margin at
                                                        column #1
           set_tab                     hts       st     set a tab in every
                                                        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
+          subscript_characters        subcs     Zu     List of
+                                                       subscriptable
+                                                       characters
+          superscript_characters      supcs     Zv     List of
+                                                       superscriptable
+                                                       characters
           tab                         ht        ta     tab to next 8-space
                                                        hardware tab stop
           these_cause_cr              docr      Zw     Printing any of
           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
           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
+          zero_motion                 zerom     Zx     No motion for
+                                                       subsequent character
 
-       The following string capabilities are present in the SVr4.0 term struc-
-       ture, but were originally not documented in the man page.
+       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
+                                                        for scancode
+                                                        emulation
           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
+                                                        from list of
+                                                        character set
+                                                        names
           code_set_init               csin       ci     Init sequence for
                                                         multiple codesets
           color_names                 colornm    Yw     Give name for
                                                         color #1
           define_bit_image_region     defbi      Yx     Define rectangular
                                                         bit image region
-          device_type                 devt       dv     Indicate lan-
-                                                        guage/codeset sup-
-                                                        port
-          display_pc_char             dispc      S1     Display PC charac-
-                                                        ter #1
+          device_type                 devt       dv     Indicate
+                                                        language/codeset
+                                                        support
+          display_pc_char             dispc      S1     Display PC
+                                                        character #1
           end_bit_image_region        endbi      Yy     End a bit-image
                                                         region
           enter_pc_charset_mode       smpch      S2     Enter PC character
                                                         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
+          scancode_escape             scesc      S7     Escape for
+                                                        scancode emulation
           set0_des_seq                s0ds       s0     Shift to codeset 0
                                                         (EUC set 0, ASCII)
           set1_des_seq                s1ds       s1     Shift to codeset 1
           set_lr_margin               smglr      ML     Set both left and
                                                         right margins to
                                                         #1, #2.  (ML is
-                                                        not in BSD term-
-                                                        cap).
-
-
+                                                        not in BSD
+                                                        termcap).
           set_page_length             slines     YZ     Set page length to
                                                         #1 lines
           set_tb_margin               smgtb      MT     Sets both top and
                                                         bottom margins to
                                                         #1, #2
 
-        The XSI Curses standard added these hardcopy capabilities.  They  were
-        used  in  some post-4.1 versions of System V curses, e.g., Solaris 2.5
-        and IRIX 6.x.  Except for <STRONG>YI</STRONG>, the <STRONG>ncurses</STRONG> termcap names for  them  are
-        invented.   According to the XSI Curses standard, they have no termcap
-        names.  If your compiled terminfo entries use these, they may  not  be
+        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!
 
 
                                                        mode
           enter_low_hl_mode           elohlm    Xo     Enter low highlight
                                                        mode
-          enter_right_hl_mode         erhlm     Xr     Enter right high-
-                                                       light mode
+          enter_right_hl_mode         erhlm     Xr     Enter right
+                                                       highlight mode
           enter_top_hl_mode           ethlm     Xt     Enter top highlight
                                                        mode
-          enter_vertical_hl_mode      evhlm     Xv     Enter vertical high-
-                                                       light mode
+          enter_vertical_hl_mode      evhlm     Xv     Enter vertical
+                                                       highlight mode
           set_a_attributes            sgr1      sA     Define second set of
                                                        video attributes
                                                        #1-#6
           set_pglen_inch              slength   YI     Set page length to
                                                        #1 hundredth of an
-                                                       inch (some implemen-
-                                                       tations use sL for
-                                                       termcap).
+                                                       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
+       The preceding section listed the <EM>predefined</EM>  capabilities.   They  deal
+       with  some special features for terminals no longer (or possibly never)
+       produced.  Occasionally there are special features of  newer  terminals
+       which  are awkward or impossible to represent by reusing the predefined
        capabilities.
 
-       <STRONG>ncurses</STRONG>  addresses  this  limitation by allowing user-defined capabili-
-       ties.  The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG> option for this pur-
-       pose.  When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats unknown capabilities as user-defined.
-       That is, if <STRONG>tic</STRONG> encounters a capability name which it does  not  recog-
-       nize,  it  infers  its type (boolean, number or string) from the syntax
-       and  makes  an  extended  table  entry  for   that   capability.    The
-       <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG>  function  makes  this information conditionally
-       available to applications.  The ncurses library provides the data leav-
-       ing most of the behavior to applications:
-
-       <STRONG>o</STRONG>   User-defined  capability  strings  whose  name  begins with "k" are
+       <STRONG>ncurses</STRONG>   addresses   this   limitation   by   allowing    user-defined
+       capabilities.   The  <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG> option for
+       this purpose.  When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats unknown capabilities as user-
+       defined.   That  is,  if <STRONG>tic</STRONG> encounters a capability name which it does
+       not recognize, it infers its type (boolean, number or string) from  the
+       syntax  and  makes  an  extended  table entry for that capability.  The
+       <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG> function makes  this  information  conditionally
+       available  to  applications.   The  ncurses  library  provides the data
+       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
+       <STRONG>o</STRONG>   The  types  (boolean,  number,  string)  determined  by  <STRONG>tic</STRONG> can be
            inferred by successful calls on <STRONG>tigetflag</STRONG>, etc.
 
        <STRONG>o</STRONG>   If the capability name happens to be two characters, the capability
            is also available through the termcap interface.
 
-       While termcap is said to be extensible because it does not use a prede-
-       fined set of capabilities, in practice it has been limited to the capa-
-       bilities defined by terminfo implementations.  As a rule,  user-defined
-       capabilities intended for use by termcap applications should be limited
-       to booleans and numbers to avoid  running  past  the  1023  byte  limit
-       assumed by termcap implementations and their applications.  In particu-
-       lar, providing extended sets of function keys  (past  the  60  numbered
-       keys  and  the  handful  of  special named keys) is best done using the
-       longer names available using terminfo.
+       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.
 
 
 </PRE><H3><a name="h3-A-Sample-Entry">A Sample Entry</a></H3><PRE>
-       The following entry, describing an ANSI-standard terminal, is represen-
-       tative  of  what a <STRONG>terminfo</STRONG> entry for a modern terminal typically looks
-       like.
+       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,
                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
+       Entries  may continue onto multiple lines by placing white space at the
+       beginning of each line except the first.  Comments may be  included  on
        lines beginning with "#".  Capabilities in <EM>terminfo</EM> are of three types:
 
-       <STRONG>o</STRONG>   Boolean capabilities which indicate that the terminal has some par-
-           ticular feature,
+       <STRONG>o</STRONG>   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
+       <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
+       terminals  have  <EM>automatic</EM> <EM>margins</EM> (i.e., an automatic return and line-
+       feed when the end of a line is reached) is indicated by the  capability
+       <STRONG>am</STRONG>.   Hence  the description of ansi includes <STRONG>am</STRONG>.  Numeric capabilities
+       are followed by the character "#" and  then  a  positive  value.   Thus
        <STRONG>cols</STRONG>, which indicates the number of columns the terminal has, gives the
-       value  "80" for ansi.  Values for numeric capabilities may be specified
-       in decimal, octal or hexadecimal, using the C programming language con-
-       ventions (e.g., 255, 0377 and 0xff or 0xFF).
+       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
+       Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to end  of  line
+       sequence)  are  given  by  the  two-character  code, an "=", and then a
        string ending at the next following ",".
 
-       A number of escape sequences are provided in the string valued capabil-
-       ities for easy encoding of characters there:
+       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,
 
            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
+       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>   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.
+           as a null character on most terminals, providing CS7 is  specified.
            See <STRONG>stty(1)</STRONG>.
 
-           The reason for this quirk is to maintain  binary  compatibility  of
-           the  compiled  terminfo files with other implementations, e.g., the
-           SVr4 systems, which document this.   Compiled  terminfo  files  use
-           null-terminated  strings,  with  no  lengths.  Modifying this would
-           require a new binary format, which would not work with other imple-
-           mentations.
+           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
+       A delay in milliseconds may appear anywhere  in  a  string  capability,
+       enclosed  in  $&lt;..&gt;  brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;, and padding characters
        are supplied by <STRONG><A HREF="curs_terminfo.3x.html">tputs(3x)</A></STRONG> to provide this delay.
 
-       <STRONG>o</STRONG>   The delay must be a number with at most one decimal place of preci-
-           sion; it may be followed by suffixes "*" or "/" or both.
+       <STRONG>o</STRONG>   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
+       <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
+       <STRONG>o</STRONG>   A  "/"  suffix indicates that the padding is mandatory and forces a
            delay of the given number of milliseconds even on devices for which
            <STRONG>xon</STRONG> is present to indicate flow control.
 
-       Sometimes individual capabilities must be commented out.  To  do  this,
-       put  a  period before the capability name.  For example, see the second
+       Sometimes  individual  capabilities must be commented out.  To do this,
+       put a period before the capability name.  For example, see  the  second
        <STRONG>ind</STRONG> in the example above.
 
 
 </PRE><H3><a name="h3-Fetching-Compiled-Descriptions">Fetching Compiled Descriptions</a></H3><PRE>
-       The <STRONG>ncurses</STRONG> library  searches  for  terminal  descriptions  in  several
-       places.   It  uses only the first description found.  The library has a
-       compiled-in list of places to search which can be overridden  by  envi-
-       ronment  variables.   Before  starting  to  search,  <STRONG>ncurses</STRONG> eliminates
+       The  <STRONG>ncurses</STRONG>  library  searches  for  terminal  descriptions in several
+       places.  It uses only the first description found.  The library  has  a
+       compiled-in  list  of  places  to  search  which  can  be overridden by
+       environment variables.  Before starting to search,  <STRONG>ncurses</STRONG>  eliminates
        duplicates in its search list.
 
-       <STRONG>o</STRONG>   If the environment variable TERMINFO is set, it is  interpreted  as
+       <STRONG>o</STRONG>   If  the  environment variable TERMINFO is set, it is interpreted as
            the pathname of a directory containing the compiled description you
            are working on.  Only that directory is searched.
 
-       <STRONG>o</STRONG>   If TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in the  directory
+       <STRONG>o</STRONG>   If  TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in the directory
            <STRONG>$HOME/.terminfo</STRONG> for a compiled description.
 
-       <STRONG>o</STRONG>   Next,  if  the  environment  variable TERMINFO_DIRS is set, <STRONG>ncurses</STRONG>
-           will interpret the contents of that variable as a  list  of  colon-
+       <STRONG>o</STRONG>   Next, if the environment variable  TERMINFO_DIRS  is  set,  <STRONG>ncurses</STRONG>
+           will  interpret  the  contents of that variable as a list of colon-
            separated directories (or database files) to be searched.
 
-           An  empty directory name (i.e., if the variable begins or ends with
-           a colon, or contains adjacent colons) is interpreted as the  system
+           An empty directory name (i.e., if the variable begins or ends  with
+           a  colon, or contains adjacent colons) is interpreted as the system
            location <EM>/usr/share/terminfo</EM>.
 
        <STRONG>o</STRONG>   Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations:
 
-           <STRONG>o</STRONG>   a    list    of    directories   (/usr/local/ncurses/share/ter-
-               minfo:/usr/share/terminfo), and
+           <STRONG>o</STRONG>   a list of directories (no default value), and
 
-           <STRONG>o</STRONG>   the system terminfo directory,  <EM>/usr/share/terminfo</EM>  (the  com-
-               piled-in default).
+           <STRONG>o</STRONG>   the  system  terminfo   directory,   <EM>/usr/share/terminfo</EM>   (the
+               compiled-in default).
 
 
 </PRE><H3><a name="h3-Preparing-Descriptions">Preparing Descriptions</a></H3><PRE>
        wraps  around  to  the  beginning  of the next line when it reaches the
        right margin, then it should have the <STRONG>am</STRONG> capability.  If  the  terminal
        can  clear  its  screen,  leaving the cursor in the home position, then
-       this is given by the <STRONG>clear</STRONG> string capability.  If  the  terminal  over-
-       strikes  (rather  than  clearing  a position when a character is struck
+       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 pro-
-       duce an audible signal (bell, beep, etc) give this as <STRONG>bel</STRONG>.
+       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
        the effect is undefined.  This is useful for drawing a box  around  the
        edge of the screen, for example.  If the terminal has switch selectable
        automatic margins, the <EM>terminfo</EM> file usually assumes that this  is  on;
-       i.e.,  <STRONG>am</STRONG>.  If the terminal has a command which moves to the first col-
-       umn of the next line, that command can be given as <STRONG>nel</STRONG>  (newline).   It
-       does  not  matter  if  the  command clears the remainder of the current
+       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" termi-
-       nals.  Thus the model 33 teletype is described as
+       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,
 
 
 </PRE><H3><a name="h3-Parameterized-Strings">Parameterized Strings</a></H3><PRE>
-       Cursor addressing and other strings requiring parameters in the  termi-
-       nal  are  described  by a parameterized string capability, with <EM>printf</EM>-
-       like escapes such as <EM>%x</EM> in it.  For example, to address the cursor, the
-       <STRONG>cup</STRONG>  capability  is  given, using two parameters: the row and column to
-       address to.  (Rows and columns are numbered from zero and refer to  the
-       physical screen visible to the user, not to any unseen memory.)  If the
-       terminal has memory relative cursor addressing, that can  be  indicated
-       by <STRONG>mrcup</STRONG>.
+       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 spe-
-       cial case.  Other operations, including "%t" pop their operand from the
-       stack.   It  is noted that more complex operations are often necessary,
-       e.g., in the <STRONG>sgr</STRONG> string.
+       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:
 
             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.
+            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.
+
+            <STRONG>o</STRONG>   SVr3.2 curses supported <EM>static</EM> variables.  Those are an  array
+                in the <STRONG>TERMINAL</STRONG> structure (declared in <STRONG>term.h</STRONG>), and are zeroed
+                automatically when the <STRONG>setupterm</STRONG> function allocates the data.
+
+            <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,  ncurses  stores both <EM>dynamic</EM> and <EM>static</EM>
+                variables in persistent storage, initialized to zeros.
+
+            <STRONG>o</STRONG>   Beginning with version 6.3, ncurses stores <EM>static</EM> and  <EM>dynamic</EM>
+                variables   in   the   same  manner  as  SVr4.   Unlike  other
+                implementations, ncurses zeros dynamic  variables  before  the
+                first <STRONG>%g</STRONG> or <STRONG>%P</STRONG> operator.
 
        <STRONG>%'</STRONG><EM>c</EM><STRONG>'</STRONG> char constant <EM>c</EM>
 
 
        <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
+            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:
 
             where ci are conditions, bi are bodies.
 
-            Use  the  <STRONG>-f</STRONG>  option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the structure of if-
+            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
+            written on one line.  The <STRONG>-f</STRONG> option splits the string  into  lines
             with the parts indented.
 
-       Binary operations are in postfix form with the operands  in  the  usual
-       order.  That is, to get x-5 one would use "%gx%{5}%-".  <STRONG>%P</STRONG> and <STRONG>%g</STRONG> vari-
-       ables are persistent across escape-string evaluations.
+       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.  Note that the order of the
-       rows and columns is inverted here, and that  the  row  and  column  are
-       printed    as    two    digits.     Thus    its   <STRONG>cup</STRONG>   capability   is
+       Consider  the HP2645, which, to get to row 3 and column 12, needs to be
+       sent \E&amp;a12c03Y padded for 6 milliseconds.  Note that the order of  the
+       rows  and  columns  is  inverted  here, and that the row and column are
+       printed   as   two   digits.     Thus    its    <STRONG>cup</STRONG>    capability    is
        "cup=6\E&amp;%p2%2dc%p1%2dY".
 
-       The Microterm ACT-IV needs the current row and column sent preceded  by
-       a   <STRONG>^T</STRONG>,   with   the   row   and   column  simply  encoded  in  binary,
-       "cup=^T%p1%c%p2%c".  Terminals which  use  "%c"  need  to  be  able  to
-       backspace  the cursor (<STRONG>cub1</STRONG>), and to move the cursor up one line on the
-       screen (<STRONG>cuu1</STRONG>).  This is necessary because it  is  not  always  safe  to
-       transmit  <STRONG>\n</STRONG> <STRONG>^D</STRONG> and <STRONG>\r</STRONG>, as the system may change or discard them.  (The
-       library routines dealing with terminfo set tty modes so that  tabs  are
-       never  expanded, so \t is safe to send.  This turns out to be essential
+       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  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
+       "\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
+       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
+       If  the  terminal has a fast way to home the cursor (to very upper left
+       corner of screen) then this can be given as <STRONG>home</STRONG>; similarly a fast  way
+       of  getting  to the lower left-hand corner can be given as <STRONG>ll</STRONG>; this may
        involve going up with <STRONG>cuu1</STRONG> from the home position, but a program should
        never do this itself (unless <STRONG>ll</STRONG> does) because it can make no assumption
-       about  the  effect  of moving up from the home position.  Note that the
-       home position is the same as addressing to (0,0): to the top left  cor-
-       ner of the screen, not of memory.  (Thus, the \EH sequence on HP termi-
-       nals cannot be used for <STRONG>home</STRONG>.)
+       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  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
+       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 cur-
-       sor addressing, a one screen-sized window must be fixed into the termi-
-       nal for cursor addressing to work properly.  This is also used for  the
-       TEKTRONIX  4025,  where  <STRONG>smcup</STRONG> sets the command character to be the one
-       used by terminfo.  If the <STRONG>smcup</STRONG> sequence will not  restore  the  screen
-       after  an  <STRONG>rmcup</STRONG>  sequence  is output (to the state prior to outputting
-       <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
+       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>
+                    ----------------------------------------------
+                    smgl       Set left margin at current column
+                    smgr       Set right margin at current column
+                    smgb       Set bottom margin at current line
+                    smgt       Set top margin at current line
+                    smgbp      Set bottom margin at line <EM>N</EM>
+                    smglp      Set left margin at column <EM>N</EM>
+                    smgrp      Set right margin at column <EM>N</EM>
+                    smgtp      Set top margin at line <EM>N</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.
+
+       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
+       If  the  terminal can clear from the current position to the end of the
+       line, leaving the cursor where it is, this should be given as  <STRONG>el</STRONG>.   If
+       the  terminal  can  clear from the beginning of the line to the current
+       position inclusive, leaving the cursor where  it  is,  this  should  be
+       given  as  <STRONG>el1</STRONG>.  If the terminal can clear from the current position to
+       the end of the display, then this should be given as <STRONG>ed</STRONG>.   <STRONG>Ed</STRONG>  is  only
        defined from the first column of a line.  (Thus, it can be simulated by
-       a request to delete a large number of lines, if a true <STRONG>ed</STRONG> is not avail-
-       able.)
+       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
+       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
+       If the terminal has a settable scrolling region (like  the  vt100)  the
+       command  to  set  this  can be described with the <STRONG>csr</STRONG> capability, which
        takes two parameters: the top and bottom lines of the scrolling region.
        The cursor position is, alas, undefined after using this command.
 
-       It is possible to get the effect of insert or delete line using <STRONG>csr</STRONG>  on
-       a  properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save and restore cursor) com-
-       mands may be useful for ensuring that  your  synthesized  insert/delete
-       string  does  not  move the cursor.  (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library
-       does  this  synthesis  automatically,   so   you   need   not   compose
+       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 combi-
-       nation of index with the memory-lock feature found  on  some  terminals
-       (like the HP-700/90 series, which however also has insert/delete).
+       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 win-
-       dow is effectively a view port on a screen-sized canvas.  To  test  for
-       this capability, create a scrolling region in the middle of the screen,
-       write something to the bottom line, move the cursor to the top  of  the
-       region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>.  If the data scrolled off the
-       bottom of the region by the  <STRONG>ri</STRONG>  re-appears,  then  scrolling  is  non-
-       destructive.   System  V  and XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and
-       <STRONG>rin</STRONG> will simulate destructive scrolling; their  documentation  cautions
-       you  not to define <STRONG>csr</STRONG> unless this is true.  This <STRONG>curses</STRONG> implementation
-       is more liberal and will do explicit erases after scrolling if <STRONG>ndsrc</STRONG> is
-       defined.
+       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
 </PRE><H3><a name="h3-Insert_Delete-Character">Insert/Delete Character</a></H3><PRE>
        There are two basic kinds of  intelligent  terminals  with  respect  to
        insert/delete  character  which  can  be described using <EM>terminfo.</EM>  The
-       most common insert/delete character operations affect only the  charac-
-       ters  on  the current line and shift characters off the end of the line
-       rigidly.  Other terminals, such as the Concept 100 and the Perkin Elmer
-       Owl, make a distinction between typed and untyped blanks on the screen,
-       shifting upon an insert or delete only  to  an  untyped  blank  on  the
-       screen which is either eliminated, or expanded to two untyped blanks.
-
-       You  can determine the kind of terminal you have by clearing the screen
-       and then typing text separated by cursor  motions.   Type  "abc    def"
-       using  local  cursor  motions  (not  spaces)  between the "abc" and the
-       "def".  Then position the cursor before the "abc" and put the  terminal
-       in  insert  mode.   If typing characters causes the rest of the line to
-       shift rigidly and characters to fall off the end,  then  your  terminal
-       does  not  distinguish  between  blanks  and untyped positions.  If the
-       "abc" shifts over to the "def" which then move together around the  end
-       of  the current line and onto the next as you insert, you have the sec-
-       ond type of terminal, and should give the capability <STRONG>in</STRONG>,  which  stands
-       for "insert null".
-
-       While  these  are  two  logically  separate attributes (one line versus
-       multi-line insert mode, and special treatment  of  untyped  spaces)  we
-       have  seen  no terminals whose insert mode cannot be described with the
+       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
+       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
+       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,
+       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
+       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
+       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
+       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
+       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
+       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
+       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
+       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
+       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
+       Other  capabilities  to  enter various highlighting modes include <STRONG>blink</STRONG>
+       (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG> (dim or  half-bright)  <STRONG>invis</STRONG>
+       (blanking  or invisible text) <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG>
+       (turn off <EM>all</EM> attribute modes) <STRONG>smacs</STRONG>  (enter  alternate  character  set
        mode) and <STRONG>rmacs</STRONG> (exit alternate character set mode).  Turning on any of
        these modes singly may or may not turn off other modes.
 
-       If  there  is  a  sequence to set arbitrary combinations of modes, this
-       should be given as <STRONG>sgr</STRONG> (set attributes),  taking  9  parameters.   Each
-       parameter  is either 0 or nonzero, as the corresponding attribute is on
-       or off.  The 9 parameters are, in order: standout, underline,  reverse,
-       blink,  dim,  bold,  blank,  protect, alternate character set.  Not all
-       modes need be supported by <STRONG>sgr</STRONG>, only those for which corresponding sep-
-       arate attribute commands exist.
+       If there is a sequence to set arbitrary  combinations  of  modes,  this
+       should  be  given  as  <STRONG>sgr</STRONG> (set attributes), taking 9 parameters.  Each
+       parameter is either 0 or nonzero, as the corresponding attribute is  on
+       or  off.  The 9 parameters are, in order: standout, underline, reverse,
+       blink, dim, bold, blank, protect, alternate  character  set.   Not  all
+       modes  need  be  supported  by  <STRONG>sgr</STRONG>, only those for which corresponding
+       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
                p8                   protect          not used
                p9                   altcharset       ^O (off) ^N (on)
 
-       We  begin each escape sequence by turning off any existing modes, since
-       there is no quick way to determine whether they are  active.   Standout
-       is  set up to be the combination of reverse and bold.  The vt220 termi-
-       nal has a protect mode, though it is not commonly used in  sgr  because
-       it  protects  characters  on  the screen from the host's erasures.  The
-       altcharset mode also is different in  that  it  is  either  ^O  or  ^N,
-       depending  on whether it is off or on.  If all modes are turned on, the
+       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  out-
-       put  when  either  p1  or  p3  is  true, that is, if either standout or
+       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
            sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
                %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
 
-       Remember that if you specify sgr, you must also  specify  sgr0.   Also,
-       some  implementations  rely on sgr being given if sgr0 is, Not all ter-
-       minfo entries necessarily have an sgr string, however.   Many  terminfo
-       entries are derived from termcap entries which have no sgr string.  The
-       only drawback to adding an sgr string is that termcap also assumes that
-       sgr0 does not exit alternate character set mode.
-
-       Terminals  with  the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit special "cook-
-       ies" when they receive mode-setting sequences, which affect the display
-       algorithm  rather than having extra bits for each character.  Some ter-
-       minals, such as the HP 2621, automatically  leave  standout  mode  when
-       they  move  to  a  new line or the cursor is addressed.  Programs using
-       standout mode should exit standout mode before  moving  the  cursor  or
-       sending  a  newline,  unless  the <STRONG>msgr</STRONG> capability, asserting that it is
+       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
+       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
+       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
+       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
+       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
+       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>.
 
 
 </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
+       If  the  terminal  has  a keypad that transmits codes when the keys are
+       pressed, this information can be given.  Note that it is  not  possible
        to handle terminals where the keypad only works in local (this applies,
-       for  example, to the unshifted HP 2621 keys).  If the keypad can be set
-       to transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and <STRONG>rmkx</STRONG>.  Other-
-       wise the keypad is assumed to always transmit.
+       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>
+       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
+       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>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
+       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
+       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
+       out of this range may program undefined keys in  a  terminal  dependent
+       manner.   The  difference between the capabilities is that <STRONG>pfkey</STRONG> causes
+       pressing the given key to be the same as  the  user  typing  the  given
+       string;  <STRONG>pfloc</STRONG>  causes  the  string  to  be executed by the terminal in
        local; and <STRONG>pfx</STRONG> causes the string to be transmitted to the computer.
 
-       The  capabilities  <STRONG>nlab</STRONG>,  <STRONG>lw</STRONG>  and  <STRONG>lh</STRONG> define the number of programmable
-       screen labels and their width and height.  If  there  are  commands  to
-       turn  the  labels on and off, give them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>.  <STRONG>smln</STRONG> is nor-
-       mally output after one or more pln sequences  to  make  sure  that  the
+       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
+       <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
+           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>
+       <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
+           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
+           in non-volatile memory, the terminfo description  can  assume  that
            they are properly set.
 
        Other capabilities include
 
        <STRONG>o</STRONG>   <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initialization strings for the terminal,
 
-       <STRONG>o</STRONG>   <STRONG>iprog</STRONG>, the path name of a program to be run to initialize the  ter-
-           minal,
+       <STRONG>o</STRONG>   <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
+       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>.
+              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
+       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
+       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  the  <STRONG>reset</STRONG>  program
-       (an  alias of <STRONG>tset</STRONG>), which is used when the terminal gets into a wedged
-       state.  Commands are normally placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG>  and  <STRONG>rf</STRONG>  only  if
-       they  produce annoying effects on the screen and are not necessary when
-       logging in.  For example, the command to set the vt100  into  80-column
-       mode would normally be part of <STRONG>is2</STRONG>, but it causes an annoying glitch of
-       the screen and is not normally needed since  the  terminal  is  usually
-       already in 80 column mode.
-
-       The  <STRONG>reset</STRONG>  program  writes  strings including <STRONG>iprog</STRONG>, etc., in the same
-       order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc., instead of  <STRONG>is1</STRONG>,  etc.   If
-       any  of  <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset capability strings are missing, the
-       <STRONG>reset</STRONG> program falls back upon the corresponding initialization capabil-
-       ity string.
-
-       If  there are commands to set and clear tab stops, they can be given as
+       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
+       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
+       The  <STRONG>tput</STRONG>  <STRONG>reset</STRONG>  command uses the same capability strings as the <STRONG>reset</STRONG>
+       command, although the two programs (<STRONG>tput</STRONG> and <STRONG>reset</STRONG>)  provide  different
        command-line options.
 
-       In practice, these terminfo capabilities are not often used in initial-
-       ization of tabs (though they are required for the <STRONG>tabs</STRONG> program):
+       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
+           The  only  exception  was  the  AT&amp;T 2300 series, which set tabs to
            every <EM>five</EM> columns.
 
-       <STRONG>o</STRONG>   In  particular, developers of the hardware terminals which are com-
-           monly used as models for modern terminal emulators  provided  docu-
-           mentation demonstrating that <EM>eight</EM> columns were the standard.
+       <STRONG>o</STRONG>   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
+           use   the  <STRONG>tbc</STRONG>  (<STRONG>clear_all_tabs</STRONG>)  and  <STRONG>hts</STRONG>  (<STRONG>set_tab</STRONG>)  capabilities
+           directly only when the <STRONG>it</STRONG> (<STRONG>init_tabs</STRONG>) capability is set to a  value
            other than <EM>eight</EM>.
 
 
 </PRE><H3><a name="h3-Delays-and-Padding">Delays and Padding</a></H3><PRE>
-       Many older and slower terminals do not support either XON/XOFF  or  DTR
-       handshaking,  including  hard copy terminals and some very archaic CRTs
-       (including, for example, DEC VT100s).  These may require padding  char-
-       acters after certain cursor motions and screen changes.
+       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  effec-
-       tively  that  do  not  have  a speed limit.  Padding information should
-       still be included so that routines can make better decisions about rel-
-       ative costs, but actual pad characters will not be transmitted.
+       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
+       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>
+       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
+       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
+       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
+       status  line  of  this  kind,  as  would a 24-line VT100 with a 23-line
        scrolling region set up on initialization.  This situation is indicated
        by the <STRONG>hs</STRONG> capability.
 
-       Some terminals with status lines need special sequences to  access  the
-       status  line.  These may be expressed as a string with single parameter
-       <STRONG>tsl</STRONG> which takes the cursor to a given zero-origin column on the  status
-       line.   The  capability <STRONG>fsl</STRONG> must return to the main-screen cursor posi-
-       tions before the last <STRONG>tsl</STRONG>.  You may need to embed the string values  of
-       <STRONG>sc</STRONG>  (save  cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG> and <STRONG>fsl</STRONG> to accomplish
-       this.
+       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
+       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,
+       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.
+       The <STRONG>ncurses</STRONG> implementation does not yet use any of these  capabilities.
        They are documented here in case they ever become important.
 
 
 </PRE><H3><a name="h3-Line-Graphics">Line Graphics</a></H3><PRE>
-       Many terminals have alternate character sets useful for  forms-drawing.
-       Terminfo and <STRONG>curses</STRONG> have built-in support for most of the drawing char-
-       acters supported by the VT100,  with  some  characters  from  the  AT&amp;T
-       4410v1  added.   This  alternate  character set may be specified by the
+       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>Glyph</STRONG>                       <STRONG>ACS</STRONG>            <STRONG>Ascii</STRONG>     <STRONG>acsc</STRONG>     <STRONG>acsc</STRONG>
          tee pointing right          ACS_LTEE       +         t        0x74
          tee pointing left           ACS_RTEE       +         u        0x75
          tee pointing up             ACS_BTEE       +         v        0x76
+
          tee pointing down           ACS_TTEE       +         w        0x77
          vertical line               ACS_VLINE      |         x        0x78
          less-than-or-equal-to       ACS_LEQUAL     &lt;         y        0x79
 
        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"
+       <STRONG>o</STRONG>   X/Open  Curses  incorrectly  states that the mapping for <EM>lantern</EM> is
+           uppercase "I" although Unix implementations use the  lowercase  "i"
            mapping.
 
-       <STRONG>o</STRONG>   The DEC VT100 implemented graphics using  the  alternate  character
-           set  feature, temporarily switching <EM>modes</EM> and sending characters in
-           the range 0x60 (96) to 0x7e (126) (the <STRONG>acsc</STRONG> <STRONG>Value</STRONG> column in the ta-
-           ble).
+       <STRONG>o</STRONG>   The  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
+           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
+           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
+       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
+       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":
            is usually 8), and can set character-cell foreground and background
            characters independently, mixing them into <EM>N</EM> * <EM>N</EM> color-pairs.
 
-       <STRONG>o</STRONG>   On HP-like terminals, the user must set each color  pair  up  sepa-
-           rately  (foreground and background are not independently settable).
-           Up to <EM>M</EM> color-pairs may be set up from 2*<EM>M</EM> different colors.  ANSI-
-           compatible terminals are Tektronix-like.
+       <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>
+       numeric  capabilities  <STRONG>colors</STRONG>  and <STRONG>pairs</STRONG> specify the maximum numbers of
+       colors and color-pairs that can be displayed  simultaneously.   The  <STRONG>op</STRONG>
        (original pair) string resets foreground and background colors to their
-       default  values  for  the terminal.  The <STRONG>oc</STRONG> string resets all colors or
-       color-pairs to their default values for the terminal.   Some  terminals
-       (including many PC terminal emulators) erase screen areas with the cur-
-       rent background color rather  than  the  power-up  default  background;
+       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 inabil-
-       ity of some devices to set foreground and  background  colors  indepen-
-       dently), there are separate capabilities for setting these features:
+       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 Tek-
-           tronix-type terminal, use <STRONG>setaf</STRONG> (set  ANSI  foreground)  and  <STRONG>setab</STRONG>
-           (set  ANSI background) or <STRONG>setf</STRONG> (set foreground) and <STRONG>setb</STRONG> (set back-
-           ground).  These take one parameter, the  color  number.   The  SVr4
+       <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>, respec-
-           tively.
+           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>, respec-
-           tively.  The <STRONG>vidputs</STRONG> and the <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> functions  use  the  <STRONG>setaf</STRONG>
-           and <STRONG>setab</STRONG> capabilities if they are defined.
+           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 argu-
-       ment each.  Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> are portably defined  as
-       follows  (the  middle  column  is the symbolic #define available in the
+       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 loca-
-       tions in color space.
+       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
                     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
                     yellow    <STRONG>COLOR_YELLOW</STRONG>      6     max,max,0
                     white     <STRONG>COLOR_WHITE</STRONG>       7     max,max,max
 
-       It is important to not confuse the two sets of color capabilities; oth-
-       erwise red/blue will be interchanged on the display.
+       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.
            indicate that colors can be modified.  If so, the <STRONG>initc</STRONG>  capability
            will take a color number (0 to <STRONG>colors</STRONG> - 1)and three more parameters
            which describe the color.  These three parameters default to  being
-           interpreted as RGB (Red, Green, Blue) values.  If the boolean capa-
-           bility <STRONG>hls</STRONG> is present, they are instead  as  HLS  (Hue,  Lightness,
+           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 num-
-           ber  (0  to  <STRONG>max_pairs</STRONG> - 1), and two triples describing first back-
-           ground and then foreground colors.  These parameters must be  (Red,
-           Green, Blue) or (Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
+           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 reg-
-       ister these collisions with the <STRONG>ncv</STRONG> capability.  This is a bit-mask  of
-       attributes  not to be used when colors are enabled.  The correspondence
-       with the attributes understood by <STRONG>curses</STRONG> is as follows:
+       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>
                   A_STANDOUT             0     1            sgr
                   A_VERTICAL             14    16384        sgr1
                   A_ITALIC               15    32768        sitm
 
-       For example, on many IBM PC consoles, the underline attribute  collides
-       with  the  foreground  color  blue  and is not available in color mode.
+       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
+       SVr4  curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it and optimizes
        the output in favor of colors.
 
 
 </PRE><H3><a name="h3-Miscellaneous">Miscellaneous</a></H3><PRE>
-       If  the  terminal requires other than a null (zero) character as a pad,
-       then this can be given as pad.  Only the first  character  of  the  pad
+       If the terminal requires other than a null (zero) character as  a  pad,
+       then  this  can  be  given as pad.  Only the first character of the pad
        string is used.  If the terminal does not have a pad character, specify
-       npc.  Note that ncurses implements the termcap-compatible <STRONG>PC</STRONG>  variable;
-       though  the  application  may  set this value to something other than a
-       null, ncurses will test <STRONG>npc</STRONG> first and use napms if the terminal has  no
+       npc.   Note that ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
+       though the application may set this value to  something  other  than  a
+       null,  ncurses will test <STRONG>npc</STRONG> first and use napms if the terminal has no
        pad character.
 
-       If  the terminal can move up or down half a line, this can be indicated
-       with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line down).  This is primarily use-
-       ful for superscripts and subscripts on hard-copy terminals.  If a hard-
-       copy terminal can eject to the next page (form feed), give this  as  <STRONG>ff</STRONG>
-       (usually control/L).
+       If 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  charac-
-       ters)  this  can  be  indicated with the parameterized string <STRONG>rep</STRONG>.  The
-       first parameter is the character to be repeated and the second  is  the
-       number of times to repeat it.  Thus, tparm(repeat_char, 'x', 10) is the
-       same as "xxxxxxxxxx".
+       If 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
+       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
+       <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
+       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
+       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
+       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
+       If  the terminal is one of those supported by the UNIX virtual terminal
        protocol, the terminal number can be given as <STRONG>vt</STRONG>.
 
-       Media  copy strings which control an auxiliary printer connected to the
-       terminal can be given as <STRONG>mc0</STRONG>: print the contents of  the  screen,  <STRONG>mc4</STRONG>:
-       turn  off  the printer, and <STRONG>mc5</STRONG>: turn on the printer.  When the printer
-       is on, all text sent to the terminal will be sent to the  printer.   It
-       is  undefined whether the text is also displayed on the terminal screen
-       when the printer is on.  A variation  <STRONG>mc5p</STRONG>  takes  one  parameter,  and
-       leaves the printer on for as many characters as the value of the param-
-       eter, then turns the printer off.  The parameter should not exceed 255.
-       All  text,  including <STRONG>mc4</STRONG>, is transparently passed to the printer while
-       an <STRONG>mc5p</STRONG> is in effect.
+       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-Braindamage">Glitches and Braindamage</a></H3><PRE>
-       Hazeltine terminals, which do not allow "~" characters to be  displayed
+       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
+       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
+       If  <STRONG>el</STRONG>  is  required  to get rid of standout (instead of merely writing
        normal text on top of it), <STRONG>xhp</STRONG> should be given.
 
        Teleray terminals, where tabs turn all characters moved over to blanks,
-       should indicate <STRONG>xt</STRONG> (destructive tabs).  Note: the  variable  indicating
-       this  is  now  "dest_tabs_magic_smso";  in  older versions, it was tel-
-       eray_glitch.  This glitch is also taken to mean that it is not possible
-       to position the cursor on top of a "magic cookie", that to erase stand-
-       out mode it is instead necessary to use delete and  insert  line.   The
-       ncurses implementation ignores this glitch.
-
-       The  Beehive Superbee, which is unable to correctly transmit the escape
-       or control/C characters, has <STRONG>xsb</STRONG>, indicating that the f1  key  is  used
-       for  escape  and  f2  for control/C.  (Only certain Superbees have this
-       problem, depending on the ROM.)  Note that in older terminfo  versions,
+       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 ncurses implementation ignores this glitch.
+
+       The Beehive Superbee, which is unable to correctly transmit the  escape
+       or  control/C  characters,  has <STRONG>xsb</STRONG>, indicating that the f1 key is used
+       for escape and f2 for control/C.  (Only  certain  Superbees  have  this
+       problem,  depending on the ROM.)  Note that in older terminfo versions,
        this capability was called "beehive_glitch"; it is now "no_esc_ctl_c".
 
-       Other  specific terminal problems may be corrected by adding more capa-
-       bilities of the form <STRONG>x</STRONG><EM>x</EM>.
+       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.  Unfor-
-       tunately, the termcap translations are much more strictly  limited  (to
-       1023  bytes),  thus  termcap  translations of long terminfo entries can
+       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,
+       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
+       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
+       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
+       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-
+       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>   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
+       <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
+       <STRONG>o</STRONG>   and  <STRONG>tgetent</STRONG>  is  searching  for a terminal type that either is the
+           long entry, appears in the termcap file after the  long  entry,  or
+           does  not  appear in the file at all (so that <STRONG>tgetent</STRONG> has to search
            the whole termcap file).
 
-       Then  <STRONG>tgetent</STRONG>  will  overwrite  memory, perhaps its stack, and probably
-       core dump the program.  Programs like telnet are particularly  vulnera-
-       ble;  modern telnets pass along values like the terminal type automati-
-       cally.  The results are almost as undesirable with a  termcap  library,
-       like  SunOS  4.1.3 and Ultrix 4.4, that prints warning messages when it
-       reads an overly long termcap entry.  If  a  termcap  library  truncates
-       long  entries,  like  OSF/1  3.0,  it  is immune to dying here but will
-       return incorrect data for the terminal.
+       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
+       The  "after  tc  expansion"  length  will  have a similar effect to the
        above, but only for people who actually set TERM to that terminal type,
-       since <STRONG>tgetent</STRONG> only does "tc" expansion once it is  found  the  terminal
+       since  <STRONG>tgetent</STRONG>  only  does "tc" expansion once it is found the terminal
        type it was looking for, not while searching.
 
-       In  summary,  a termcap entry that is longer than 1023 bytes can cause,
-       on various combinations of termcap libraries and applications,  a  core
-       dump,  warnings, or incorrect operation.  If it is too long even before
-       "tc" expansion, it will have this effect even for users of  some  other
-       terminal  types  and  users whose TERM variable does not have a termcap
+       In summary, a termcap entry that is longer than 1023 bytes  can  cause,
+       on  various  combinations of termcap libraries and applications, a core
+       dump, warnings, or incorrect operation.  If it is too long even  before
+       "tc"  expansion,  it will have this effect even for users of some other
+       terminal types and users whose TERM variable does not  have  a  termcap
        entry.
 
-       When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG>  implementation  of
-       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>  issues  warning  messages  when the pre-tc length of a termcap
-       translation is too long.  The -c (check) option  also  checks  resolved
+       When  in  -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> implementation of
+       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> issues warning messages when the pre-tc  length  of  a  termcap
+       translation  is  too  long.  The -c (check) option also checks resolved
        (after tc expansion) lengths.
 
 
 </PRE><H3><a name="h3-Binary-Compatibility">Binary Compatibility</a></H3><PRE>
-       It  is  not  wise  to  count  on portability of binary terminfo entries
-       between commercial UNIX versions.  The problem is  that  there  are  at
-       least  two  versions  of  terminfo (under HP-UX and AIX) which diverged
-       from System V terminfo after SVr1, and have added  extension  capabili-
-       ties  to the string table that (in the binary format) collide with Sys-
-       tem V and XSI Curses extensions.
+       It is not wise to count  on  portability  of  binary  terminfo  entries
+       between  commercial  UNIX  versions.   The problem is that there are at
+       least two versions of terminfo (under HP-UX  and  AIX)  which  diverged
+       from   System   V   terminfo  after  SVr1,  and  have  added  extension
+       capabilities to the string table that (in the  binary  format)  collide
+       with System V and XSI Curses extensions.
 
 
 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
-       Searching  for  terminal  descriptions  in  <STRONG>$HOME/.terminfo</STRONG>  and   TER-
-       MINFO_DIRS is not supported by older implementations.
+       Searching    for   terminal   descriptions   in   <STRONG>$HOME/.terminfo</STRONG>   and
+       TERMINFO_DIRS is not supported by older implementations.
 
-       Some  SVr4  <STRONG>curses</STRONG>  implementations,  and  all previous to SVr4, do not
+       Some SVr4 <STRONG>curses</STRONG> implementations, and all  previous  to  SVr4,  do  not
        interpret the %A and %O operators in parameter strings.
 
-       SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses  movement  while  in  an
-       alternate-character-set  mode  (such modes may, among other things, map
-       CR and NL to characters  that  do  not  trigger  local  motions).   The
-       <STRONG>ncurses</STRONG>  implementation  ignores  <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode.  This raises
-       the possibility that an XPG4 implementation making the opposite  inter-
-       pretation  may  need  terminfo  entries  made  for <STRONG>ncurses</STRONG> to have <STRONG>msgr</STRONG>
+       SVr4/XPG4  do  not  specify  whether <STRONG>msgr</STRONG> licenses movement while in an
+       alternate-character-set mode (such modes may, among other  things,  map
+       CR  and  NL  to  characters  that  do  not trigger local motions).  The
+       <STRONG>ncurses</STRONG> implementation ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG>  mode.   This  raises
+       the  possibility  that  an  XPG4  implementation  making  the  opposite
+       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 better update efficiency.  See
+       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  parameter  substitutions  for  <STRONG>set_clock</STRONG> and <STRONG>display_clock</STRONG> are not
+       documented in SVr4 or the XSI Curses standard.  They are  deduced  from
        the documentation for the AT&amp;T 505 terminal.
 
-       Be careful assigning the <STRONG>kmous</STRONG> capability.  The <STRONG>ncurses</STRONG>  library  wants
-       to  interpret  it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals and emulators like
-       xterm that can return mouse-tracking information in the  keyboard-input
+       Be  careful  assigning the <STRONG>kmous</STRONG> capability.  The <STRONG>ncurses</STRONG> library wants
+       to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals and  emulators  like
+       xterm  that can return mouse-tracking information in the keyboard-input
        stream.
 
-       X/Open  Curses  does  not  mention italics.  Portable applications must
-       assume that  numeric  capabilities  are  signed  16-bit  values.   This
-       includes  the  <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM>  (ncv)  capability.  The 32768 mask value
-       used for italics with ncv can be confused with an absent  or  cancelled
-       ncv.   If  italics  should work with colors, then the ncv value must be
+       X/Open Curses does not mention  italics.   Portable  applications  must
+       assume  that  numeric  capabilities  are  signed  16-bit  values.  This
+       includes the <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM> (ncv) capability.   The  32768  mask  value
+       used  for  italics with ncv can be confused with an absent or cancelled
+       ncv.  If italics should work with colors, then the ncv  value  must  be
        specified, even if it is zero.
 
-       Different commercial ports of terminfo  and  curses  support  different
-       subsets of the XSI Curses standard and (in some cases) different exten-
-       sion sets.  Here is a summary, accurate as of October 1995:
+       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, accurate as of October 1995:
 
        <STRONG>o</STRONG>   <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabilities.
 
        <STRONG>o</STRONG>   <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented extended string
            capability (<STRONG>set_pglen</STRONG>).
 
-       <STRONG>o</STRONG>   <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of terminfo capa-
-           bilities.  The  booleans  end  with  <STRONG>xon_xoff</STRONG>;  the  numerics  with
+       <STRONG>o</STRONG>   <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These  support  a  restricted  subset  of  terminfo
+           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>   <STRONG>HP/UX</STRONG>  --  Supports  the  SVr1  subset,  plus the SVr[234] numerics
-           <STRONG>num_labels</STRONG>,  <STRONG>label_height</STRONG>,  <STRONG>label_width</STRONG>,  plus  function  keys   11
-           through  63,  plus  <STRONG>plab_norm</STRONG>,  <STRONG>label_on</STRONG>,  and <STRONG>label_off</STRONG>, plus some
+       <STRONG>o</STRONG>   <STRONG>HP/UX</STRONG> -- Supports the  SVr1  subset,  plus  the  SVr[234]  numerics
+           <STRONG>num_labels</STRONG>,   <STRONG>label_height</STRONG>,  <STRONG>label_width</STRONG>,  plus  function  keys  11
+           through 63, plus <STRONG>plab_norm</STRONG>,  <STRONG>label_on</STRONG>,  and  <STRONG>label_off</STRONG>,  plus  some
            incompatible extensions in the string table.
 
-       <STRONG>o</STRONG>   <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11 through  63,
+       <STRONG>o</STRONG>   <STRONG>AIX</STRONG>  -- Supports the SVr1 subset, plus function keys 11 through 63,
            plus a number of incompatible string table extensions.
 
        <STRONG>o</STRONG>   <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
-       <STRONG><A HREF="tabs.1m.html">tabs(1m)</A></STRONG>,  <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG>curs_vari-</STRONG>
-       <STRONG><A HREF="curs_variables.3x.html">ables(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.  <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>.  <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
+       <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_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>.
 
 
 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
 <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>