]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/terminfo.5.html
ncurses 6.4 - patch 20230805
[ncurses.git] / doc / html / man / terminfo.5.html
index 4f93c173ef5d7e6229ce87b450525c0f21188ac4..28e7be775097d0a442c791c08f0e972e64b6c8a8 100644 (file)
@@ -1,11 +1,11 @@
-<!-- 
+<!--
   * t
   * DO NOT EDIT THIS FILE BY HAND!
   * It is generated from terminfo.head,  ./../include/Caps ./../include/Caps-ncurses, and terminfo.tail.
   * Note: this must be run through tbl before nroff.
   * The magic cookie on the first line triggers this under some man programs.
   ****************************************************************************
-  * Copyright 2018-2019,2020 Thomas E. Dickey                                *
+  * Copyright 2018-2021,2023 Thomas E. Dickey                                *
   * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: terminfo.head,v 1.39 2020/02/02 23:34:34 tom Exp @
+  * @Id: terminfo.head,v 1.44 2023/07/01 15:46:56 tom Exp @
   * Head of terminfo man page ends here
   ****************************************************************************
-  * Copyright 2018-2019,2020 Thomas E. Dickey                                *
+  * Copyright 2018-2022,2023 Thomas E. Dickey                                *
   * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -62,7 +62,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: terminfo.tail,v 1.100 2020/12/19 21:51:22 tom Exp @
+  * @Id: terminfo.tail,v 1.120 2023/07/15 19:46:56 tom Exp @
   *.in -2
   *.in +2
   *.in -2
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>terminfo 5   File Formats</TITLE>
+<TITLE>terminfo 5 2023-07-01 ncurses 6.4 File formats</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
 </HEAD>
 <BODY>
-<H1 class="no-header">terminfo 5   File Formats</H1>
+<H1 class="no-header">terminfo 5 2023-07-01 ncurses 6.4 File formats</H1>
 <PRE>
-<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>                      File Formats                      <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>                      File formats                      <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 
 
 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
-       terminfo - terminal capability data base
+       terminfo - terminal capability database
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -95,7 +95,7 @@
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-       <EM>Terminfo</EM>  is  a data base describing terminals, used by screen-oriented
+       <EM>Terminfo</EM>  is  a  database describing terminals, used by screen-oriented
        programs  such  as  <STRONG>nvi(1)</STRONG>,  <STRONG>lynx(1)</STRONG>,   <STRONG>mutt(1)</STRONG>,   and   other   curses
        applications,  using  high-level calls to libraries such as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
        It is also used via low-level calls by  non-curses  applications  which
        have, by specifying how to perform screen operations, and by specifying
        padding requirements and initialization sequences.
 
-       This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210403).
+       This manual describes <STRONG>ncurses</STRONG> version 6.4 (patch 20230805).
 
 
 </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
                                                        #1
           set_left_margin             smgl      ML     set left soft margin
                                                        at current
-                                                       column.     See
-                                                       smgl. (ML is not in
-                                                       BSD termcap).
+                                                       column.     (ML is
+                                                       not in BSD termcap).
           set_left_margin_parm        smglp     Zm     Set left (right)
                                                        margin at column #1
           set_right_margin            smgr      MR     set right soft
           user3                       u3        u3     User string #3
           user4                       u4        u4     User string #4
           user5                       u5        u5     User string #5
-
           user6                       u6        u6     User string #6
+
           user7                       u7        u7     User string #7
           user8                       u8        u8     User string #8
           user9                       u9        u9     User string #9
           zero_motion                 zerom     Zx     No motion for
                                                        subsequent character
 
-       The  following  string  capabilities  are  present  in  the SVr4.0 term
+       The following string  capabilities  are  present  in  the  SVr4.0  term
        structure, but were originally not documented in the man page.
 
 
                                                         key #1 to type
                                                         string #2 and show
                                                         string #3
-
-
           req_mouse_pos               reqmp      RQ     Request mouse
                                                         position
+
           scancode_escape             scesc      S7     Escape for
                                                         scancode emulation
           set0_des_seq                s0ds       s0     Shift to codeset 0
                                                         bottom margins to
                                                         #1, #2
 
-        The  XSI Curses standard added these hardcopy capabilities.  They were
-        used in some post-4.1 versions of System V curses, e.g.,  Solaris  2.5
-        and  IRIX  6.x.  Except for <STRONG>YI</STRONG>, the <STRONG>ncurses</STRONG> termcap names for them are
-        invented.  According to the XSI Curses standard, they have no  termcap
-        names.   If  your compiled terminfo entries use these, they may not be
+        The XSI Curses standard added these hardcopy capabilities.  They  were
+        used  in  some post-4.1 versions of System V curses, e.g., Solaris 2.5
+        and IRIX 6.x.  Except for <STRONG>YI</STRONG>, the <STRONG>ncurses</STRONG> termcap names for  them  are
+        invented.   According to the XSI Curses standard, they have no termcap
+        names.  If your compiled terminfo entries use these, they may  not  be
         binary-compatible with System V terminfo entries after SVr4.1; beware!
 
 
 
 
 </PRE><H3><a name="h3-User-Defined-Capabilities">User-Defined Capabilities</a></H3><PRE>
-       The preceding section listed the <EM>predefined</EM>  capabilities.   They  deal
-       with  some special features for terminals no longer (or possibly never)
-       produced.  Occasionally there are special features of  newer  terminals
-       which  are awkward or impossible to represent by reusing the predefined
+       The  preceding  section  listed the <EM>predefined</EM> capabilities.  They deal
+       with some special features for terminals no longer (or possibly  never)
+       produced.   Occasionally  there are special features of newer terminals
+       which are awkward or impossible to represent by reusing the  predefined
        capabilities.
 
-       <STRONG>ncurses</STRONG>   addresses   this   limitation   by   allowing    user-defined
-       capabilities.   The  <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG> option for
+       <STRONG>ncurses</STRONG>    addresses   this   limitation   by   allowing   user-defined
+       capabilities.  The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG>  option  for
        this purpose.  When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats unknown capabilities as user-
-       defined.   That  is,  if <STRONG>tic</STRONG> encounters a capability name which it does
-       not recognize, it infers its type (boolean, number or string) from  the
-       syntax  and  makes  an  extended  table entry for that capability.  The
-       <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG> function makes  this  information  conditionally
-       available  to  applications.   The  ncurses  library  provides the data
+       defined.  That is, if <STRONG>tic</STRONG> encounters a capability name  which  it  does
+       not  recognize, it infers its type (boolean, number or string) from the
+       syntax and makes an extended table  entry  for  that  capability.   The
+       <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG>  function  makes  this information conditionally
+       available to applications.   The  ncurses  library  provides  the  data
        leaving most of the behavior to applications:
 
-       <STRONG>o</STRONG>   User-defined capability strings whose  name  begins  with  "k"  are
+       <STRONG>o</STRONG>   User-defined  capability  strings  whose  name  begins with "k" are
            treated as function keys.
 
-       <STRONG>o</STRONG>   The  types  (boolean,  number,  string)  determined  by  <STRONG>tic</STRONG> can be
+       <STRONG>o</STRONG>   The types (boolean,  number,  string)  determined  by  <STRONG>tic</STRONG>  can  be
            inferred by successful calls on <STRONG>tigetflag</STRONG>, etc.
 
        <STRONG>o</STRONG>   If the capability name happens to be two characters, the capability
            is also available through the termcap interface.
 
-       While  termcap  is  said  to  be  extensible  because it does not use a
-       predefined set of capabilities, in practice it has been limited to  the
-       capabilities  defined  by  terminfo  implementations.  As a rule, user-
+       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
+       limited to booleans and numbers to avoid running  past  the  1023  byte
+       limit  assumed  by  termcap implementations and their applications.  In
+       particular, providing extended sets  of  function  keys  (past  the  60
        numbered keys and the handful of special named keys) is best done using
        the longer names available using terminfo.
 
+       The ncurses library uses a few of these user-defined  capabilities,  as
+       described  in <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.  Other user-defined capabilities (including
+       function keys) are described in the terminal database, in  the  section
+       on <EM>NCURSES</EM> <EM>USER-DEFINABLE</EM> <EM>CAPABILITIES</EM>
+
 
 </PRE><H3><a name="h3-A-Sample-Entry">A Sample Entry</a></H3><PRE>
        The   following   entry,   describing  an  ANSI-standard  terminal,  is
 
        <STRONG>o</STRONG>   Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations:
 
-           <STRONG>o</STRONG>   a list of directories (no default value), and
+           <STRONG>o</STRONG>   a list of directories (/usr/share/terminfo), and
 
            <STRONG>o</STRONG>   the  system  terminfo   directory,   <EM>/usr/share/terminfo</EM>   (the
                compiled-in default).
        <STRONG>%P</STRONG><EM>[a-z]</EM>
             set dynamic variable <EM>[a-z]</EM> to <EM>pop()</EM>
 
-       <STRONG>%g</STRONG><EM>[a-z]/</EM>
+       <STRONG>%g</STRONG><EM>[a-z]</EM>
             get dynamic variable <EM>[a-z]</EM> and push it
 
        <STRONG>%P</STRONG><EM>[A-Z]</EM>
             these are simply two different sets of variables, whose values are
             not reset between calls to <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>.  However, that fact  is  not
             documented in other implementations.  Relying on it will adversely
-            impact portability to other implementations.
+            impact portability to other implementations:
+
+            <STRONG>o</STRONG>   SVr2 curses supported <EM>dynamic</EM> variables.  Those are  set  only
+                by  a  <STRONG>%P</STRONG>  operator.   A <STRONG>%g</STRONG> for a given variable without first
+                setting it with <STRONG>%P</STRONG> will give  unpredictable  results,  because
+                dynamic  variables  are  an  uninitialized  local array on the
+                stack in the <STRONG>tparm</STRONG> function.
+
+            <STRONG>o</STRONG>   SVr3.2 curses supported <EM>static</EM> variables.  Those are an  array
+                in the <STRONG>TERMINAL</STRONG> structure (declared in <STRONG>term.h</STRONG>), and are zeroed
+                automatically when the <STRONG>setupterm</STRONG> function allocates the data.
+
+            <STRONG>o</STRONG>   SVr4 curses made no further improvements to the <EM>dynamic/static</EM>
+                variable feature.
+
+            <STRONG>o</STRONG>   Solaris  XPG4  curses does not distinguish between <EM>dynamic</EM> and
+                <EM>static</EM> variables.  They are the same.  Like SVr4 curses,  XPG4
+                curses does not initialize these explicitly.
+
+            <STRONG>o</STRONG>   Before  version  6.3,  ncurses  stores both <EM>dynamic</EM> and <EM>static</EM>
+                variables in persistent storage, initialized to zeros.
+
+            <STRONG>o</STRONG>   Beginning with version 6.3, ncurses stores <EM>static</EM> and  <EM>dynamic</EM>
+                variables in the same manner as SVr4.
+
+                <STRONG>o</STRONG>   Unlike   other   implementations,  ncurses  zeros  dynamic
+                    variables before the first <STRONG>%g</STRONG> or <STRONG>%P</STRONG> operator.
+
+                <STRONG>o</STRONG>   Like SVr2, the scope of dynamic variables  in  ncurses  is
+                    within the current call to <STRONG>tparm</STRONG>.  Use static variables if
+                    persistent storage is needed.
 
        <STRONG>%'</STRONG><EM>c</EM><STRONG>'</STRONG> char constant <EM>c</EM>
 
        outputting <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
 
 
+</PRE><H3><a name="h3-Margins">Margins</a></H3><PRE>
+       SVr4 (and X/Open Curses) list several string capabilities  for  setting
+       margins.   Two  were  intended  for use with terminals, and another six
+       were intended for use with printers.
+
+       <STRONG>o</STRONG>   The two terminal capabilities assume that the terminal may have the
+           capability  of  setting the left and/or right margin at the current
+           cursor column position.
+
+       <STRONG>o</STRONG>   The printer capabilities assume that the printer may have two types
+           of capability:
+
+           <STRONG>o</STRONG>   the ability to set a top and/or bottom margin using the current
+               line position, and
+
+           <STRONG>o</STRONG>   parameterized capabilities for setting the top,  bottom,  left,
+               right margins given the number of rows or columns.
+
+       In  practice,  the  categorization into "terminal" and "printer" is not
+       suitable:
+
+       <STRONG>o</STRONG>   The AT&amp;T SVr4 terminal database uses  <STRONG>smgl</STRONG>  four  times,  for  AT&amp;T
+           hardware.
+
+           Three  of  the  four  are  printers.   They lack the ability to set
+           left/right margins by specifying the column.
+
+       <STRONG>o</STRONG>   Other (non-AT&amp;T) terminals may support margins but using  different
+           assumptions from AT&amp;T.
+
+           For  instance,  the DEC VT420 supports left/right margins, but only
+           using a column parameter.  As an added complication, the VT420 uses
+           two  settings to fully enable left/right margins (left/right margin
+           mode, and origin mode).  The  former  enables  the  margins,  which
+           causes  printed  text  to  wrap  within  margins, but the latter is
+           needed to prevent cursor-addressing outside those margins.
+
+       <STRONG>o</STRONG>   Both DEC VT420 left/right margins are set  with  a  single  control
+           sequence.  If either is omitted, the corresponding margin is set to
+           the left or right edge of the  display  (rather  than  leaving  the
+           margin unmodified).
+
+       These are the margin-related capabilities:
+
+                <STRONG>Name</STRONG>       <STRONG>Description</STRONG>
+                ------------------------------------------------------
+                smgl       Set left margin at current column
+                smgr       Set right margin at current column
+                smgb       Set bottom margin at current line
+                smgt       Set top margin at current line
+                smgbp      Set bottom margin at line <EM>N</EM>
+                smglp      Set left margin at column <EM>N</EM>
+                smgrp      Set right margin at column <EM>N</EM>
+                smgtp      Set top margin at line <EM>N</EM>
+                smglr      Set both left and right margins to <EM>L</EM> and <EM>R</EM>
+                smgtb      Set both top and bottom margins to <EM>T</EM> and <EM>B</EM>
+
+       When  writing  an  application that uses these string capabilities, the
+       pairs should be first checked to see if each capability in the pair  is
+       set or only one is set:
+
+       <STRONG>o</STRONG>   If  both  <STRONG>smglp</STRONG>  and  <STRONG>smgrp</STRONG>  are  set,  each  is used with a single
+           argument, <EM>N</EM>, that gives the column number of  the  left  and  right
+           margin, respectively.
+
+       <STRONG>o</STRONG>   If  both  <STRONG>smgtp</STRONG>  and <STRONG>smgbp</STRONG> are set, each is used to set the top and
+           bottom margin, respectively:
+
+           <STRONG>o</STRONG>   <STRONG>smgtp</STRONG> is used with a single argument, <EM>N</EM>, the line number of the
+               top margin.
+
+           <STRONG>o</STRONG>   <STRONG>smgbp</STRONG>  is  used with two arguments, <EM>N</EM> and <EM>M</EM>, that give the line
+               number of the bottom margin, the first counting from the top of
+               the  page  and  the  second  counting  from  the  bottom.  This
+               accommodates the two styles of specifying the bottom margin  in
+               different manufacturers' printers.
+
+           When  designing  a terminfo entry for a printer that has a settable
+           bottom margin, only the first or second argument  should  be  used,
+           depending on the printer.  When developing an application that uses
+           <STRONG>smgbp</STRONG> to set the bottom margin, both arguments must be given.
+
+       Conversely, when only one capability in the pair is set:
+
+       <STRONG>o</STRONG>   If only one of <STRONG>smglp</STRONG> and <STRONG>smgrp</STRONG> is set, then it  is  used  with  two
+           arguments, the column number of the left and right margins, in that
+           order.
+
+       <STRONG>o</STRONG>   Likewise, if only one of <STRONG>smgtp</STRONG> and <STRONG>smgbp</STRONG> is set, then  it  is  used
+           with  two  arguments  that give the top and bottom margins, in that
+           order, counting from the top of the page.
+
+           When designing a terminfo entry for a printer that requires setting
+           both  left and right or top and bottom margins simultaneously, only
+           one capability in the pairs <STRONG>smglp</STRONG> and  <STRONG>smgrp</STRONG>  or  <STRONG>smgtp</STRONG>  and  <STRONG>smgbp</STRONG>
+           should be defined, leaving the other unset.
+
+       Except  for  very  old terminal descriptions, e.g., those developed for
+       SVr4, the scheme just described  should  be  considered  obsolete.   An
+       improved set of capabilities was added late in the SVr4 releases (<STRONG>smglr</STRONG>
+       and <STRONG>smgtb</STRONG>),  which  explicitly  use  two  parameters  for  setting  the
+       left/right or top/bottom margins.
+
+       When setting margins, the line- and column-values are zero-based.
+
+       The  <STRONG>mgc</STRONG>  string  capability  should  be defined.  Applications such as
+       <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> rely upon this to reset all margins.
+
+
 </PRE><H3><a name="h3-Area-Clears">Area Clears</a></H3><PRE>
        If the terminal can clear from the current position to the end  of  the
        line,  leaving  the cursor where it is, this should be given as <STRONG>el</STRONG>.  If
          diamond                     ACS_DIAMOND    +         `        0x60
          checker board (stipple)     ACS_CKBOARD    :         a        0x61
          degree symbol               ACS_DEGREE     \         f        0x66
+
          plus/minus                  ACS_PLMINUS    #         g        0x67
          board of squares            ACS_BOARD      #         h        0x68
          lantern symbol              ACS_LANTERN    #         i        0x69
          lower right corner          ACS_LRCORNER   +         j        0x6a
-
          upper right corner          ACS_URCORNER   +         k        0x6b
          upper left corner           ACS_ULCORNER   +         l        0x6c
          lower left corner           ACS_LLCORNER   +         m        0x6d
 
        X/Open  Curses  does  not  mention italics.  Portable applications must
        assume that  numeric  capabilities  are  signed  16-bit  values.   This
-       includes  the  <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM>  (ncv)  capability.  The 32768 mask value
-       used for italics with ncv can be confused with an absent  or  cancelled
-       ncv.   If  italics  should work with colors, then the ncv value must be
+       includes  the  <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM>  (<STRONG>ncv</STRONG>)  capability.  The 32768 mask value
+       used for italics with <STRONG>ncv</STRONG> can be confused with an absent  or  cancelled
+       <STRONG>ncv</STRONG>.   If  italics  should work with colors, then the <STRONG>ncv</STRONG> value must be
        specified, even if it is zero.
 
        Different commercial ports of terminfo  and  curses  support  different
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
-       <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,     <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>,    <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,    <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,    <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>,
-       <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,    <STRONG>printf(3)</STRONG>,     <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>.      <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+       <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>,
+       <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>.  <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
        <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
 
 
 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
-       Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.  Based on pcurses
+       Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.  Based on <EM>pcurses</EM>
        by Pavel Curtis.
 
 
 
-                                                                   <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ncurses 6.4                       2023-07-01                       <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
 <li><a href="#h3-Basic-Capabilities">Basic Capabilities</a></li>
 <li><a href="#h3-Parameterized-Strings">Parameterized Strings</a></li>
 <li><a href="#h3-Cursor-Motions">Cursor Motions</a></li>
+<li><a href="#h3-Margins">Margins</a></li>
 <li><a href="#h3-Area-Clears">Area Clears</a></li>
 <li><a href="#h3-Insert_delete-line-and-vertical-motions">Insert/delete line and vertical motions</a></li>
 <li><a href="#h3-Insert_Delete-Character">Insert/Delete Character</a></li>