ncurses 6.0 - patch 20160326
[ncurses.git] / doc / html / man / terminfo.5.html
index 51a41ace5eb574208e4cb82356f05ac146d99dd6..a769f917fd13beeccd3a0aeae6ce30136763679f 100644 (file)
@@ -1,4 +1,3 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   * t
   * DO NOT EDIT THIS FILE BY HAND!
@@ -6,7 +5,7 @@
   * Note: this must be run through tbl before nroff.
   * The magic cookie on the first line triggers this under some man programs.
   ****************************************************************************
-  * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -32,9 +31,9 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: terminfo.head,v 1.16 2007/03/04 00:09:46 tom Exp @
+  * @Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp @
   * Head of terminfo man page ends here
-  * @Id: terminfo.tail,v 1.49 2008/02/16 20:57:43 tom Exp @
+  * @Id: terminfo.tail,v 1.69 2015/04/26 14:47:23 tom Exp @
   * Beginning of terminfo.tail file
   * This file is part of ncurses.
   * See "terminfo.head" for copyright.
   *.in +2
   *.TH
 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
 <TITLE>terminfo 5   File Formats</TITLE>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
-<H1>terminfo 5   File Formats</H1>
-<HR>
+<H1 class="no-header">terminfo 5   File Formats</H1>
 <PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>                   File Formats                  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 
 
-</PRE>
-<H2>NAME</H2><PRE>
+</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
        terminfo - terminal capability data base
 
 
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
+</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
        /usr/share/terminfo/*/*
 
 
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
        <EM>Terminfo</EM>  is  a  data  base  describing terminals, used by
-       screen-oriented programs  such  as  <STRONG><A HREF="nvi.1.html">nvi(1)</A></STRONG>,  <STRONG><A HREF="rogue.1.html">rogue(1)</A></STRONG>  and
+       screen-oriented programs  such  as  <STRONG>nvi(1)</STRONG>,  <STRONG>rogue(1)</STRONG>  and
        libraries  such  as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.  <EM>Terminfo</EM> describes termi-
        nals by giving a set of capabilities which they  have,  by
        specifying how to perform screen operations, and by speci-
        fying padding requirements and  initialization  sequences.
-       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20080621).
+       This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20160326).
 
        Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
        fields (embedded commas may be escaped with a backslash or
        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
+       root  name,  thus  "hp2621".  This name should not contain
        hyphens.  Modes that the hardware can be in, or user pref-
        erences,  should  be indicated by appending a hyphen and a
        mode suffix.  Thus, a vt100 in 132 column  mode  would  be
        vt100-w.  The following suffixes should be used where pos-
        sible:
 
-
       <STRONG>Suffix</STRONG>                  <STRONG>Meaning</STRONG>                   <STRONG>Example</STRONG>
       -<EM>nn</EM>      Number of lines on the screen            aaa-60
       -<EM>n</EM>p      Number of pages of memory                c100-4p
       -ns      No status line                           hp2626-ns
       -rv      Reverse video                            c100-rv
       -s       Enable status line                       vt100-s
-
       -vb      Use visible bell instead of beep         wy370-vb
+
       -w       Wide mode (&gt; 80 columns, usually 132)    vt100-w
 
        For more on terminal naming conventions, see  the  <STRONG>term(7)</STRONG>
        manual page.
 
-   <STRONG>Capabilities</STRONG>
+
+</PRE><H3><a name="h3-Predefined-Capabilities">Predefined Capabilities</a></H3><PRE>
        The  following  is  a  complete  table of the capabilities
        included in a terminfo description block and available  to
        terminfo-using code.  In each line of the table,
        These are the boolean capabilities:
 
 
-               <STRONG>Variable</STRONG>          <STRONG>Cap-</STRONG>  <STRONG>TCap</STRONG>      <STRONG>Description</STRONG>
-               <STRONG>Booleans</STRONG>          <STRONG>name</STRONG>  <STRONG>Code</STRONG>
-       auto_left_margin          bw    bw    cub1 wraps from col-
+               <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-
+       auto_right_margin         am     am   terminal has auto-
                                              matic margins
-       back_color_erase          bce   ut    screen erased with
+       back_color_erase          bce    ut   screen erased with
                                              background color
-       can_change                ccc   cc    terminal can re-
+       can_change                ccc    cc   terminal can re-
                                              define existing col-
                                              ors
-       ceol_standout_glitch      xhp   xs    standout not erased
+       ceol_standout_glitch      xhp    xs   standout not erased
                                              by overwriting (hp)
-       col_addr_glitch           xhpa  YA    only positive motion
+       col_addr_glitch           xhpa   YA   only positive motion
                                              for hpa/mhpa caps
 
 
-       cpi_changes_res           cpix  YF    changing character
+
+       cpi_changes_res           cpix   YF   changing character
                                              pitch changes reso-
                                              lution
-       cr_cancels_micro_mode     crxm  YB    using cr turns off
+       cr_cancels_micro_mode     crxm   YB   using cr turns off
                                              micro mode
-       dest_tabs_magic_smso      xt    xt    tabs destructive,
+       dest_tabs_magic_smso      xt     xt   tabs destructive,
                                              magic so char
                                              (t1061)
-       eat_newline_glitch        xenl  xn    newline ignored
+       eat_newline_glitch        xenl   xn   newline ignored
                                              after 80 cols (con-
                                              cept)
-       erase_overstrike          eo    eo    can erase over-
+       erase_overstrike          eo     eo   can erase over-
                                              strikes with a blank
-       generic_type              gn    gn    generic line type
-       hard_copy                 hc    hc    hardcopy terminal
-       hard_cursor               chts  HC    cursor is hard to
+       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
+       has_meta_key              km     km   Has a meta key
                                              (i.e., sets 8th-bit)
-       has_print_wheel           daisy YC    printer needs opera-
+       has_print_wheel           daisy  YC   printer needs opera-
                                              tor to change char-
                                              acter set
-       has_status_line           hs    hs    has extra status
+       has_status_line           hs     hs   has extra status
                                              line
-       hue_lightness_saturation  hls   hl    terminal uses only
+       hue_lightness_saturation  hls    hl   terminal uses only
                                              HLS color notation
                                              (Tektronix)
-       insert_null_glitch        in    in    insert mode distin-
+       insert_null_glitch        in     in   insert mode distin-
                                              guishes nulls
-       lpi_changes_res           lpix  YG    changing line pitch
+       lpi_changes_res           lpix   YG   changing line pitch
                                              changes resolution
-       memory_above              da    da    display may be
+       memory_above              da     da   display may be
                                              retained above the
                                              screen
-       memory_below              db    db    display may be
+       memory_below              db     db   display may be
                                              retained below the
                                              screen
-       move_insert_mode          mir   mi    safe to move while
+       move_insert_mode          mir    mi   safe to move while
                                              in insert mode
-       move_standout_mode        msgr  ms    safe to move while
+       move_standout_mode        msgr   ms   safe to move while
                                              in standout mode
-       needs_xon_xoff            nxon  nx    padding will not
+       needs_xon_xoff            nxon   nx   padding will not
                                              work, xon/xoff
                                              required
-       no_esc_ctlc               xsb   xb    beehive (f1=escape,
+       no_esc_ctlc               xsb    xb   beehive (f1=escape,
                                              f2=ctrl C)
-       no_pad_char               npc   NP    pad character does
+       no_pad_char               npc    NP   pad character does
                                              not exist
-       non_dest_scroll_region    ndscr ND    scrolling region is
+       non_dest_scroll_region    ndscr  ND   scrolling region is
                                              non-destructive
-       non_rev_rmcup             nrrmc NR    smcup does not
+       non_rev_rmcup             nrrmc  NR   smcup does not
                                              reverse rmcup
-       over_strike               os    os    terminal can over-
+       over_strike               os     os   terminal can over-
                                              strike
-       prtr_silent               mc5i  5i    printer will not
+       prtr_silent               mc5i   5i   printer will not
                                              echo on screen
-       row_addr_glitch           xvpa  YD    only positive motion
+       row_addr_glitch           xvpa   YD   only positive motion
                                              for vpa/mvpa caps
-       semi_auto_right_margin    sam   YE    printing in last
+       semi_auto_right_margin    sam    YE   printing in last
                                              column causes cr
-       status_line_esc_ok        eslok es    escape can be used
+       status_line_esc_ok        eslok  es   escape can be used
                                              on the status line
-       tilde_glitch              hz    hz    cannot print ~'s
-                                             (hazeltine)
+       tilde_glitch              hz     hz   cannot print ~'s
+                                             (Hazeltine)
 
 
-       transparent_underline     ul    ul    underline character
+       transparent_underline     ul     ul   underline character
                                              overstrikes
-       xon_xoff                  xon   xo    terminal uses
+       xon_xoff                  xon    xo   terminal uses
                                              xon/xoff handshaking
 
        These are the numeric capabilities:
 
 
-            <STRONG>Variable</STRONG>         <STRONG>Cap-</STRONG>     <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
-             <STRONG>Numeric</STRONG>         <STRONG>name</STRONG>     <STRONG>Code</STRONG>
-       columns               cols     co     number of columns in
+               <STRONG>Variable</STRONG>          <STRONG>Cap-</STRONG>   <STRONG>TCap</STRONG>     <STRONG>Description</STRONG>
+                <STRONG>Numeric</STRONG>          <STRONG>name</STRONG>   <STRONG>Code</STRONG>
+       columns                   cols   co   number of columns in
                                              a line
-       init_tabs             it       it     tabs initially every
+       init_tabs                 it     it   tabs initially every
                                              # spaces
-       label_height          lh       lh     rows in each label
-       label_width           lw       lw     columns in each
+       label_height              lh     lh   rows in each label
+       label_width               lw     lw   columns in each
                                              label
-       lines                 lines    li     number of lines on
+       lines                     lines  li   number of lines on
                                              screen or page
-       lines_of_memory       lm       lm     lines of memory if &gt;
+       lines_of_memory           lm     lm   lines of memory if &gt;
                                              line. 0 means varies
-       magic_cookie_glitch   xmc      sg     number of blank
+       magic_cookie_glitch       xmc    sg   number of blank
                                              characters left by
                                              smso or rmso
-       max_attributes        ma       ma     maximum combined
+       max_attributes            ma     ma   maximum combined
                                              attributes terminal
                                              can handle
-       max_colors            colors   Co     maximum number of
+       max_colors                colors Co   maximum number of
                                              colors on screen
-       max_pairs             pairs    pa     maximum number of
+       max_pairs                 pairs  pa   maximum number of
                                              color-pairs on the
                                              screen
-       maximum_windows       wnum     MW     maximum number of
-                                             defineable windows
-       no_color_video        ncv      NC     video attributes
+       maximum_windows           wnum   MW   maximum number of
+                                             definable windows
+       no_color_video            ncv    NC   video attributes
                                              that cannot be used
                                              with colors
-       num_labels            nlab     Nl     number of labels on
+       num_labels                nlab   Nl   number of labels on
                                              screen
-       padding_baud_rate     pb       pb     lowest baud rate
+       padding_baud_rate         pb     pb   lowest baud rate
                                              where padding needed
-       virtual_terminal      vt       vt     virtual terminal
+       virtual_terminal          vt     vt   virtual terminal
                                              number (CB/unix)
-       width_status_line     wsl      ws     number of columns in
+       width_status_line         wsl    ws   number of columns in
                                              status line
 
        The following numeric  capabilities  are  present  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
+               <STRONG>Variable</STRONG>          <STRONG>Cap-</STRONG>   <STRONG>TCap</STRONG>     <STRONG>Description</STRONG>
+                <STRONG>Numeric</STRONG>          <STRONG>name</STRONG>   <STRONG>Code</STRONG>
+       bit_image_entwining       bitwin Yo   number of passes for
                                              each bit-image row
-       bit_image_type         bitype  Yp     type of bit-image
+       bit_image_type            bitype Yp   type of bit-image
                                              device
-       buffer_capacity        bufsz   Ya     numbers of bytes
+       buffer_capacity           bufsz  Ya   numbers of bytes
                                              buffered before
                                              printing
-       buttons                btns    BT     number of buttons on
+       buttons                   btns   BT   number of buttons on
                                              mouse
-       dot_horz_spacing       spinh   Yc     spacing of dots hor-
+       dot_horz_spacing          spinh  Yc   spacing of dots hor-
                                              izontally in dots
                                              per inch
 
-       dot_vert_spacing       spinv   Yb     spacing of pins ver-
+       dot_vert_spacing          spinv  Yb   spacing of pins ver-
                                              tically in pins per
                                              inch
-       max_micro_address      maddr   Yd     maximum value in
+       max_micro_address         maddr  Yd   maximum value in
                                              micro_..._address
-       max_micro_jump         mjump   Ye     maximum value in
+       max_micro_jump            mjump  Ye   maximum value in
                                              parm_..._micro
-       micro_col_size         mcs     Yf     character step size
+       micro_col_size            mcs    Yf   character step size
                                              when in micro mode
-       micro_line_size        mls     Yg     line step size when
+       micro_line_size           mls    Yg   line step size when
                                              in micro mode
-       number_of_pins         npins   Yh     numbers of pins in
+       number_of_pins            npins  Yh   numbers of pins in
                                              print-head
-       output_res_char        orc     Yi     horizontal resolu-
+       output_res_char           orc    Yi   horizontal resolu-
                                              tion in units per
                                              line
-       output_res_horz_inch   orhi    Yk     horizontal resolu-
+       output_res_horz_inch      orhi   Yk   horizontal resolu-
                                              tion in units per
                                              inch
-       output_res_line        orl     Yj     vertical resolution
+       output_res_line           orl    Yj   vertical resolution
                                              in units per line
-       output_res_vert_inch   orvi    Yl     vertical resolution
+       output_res_vert_inch      orvi   Yl   vertical resolution
                                              in units per inch
-       print_rate             cps     Ym     print rate in char-
+       print_rate                cps    Ym   print rate in char-
                                              acters per second
-       wide_char_size         widcs   Yn     character step size
+       wide_char_size            widcs  Yn   character step size
                                              when in double wide
                                              mode
 
                                              prototype !?
        create_window             cwin   CW   define a window #1
                                              from #2,#3 to #4,#5
-       cursor_address            cup    cm   move to row #1
-                                             columns #2
+       cursor_address            cup    cm   move to row #1 col-
+                                             umns #2
        cursor_down               cud1   do   down one line
        cursor_home               home   ho   home cursor (if no
                                              cup)
        zero_motion               zerom  Zx   No motion for subse-
                                              quent character
 
-       The  following  string  capabilities  are  present  in the
-       SVr4.0 term structure, but were originally not  documented
+       The following  string  capabilities  are  present  in  the
+       SVr4.0  term structure, but were originally not documented
        in the man page.
 
 
                                                multiple codesets
        color_names               colornm  Yw   Give name for
                                                color #1
-       define_bit_image_region   defbi    Yx   Define rectan-
-                                               gualar bit image
-                                               region
+       define_bit_image_region   defbi    Yx   Define rectangular
+                                               bit image region
        device_type               devt     dv   Indicate lan-
                                                guage/codeset sup-
                                                port
        set_page_length           slines   YZ   Set page length to
                                                #1 lines
 
+
        set_tb_margin             smgtb    MT   Sets both top and
                                                bottom margins to
                                                #1, #2
 
-        The XSI Curses  standard  added  these.   They  are  some
-        post-4.1  versions  of System V curses, e.g., Solaris 2.5
-        and IRIX 6.x.  The <STRONG>ncurses</STRONG> termcap  names  for  them  are
-        invented; according to the XSI Curses standard, they have
-        no termcap names.  If your compiled terminfo entries  use
-        these,  they  may  not be binary-compatible with System V
-        terminfo entries after SVr4.1; beware!
+        The XSI Curses standard added  these  hardcopy  capabili-
+        ties.  They were used in some post-4.1 versions of System
+        V curses, e.g., Solaris 2.5 and IRIX 6.x.  Except for <STRONG>YI</STRONG>,
+        the <STRONG>ncurses</STRONG> termcap names for them are invented.  Accord-
+        ing to the XSI Curses  standard,  they  have  no  termcap
+        names.  If your compiled terminfo entries use these, they
+        may not  be  binary-compatible  with  System  V  terminfo
+        entries after SVr4.1; beware!
 
 
                 <STRONG>Variable</STRONG>         <STRONG>Cap-</STRONG>   <STRONG>TCap</STRONG>     <STRONG>Description</STRONG>
         set_a_attributes         sgr1   sA   Define second set of
                                              video attributes
                                              #1-#6
-        set_pglen_inch           slengthsL   YI Set page length
-                                             to #1 hundredth of
-                                             an inch
-
-   <STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG>
+        set_pglen_inch           slengthYI   Set page length to
+                                             #1 hundredth of an
+                                             inch (some implemen-
+                                             tations use sL for
+                                             termcap).
+
+
+</PRE><H3><a name="h3-User-Defined-Capabilities">User-Defined Capabilities</a></H3><PRE>
+       The  preceding section listed the <EM>predefined</EM> capabilities.
+       They deal with some  special  features  for  terminals  no
+       longer  (or  possibly never) produced.  Occasionally there
+       are special features of newer terminals which are  awkward
+       or impossible to represent by reusing the predefined capa-
+       bilities.
+
+       <STRONG>ncurses</STRONG> addresses this limitation by allowing user-defined
+       capabilities.  The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG>
+       option for this purpose.   When  <STRONG>-x</STRONG>  is  set,  <STRONG>tic</STRONG>  treats
+       unknown  capabilities  as  user-defined.   That is, if <STRONG>tic</STRONG>
+       encounters a capability name which it does not  recognize,
+       it  infers  its  type (boolean, number or string) from the
+       syntax and makes an extended table entry for that capabil-
+       ity.   The <STRONG>use_extended_names</STRONG> function makes this informa-
+       tion conditionally available to applications.  The ncurses
+       library  provides the data leaving most of the behavior to
+       applications:
+
+       <STRONG>o</STRONG>   User-defined capability strings whose name begins with
+           "k" are treated as function keys.
+
+       <STRONG>o</STRONG>   The  types (boolean, number, string) determined by <STRONG>tic</STRONG>
+           can be inferred by successful calls on <STRONG>tigetflag</STRONG>, etc.
+
+       <STRONG>o</STRONG>   If the capability name happens to be  two  characters,
+           the  capability  is also available through the termcap
+           interface.
+
+       While termcap is said to be extensible because it does not
+       use  a  predefined set of capabilities, in practice it has
+       been limited  to  the  capabilities  defined  by  terminfo
+       implementations.   As  a  rule,  user-defined capabilities
+       intended for use by termcap applications should be limited
+       to  booleans  and  numbers  to avoid running past the 1023
+       byte limit assumed by termcap  implementations  and  their
+       applications.   In  particular, providing extended sets of
+       function keys (past the 60 numbered keys and  the  handful
+       of special named keys) is best done using the longer names
+       available using terminfo.
+
+
+</PRE><H3><a name="h3-A-Sample-Entry">A Sample Entry</a></H3><PRE>
        The following entry, describing an ANSI-standard terminal,
        is  representative  of  what a <STRONG>terminfo</STRONG> entry for a modern
        terminal typically looks like.
 
-     ansi|ansi/pc-term compatible with color,
-             mc5i,
-             colors#8, ncv#3, pairs#64,
-             cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-             cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
-             ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%p1%dG, ht=\E[I,
-             ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, .indn=\E[%p1%dT,
-             kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
-             kcuf1=\E[C, kcuu1=\E[A, kf1=\E[M, kf10=\E[V,
-             kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P,
-             kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
-             kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
-             op=\E[37;40m, rep=%p1%c\E[%p2%{1}%-%db,
-             rin=\E[%p1%dT, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B,
-             s3ds=\E+B, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-             setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-             setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-             sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
-             sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
-             u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
+       ansi|ansi/pc-term compatible with color,
+               am, mc5i, mir, msgr,
+               colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
+               acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260
+                    j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303
+                    u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+               bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+               cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+               cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+               cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+               dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+               el1=\E[1K, home=\E[H, hpa=\E[%i%p1%dG, ht=\E[I, hts=\EH,
+               ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+               indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+               kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
+               mc4=\E[4i, mc5=\E[5i, nel=\r\E[S, op=\E[39;49m,
+               rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rin=\E[%p1%dT,
+               rmacs=\E[10m, rmpch=\E[10m, rmso=\E[m, rmul=\E[m,
+               s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, s3ds=\E+B,
+               setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+               sgr=\E[0;10%?%p1%t;7%;
+                          %?%p2%t;4%;
+                          %?%p3%t;7%;
+                          %?%p4%t;5%;
+                          %?%p6%t;1%;
+                          %?%p7%t;8%;
+                          %?%p9%t;11%;m,
+               sgr0=\E[0;10m, smacs=\E[11m, smpch=\E[11m, smso=\E[7m,
+               smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
+               u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,
 
        Entries may continue onto multiple lines by placing  white
        space  at  the  beginning  of  each line except the first.
-       Comments may be included on lines  beginning  with  ``#''.
-       Capabilities in <EM>terminfo</EM> are of three types: Boolean capa-
-       bilities which indicate that the terminal has some partic-
-       ular  feature, numeric capabilities giving the size of the
-       terminal or the size  of  particular  delays,  and  string
-       capabilities,  which  give a sequence which can be used to
-       perform particular terminal operations.
+       Comments may be included  on  lines  beginning  with  "#".
+       Capabilities in <EM>terminfo</EM> are of three types:
+
+       <STRONG>o</STRONG>   Boolean  capabilities which indicate that the terminal
+           has some particular feature,
 
+       <STRONG>o</STRONG>   numeric capabilities giving the size of  the  terminal
+           or the size of particular delays, and
 
-   <STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG>
+       <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.
+       followed  by  the character "#" and then a positive value.
        Thus <STRONG>cols</STRONG>, which indicates the number of columns the  ter-
-       minal  has,  gives  the  value  `80' for ansi.  Values for
+       minal  has,  gives  the  value  "80" for ansi.  Values for
        numeric capabilities may be specified in decimal, octal or
        hexadecimal,  using the C programming language conventions
        (e.g., 255, 0377 and 0xff or 0xFF).
 
        Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear  to
        end of line sequence) are given by the two-character code,
-       an `=', and then a string ending  at  the  next  following
-       `,'.
+       an "=", and then a string ending  at  the  next  following
+       ",".
 
        A  number  of  escape sequences are provided in the string
        valued capabilities for easy encoding of characters there.
        Both  <STRONG>\E</STRONG>  and  <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
        control-x for any appropriate x, and the sequences  <STRONG>\n</STRONG>  <STRONG>\l</STRONG>
        <STRONG>\r</STRONG>  <STRONG>\t</STRONG>  <STRONG>\b</STRONG>  <STRONG>\f</STRONG>  <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
-       backspace, form-feed, and space.  Other escapes include <STRONG>\^</STRONG>
-       for  <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</STRONG>, and <STRONG>\0</STRONG> for null.
-       (<STRONG>\0</STRONG> will produce \200, which does not terminate  a  string
-       but behaves as a null character on most terminals, provid-
-       ing CS7 is specified.  See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.)  Finally,  characters
-       may be given as three octal digits after a <STRONG>\</STRONG>.
+       backspace, form-feed, and space.  Other escapes include
+
+       <STRONG>o</STRONG>   <STRONG>\^</STRONG> for <STRONG>^</STRONG>,
+
+       <STRONG>o</STRONG>   <STRONG>\\</STRONG> for <STRONG>\</STRONG>,
+
+       <STRONG>o</STRONG>   <STRONG>\</STRONG>, for comma,
+
+       <STRONG>o</STRONG>   <STRONG>\:</STRONG> for <STRONG>:</STRONG>,
+
+       <STRONG>o</STRONG>   and <STRONG>\0</STRONG> for null.
+
+           <STRONG>\0</STRONG> will produce  \200,  which  does  not  terminate  a
+           string  but behaves as a null character on most termi-
+           nals, providing CS7 is specified.  See <STRONG>stty(1)</STRONG>.
+
+           The reason for this quirk is to maintain  binary  com-
+           patibility  of  the compiled terminfo files with other
+           implementations, e.g., the SVr4 systems,  which  docu-
+           ment  this.   Compiled  terminfo files use null-termi-
+           nated strings, with no lengths.  Modifying this  would
+           require a new binary format, which would not work with
+           other implementations.
+
+       Finally, characters may be given  as  three  octal  digits
+       after a <STRONG>\</STRONG>.
 
        A  delay  in  milliseconds may appear anywhere in a string
        capability, enclosed in $&lt;..&gt; brackets, as in  <STRONG>el</STRONG>=\EK$&lt;5&gt;,
        and  padding  characters  are supplied by <EM>tputs</EM> to provide
        this delay.  The delay must be a number with at  most  one
        decimal place of precision; it may be followed by suffixes
-       `*' or '/' or both.  A  `*'  indicates  that  the  padding
+       "*" or "/" or both.  A  "*"  indicates  that  the  padding
        required  is  proportional to the number of lines affected
        by the  operation,  and  the  amount  given  is  the  per-
        affected-unit  padding  required.   (In the case of insert
        character,  the  factor  is  still  the  number  of  <EM>lines</EM>
        affected.)   Normally,  padding  is advisory if the device
        has the <STRONG>xon</STRONG> capability; it is used  for  cost  computation
-       but  does not trigger delays.  A `/' suffix indicates that
+       but  does not trigger delays.  A "/" suffix indicates that
        the padding is mandatory and forces a delay of  the  given
        number  of  milliseconds  even on devices for which <STRONG>xon</STRONG> is
        present to indicate flow control.
        example, see the second <STRONG>ind</STRONG> in the example above.
 
 
-   <STRONG>Fetching</STRONG> <STRONG>Compiled</STRONG> <STRONG>Descriptions</STRONG>
-       If the environment variable TERMINFO is set, it is  inter-
-       preted  as the pathname of a directory containing the com-
-       piled description you are working on.  Only that directory
-       is searched.
-
-       If  TERMINFO  is  not set, the <STRONG>ncurses</STRONG> version of the ter-
-       minfo reader code  will  instead  look  in  the  directory
-       <STRONG>$HOME/.terminfo</STRONG>  for  a compiled description.  If it fails
-       to find one  there,  and  the  environment  variable  TER-
-       MINFO_DIRS  is set, it will interpret the contents of that
-       variable as a list of colon- separated directories  to  be
-       searched  (an  empty  entry is interpreted as a command to
-       search <EM>/usr/share/terminfo</EM>).  If no description  is  found
-       in  any of the TERMINFO_DIRS directories, the fetch fails.
-
-       If neither TERMINFO nor TERMINFO_DIRS  is  set,  the  last
-       place   tried  will  be  the  system  terminfo  directory,
-       <EM>/usr/share/terminfo</EM>.
-
-       (Neither the  <STRONG>$HOME/.terminfo</STRONG>  lookups  nor  TERMINFO_DIRS
-       extensions   are  supported  under  stock  System  V  ter-
-       minfo/curses.)
-
-
-   <STRONG>Preparing</STRONG> <STRONG>Descriptions</STRONG>
-       We now outline how to prepare descriptions  of  terminals.
-       The  most  effective way to prepare a terminal description
-       is by imitating the description of a similar  terminal  in
-       <EM>terminfo</EM>  and  to  build up a description gradually, using
+</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 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 the pathname of a directory  containing
+           the  compiled  description  you  are working on.  Only
+           that directory is searched.
+
+       <STRONG>o</STRONG>   If TERMINFO is not set, <STRONG>ncurses</STRONG> will instead  look  in
+           the  directory <STRONG>$HOME/.terminfo</STRONG> for a compiled descrip-
+           tion.
+
+       <STRONG>o</STRONG>   Next, if the  environment  variable  TERMINFO_DIRS  is
+           set, <STRONG>ncurses</STRONG> will interpret the contents of that vari-
+           able as a  list  of  colon-separated  directories  (or
+           database files) to be searched.
+
+           An  empty directory name (i.e., if the variable begins
+           or ends with a colon, or contains adjacent colons)  is
+           interpreted  as  the  system  location <EM>/usr/share/ter-</EM>
+           <EM>minfo</EM>.
+
+       <STRONG>o</STRONG>   Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations:
+
+           <STRONG>o</STRONG>   a          list           of           directories
+               (/usr/local/ncurses/share/terminfo:/usr/share/ter-
+               minfo), and
+
+           <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>
+       We  now  outline how to prepare descriptions of terminals.
+       The most effective way to prepare a  terminal  description
+       is  by  imitating the description of a similar terminal in
+       <EM>terminfo</EM> and to build up a  description  gradually,  using
        partial descriptions with <EM>vi</EM> or some other screen-oriented
-       program  to  check that they are correct.  Be aware that a
+       program to check that they are correct.  Be aware  that  a
        very unusual terminal may expose deficiencies in the abil-
-       ity  of  the  <EM>terminfo</EM>  file to describe it or bugs in the
+       ity of the <EM>terminfo</EM> file to describe it  or  bugs  in  the
        screen-handling code of the test program.
 
-       To get the padding for insert line right (if the  terminal
+       To  get the padding for insert line right (if the terminal
        manufacturer did not document it) a severe test is to edit
-       a large file at 9600 baud, delete 16 or so lines from  the
-       middle  of  the screen, then hit the `u' key several times
-       quickly.  If the terminal messes up, more padding is  usu-
-       ally  needed.  A similar test can be used for insert char-
+       a  large file at 9600 baud, delete 16 or so lines from the
+       middle of the screen, then hit the "u" key  several  times
+       quickly.   If the terminal messes up, more padding is usu-
+       ally needed.  A similar test can be used for insert  char-
        acter.
 
 
-   <STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG>
-       The number of columns on each line  for  the  terminal  is
-       given  by the <STRONG>cols</STRONG> numeric capability.  If the terminal is
-       a CRT, then the number of lines on the screen is given  by
+</PRE><H3><a name="h3-Basic-Capabilities">Basic Capabilities</a></H3><PRE>
+       The  number  of  columns  on each line for the terminal is
+       given by the <STRONG>cols</STRONG> numeric capability.  If the terminal  is
+       a  CRT, then the number of lines on the screen is given by
        the <STRONG>lines</STRONG> capability.  If the terminal wraps around to the
-       beginning of the next line when it reaches the right  mar-
+       beginning  of the next line when it reaches the right mar-
        gin, then it should have the <STRONG>am</STRONG> capability.  If the termi-
-       nal can clear its screen, leaving the cursor in  the  home
-       position,  then this is given by the <STRONG>clear</STRONG> string capabil-
-       ity.  If the terminal overstrikes (rather than clearing  a
-       position  when  a character is struck over) then it should
-       have the <STRONG>os</STRONG> capability.  If the  terminal  is  a  printing
-       terminal,  with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>.
-       (<STRONG>os</STRONG> applies to storage scope terminals, such as  TEKTRONIX
-       4010  series, as well as hard copy and APL terminals.)  If
+       nal  can  clear its screen, leaving the cursor in the home
+       position, then this is given by the <STRONG>clear</STRONG> string  capabil-
+       ity.   If the terminal overstrikes (rather than clearing a
+       position when a character is struck over) then  it  should
+       have  the  <STRONG>os</STRONG>  capability.   If the terminal is a printing
+       terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and  <STRONG>os</STRONG>.
+       (<STRONG>os</STRONG>  applies to storage scope terminals, such as TEKTRONIX
+       4010 series, as well as hard copy and APL terminals.)   If
        there is a code to move the cursor to the left edge of the
        current row, give this as <STRONG>cr</STRONG>.  (Normally this will be car-
-       riage return, control M.)  If there is a code  to  produce
+       riage  return,  control M.)  If there is a code to produce
        an audible signal (bell, beep, etc) give this as <STRONG>bel</STRONG>.
 
-       If  there is a code to move the cursor one position to the
-       left (such as backspace) that capability should  be  given
-       as  <STRONG>cub1</STRONG>.   Similarly, codes to move to the right, up, and
+       If there is a code to move the cursor one position to  the
+       left  (such  as backspace) that capability should be given
+       as <STRONG>cub1</STRONG>.  Similarly, codes to move to the right,  up,  and
        down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and <STRONG>cud1</STRONG>.  These local
-       cursor  motions  should not alter the text they pass over,
-       for example, you would not normally use  `<STRONG>cuf1</STRONG>= '  because
+       cursor motions should not alter the text they  pass  over,
+       for  example,  you would not normally use "<STRONG>cuf1</STRONG>= " because
        the space would erase the character moved over.
 
-       A  very  important  point  here  is  that the local cursor
-       motions encoded in <EM>terminfo</EM> are undefined at the left  and
-       top  edges  of  a  CRT  terminal.   Programs  should never
-       attempt to backspace around the left edge,  unless  <STRONG>bw</STRONG>  is
+       A very important point  here  is  that  the  local  cursor
+       motions  encoded in <EM>terminfo</EM> are undefined at the left and
+       top edges  of  a  CRT  terminal.   Programs  should  never
+       attempt  to  backspace  around the left edge, unless <STRONG>bw</STRONG> is
        given, and never attempt to go up locally off the top.  In
-       order to scroll text up, a program will go to  the  bottom
+       order  to  scroll text up, a program will go to the bottom
        left corner of the screen and send the <STRONG>ind</STRONG> (index) string.
 
        To scroll text down, a program goes to the top left corner
        described as
 
        33|tty33|tty|model 33 teletype,
-            bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
+               bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
 
        while the Lear Siegler ADM-3 is described as
 
        adm3|3|lsi adm3,
-            am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
-            ind=^J, lines#24,
+               am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
+               ind=^J, lines#24,
 
 
-   <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
+</PRE><H3><a name="h3-Parameterized-Strings">Parameterized Strings</a></H3><PRE>
        Cursor addressing and other strings  requiring  parameters
        in  the  terminal  are described by a parameterized string
-       capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes  <STRONG>%x</STRONG>  in  it.   For
-       example,  to  address  the  cursor,  the <STRONG>cup</STRONG> capability is
+       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
 
        The <STRONG>%</STRONG> encodings have the following meanings:
 
+       <STRONG>%%</STRONG>   outputs "%"
 
-       %%   outputs `%'
-
-       %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
-            as in <STRONG>printf</STRONG>, flags are [-+#] and space.  Use  a  `:'
-            to  allow the next character to be a `-' flag, avoid-
+       <STRONG>%</STRONG><EM>[[</EM>:<EM>]flags][width[.precision]][</EM><STRONG>doxXs</STRONG><EM>]</EM>
+            as in <STRONG>printf</STRONG>, flags are <EM>[-+#]</EM> and <EM>space</EM>.  Use  a  ":"
+            to  allow the next character to be a "-" flag, avoid-
             ing interpreting "%-" as an operator.
 
        %c   print pop() like %c in <STRONG>printf</STRONG>
 
-       %s   print pop() like %s in <STRONG>printf</STRONG>
+       <STRONG>%s</STRONG>   print pop() like %s in <STRONG>printf</STRONG>
 
-       %p[1-9]
+       <STRONG>%p</STRONG><EM>[1-9]</EM>
             push <EM>i</EM>'th parameter
 
-       %P[a-z]
-            set dynamic variable [a-z] to pop()
+       <STRONG>%P</STRONG><EM>[a-z]</EM>
+            set dynamic variable <EM>[a-z]</EM> to pop()
 
-       %g[a-z]
-            get dynamic variable [a-z] and push it
+       <STRONG>%g</STRONG><EM>[a-z]/</EM>
+            get dynamic variable <EM>[a-z]</EM> and push it
 
-       %P[A-Z]
-            set static variable [a-z] to pop()
+       <STRONG>%P</STRONG><EM>[A-Z]</EM>
+            set static variable <EM>[a-z]</EM> to <EM>pop()</EM>
 
-       %g[A-Z]
-            get static variable [a-z] and push it
+       <STRONG>%g</STRONG><EM>[A-Z]</EM>
+            get static variable <EM>[a-z]</EM> and push it
 
             The terms  "static"  and  "dynamic"  are  misleading.
             Historically,  these are simply two different sets of
             other implementations.  Relying on it will  adversely
             impact portability to other implementations.
 
-       %'<EM>c</EM>' char constant <EM>c</EM>
+       <STRONG>%'</STRONG><EM>c</EM><STRONG>'</STRONG> char constant <EM>c</EM>
 
-       %{<EM>nn</EM>}
+       <STRONG>%{</STRONG><EM>nn</EM><STRONG>}</STRONG>
             integer constant <EM>nn</EM>
 
-       %l   push strlen(pop)
+       <STRONG>%l</STRONG>   push strlen(pop)
 
-       %+ %- %* %/ %m
-            arithmetic (%m is mod): push(pop() op pop())
+       <STRONG>%+</STRONG>, <STRONG>%-</STRONG>, <STRONG>%*</STRONG>, <STRONG>%/</STRONG>, <STRONG>%m</STRONG>
+            arithmetic (%m is mod): <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM>
 
-       %&amp; %| %^
-            bit operations (AND, OR and exclusive-OR): push(pop()
-            op pop())
+       <STRONG>%&amp;</STRONG>, <STRONG>%|</STRONG>, <STRONG>%^</STRONG>
+            bit operations (AND, OR and exclusive-OR): <EM>push(pop()</EM>
+            <EM>op</EM> <EM>pop())</EM>
 
-       %= %&gt; %&lt;
-            logical operations: push(pop() op pop())
+       <STRONG>%=</STRONG>, <STRONG>%&gt;</STRONG>, <STRONG>%&lt;</STRONG>
+            logical operations: <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM>
 
-       %A, %O
+       <STRONG>%A</STRONG>, <STRONG>%O</STRONG>
             logical AND and OR operations (for conditionals)
 
-       %! %~
+       <STRONG>%!</STRONG>, <STRONG>%~</STRONG>
             unary  operations  (logical  and   bit   complement):
             push(op pop())
 
-       %i   add 1 to first two parameters (for ANSI terminals)
+       <STRONG>%i</STRONG>   add 1 to first two parameters (for ANSI terminals)
 
-       %? <EM>expr</EM> %t <EM>thenpart</EM> %e <EM>elsepart</EM> %;
-            This  forms  an  if-then-else.   The  %e  <EM>elsepart</EM> is
-            optional.  Usually the %? <EM>expr</EM> part  pushes  a  value
-            onto  the stack, and %t pops it from the stack, test-
+       <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, test-
             ing if it is nonzero (true).  If it is zero  (false),
-            control passes to the %e (else) part.
+            control passes to the <STRONG>%e</STRONG> (else) part.
 
             It is possible to form else-if's a la Algol 68:
-            %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
+            <STRONG>%?</STRONG> c1 <STRONG>%t</STRONG> b1 <STRONG>%e</STRONG> c2 <STRONG>%t</STRONG> b2 <STRONG>%e</STRONG> c3 <STRONG>%t</STRONG> b3 <STRONG>%e</STRONG> c4 <STRONG>%t</STRONG> b4 <STRONG>%e</STRONG> <STRONG>%;</STRONG>
 
             where ci are conditions, bi are bodies.
 
             Use the <STRONG>-f</STRONG> option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the struc-
-            ture  of  if-the-else's.  Some strings, e.g., <STRONG>sgr</STRONG> can
+            ture of if-then-else's.  Some strings, e.g., <STRONG>sgr</STRONG>  can
             be very complicated when written on one line.  The <STRONG>-f</STRONG>
-            option  splits  the  string into lines with the parts
+            option splits the string into lines  with  the  parts
             indented.
 
        Binary operations are in postfix form with the operands in
-       the  usual  order.   That  is,  to  get  x-5 one would use
-       "%gx%{5}%-".  %P and %g variables  are  persistent  across
+       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  dig-
+       needs  to  be  sent  \E&amp;a12c03Y padded for 6 milliseconds.
+       Note that the order of the rows and  columns  is  inverted
+       here,  and that the row and column are printed as two dig-
        its.  Thus its <STRONG>cup</STRONG> capability is "cup=6\E&amp;%p2%2dc%p1%2dY".
 
        The Microterm ACT-IV needs the current row and column sent
 
        A final example is the LSI ADM-3a, which uses row and col-
        umn  offset  by  a  blank  character,  thus  "cup=\E=%p1%'
-       '%+%c%p2%'  '%+%c".   After sending `\E=', this pushes the
+       '%+%c%p2%'  '%+%c".   After sending "\E=", this pushes the
        first parameter, pushes the ASCII value for a space  (32),
        adds  them  (pushing  the sum on the stack in place of the
        two previous values) and outputs that value as  a  charac-
        More complex arithmetic is possible using the stack.
 
 
-   <STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
+</PRE><H3><a name="h3-Cursor-Motions">Cursor Motions</a></H3><PRE>
        If the terminal has a fast way to home the cursor (to very
        upper  left  corner  of  screen) then this can be given as
        <STRONG>home</STRONG>; similarly a fast way of getting to the  lower  left-
        <STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi-
        tion absolute).  Sometimes these are shorter than the more
        general two parameter sequence (as with  the  hp2645)  and
-       can   be   used  in  preference  to  <STRONG>cup</STRONG>.   If  there  are
-       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.
+       can be used in preference to <STRONG>cup</STRONG>.  If there are parameter-
+       ized local motions (e.g., move  <EM>n</EM>  spaces  to  the  right)
+       these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single
+       parameter indicating how many spaces to move.   These  are
+       primarily  useful  if the terminal does not have <STRONG>cup</STRONG>, such
+       as the TEKTRONIX 4025.
 
        If the terminal needs to be in a special mode when running
        a program that uses these capabilities, the codes to enter
        <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
 
 
-   <STRONG>Area</STRONG> <STRONG>Clears</STRONG>
+</PRE><H3><a name="h3-Area-Clears">Area Clears</a></H3><PRE>
        If the terminal can clear from the current position to the
        end  of  the  line,  leaving  the cursor where it is, this
        should be given as <STRONG>el</STRONG>.  If the terminal can clear from the
        number of lines, if a true <STRONG>ed</STRONG> is not available.)
 
 
-   <STRONG>Insert/delete</STRONG> <STRONG>line</STRONG> <STRONG>and</STRONG> <STRONG>vertical</STRONG> <STRONG>motions</STRONG>
+</PRE><H3><a name="h3-Insert_delete-line-and-vertical-motions">Insert/delete line and vertical motions</a></H3><PRE>
        If  the terminal can open a new blank line before the line
        where the cursor is, this should be given as <STRONG>il1</STRONG>; this  is
        done  only  from the first position of a line.  The cursor
        bring down non-blank lines.
 
 
-   <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
+</PRE><H3><a name="h3-Insert_Delete-Character">Insert/Delete Character</a></H3><PRE>
        There are two basic kinds of  intelligent  terminals  with
        respect  to insert/delete character which can be described
        using <EM>terminfo.</EM>  The most common  insert/delete  character
        Elmer Owl, make a distinction between  typed  and  untyped
        blanks  on  the  screen, shifting upon an insert or delete
        only to an untyped blank on the  screen  which  is  either
-       eliminated,  or  expanded  to two untyped blanks.  You can
-       determine the kind of terminal you have  by  clearing  the
-       screen  and  then typing text separated by cursor motions.
-       Type "abc    def" using local cursor motions (not  spaces)
-       between the "abc" and the "def".  Then position the cursor
-       before the "abc" and put the terminal in insert mode.   If
-       typing  characters  causes  the  rest of the line to shift
-       rigidly and characters to fall off the end, then your ter-
-       minal  does  not  distinguish  between  blanks and untyped
-       positions.  If the "abc" shifts over to  the  "def"  which
-       then  move together around the end of the current line and
-       onto the next as you insert, you have the second  type  of
-       terminal,  and should give the capability <STRONG>in</STRONG>, which stands
-       for "insert null".  While these are two logically separate
-       attributes  (one  line  versus multi-line insert mode, and
-       special treatment of untyped spaces) we have seen no  ter-
-       minals whose insert mode cannot be described with the sin-
-       gle attribute.
+       eliminated, or expanded to two untyped blanks.
+
+       You  can determine the kind of terminal you have by clear-
+       ing 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  posi-
+       tion  the  cursor before the "abc" and put the terminal in
+       insert mode.  If typing characters causes the rest of  the
+       line  to shift rigidly and characters to fall off the end,
+       then your terminal does not distinguish between blanks and
+       untyped  positions.  If the "abc" shifts over to the "def"
+       which then move together around the  end  of  the  current
+       line  and onto the next as you insert, you have the second
+       type of terminal, and should give the capability <STRONG>in</STRONG>, which
+       stands for "insert null".
+
+       While  these  are  two  logically separate attributes (one
+       line versus multi-line insert mode, and special  treatment
+       of  untyped spaces) we have seen no terminals whose insert
+       mode cannot be described with the single attribute.
 
        Terminfo can describe both terminals which have an  insert
        mode, and terminals which send a simple sequence to open a
        blank position on the current  line.   Give  as  <STRONG>smir</STRONG>  the
        sequence  to  get  into  insert  mode.   Give  as <STRONG>rmir</STRONG> the
        sequence to leave insert  mode.   Now  give  as  <STRONG>ich1</STRONG>  any
-       sequence  needed  to  be  sent  just  before  sending  the
-       character to be inserted.   Most  terminals  with  a  true
-       insert  mode  will  not  give <STRONG>ich1</STRONG>; terminals which send a
-       sequence to open a screen position should give it here.
+       sequence needed to be sent just before sending the charac-
+       ter to be inserted.  Most terminals  with  a  true  insert
+       mode  will  not give <STRONG>ich1</STRONG>; terminals which send a sequence
+       to open a screen position should give it here.
 
        If your terminal has both, insert mode is usually  prefer-
        able  to  <STRONG>ich1</STRONG>.   Technically,  you  should  not give both
        milliseconds  in <STRONG>ip</STRONG> (a string option).  Any other sequence
        which may need to be sent after  an  insert  of  a  single
        character may also be given in <STRONG>ip</STRONG>.  If your terminal needs
-       both to be placed into an `insert mode' and a special code
+       both to be placed into an "insert mode" and a special code
        to  precede  each  inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
        and <STRONG>ich1</STRONG> can be given, and both will  be  used.   The  <STRONG>ich</STRONG>
        capability, with one parameter, <EM>n</EM>, will repeat the effects
        of <STRONG>ich1</STRONG> <EM>n</EM> times.
 
        If padding is necessary between characters typed while not
-       in  insert  mode,  give  this  as a number of milliseconds
-       padding in <STRONG>rmp</STRONG>.
+       in insert mode, give this as a number of milliseconds pad-
+       ding in <STRONG>rmp</STRONG>.
 
        It is occasionally  necessary  to  move  around  while  in
        insert  mode  to delete characters on the same line (e.g.,
        with one parameter.
 
 
-   <STRONG>Highlighting,</STRONG> <STRONG>Underlining,</STRONG> <STRONG>and</STRONG> <STRONG>Visible</STRONG> <STRONG>Bells</STRONG>
+</PRE><H3><a name="h3-Highlighting_-Underlining_-and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></H3><PRE>
        If  your  terminal  has  one  or  more  kinds  of  display
        attributes, these can be represented in a number  of  dif-
        ferent ways.  You should choose one display form as <EM>stand-</EM>
        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,
+       or out of standout mode leaves one or even two blank  spa-
+       ces  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
+       Codes to begin underlining  and  end  underlining  can  be
+       given  as <STRONG>smul</STRONG> and <STRONG>rmul</STRONG> respectively.  If the terminal has
+       a code to underline the current  character  and  move  the
        cursor one space to the right, such as the Microterm Mime,
        this can be given as <STRONG>uc</STRONG>.
 
-       Other  capabilities  to  enter  various highlighting modes
-       include <STRONG>blink</STRONG> (blinking) <STRONG>bold</STRONG> (bold or extra  bright)  <STRONG>dim</STRONG>
-       (dim  or  half-bright)  <STRONG>invis</STRONG> (blanking or invisible text)
-       <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG>  (turn  off  <EM>all</EM>
-       attribute  modes)  <STRONG>smacs</STRONG>  (enter  alternate  character set
-       mode) and  <STRONG>rmacs</STRONG>  (exit  alternate  character  set  mode).
-       Turning  on  any of these modes singly may or may not turn
+       Other capabilities to  enter  various  highlighting  modes
+       include  <STRONG>blink</STRONG>  (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG>
+       (dim or half-bright) <STRONG>invis</STRONG> (blanking  or  invisible  text)
+       <STRONG>prot</STRONG>  (protected)  <STRONG>rev</STRONG>  (reverse video) <STRONG>sgr0</STRONG> (turn off <EM>all</EM>
+       attribute modes)  <STRONG>smacs</STRONG>  (enter  alternate  character  set
+       mode)  and  <STRONG>rmacs</STRONG>  (exit  alternate  character  set mode).
+       Turning on any of these modes singly may or may  not  turn
        off other modes.
 
-       If there is a sequence to set  arbitrary  combinations  of
-       modes,  this should be given as <STRONG>sgr</STRONG> (set attributes), tak-
-       ing 9 parameters.  Each parameter is either 0 or  nonzero,
+       If  there  is  a sequence to set arbitrary combinations of
+       modes, this should be given as <STRONG>sgr</STRONG> (set attributes),  tak-
+       ing  9 parameters.  Each parameter is either 0 or nonzero,
        as the corresponding attribute is on or off.  The 9 param-
-       eters are, in order: standout, underline, reverse,  blink,
-       dim,  bold,  blank, protect, alternate character set.  Not
-       all modes need be supported by <STRONG>sgr</STRONG>, only those  for  which
+       eters  are, in order: standout, underline, reverse, blink,
+       dim, bold, blank, protect, alternate character  set.   Not
+       all  modes  need be supported by <STRONG>sgr</STRONG>, only those for which
        corresponding separate attribute commands exist.
 
        For example, the DEC vt220 supports most of the modes:
 
-
-           <STRONG>tparm</STRONG> <STRONG>parameter</STRONG>   <STRONG>attribute</STRONG>    <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
-
-           none              none         \E[0m
-           p1                standout     \E[0;1;7m
-           p2                underline    \E[0;4m
-           p3                reverse      \E[0;7m
-           p4                blink        \E[0;5m
-           p5                dim          not available
-           p6                bold         \E[0;1m
-           p7                invis        \E[0;8m
-           p8                protect      not used
-           p9                altcharset   ^O (off) ^N (on)
-
-       We  begin each escape sequence by turning off any existing
-       modes, since there is no quick way  to  determine  whether
+        <STRONG>tparm</STRONG> <STRONG>parameter</STRONG>      <STRONG>attribute</STRONG>        <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
+
+        none                 none             \E[0m
+        p1                   standout         \E[0;1;7m
+        p2                   underline        \E[0;4m
+        p3                   reverse          \E[0;7m
+        p4                   blink            \E[0;5m
+        p5                   dim              not available
+        p6                   bold             \E[0;1m
+        p7                   invis            \E[0;8m
+        p8                   protect          not used
+        p9                   altcharset       ^O (off) ^N (on)
+
+       We begin each escape sequence by turning off any  existing
+       modes,  since  there  is no quick way to determine whether
        they are active.  Standout is set up to be the combination
-       of reverse and bold.  The vt220  terminal  has  a  protect
-       mode,  though  it  is  not commonly used in sgr because it
-       protects characters on the screen  from  the  host's  era-
-       sures.   The  altcharset mode also is different in that it
-       is either ^O or ^N, depending on whether it is off or  on.
-       If  all  modes  are  turned  on, the resulting sequence is
+       of  reverse  and  bold.   The vt220 terminal has a protect
+       mode, though it is not commonly used  in  sgr  because  it
+       protects  characters  on  the  screen from the host's era-
+       sures.  The altcharset mode also is different in  that  it
+       is  either ^O or ^N, depending on whether it is off or on.
+       If all modes are turned  on,  the  resulting  sequence  is
        \E[0;1;4;5;7;8m^N.
 
-       Some sequences are common to different modes.   For  exam-
-       ple,  ;7  is output when either p1 or p3 is true, that is,
+       Some  sequences  are common to different modes.  For exam-
+       ple, ;7 is output when either p1 or p3 is true,  that  is,
        if either standout or reverse modes are turned on.
 
-       Writing out the above sequences, along with  their  depen-
+       Writing  out  the above sequences, along with their depen-
        dencies yields
 
+      <STRONG>sequence</STRONG>             <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG>      <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
 
-         <STRONG>sequence</STRONG>    <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG>     <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
-
-         \E[0       always              \E[0
-         ;1         if p1 or p6         %?%p1%p6%|%t;1%;
-         ;4         if p2               %?%p2%|%t;4%;
-         ;5         if p4               %?%p4%|%t;5%;
-
-         ;7         if p1 or p3         %?%p1%p3%|%t;7%;
-         ;8         if p7               %?%p7%|%t;8%;
-         m          always              m
-         ^N or ^O   if p9 ^N, else ^O   %?%p9%t^N%e^O%;
+      \E[0                 always              \E[0
+      ;1                   if p1 or p6         %?%p1%p6%|%t;1%;
+      ;4                   if p2               %?%p2%|%t;4%;
+      ;5                   if p4               %?%p4%|%t;5%;
+      ;7                   if p1 or p3         %?%p1%p3%|%t;7%;
+      ;8                   if p7               %?%p7%|%t;8%;
+      m                    always              m
+      ^N or ^O             if p9 ^N, else ^O   %?%p9%t^N%e^O%;
 
        Putting this all together into the sgr sequence gives:
 
-           sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
-               %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+           sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
+               %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
 
-       Remember  that  if  you specify sgr, you must also specify
-       sgr0.  Also, some implementations rely on sgr being  given
-       if  sgr0  is, Not all terminfo entries necessarily have an
-       sgr string, however.  Many terminfo  entries  are  derived
-       from  termcap  entries which have no sgr string.  The only
-       drawback to adding an sgr  string  is  that  termcap  also
-       assumes  that  sgr0  does not exit alternate character set
+       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
+       Terminals  with  the  "magic  cookie" glitch (<STRONG>xmc</STRONG>) deposit
+       special   "cookies"   when   they   receive   mode-setting
+       sequences,  which affect the display algorithm rather than
+       having extra bits for  each  character.   Some  terminals,
+       such  as  the  HP  2621, automatically leave standout mode
+       when they move to a new line or the cursor  is  addressed.
+       Programs  using  standout  mode  should exit standout mode
+       before moving the cursor or sending a newline, unless  the
+       <STRONG>msgr</STRONG>  capability,  asserting  that  it  is safe to move in
        standout mode, is present.
 
-       If  the terminal has a way of flashing the screen to indi-
-       cate an error quietly (a bell replacement) then  this  can
+       If the terminal has a way of flashing the screen to  indi-
+       cate  an  error quietly (a bell replacement) then this can
        be given as <STRONG>flash</STRONG>; it must not move the cursor.
 
-       If  the  cursor  needs to be made more visible than normal
+       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
+       non-blinking underline into an easier  to  find  block  or
        blinking underline) give this sequence as <STRONG>cvvis</STRONG>.  If there
-       is  a  way  to  make the cursor completely invisible, give
+       is a way to make the  cursor  completely  invisible,  give
        that as <STRONG>civis</STRONG>.  The capability <STRONG>cnorm</STRONG> should be given which
        undoes the effects of both of these modes.
 
        If your terminal correctly generates underlined characters
-       (with no special codes needed) even  though  it  does  not
-       overstrike,  then you should give the capability <STRONG>ul</STRONG>.  If a
-       character overstriking another leaves both  characters  on
+       (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
+       erasable  with  a  blank, then this should be indicated by
        giving <STRONG>eo</STRONG>.
 
 
-   <STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
+</PRE><H3><a name="h3-Keypad-and-Function-Keys">Keypad and Function Keys</a></H3><PRE>
        If the terminal has a keypad that transmits codes when the
-       keys are pressed, this information  can  be  given.   Note
+       keys  are  pressed,  this  information can be given.  Note
        that it is not possible to handle terminals where the key-
        pad only works in local (this applies, for example, to the
-       unshifted  HP  2621  keys).   If  the keypad can be set to
-       transmit or not transmit, give these  codes  as  <STRONG>smkx</STRONG>  and
+       unshifted HP 2621 keys).  If the  keypad  can  be  set  to
+       transmit  or  not  transmit,  give these codes as <STRONG>smkx</STRONG> and
        <STRONG>rmkx</STRONG>.  Otherwise the keypad is assumed to always transmit.
+
        The codes sent by the left arrow, right arrow,  up  arrow,
        down  arrow,  and  home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
        <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively.  If there are  func-
        tion  keys  such  as f0, f1, ..., f10, the codes they send
        can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>.  If these  keys  have
        labels  other  than the default f0 through f10, the labels
-       can  be  given  as  <STRONG>lf0,</STRONG>  <STRONG>lf1,</STRONG>  <STRONG>...,</STRONG>  <STRONG>lf10</STRONG>.    The   codes
-       transmitted  by  certain  other special keys can be given:
-       <STRONG>kll</STRONG> (home down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear  all  tabs),
-       <STRONG>kctab</STRONG>  (clear  the  tab  stop in this column), <STRONG>kclr</STRONG> (clear
-       screen or  erase  key),  <STRONG>kdch1</STRONG>  (delete  character),  <STRONG>kdl1</STRONG>
-       (delete line), <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end
-       of line), <STRONG>ked</STRONG> (clear to  end  of  screen),  <STRONG>kich1</STRONG>  (insert
-       character  or  enter insert mode), <STRONG>kil1</STRONG> (insert line), <STRONG>knp</STRONG>
-       (next  page),  <STRONG>kpp</STRONG>  (previous  page),  <STRONG>kind</STRONG>  (scroll  for-
-       ward/down), <STRONG>kri</STRONG> (scroll backward/up), <STRONG>khts</STRONG> (set a tab stop
-       in this column).  In addition, if the keypad has a 3 by  3
-       array  of  keys  including  the four arrow keys, the other
-       five keys can be given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>,  <STRONG>kb2</STRONG>,  <STRONG>kc1</STRONG>,  and  <STRONG>kc3</STRONG>.
-       These  keys are useful when the effects of a 3 by 3 direc-
-       tional pad are needed.
-
-       Strings to program function keys can be  given  as  <STRONG>pfkey</STRONG>,
-       <STRONG>pfloc</STRONG>,  and <STRONG>pfx</STRONG>.  A string to program screen labels should
-       be specified as <STRONG>pln</STRONG>.  Each  of  these  strings  takes  two
-       parameters:  the function key number to program (from 0 to
-       10) and the string to program it with.  Function key  num-
-       bers  out  of  this  range may program undefined keys in a
-       terminal dependent manner.   The  difference  between  the
-       capabilities  is  that <STRONG>pfkey</STRONG> causes pressing the given key
-       to be the same as the user typing the given string;  <STRONG>pfloc</STRONG>
+       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>kll</STRONG> (home down),
+
+       <STRONG>o</STRONG>   <STRONG>kbs</STRONG> (backspace),
+
+       <STRONG>o</STRONG>   <STRONG>ktbc</STRONG> (clear all tabs),
+
+       <STRONG>o</STRONG>   <STRONG>kctab</STRONG> (clear the tab stop in this column),
+
+       <STRONG>o</STRONG>   <STRONG>kclr</STRONG> (clear screen or erase key),
+
+       <STRONG>o</STRONG>   <STRONG>kdch1</STRONG> (delete character),
+
+       <STRONG>o</STRONG>   <STRONG>kdl1</STRONG> (delete line),
+
+       <STRONG>o</STRONG>   <STRONG>krmir</STRONG> (exit insert mode),
+
+       <STRONG>o</STRONG>   <STRONG>kel</STRONG> (clear to end of line),
+
+       <STRONG>o</STRONG>   <STRONG>ked</STRONG> (clear to end of screen),
+
+       <STRONG>o</STRONG>   <STRONG>kich1</STRONG> (insert character or enter insert mode),
+
+       <STRONG>o</STRONG>   <STRONG>kil1</STRONG> (insert line),
+
+       <STRONG>o</STRONG>   <STRONG>knp</STRONG> (next page),
+
+       <STRONG>o</STRONG>   <STRONG>kpp</STRONG> (previous page),
+
+       <STRONG>o</STRONG>   <STRONG>kind</STRONG> (scroll forward/down),
+
+       <STRONG>o</STRONG>   <STRONG>kri</STRONG> (scroll backward/up),
+
+       <STRONG>o</STRONG>   <STRONG>khts</STRONG> (set a tab stop in this column).
+
+       In  addition,  if  the  keypad  has a 3 by 3 array of keys
+       including the four arrow keys, the other five keys can  be
+       given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.  These keys are use-
+       ful when the effects of a  3  by  3  directional  pad  are
+       needed.
+
+       Strings  to  program  function keys can be given as <STRONG>pfkey</STRONG>,
+       <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>.  A string to program screen labels  should
+       be  specified  as  <STRONG>pln</STRONG>.   Each  of these strings takes two
+       parameters: the function key number to program (from 0  to
+       10)  and the string to program it with.  Function key num-
+       bers out of this range may program  undefined  keys  in  a
+       terminal  dependent  manner.   The  difference between the
+       capabilities is that <STRONG>pfkey</STRONG> causes pressing the  given  key
+       to  be the same as the user typing the given string; <STRONG>pfloc</STRONG>
        causes the string to be executed by the terminal in local;
-       and <STRONG>pfx</STRONG> causes the string to be transmitted  to  the  com-
+       and  <STRONG>pfx</STRONG>  causes  the string to be transmitted to the com-
        puter.
 
        The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of pro-
-       grammable screen labels and their width  and  height.   If
-       there  are  commands  to  turn the labels on and off, give
-       them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>.  <STRONG>smln</STRONG> is normally output after  one
+       grammable  screen  labels  and their width and height.  If
+       there are commands to turn the labels  on  and  off,  give
+       them  in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>.  <STRONG>smln</STRONG> is normally output after one
        or more pln sequences to make sure that the change becomes
        visible.
 
 
-   <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
-       If the terminal has hardware tabs, the command to  advance
-       to  the  next tab stop can be given as <STRONG>ht</STRONG> (usually control
-       I).  A ``back-tab'' command which moves  leftward  to  the
-       preceding tab stop can be given as <STRONG>cbt</STRONG>.  By convention, if
-       the teletype modes indicate that tabs are  being  expanded
-       by  the  computer  rather than being sent to the terminal,
-       programs should not  use  <STRONG>ht</STRONG>  or  <STRONG>cbt</STRONG>  even  if  they  are
-       present,  since  the user may not have the tab stops prop-
-       erly set.  If the terminal has  hardware  tabs  which  are
-       initially  set every <EM>n</EM> spaces when the terminal is powered
-       up, the numeric parameter <STRONG>it</STRONG> is given, showing the  number
-       of  spaces  the tabs are set to.  This is normally used by
-       the <EM>tset</EM> command to determine whether to set the mode  for
-       hardware  tab expansion, and whether to set the tab stops.
-       If the terminal has tab stops that can be  saved  in  non-
-       volatile  memory, the terminfo description can assume that
+</PRE><H3><a name="h3-Tabs-and-Initialization">Tabs and Initialization</a></H3><PRE>
+       If  the terminal has hardware tabs, the command to advance
+       to the next tab stop can be given as <STRONG>ht</STRONG>  (usually  control
+       I).  A "back-tab" command which moves leftward to the pre-
+       ceding tab stop can be given as <STRONG>cbt</STRONG>.   By  convention,  if
+       the  teletype  modes indicate that tabs are being expanded
+       by the computer rather than being sent  to  the  terminal,
+       programs  should  not  use  <STRONG>ht</STRONG>  or  <STRONG>cbt</STRONG>  even  if they are
+       present, since the user may not have the tab  stops  prop-
+       erly  set.   If  the  terminal has hardware tabs which are
+       initially set every <EM>n</EM> spaces when the terminal is  powered
+       up,  the numeric parameter <STRONG>it</STRONG> is given, showing the number
+       of spaces the tabs are set to.  This is normally  used  by
+       the  <EM>tset</EM> command to determine whether to set the mode for
+       hardware tab expansion, and whether to set the tab  stops.
+       If  the  terminal  has tab stops that can be saved in non-
+       volatile memory, the terminfo description can assume  that
        they are properly set.
 
-       Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>,  initializa-
-       tion  strings  for the terminal, <STRONG>iprog</STRONG>, the path name of a
-       program to be run to initialize the terminal, and <STRONG>if</STRONG>,  the
-       name  of  a  file  containing long initialization strings.
-       These strings are expected to set the terminal into  modes
-       consistent  with  the  rest  of  the terminfo description.
+       Other  capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
+       tion strings for the terminal, <STRONG>iprog</STRONG>, the path name  of  a
+       program  to be run to initialize the terminal, and <STRONG>if</STRONG>, the
+       name of a file  containing  long  initialization  strings.
+       These  strings are expected to set the terminal into modes
+       consistent with the  rest  of  the  terminfo  description.
        They are normally sent to the terminal, by the <EM>init</EM> option
-       of  the  <EM>tput</EM>  program,  each time the user logs in.  They
+       of the <EM>tput</EM> program, each time the  user  logs  in.   They
        will be printed in the following order:
 
               run the program
               and finally
                      output <STRONG>is3</STRONG>.
 
-       Most initialization is done with  <STRONG>is2</STRONG>.   Special  terminal
+       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
+       the  common  sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
        <STRONG>is3</STRONG>.
 
        A set of sequences that does a harder reset from a totally
        unknown state can be given as <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rf</STRONG> and <STRONG>rs3</STRONG>, analo-
-       gous  to  <STRONG>is1</STRONG>  <STRONG>,</STRONG>  <STRONG>is2</STRONG>  <STRONG>,</STRONG>  <STRONG>if</STRONG>  and <STRONG>is3</STRONG> respectively.  These
-       strings are output by the <EM>reset</EM>  program,  which  is  used
-       when  the terminal gets into a wedged state.  Commands are
-       normally placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if  they  pro-
-       duce  annoying effects on the screen and are not necessary
-       when logging in.  For example,  the  command  to  set  the
-       vt100  into  80-column mode would normally be part of <STRONG>is2</STRONG>,
-       but it causes an annoying glitch of the screen and is  not
-       normally  needed  since the terminal is usually already in
+       gous to <STRONG>is1</STRONG> <STRONG>,</STRONG>  <STRONG>is2</STRONG>  <STRONG>,</STRONG>  <STRONG>if</STRONG>  and  <STRONG>is3</STRONG>  respectively.   These
+       strings  are  output  by  the <EM>reset</EM> program, which is used
+       when the terminal gets into a wedged state.  Commands  are
+       normally  placed  in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they pro-
+       duce annoying effects on the screen and are not  necessary
+       when  logging  in.   For  example,  the command to set the
+       vt100 into 80-column mode would normally be part  of  <STRONG>is2</STRONG>,
+       but  it causes an annoying glitch of the screen and is not
+       normally needed since the terminal is usually  already  in
        80 column mode.
 
        The <EM>reset</EM> program writes strings including <STRONG>iprog</STRONG>, etc., in
-       the  same  order  as  the  <EM>init</EM>  program, using <STRONG>rs1</STRONG>, etc.,
+       the same order as  the  <EM>init</EM>  program,  using  <STRONG>rs1</STRONG>,  etc.,
        instead of <STRONG>is1</STRONG>, etc.  If any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset
-       capability  strings  are  missing, the <EM>reset</EM> program falls
+       capability strings are missing, the  <EM>reset</EM>  program  falls
        back  upon  the  corresponding  initialization  capability
        string.
 
        If there are commands to set and clear tab stops, they can
-       be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set  a  tab
-       stop  in the current column of every row).  If a more com-
-       plex sequence is needed  to  set  the  tabs  than  can  be
-       described  by  this,  the sequence can be placed in <STRONG>is2</STRONG> or
+       be  given  as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
+       stop in the current column of every row).  If a more  com-
+       plex  sequence  is  needed  to  set  the  tabs than can be
+       described by this, the sequence can be placed  in  <STRONG>is2</STRONG>  or
        <STRONG>if</STRONG>.
 
-   <STRONG>Delays</STRONG> <STRONG>and</STRONG> <STRONG>Padding</STRONG>
-       Many older and slower  terminals  do  not  support  either
+
+</PRE><H3><a name="h3-Delays-and-Padding">Delays and Padding</a></H3><PRE>
+       Many  older  and  slower  terminals  do not support either
        XON/XOFF or DTR handshaking, including hard copy terminals
-       and some very archaic CRTs (including,  for  example,  DEC
-       VT100s).   These may require padding characters after cer-
+       and  some  very  archaic CRTs (including, for example, DEC
+       VT100s).  These may require padding characters after  cer-
        tain cursor motions and screen changes.
 
        If the terminal uses xon/xoff handshaking for flow control
-       (that  is, it automatically emits ^S back to the host when
+       (that is, it automatically emits ^S back to the host  when
        its input buffers are close to full), set <STRONG>xon</STRONG>.  This capa-
-       bility  suppresses  the emission of padding.  You can also
-       set it for memory-mapped console devices effectively  that
-       do  not  have  a  speed limit.  Padding information should
-       still be included so that routines can make  better  deci-
+       bility suppresses the emission of padding.  You  can  also
+       set  it for memory-mapped console devices effectively that
+       do not have a speed  limit.   Padding  information  should
+       still  be  included so that routines can make better deci-
        sions about relative costs, but actual pad characters will
        not be transmitted.
 
-       If <STRONG>pb</STRONG> (padding baud rate) is given, padding is  suppressed
-       at  baud rates below the value of <STRONG>pb</STRONG>.  If the entry has no
-       padding baud rate, then whether padding is emitted or  not
+       If  <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
+       at baud rates below the value of <STRONG>pb</STRONG>.  If the entry has  no
+       padding  baud rate, then whether padding is emitted or not
        is completely controlled by <STRONG>xon</STRONG>.
 
-       If  the terminal requires other than a null (zero) charac-
-       ter as a pad, then this can be given  as  <STRONG>pad</STRONG>.   Only  the
+       If the terminal requires other than a null (zero)  charac-
+       ter  as  a  pad,  then this can be given as <STRONG>pad</STRONG>.  Only the
        first character of the <STRONG>pad</STRONG> string is used.
 
 
-   <STRONG>Status</STRONG> <STRONG>Lines</STRONG>
-       Some  terminals  have  an extra `status line' which is not
-       normally used by software (and thus  not  counted  in  the
+</PRE><H3><a name="h3-Status-Lines">Status Lines</a></H3><PRE>
+       Some terminals have an extra "status line"  which  is  not
+       normally  used  by  software  (and thus not counted in the
        terminal's <STRONG>lines</STRONG> capability).
 
-       The  simplest  case  is  a  status  line  which is cursor-
-       addressable but not part of the main scrolling  region  on
-       the  screen;  the  Heathkit  H19 has a status line of this
-       kind, as would a 24-line VT100 with  a  23-line  scrolling
-       region  set up on initialization.  This situation is indi-
+       The simplest case  is  a  status  line  which  is  cursor-
+       addressable  but  not part of the main scrolling region on
+       the screen; the Heathkit H19 has a  status  line  of  this
+       kind,  as  would  a 24-line VT100 with a 23-line scrolling
+       region set up on initialization.  This situation is  indi-
        cated by the <STRONG>hs</STRONG> capability.
 
        Some terminals with status lines need special sequences to
-       access  the  status  line.   These  may  be expressed as a
+       access the status line.   These  may  be  expressed  as  a
        string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
-       a  given zero-origin column on the status line.  The capa-
+       a given zero-origin column on the status line.  The  capa-
        bility <STRONG>fsl</STRONG> must return to the main-screen cursor positions
-       before  the  last  <STRONG>tsl</STRONG>.   You may need to embed the string
-       values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in  <STRONG>tsl</STRONG>
+       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
+       The status line is normally assumed to be the  same  width
+       as  the width of the terminal.  If this is untrue, you can
        specify it with the numeric capability <STRONG>wsl</STRONG>.
 
-       A  command to erase or blank the status line may be speci-
+       A command to erase or blank the status line may be  speci-
        fied as <STRONG>dsl</STRONG>.
 
-       The  boolean  capability  <STRONG>eslok</STRONG>  specifies   that   escape
+       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
        become important.
 
 
-   <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
+</PRE><H3><a name="h3-Line-Graphics">Line Graphics</a></H3><PRE>
        Many terminals have alternate character  sets  useful  for
        forms-drawing.   Terminfo  and <STRONG>curses</STRONG> build in support for
        the drawing characters supported by the VT100,  with  some
        characters  from  the  AT&amp;T  4410v1 added.  This alternate
        character set may be specified by the <STRONG>acsc</STRONG> capability.
 
-
-                <STRONG>Glyph</STRONG>             <STRONG>ACS</STRONG>            <STRONG>Ascii</STRONG>      <STRONG>VT100</STRONG>
-                 <STRONG>Name</STRONG>             <STRONG>Name</STRONG>           <STRONG>Default</STRONG>    <STRONG>Name</STRONG>
-       UK pound sign              ACS_STERLING   f          }
-       arrow pointing down        ACS_DARROW     v          .
-       arrow pointing left        ACS_LARROW     &lt;          ,
-       arrow pointing right       ACS_RARROW     &gt;          +
-       arrow pointing up          ACS_UARROW     ^          -
-       board of squares           ACS_BOARD      #          h
-       bullet                     ACS_BULLET     o          ~
-       checker board (stipple)    ACS_CKBOARD    :          a
-       degree symbol              ACS_DEGREE     \          f
-       diamond                    ACS_DIAMOND    +          `
-       greater-than-or-equal-to   ACS_GEQUAL     &gt;          z
-       greek pi                   ACS_PI         *          {
-       horizontal line            ACS_HLINE      -          q
-       lantern symbol             ACS_LANTERN    #          i
-       large plus or crossover    ACS_PLUS       +          n
-       less-than-or-equal-to      ACS_LEQUAL     &lt;          y
-
-       lower left corner          ACS_LLCORNER   +          m
-       lower right corner         ACS_LRCORNER   +          j
-       not-equal                  ACS_NEQUAL     !          |
-       plus/minus                 ACS_PLMINUS    #          g
-       scan line 1                ACS_S1         ~          o
-       scan line 3                ACS_S3         -          p
-       scan line 7                ACS_S7         -          r
-       scan line 9                ACS_S9         _          s
-       solid square block         ACS_BLOCK      #          0
-       tee pointing down          ACS_TTEE       +          w
-       tee pointing left          ACS_RTEE       +          u
-       tee pointing right         ACS_LTEE       +          t
-       tee pointing up            ACS_BTEE       +          v
-       upper left corner          ACS_ULCORNER   +          l
-       upper right corner         ACS_URCORNER   +          k
-       vertical line              ACS_VLINE      |          x
+       <STRONG>Glyph</STRONG>                       <STRONG>ACS</STRONG>           <STRONG>Ascii</STRONG>     <STRONG>VT100</STRONG>
+       <STRONG>Name</STRONG>                        <STRONG>Name</STRONG>          <STRONG>Default</STRONG>   <STRONG>Name</STRONG>
+       UK pound sign               ACS_STERLING  f         }
+       arrow pointing down         ACS_DARROW    v         .
+       arrow pointing left         ACS_LARROW    &lt;         ,
+       arrow pointing right        ACS_RARROW    &gt;         +
+       arrow pointing up           ACS_UARROW    ^         -
+       board of squares            ACS_BOARD     #         h
+       bullet                      ACS_BULLET    o         ~
+       checker board (stipple)     ACS_CKBOARD   :         a
+       degree symbol               ACS_DEGREE    \         f
+       diamond                     ACS_DIAMOND   +         `
+       greater-than-or-equal-to    ACS_GEQUAL    &gt;         z
+       greek pi                    ACS_PI        *         {
+       horizontal line             ACS_HLINE     -         q
+       lantern symbol              ACS_LANTERN   #         i
+       large plus or crossover     ACS_PLUS      +         n
+       less-than-or-equal-to       ACS_LEQUAL    &lt;         y
+       lower left corner           ACS_LLCORNER  +         m
+       lower right corner          ACS_LRCORNER  +         j
+       not-equal                   ACS_NEQUAL    !         |
+       plus/minus                  ACS_PLMINUS   #         g
+       scan line 1                 ACS_S1        ~         o
+       scan line 3                 ACS_S3        -         p
+       scan line 7                 ACS_S7        -         r
+       scan line 9                 ACS_S9        _         s
+       solid square block          ACS_BLOCK     #         0
+       tee pointing down           ACS_TTEE      +         w
+       tee pointing left           ACS_RTEE      +         u
+       tee pointing right          ACS_LTEE      +         t
+       tee pointing up             ACS_BTEE      +         v
+       upper left corner           ACS_ULCORNER  +         l
+       upper right corner          ACS_URCORNER  +         k
+       vertical line               ACS_VLINE     |         x
 
        The best way to define a new device's graphics set  is  to
        add  a  column  to a copy of this table for your terminal,
        ACSC string.
 
 
-   <STRONG>Color</STRONG> <STRONG>Handling</STRONG>
-       Most color terminals are either `Tektronix-like'  or  `HP-
-       like'.   Tektronix-like terminals have a predefined set of
+</PRE><H3><a name="h3-Color-Handling">Color Handling</a></H3><PRE>
+       Most color terminals are either "Tektronix-like"  or  "HP-
+       like".   Tektronix-like terminals have a predefined set of
        N colors (where N usually 8), and can  set  character-cell
        foreground and background characters independently, mixing
        them into N * N color-pairs.  On  HP-like  terminals,  the
        these  as  it  likes,  but  the RGB values indicate normal
        locations in color space.
 
-
              <STRONG>Color</STRONG>       <STRONG>#define</STRONG>       <STRONG>Value</STRONG>       <STRONG>RGB</STRONG>
              black     <STRONG>COLOR_BLACK</STRONG>       0     0, 0, 0
              red       <STRONG>COLOR_RED</STRONG>         1     max,0,0
              magenta   <STRONG>COLOR_MAGENTA</STRONG>     5     max,0,max
              yellow    <STRONG>COLOR_YELLOW</STRONG>      6     max,max,0
              white     <STRONG>COLOR_WHITE</STRONG>       7     max,max,max
+
        It is important to not confuse the two sets of color capa-
        bilities; otherwise red/blue will be interchanged  on  the
        display.
        ors  are  enabled.  The correspondence with the attributes
        understood by <STRONG>curses</STRONG> is as follows:
 
-
-                      <STRONG>Attribute</STRONG>      <STRONG>Bit</STRONG>   <STRONG>Decimal</STRONG>
-                      A_STANDOUT     0     1
-                      A_UNDERLINE    1     2
-                      A_REVERSE      2     4
-                      A_BLINK        3     8
-                      A_DIM          4     16
-                      A_BOLD         5     32
-                      A_INVIS        6     64
-                      A_PROTECT      7     128
-                      A_ALTCHARSET   8     256
+          <STRONG>Attribute</STRONG>              <STRONG>Bit</STRONG>   <STRONG>Decimal</STRONG>      <STRONG>Set</STRONG> <STRONG>by</STRONG>
+          A_STANDOUT             0     1            sgr
+          A_UNDERLINE            1     2            sgr
+          A_REVERSE              2     4            sgr
+          A_BLINK                3     8            sgr
+          A_DIM                  4     16           sgr
+          A_BOLD                 5     32           sgr
+          A_INVIS                6     64           sgr
+          A_PROTECT              7     128          sgr
+          A_ALTCHARSET           8     256          sgr
+          A_HORIZONTAL           9     512          sgr1
+          A_LEFT                 10    1024         sgr1
+          A_LOW                  11    2048         sgr1
+          A_RIGHT                12    4096         sgr1
+          A_TOP                  13    8192         sgr1
+          A_VERTICAL             14    16384        sgr1
+          A_ITALIC               15    32768        sitm
 
        For example,  on  many  IBM  PC  consoles,  the  underline
        attribute  collides  with the foreground color blue and is
        and optimizes the output in favor of colors.
 
 
-   <STRONG>Miscellaneous</STRONG>
+</PRE><H3><a name="h3-Miscellaneous">Miscellaneous</a></H3><PRE>
        If the terminal requires other than a null (zero)  charac-
        ter  as  a  pad,  then this can be given as pad.  Only the
        first character of the pad string is used.  If the  termi-
        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'.
+       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
        <EM>virtual</EM>   terminal   descriptions  for  which  the  escape
        sequences are known.)
 
-       If the terminal has a ``meta key'' which acts as  a  shift
+       If the terminal has a "meta key" which  acts  as  a  shift
        key,  setting  the  8th  bit of any character transmitted,
        this fact can be indicated with <STRONG>km</STRONG>.   Otherwise,  software
        will assume that the 8th bit is parity and it will usually
-       be cleared.  If strings exist to turn this  ``meta  mode''
-       on and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
+       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
        printer while an <STRONG>mc5p</STRONG> is in effect.
 
 
-   <STRONG>Glitches</STRONG> <STRONG>and</STRONG> <STRONG>Braindamage</STRONG>
-       Hazeltine terminals, which do not allow `~' characters  to
+</PRE><H3><a name="h3-Glitches-and-Braindamage">Glitches and Braindamage</a></H3><PRE>
+       Hazeltine terminals, which do not allow "~" characters  to
        be displayed should indicate <STRONG>hz</STRONG>.
 
        Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>
        wrap, such as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
 
-       If  <STRONG>el</STRONG>  is  required  to  get  rid of standout (instead of
-       merely writing normal text on top of it),  <STRONG>xhp</STRONG>  should  be
+       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-
+       Teleray terminals, where tabs turn  all  characters  moved
+       over  to  blanks,  should  indicate <STRONG>xt</STRONG> (destructive tabs).
+       Note:   the    variable    indicating    this    is    now
+       "dest_tabs_magic_smso";  in  older  versions,  it was tel-
        eray_glitch.  This glitch is also taken to mean that it is
-       not possible to position the cursor on top  of  a  ``magic
-       cookie'', that to erase standout mode it is instead neces-
+       not  possible  to  position  the cursor on top of a "magic
+       cookie", that to erase standout mode it is instead  neces-
        sary to use delete and insert line.  The ncurses implemen-
        tation ignores this glitch.
 
-       The  Beehive Superbee, which is unable to correctly trans-
-       mit the escape or control C characters, has <STRONG>xsb</STRONG>,  indicat-
-       ing  that the f1 key is used for escape and f2 for control
-       C.  (Only certain Superbees have this  problem,  depending
-       on  the  ROM.)  Note that in older terminfo versions, this
-       capability  was  called  `beehive_glitch';   it   is   now
-       `no_esc_ctl_c'.
+       The Beehive Superbee, which is unable to correctly  trans-
+       mit  the escape or control C characters, has <STRONG>xsb</STRONG>, indicat-
+       ing that the f1 key is used for escape and f2 for  control
+       C.   (Only  certain Superbees have this problem, depending
+       on the ROM.)  Note that in older terminfo  versions,  this
+       capability   was   called   "beehive_glitch";  it  is  now
+       "no_esc_ctl_c".
 
-       Other  specific  terminal  problems  may  be  corrected by
+       Other specific  terminal  problems  may  be  corrected  by
        adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
 
 
-   <STRONG>Similar</STRONG> <STRONG>Terminals</STRONG>
+</PRE><H3><a name="h3-Similar-Terminals">Similar Terminals</a></H3><PRE>
        If there are two very similar terminals, one (the variant)
-       can  be  defined  as  being just like the other (the base)
-       with certain exceptions.  In the definition of  the  vari-
-       ant,  the string capability <STRONG>use</STRONG> can be given with the name
-       of the base terminal.  The capabilities given  before  <STRONG>use</STRONG>
-       override  those  in  the base type named by <STRONG>use</STRONG>.  If there
-       are multiple <STRONG>use</STRONG> capabilities, they are merged in  reverse
-       order.   That is, the rightmost <STRONG>use</STRONG> reference is processed
-       first, then the one to its left, and so forth.   Capabili-
-       ties  given explicitly in the entry override those brought
+       can be defined as being just like  the  other  (the  base)
+       with  certain  exceptions.  In the definition of the vari-
+       ant, the string capability <STRONG>use</STRONG> can be given with the  name
+       of  the  base terminal.  The capabilities given before <STRONG>use</STRONG>
+       override those in the base type named by  <STRONG>use</STRONG>.   If  there
+       are  multiple <STRONG>use</STRONG> capabilities, they are merged in reverse
+       order.  That is, the rightmost <STRONG>use</STRONG> reference is  processed
+       first,  then the one to its left, and so forth.  Capabili-
+       ties given explicitly in the entry override those  brought
        in by <STRONG>use</STRONG> references.
 
        A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of
-       the  use  reference that imports it, where <EM>xx</EM> is the capa-
+       the use reference that imports it, where <EM>xx</EM> is  the  capa-
        bility.  For example, the entry
 
-                   2621-nl, smkx@, rmkx@, use=2621,
+              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
+       defines  a  2621-nl  that  does  not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
+       capabilities, and hence does not turn on the function  key
+       labels  when in visual mode.  This is useful for different
        modes for a terminal, or for different user preferences.
 
 
-   <STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG>
-       Long  terminfo  entries  are  unlikely to be a problem; to
-       date, no entry has even  approached  terminfo's  4096-byte
+</PRE><H3><a name="h3-Pitfalls-of-Long-Entries">Pitfalls of Long Entries</a></H3><PRE>
+       Long terminfo entries are unlikely to  be  a  problem;  to
+       date,  no  entry  has even approached terminfo's 4096-byte
        string-table maximum.  Unfortunately, the termcap transla-
        tions are much more strictly limited (to 1023 bytes), thus
-       termcap  translations  of  long terminfo entries can cause
+       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
+       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
+       a  termcap entry 1k-1 (1023) bytes.  Depending on what the
+       application and the termcap library being used  does,  and
        where in the termcap file the terminal type that <STRONG>tgetent()</STRONG>
        is searching for is, several bad things can happen.
 
-       Some  termcap libraries print a warning message or exit if
-       they find an entry that's longer than 1023  bytes;  others
-       do  not;  others truncate the entries to 1023 bytes.  Some
+       Some termcap libraries print a warning message or exit  if
+       they  find  an entry that's longer than 1023 bytes; others
+       do not; others truncate the entries to 1023  bytes.   Some
        application programs allocate more than the recommended 1K
        for the termcap entry; others do not.
 
        Each termcap entry has two important sizes associated with
        it: before "tc" expansion, and after "tc" expansion.  "tc"
-       is  the  capability that tacks on another termcap entry to
-       the end of the current one, to add  on  its  capabilities.
-       If  a termcap entry does not use the "tc" capability, then
+       is the capability that tacks on another termcap  entry  to
+       the  end  of  the current one, to add on its capabilities.
+       If a termcap entry does not use the "tc" capability,  then
        of course the two lengths are the same.
 
-       The "before tc expansion" length  is  the  most  important
-       one,  because it affects more than just users of that par-
-       ticular terminal.  This is the length of the entry  as  it
+       The  "before  tc  expansion"  length is the most important
+       one, because it affects more than just users of that  par-
+       ticular  terminal.   This is the length of the entry as it
        exists in /etc/termcap, minus the backslash-newline pairs,
        which <STRONG>tgetent()</STRONG> strips out while reading it.  Some termcap
-       libraries  strip  off  the final newline, too (GNU termcap
+       libraries strip off the final newline,  too  (GNU  termcap
        does not).  Now suppose:
 
-       *    a termcap entry before expansion is  more  than  1023
-            bytes long,
-
-          and the application has only allocated a 1k buffer,
-
-       *    and  the  termcap library (like the one in BSD/OS 1.1
-            and GNU) reads the whole entry into  the  buffer,  no
-            matter  what its length, to see if it is the entry it
-            wants,
-
-       *    and <STRONG>tgetent()</STRONG> is searching for a terminal  type  that
-            either is the long entry, appears in the termcap file
-            after the long entry, or does not appear in the  file
-            at  all  (so  that  <STRONG>tgetent()</STRONG> has to search the whole
-            termcap file).
-
-       Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps  its  stack,
-       and  probably core dump the program.  Programs like telnet
-       are particularly vulnerable;  modern  telnets  pass  along
-       values  like the terminal type automatically.  The results
-       are almost as undesirable with  a  termcap  library,  like
-       SunOS  4.1.3  and Ultrix 4.4, that prints warning messages
-       when it reads an overly long termcap entry.  If a  termcap
-       library  truncates  long  entries,  like  OSF/1 3.0, it is
-       immune to dying here but will return  incorrect  data  for
+       <STRONG>o</STRONG>   a  termcap  entry  before  expansion is more than 1023
+           bytes long,
+
+       <STRONG>o</STRONG>   and the application has only allocated a 1k buffer,
+
+       <STRONG>o</STRONG>   and the termcap library (like the one  in  BSD/OS  1.1
+           and  GNU)  reads  the  whole entry into the buffer, no
+           matter what its length, to see if it is the  entry  it
+           wants,
+
+       <STRONG>o</STRONG>   and  <STRONG>tgetent()</STRONG>  is  searching for a terminal type that
+           either is the long entry, appears in the termcap  file
+           after  the  long entry, or does not appear in the file
+           at all (so that <STRONG>tgetent()</STRONG>  has  to  search  the  whole
+           termcap file).
+
+       Then  <STRONG>tgetent()</STRONG>  will overwrite memory, perhaps its stack,
+       and probably core dump the program.  Programs like  telnet
+       are  particularly  vulnerable;  modern  telnets pass along
+       values like the terminal type automatically.  The  results
+       are  almost  as  undesirable  with a termcap library, like
+       SunOS 4.1.3 and Ultrix 4.4, that prints  warning  messages
+       when  it reads an overly long termcap entry.  If a termcap
+       library truncates long entries,  like  OSF/1  3.0,  it  is
+       immune  to  dying  here but will return incorrect data for
        the terminal.
 
        The "after tc expansion" length will have a similar effect
        to the above, but only for people who actually set TERM to
-       that  terminal type, since <STRONG>tgetent()</STRONG> only does "tc" expan-
-       sion once it is found the terminal  type  it  was  looking
+       that terminal type, since <STRONG>tgetent()</STRONG> only does "tc"  expan-
+       sion  once  it  is  found the terminal type it was looking
        for, not while searching.
 
        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,
+       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 ter-
-       minal types and users whose TERM variable does not have  a
+       minal  types and users whose TERM variable does not have a
        termcap entry.
 
        When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> imple-
        mentation of <STRONG><A HREF="tic.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)
+       tc length of a termcap translation is too  long.   The  -c
+       (check)  option  also checks resolved (after tc expansion)
        lengths.
 
-   <STRONG>Binary</STRONG> <STRONG>Compatibility</STRONG>
-       It  is not wise to count on portability of binary terminfo
-       entries between commercial UNIX versions.  The problem  is
-       that  there  are  at least two versions of terminfo (under
+
+</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 capabilities to the string
-       table that (in the binary format) collide  with  System  V
+       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>EXTENSIONS</H2><PRE>
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+       Searching for terminal descriptions in <STRONG>$HOME/.terminfo</STRONG> and
+       TERMINFO_DIRS is not supported by older implementations.
+
        Some  SVr4  <STRONG>curses</STRONG>  implementations,  and  all previous to
        SVr4, do not interpret the %A and %O operators in  parame-
        ter strings.
        and emulators like xterm that  can  return  mouse-tracking
        information in the keyboard-input stream.
 
+       X/Open Curses does not mention italics.  Portable applica-
+       tions 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 extension sets.  Here is a summary, accu-
        through 63, plus a number  of  incompatible  string  table
        extensions.
 
-       <STRONG>OSF</STRONG>  -- Supports both the SVr4 set and the AIX extensions.
+       <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
 
 
-</PRE>
-<H2>FILES</H2><PRE>
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
        /usr/share/terminfo/?/*  files     containing     terminal
                                 descriptions
 
 
-</PRE>
-<H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,  <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG>printf(3)</STRONG>,   <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+       <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>.
 
 
-</PRE>
-<H2>AUTHORS</H2><PRE>
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
        Zeyd  M.  Ben-Halim,  Eric  S.  Raymond, Thomas E. Dickey.
        Based on pcurses by Pavel Curtis.
 
 
                                                             <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 </PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
+<div class="nav">
+<ul>
+<li><a href="#h2-NAME">NAME</a></li>
+<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-Predefined-Capabilities">Predefined Capabilities</a></li>
+<li><a href="#h3-User-Defined-Capabilities">User-Defined Capabilities</a></li>
+<li><a href="#h3-A-Sample-Entry">A Sample Entry</a></li>
+<li><a href="#h3-Types-of-Capabilities">Types of Capabilities</a></li>
+<li><a href="#h3-Fetching-Compiled-Descriptions">Fetching Compiled Descriptions</a></li>
+<li><a href="#h3-Preparing-Descriptions">Preparing Descriptions</a></li>
+<li><a href="#h3-Basic-Capabilities">Basic Capabilities</a></li>
+<li><a href="#h3-Parameterized-Strings">Parameterized Strings</a></li>
+<li><a href="#h3-Cursor-Motions">Cursor Motions</a></li>
+<li><a href="#h3-Area-Clears">Area Clears</a></li>
+<li><a href="#h3-Insert_delete-line-and-vertical-motions">Insert/delete line and vertical motions</a></li>
+<li><a href="#h3-Insert_Delete-Character">Insert/Delete Character</a></li>
+<li><a href="#h3-Highlighting_-Underlining_-and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></li>
+<li><a href="#h3-Keypad-and-Function-Keys">Keypad and Function Keys</a></li>
+<li><a href="#h3-Tabs-and-Initialization">Tabs and Initialization</a></li>
+<li><a href="#h3-Delays-and-Padding">Delays and Padding</a></li>
+<li><a href="#h3-Status-Lines">Status Lines</a></li>
+<li><a href="#h3-Line-Graphics">Line Graphics</a></li>
+<li><a href="#h3-Color-Handling">Color Handling</a></li>
+<li><a href="#h3-Miscellaneous">Miscellaneous</a></li>
+<li><a href="#h3-Glitches-and-Braindamage">Glitches and Braindamage</a></li>
+<li><a href="#h3-Similar-Terminals">Similar Terminals</a></li>
+<li><a href="#h3-Pitfalls-of-Long-Entries">Pitfalls of Long Entries</a></li>
+<li><a href="#h3-Binary-Compatibility">Binary Compatibility</a></li>
+</ul>
+</li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+</ul>
+</div>
 </BODY>
 </HTML>