]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - doc/bash.0
bash-4.4 rc1 release
[thirdparty/bash.git] / doc / bash.0
index ed1416369046e9a74b7af4a2a5237b8332fda2f2..c189361e927357e50fd931df1d8ac8ab5717d438 100644 (file)
@@ -1,4 +1,4 @@
-BASH(1)                                                                BASH(1)
+BASH(1)                     General Commands Manual                    BASH(1)
 
 
 
@@ -6,10 +6,10 @@ N\bNA\bAM\bME\bE
        bash - GNU Bourne-Again SHell
 
 S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
-       b\bba\bas\bsh\bh [options] [file]
+       b\bba\bas\bsh\bh [options] [command_string | file]
 
 C\bCO\bOP\bPY\bYR\bRI\bIG\bGH\bHT\bT
-       Bash is Copyright (C) 1989-2009 by the Free Software Foundation, Inc.
+       Bash is Copyright (C) 1989-2016 by the Free Software Foundation, Inc.
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        B\bBa\bas\bsh\bh  is  an  s\bsh\bh-compatible  command language interpreter that executes
@@ -21,35 +21,40 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        1003.1).  B\bBa\bas\bsh\bh can be configured to be POSIX-conformant by default.
 
 O\bOP\bPT\bTI\bIO\bON\bNS\bS
-       In  addition  to  the  single-character shell options documented in the
-       description of the s\bse\bet\bt builtin command, b\bba\bas\bsh\bh interprets  the  following
-       options when it is invoked:
-
-       -\b-c\bc _\bs_\bt_\br_\bi_\bn_\bg If  the  -\b-c\bc  option  is  present, then commands are read from
-                 _\bs_\bt_\br_\bi_\bn_\bg.  If there are arguments after the  _\bs_\bt_\br_\bi_\bn_\bg,  they  are
-                 assigned to the positional parameters, starting with $\b$0\b0.
+       All of the single-character shell options documented in the description
+       of the s\bse\bet\bt builtin command can be used as options  when  the  shell  is
+       invoked.  In addition, b\bba\bas\bsh\bh interprets the following options when it is
+       invoked:
+
+       -\b-c\bc        If the -\b-c\bc option is present, then commands are read from  the
+                 first non-option argument _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b__\bs_\bt_\br_\bi_\bn_\bg.  If there are argu-
+                 ments  after  the  _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b__\bs_\bt_\br_\bi_\bn_\bg,  the  first  argument   is
+                 assigned  to  $\b$0\b0  and any remaining arguments are assigned to
+                 the positional parameters.  The assignment  to  $\b$0\b0  sets  the
+                 name  of  the  shell, which is used in warning and error mes-
+                 sages.
        -\b-i\bi        If the -\b-i\bi option is present, the shell is _\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be.
        -\b-l\bl        Make b\bba\bas\bsh\bh act as if it had been invoked as a login shell (see
                  I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN below).
-       -\b-r\br        If the -\b-r\br option is present,  the  shell  becomes  _\br_\be_\bs_\bt_\br_\bi_\bc_\bt_\be_\bd
+       -\b-r\br        If  the  -\b-r\br  option  is present, the shell becomes _\br_\be_\bs_\bt_\br_\bi_\bc_\bt_\be_\bd
                  (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).
-       -\b-s\bs        If  the -\b-s\bs option is present, or if no arguments remain after
-                 option processing, then commands are read from  the  standard
-                 input.   This  option  allows the positional parameters to be
+       -\b-s\bs        If the -\b-s\bs option is present, or if no arguments remain  after
+                 option  processing,  then commands are read from the standard
+                 input.  This option allows the positional  parameters  to  be
                  set when invoking an interactive shell.
-       -\b-D\bD        A list of all double-quoted strings preceded by $\b$ is  printed
-                 on  the standard output.  These are the strings that are sub-
+       -\b-D\bD        A  list of all double-quoted strings preceded by $\b$ is printed
+                 on the standard output.  These are the strings that are  sub-
                  ject to language translation when the current locale is not C\bC
-                 or  P\bPO\bOS\bSI\bIX\bX.   This  implies the -\b-n\bn option; no commands will be
+                 or P\bPO\bOS\bSI\bIX\bX.  This implies the -\b-n\bn option; no  commands  will  be
                  executed.
        [\b[-\b-+\b+]\b]O\bO [\b[_\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn]\b]
-                 _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bis one of the  shell  options  accepted  by  the
-                 s\bsh\bho\bop\bpt\bt   builtin  (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below).   If
+                 _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\b is  one  of  the  shell options accepted by the
+                 s\bsh\bho\bop\bpt\bt  builtin  (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below).    If
                  _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn is present, -\b-O\bO sets the value of that option; +\b+O\bO
-                 unsets  it.   If  _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn is not supplied, the names and
-                 values of the shell options accepted by s\bsh\bho\bop\bpt\bt are printed  on
-                 the  standard  output.   If  the invocation option is +\b+O\bO, the
-                 output is displayed in a format that may be reused as  input.
+                 unsets it.  If _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn is not supplied,  the  names  and
+                 values  of the shell options accepted by s\bsh\bho\bop\bpt\bt are printed on
+                 the standard output.  If the invocation  option  is  +\b+O\bO,  the
+                 output is displayed in a format that may be reused as input.
        -\b--\b-        A  -\b--\b-  signals the end of options and disables further option
                  processing.  Any arguments after the -\b--\b- are treated as  file-
                  names and arguments.  An argument of -\b- is equivalent to -\b--\b-.
@@ -61,9 +66,7 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br
               Arrange for the debugger profile to be executed before the shell
               starts.  Turns on extended debugging mode (see  the  description
-              of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg  option  to the s\bsh\bho\bop\bpt\bt builtin below) and shell
-              function tracing (see the description of the -\b-o\bo f\bfu\bun\bnc\bct\btr\bra\bac\bce\be option
-              to the s\bse\bet\bt builtin below).
+              of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the s\bsh\bho\bop\bpt\bt builtin below).
        -\b--\b-d\bdu\bum\bmp\bp-\b-p\bpo\bo-\b-s\bst\btr\bri\bin\bng\bgs\bs
               Equivalent  to -\b-D\bD, but the output is in the GNU _\bg_\be_\bt_\bt_\be_\bx_\bt p\bpo\bo (por-
               table object) file format.
@@ -97,13 +100,15 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
 
        -\b--\b-p\bpo\bos\bsi\bix\bx
               Change the behavior of b\bba\bas\bsh\bh where the default operation  differs
-              from the POSIX standard to match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
+              from the POSIX standard to match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).  See
+              S\bSE\bEE\bE A\bAL\bLS\bSO\bO below for a reference to a document  that  details  how
+              posix mode affects bash's behavior.
 
        -\b--\b-r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd
               The shell becomes restricted (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).
 
        -\b--\b-v\bve\ber\brb\bbo\bos\bse\be
-              Equivalent to  -\b-v\bv.
+              Equivalent to -\b-v\bv.
 
        -\b--\b-v\bve\ber\brs\bsi\bio\bon\bn
               Show  version information for this instance of b\bba\bas\bsh\bh on the stan-
@@ -125,27 +130,29 @@ I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN
        A  _\bl_\bo_\bg_\bi_\bn _\bs_\bh_\be_\bl_\bl is one whose first character of argument zero is a -\b-, or
        one started with the -\b--\b-l\blo\bog\bgi\bin\bn option.
 
-       An _\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be shell is one started without  non-option  arguments  and
-       without the -\b-c\bc option whose standard input and error are both connected
-       to terminals (as determined by _\bi_\bs_\ba_\bt_\bt_\by(3)), or one started with  the  -\b-i\bi
-       option.   P\bPS\bS1\b1 is set and $\b$-\b- includes i\bi if b\bba\bas\bsh\bh is interactive, allowing
-       a shell script or a startup file to test this state.
+       An _\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be  shell  is  one  started  without  non-option  arguments
+       (unless -\b-s\bs is specified) and without the -\b-c\bc option whose standard input
+       and error are both connected to terminals (as determined by _\bi_\bs_\ba_\bt_\bt_\by(3)),
+       or  one  started  with  the -\b-i\bi option.  P\bPS\bS1\b1 is set and $\b$-\b- includes i\bi if
+       b\bba\bas\bsh\bh is interactive, allowing a shell script or a startup file to  test
+       this state.
 
-       The following paragraphs describe how b\bba\bas\bsh\bh executes its startup  files.
-       If  any  of  the files exist but cannot be read, b\bba\bas\bsh\bh reports an error.
-       Tildes are expanded in file names as described below under T\bTi\bil\bld\bde\be E\bEx\bxp\bpa\ban\bn-\b-
+       The  following paragraphs describe how b\bba\bas\bsh\bh executes its startup files.
+       If any of the files exist but cannot be read, b\bba\bas\bsh\bh  reports  an  error.
+       Tildes  are expanded in filenames as described below under T\bTi\bil\bld\bde\be E\bEx\bxp\bpa\ban\bn-\b-
        s\bsi\bio\bon\bn in the E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN section.
 
-       When  b\bba\bas\bsh\bh is invoked as an interactive login shell, or as a non-inter-
-       active shell with the -\b--\b-l\blo\bog\bgi\bin\bn option, it first reads and executes  com-
-       mands  from  the file _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be, if that file exists.  After reading
+       When b\bba\bas\bsh\bh is invoked as an interactive login shell, or as a  non-inter-
+       active  shell with the -\b--\b-l\blo\bog\bgi\bin\bn option, it first reads and executes com-
+       mands from the file _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be, if that file exists.   After  reading
        that file, it looks for _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bp_\br_\bo_\bf_\bi_\bl_\be, _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bi_\bn, and _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be,
-       in  that order, and reads and executes commands from the first one that
-       exists and is readable.  The -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be option may be  used  when  the
+       in that order, and reads and executes commands from the first one  that
+       exists  and  is  readable.  The -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be option may be used when the
        shell is started to inhibit this behavior.
 
-       When  a  login  shell  exits, b\bba\bas\bsh\bh reads and executes commands from the
-       file _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt, if it exists.
+       When an interactive login shell exits, or a non-interactive login shell
+       executes  the  e\bex\bxi\bit\bt  builtin  command, b\bba\bas\bsh\bh reads and executes commands
+       from the file _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt, if it exists.
 
        When an interactive shell that is not a login shell  is  started,  b\bba\bas\bsh\bh
        reads  and executes commands from _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists.  This
@@ -159,7 +166,7 @@ I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN
        of  a  file to read and execute.  B\bBa\bas\bsh\bh behaves as if the following com-
        mand were executed:
               if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
-       but the value of the P\bPA\bAT\bTH\bH variable is not used to search for  the  file
+       but the value of the P\bPA\bAT\bTH\bH variable is not used to search for the  file-
        name.
 
        If  b\bba\bas\bsh\bh  is  invoked  with  the name s\bsh\bh, it tries to mimic the startup
@@ -184,74 +191,76 @@ I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN
        startup files are read.
 
        B\bBa\bas\bsh\bh attempts to determine when it is being run with its standard input
-       connected  to a a network connection, as if by the remote shell daemon,
-       usually _\br_\bs_\bh_\bd, or the secure shell daemon _\bs_\bs_\bh_\bd.  If b\bba\bas\bsh\bh  determines  it
-       is  being  run  in  this  fashion,  it reads and executes commands from
-       _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists and is readable.  It will not do this if
-       invoked as s\bsh\bh.  The -\b--\b-n\bno\bor\brc\bc option may be used to inhibit this behavior,
-       and the -\b--\b-r\brc\bcf\bfi\bil\ble\be option may be used to force another file to  be  read,
-       but  _\br_\bs_\bh_\bd  does  not  generally  invoke the shell with those options or
-       allow them to be specified.
+       connected to a network connection, as when executed by the remote shell
+       daemon, usually _\br_\bs_\bh_\bd, or the secure shell daemon _\bs_\bs_\bh_\bd.  If b\bba\bas\bsh\bh  deter-
+       mines  it  is being run in this fashion, it reads and executes commands
+       from _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists and is readable.  It  will  not  do
+       this  if  invoked as s\bsh\bh.  The -\b--\b-n\bno\bor\brc\bc option may be used to inhibit this
+       behavior, and the -\b--\b-r\brc\bcf\bfi\bil\ble\be option may be used to force another file  to
+       be  read,  but  neither  _\br_\bs_\bh_\bd  nor _\bs_\bs_\bh_\bd generally invoke the shell with
+       those options or allow them to be specified.
 
        If the shell is started with the effective user (group) id not equal to
        the real user (group) id, and the -\b-p\bp option is not supplied, no startup
        files are read, shell functions are not inherited from the environment,
-       the  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS  variable, if it appears in the environment, is ignored,
-       and the effective user id is set to the real user id.  If the -\b-p\bp option
-       is  supplied  at  invocation, the startup behavior is the same, but the
-       effective user id is not reset.
+       the  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,  B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS,  C\bCD\bDP\bPA\bAT\bTH\bH,  and  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they
+       appear in the environment, are ignored, and the effective  user  id  is
+       set  to  the real user id.  If the -\b-p\bp option is supplied at invocation,
+       the startup behavior is the same, but the  effective  user  id  is  not
+       reset.
 
 D\bDE\bEF\bFI\bIN\bNI\bIT\bTI\bIO\bON\bNS\bS
-       The following definitions are used throughout the rest  of  this  docu-
+       The  following  definitions  are used throughout the rest of this docu-
        ment.
        b\bbl\bla\ban\bnk\bk  A space or tab.
-       w\bwo\bor\brd\bd   A  sequence  of  characters  considered  as a single unit by the
+       w\bwo\bor\brd\bd   A sequence of characters considered as  a  single  unit  by  the
               shell.  Also known as a t\bto\bok\bke\ben\bn.
-       n\bna\bam\bme\be   A _\bw_\bo_\br_\bd consisting only of  alphanumeric  characters  and  under-
-              scores,  and beginning with an alphabetic character or an under-
+       n\bna\bam\bme\be   A  _\bw_\bo_\br_\bd  consisting  only  of alphanumeric characters and under-
+              scores, and beginning with an alphabetic character or an  under-
               score.  Also referred to as an i\bid\bde\ben\bnt\bti\bif\bfi\bie\ber\br.
        m\bme\bet\bta\bac\bch\bha\bar\bra\bac\bct\bte\ber\br
-              A character that, when unquoted, separates words.   One  of  the
+              A  character  that,  when unquoted, separates words.  One of the
               following:
-              |\b|  &\b& ;\b; (\b( )\b) <\b< >\b> s\bsp\bpa\bac\bce\be t\bta\bab\bb
+              |\b|  &\b& ;\b; (\b( )\b) <\b< >\b> s\bsp\bpa\bac\bce\be t\bta\bab\bb n\bne\bew\bwl\bli\bin\bne\be
        c\bco\bon\bnt\btr\bro\bol\bl o\bop\bpe\ber\bra\bat\bto\bor\br
               A _\bt_\bo_\bk_\be_\bn that performs a control function.  It is one of the fol-
               lowing symbols:
-              |\b||\b| &\b& &\b&&\b& ;\b; ;\b;;\b; (\b( )\b) |\b| |\b|&\b& <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>
+              |\b||\b| &\b& &\b&&\b& ;\b; ;\b;;\b;\b;&\b& ;\b;;\b;&\b(\b( )\b) |\b| |\b|&\b& <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>
 
 R\bRE\bES\bSE\bER\bRV\bVE\bED\bD W\bWO\bOR\bRD\bDS\bS
        _\bR_\be_\bs_\be_\br_\bv_\be_\bd _\bw_\bo_\br_\bd_\bs are words that have a special meaning to the shell.  The
        following words are recognized as reserved when unquoted and either the
-       first word of a simple command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR below) or  the  third
+       first  word  of a simple command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR below) or the third
        word of a c\bca\bas\bse\be or f\bfo\bor\br command:
 
-       !\b c\bca\bas\bse\be  d\bdo\bo d\bdo\bon\bne\be e\bel\bli\bif\bf e\bel\bls\bse\be e\bes\bsa\bac\bc f\bfi\bi f\bfo\bor\br f\bfu\bun\bnc\bct\bti\bio\bon\bn i\bif\bf i\bin\bn s\bse\bel\ble\bec\bct\bt t\bth\bhe\ben\bn u\bun\bnt\bti\bil\bl
-       w\bwh\bhi\bil\ble\be {\b{ }\b} t\bti\bim\bme\be [\b[[\b[ ]\b]]\b]
+       !\bc\bca\bas\bse\be  c\bco\bop\bpr\bro\boc\bc  d\bdo\bo d\bdo\bon\bne\be e\bel\bli\bif\bf e\bel\bls\bse\be e\bes\bsa\bac\bc f\bfi\bi f\bfo\bor\br  f\bfu\bun\bnc\bct\bti\bio\bon\bn  i\bif\bf  i\bin\bn  s\bse\bel\ble\bec\bct\bt
+       t\bth\bhe\ben\bn u\bun\bnt\bti\bil\bw\bwh\bhi\bil\ble\be {\b{ }\b} t\bti\bim\bme\be [\b[[\b[ ]\b]]\b]
 
 S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
    S\bSi\bim\bmp\bpl\ble\be C\bCo\bom\bmm\bma\ban\bnd\bds\bs
-       A _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is a sequence of optional  variable  assignments  fol-
-       lowed  by  b\bbl\bla\ban\bnk\bk-separated  words and redirections, and terminated by a
+       A  _\bs_\bi_\bm_\bp_\bl_\be  _\bc_\bo_\bm_\bm_\ba_\bn_\bd  is a sequence of optional variable assignments fol-
+       lowed by b\bbl\bla\ban\bnk\bk-separated words and redirections, and  terminated  by  a
        _\bc_\bo_\bn_\bt_\br_\bo_\bl _\bo_\bp_\be_\br_\ba_\bt_\bo_\br.  The first word specifies the command to be executed,
-       and  is  passed  as  argument  zero.  The remaining words are passed as
+       and is passed as argument zero.  The  remaining  words  are  passed  as
        arguments to the invoked command.
 
-       The return value of a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is its exit status,  or  128+_\b if
+       The  return  value  of a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is its exit status, or 128+_\bn if
        the command is terminated by signal _\bn.
 
    P\bPi\bip\bpe\bel\bli\bin\bne\bes\bs
-       A  _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be  is  a sequence of one or more commands separated by one of
+       A _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be is a sequence of one or more commands separated  by  one  of
        the control operators |\b| or |\b|&\b&.  The format for a pipeline is:
 
               [t\bti\bim\bme\be [-\b-p\bp]] [ ! ] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [ [|\b|||\b|&\b&] _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2 ... ]
 
-       The standard output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a pipe to the  standard
-       input  of  _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2.   This connection is performed before any redirec-
+       The  standard output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a pipe to the standard
+       input of _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2.  This connection is performed  before  any  redirec-
        tions specified by the command (see R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN below).  If |\b|&\b& is used,
-       the standard error of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected to _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2's standard input
-       through the pipe; it is shorthand for 2\b2>\b>&\b&1\b1 |\b|.  This implicit  redirect-
-       ion of the standard error is performed after any redirections specified
-       by the command.
+       _\bc_\bo_\bm_\bm_\ba_\bn_\bd's standard error, in addition to its standard output,  is  con-
+       nected  to  _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2's standard input through the pipe; it is shorthand
+       for 2\b2>\b>&\b&1\b1 |\b|.  This implicit redirection of the  standard  error  to  the
+       standard  output  is  performed after any redirections specified by the
+       command.
 
        The return status of a pipeline is the exit status of the last command,
        unless  the  p\bpi\bip\bpe\bef\bfa\bai\bil\bl  option  is enabled.  If p\bpi\bip\bpe\bef\bfa\bai\bil\bl is enabled, the
@@ -265,51 +274,60 @@ S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
        If  the  t\bti\bim\bme\be reserved word precedes a pipeline, the elapsed as well as
        user and system time consumed by its execution are  reported  when  the
        pipeline  terminates.   The -\b-p\bp option changes the output format to that
-       specified by POSIX.  The T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable may be  set  to  a  format
-       string  that  specifies how the timing information should be displayed;
-       see the description of T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs below.
-
-       Each command in a pipeline is executed as a separate process (i.e.,  in
+       specified by POSIX.  When the shell is in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, it does not  rec-
+       ognize  t\bti\bim\bme\be  as  a  reserved word if the next token begins with a `-'.
+       The T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable may be set to a format  string  that  specifies
+       how  the timing information should be displayed; see the description of
+       T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs below.
+
+       When the shell is in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, t\bti\bim\bme\be may be followed by a newline.  In
+       this  case,  the shell displays the total user and system time consumed
+       by the shell and its children.  The T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable may be used  to
+       specify the format of the time information.
+
+       Each  command in a pipeline is executed as a separate process (i.e., in
        a subshell).
 
    L\bLi\bis\bst\bts\bs
-       A  _\bl_\bi_\bs_\bt  is a sequence of one or more pipelines separated by one of the
+       A _\bl_\bi_\bs_\bt is a sequence of one or more pipelines separated by one  of  the
        operators ;\b;, &\b&, &\b&&\b&, or |\b||\b|, and optionally terminated by one of ;\b;, &\b&, or
        <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>.
 
        Of these list operators, &\b&&\b& and |\b||\b| have equal precedence, followed by ;\b;
        and &\b&, which have equal precedence.
 
-       A sequence of one or more newlines may appear in a _\bl_\bi_\bs_\bt  instead  of  a
+       A  sequence  of  one or more newlines may appear in a _\bl_\bi_\bs_\bt instead of a
        semicolon to delimit commands.
 
-       If  a  command  is terminated by the control operator &\b&, the shell exe-
-       cutes the command in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd in a subshell.  The shell does  not
-       wait  for  the command to finish, and the return status is 0.  Commands
-       separated by a ;\b; are executed sequentially; the shell  waits  for  each
-       command  to terminate in turn.  The return status is the exit status of
+       If a command is terminated by the control operator &\b&,  the  shell  exe-
+       cutes  the command in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd in a subshell.  The shell does not
+       wait for the command to finish, and the return status is  0.   Commands
+       separated  by  a  ;\b; are executed sequentially; the shell waits for each
+       command to terminate in turn.  The return status is the exit status  of
        the last command executed.
 
-       AND and OR lists are sequences of one of more  pipelines  separated  by
-       the  &\b&&\b&  and  |\b||\b| control operators, respectively.  AND and OR lists are
+       AND  and  OR  lists are sequences of one of more pipelines separated by
+       the &\b&&\b& and |\b||\b| control operators, respectively.  AND and  OR  lists  are
        executed with left associativity.  An AND list has the form
 
               _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 &\b&&\b& _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2
 
-       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\bis executed if, and only if, _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns an  exit  status
+       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b is  executed if, and only if, _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns an exit status
        of zero.
 
        An OR list has the form
 
               _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 |\b||\b| _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2
 
-
-       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2  is  executed  if and only if _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns a non-zero exit
-       status.  The return status of AND and OR lists is the  exit  status  of
+       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2 is executed if and only if _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns  a  non-zero  exit
+       status.   The  return  status of AND and OR lists is the exit status of
        the last command executed in the list.
 
    C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs
-       A _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd is one of the following:
+       A _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd is one of the following.  In most cases a _\bl_\bi_\bs_\bt in  a
+       command's  description may be separated from the rest of the command by
+       one or more newlines, and may be followed by a newline in  place  of  a
+       semicolon.
 
        (_\bl_\bi_\bs_\bt) _\bl_\bi_\bs_\bt  is  executed in a subshell environment (see C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bU-\b-
               T\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT below).  Variable assignments and builtin  com-
@@ -344,37 +362,46 @@ S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
               tional operators such as -\b-f\bf must be unquoted to be recognized as
               primaries.
 
-              When  the  =\b==\b= and !\b!=\b= operators are used, the string to the right
+              When  used with [\b[[\b[, the <\b< and >\b> operators sort lexicographically
+              using the current locale.
+
+              When the =\b==\b= and !\b!=\b= operators are used, the string to  the  right
               of the operator is considered a pattern and matched according to
-              the  rules described below under P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg.  If the shell
-              option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh is enabled, the match  is  performed  without
-              regard  to  the case of alphabetic characters.  The return value
-              is 0 if the string matches (=\b==\b=) or does not match (!\b!=\b=) the  pat-
-              tern, and 1 otherwise.  Any part of the pattern may be quoted to
-              force it to be matched as a string.
-
-              An additional binary operator, =\b=~\b~, is available, with  the  same
-              precedence  as  =\b==\b=  and  !\b!=\b=.  When it is used, the string to the
-              right of the operator is considered an extended regular  expres-
+              the rules described below under P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg, as if the e\bex\bxt\bt-\b-
+              g\bgl\blo\bob\bb shell option were enabled.  The =\b= operator is equivalent to
+              =\b==\b=.  If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell option is enabled,  the  match  is
+              performed  without  regard to the case of alphabetic characters.
+              The return value is 0 if the string matches  (=\b==\b=)  or  does  not
+              match  (!\b!=\b=)  the pattern, and 1 otherwise.  Any part of the pat-
+              tern may be quoted to force the quoted portion to be matched  as
+              a string.
+
+              An  additional  binary operator, =\b=~\b~, is available, with the same
+              precedence as =\b==\b= and !\b!=\b=.  When it is used,  the  string  to  the
+              right  of the operator is considered an extended regular expres-
               sion and matched accordingly (as in _\br_\be_\bg_\be_\bx(3)).  The return value
               is 0 if the string matches the pattern, and 1 otherwise.  If the
-              regular  expression  is syntactically incorrect, the conditional
-              expression's return value is 2.  If the shell option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
+              regular expression is syntactically incorrect,  the  conditional
+              expression's return value is 2.  If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell option
               is enabled, the match is performed without regard to the case of
               alphabetic characters.  Any part of the pattern may be quoted to
-              force  it  to  be  matched  as  a string.  Substrings matched by
-              parenthesized subexpressions within the regular  expression  are
-              saved  in  the  array  variable  B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH.   The  element of
-              B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with index 0 is the portion of the string  matching
-              the entire regular expression.  The element of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with
-              index _\bn is the portion of the string matching the _\bnth  parenthe-
-              sized subexpression.
-
-              Expressions  may  be  combined  using  the  following operators,
+              force the quoted portion to be matched  as  a  string.   Bracket
+              expressions  in  regular  expressions must be treated carefully,
+              since normal quoting  characters  lose  their  meanings  between
+              brackets.  If the pattern is stored in a shell variable, quoting
+              the variable expansion forces the entire pattern to  be  matched
+              as a string.  Substrings matched by parenthesized subexpressions
+              within the regular expression are saved in  the  array  variable
+              B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH.   The  element of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with index 0 is the
+              portion of the string matching the  entire  regular  expression.
+              The  element  of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with index _\bn is the portion of the
+              string matching the _\bnth parenthesized subexpression.
+
+              Expressions may  be  combined  using  the  following  operators,
               listed in decreasing order of precedence:
 
               (\b( _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn )\b)
-                     Returns the value of _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn.  This  may  be  used  to
+                     Returns  the  value  of  _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn.  This may be used to
                      override the normal precedence of operators.
               !\b! _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
                      True if _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is false.
@@ -384,85 +411,86 @@ S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
                      True if either _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 or _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 is true.
 
               The &\b&&\b& and |\b||\b| operators do not evaluate _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 if the value
-              of _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 is sufficient to determine the  return  value  of
+              of  _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1  is  sufficient to determine the return value of
               the entire conditional expression.
 
-       f\bfo\bor\br _\bn_\ba_\bm_\be [ i\bin\bn _\bw_\bo_\br_\bd ] ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
+       f\bfo\bor\br _\bn_\ba_\bm_\be [ [ i\bin\bn [ _\bw_\bo_\br_\bd _\b._\b._\b. ] ] ; ] d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
               The list of words following i\bin\bn is expanded, generating a list of
               items.  The variable _\bn_\ba_\bm_\be is set to each element of this list in
-              turn,  and  _\bl_\bi_\bs_\bt is executed each time.  If the i\bin\bn _\bw_\bo_\br_\bd is omit-
-              ted, the f\bfo\bor\br command executes  _\bl_\bi_\bs_\bt  once  for  each  positional
+              turn, and _\bl_\bi_\bs_\bt is executed each time.  If the i\bin\bn _\bw_\bo_\br_\bd  is  omit-
+              ted,  the  f\bfo\bor\br  command  executes  _\bl_\bi_\bs_\bt once for each positional
               parameter that is set (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).  The return status
-              is the exit status of the last command that  executes.   If  the
+              is  the  exit  status of the last command that executes.  If the
               expansion of the items following i\bin\bn results in an empty list, no
               commands are executed, and the return status is 0.
 
        f\bfo\bor\br (( _\be_\bx_\bp_\br_\b1 ; _\be_\bx_\bp_\br_\b2 ; _\be_\bx_\bp_\br_\b3 )) ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
               First, the arithmetic expression _\be_\bx_\bp_\br_\b1 is evaluated according to
-              the  rules  described  below  under  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.  The
-              arithmetic expression _\be_\bx_\bp_\br_\b2 is then evaluated  repeatedly  until
-              it  evaluates  to zero.  Each time _\be_\bx_\bp_\br_\b2 evaluates to a non-zero
-              value, _\bl_\bi_\bs_\bt is executed and the arithmetic expression  _\be_\bx_\bp_\br_\b is
-              evaluated.   If  any  expression is omitted, it behaves as if it
+              the rules described  below  under  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC  E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.   The
+              arithmetic  expression  _\be_\bx_\bp_\br_\b2 is then evaluated repeatedly until
+              it evaluates to zero.  Each time _\be_\bx_\bp_\br_\b2 evaluates to  a  non-zero
+              value,  _\bl_\bi_\bs_\bt  is executed and the arithmetic expression _\be_\bx_\bp_\br_\b3 is
+              evaluated.  If any expression is omitted, it behaves  as  if  it
               evaluates to 1.  The return value is the exit status of the last
               command in _\bl_\bi_\bs_\bt that is executed, or false if any of the expres-
               sions is invalid.
 
        s\bse\bel\ble\bec\bct\bt _\bn_\ba_\bm_\be [ i\bin\bn _\bw_\bo_\br_\bd ] ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
               The list of words following i\bin\bn is expanded, generating a list of
-              items.   The  set  of  expanded words is printed on the standard
-              error, each preceded by a number.  If the i\bin\bn  _\bw_\bo_\br_\bd  is  omitted,
-              the  positional  parameters  are printed (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).
-              The P\bPS\bS3\b3 prompt is then displayed and a line read from the  stan-
-              dard  input.   If the line consists of a number corresponding to
-              one of the displayed words, then the value of  _\bn_\ba_\bm_\be  is  set  to
-              that  word.  If the line is empty, the words and prompt are dis-
+              items.  The set of expanded words is  printed  on  the  standard
+              error,  each  preceded  by a number.  If the i\bin\bn _\bw_\bo_\br_\bd is omitted,
+              the positional parameters are printed  (see  P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\b below).
+              The  P\bPS\bS3\b3 prompt is then displayed and a line read from the stan-
+              dard input.  If the line consists of a number  corresponding  to
+              one  of  the  displayed  words, then the value of _\bn_\ba_\bm_\be is set to
+              that word.  If the line is empty, the words and prompt are  dis-
               played again.  If EOF is read, the command completes.  Any other
-              value  read  causes  _\bn_\ba_\bm_\be  to  be set to null.  The line read is
-              saved in the variable R\bRE\bEP\bPL\bLY\bY.  The _\bl_\bi_\bs_\bt is  executed  after  each
+              value read causes _\bn_\ba_\bm_\be to be set to  null.   The  line  read  is
+              saved  in  the  variable R\bRE\bEP\bPL\bLY\bY.  The _\bl_\bi_\bs_\bt is executed after each
               selection until a b\bbr\bre\bea\bak\bk command is executed.  The exit status of
-              s\bse\bel\ble\bec\bct\bis the exit status of the last command executed in  _\bl_\bi_\bs_\bt,
+              s\bse\bel\ble\bec\bct\b is the exit status of the last command executed in _\bl_\bi_\bs_\bt,
               or zero if no commands were executed.
 
        c\bca\bas\bse\be _\bw_\bo_\br_\bd i\bin\bn [ [(] _\bp_\ba_\bt_\bt_\be_\br_\bn [ |\b| _\bp_\ba_\bt_\bt_\be_\br_\bn ] ... ) _\bl_\bi_\bs_\bt ;; ] ... e\bes\bsa\bac\bc
               A c\bca\bas\bse\be command first expands _\bw_\bo_\br_\bd, and tries to match it against
               each _\bp_\ba_\bt_\bt_\be_\br_\bn in turn, using the same matching rules as for path-
-              name  expansion  (see  P\bPa\bat\bth\bhn\bna\bam\bme\be  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn  below).  The _\bw_\bo_\br_\bd is
-              expanded using tilde expansion, parameter  and  variable  expan-
-              sion,  arithmetic  substitution,  command  substitution, process
-              substitution  and  quote  removal.   Each  _\bp_\ba_\bt_\bt_\be_\br_\bn  examined  is
+              name expansion (see P\bPa\bat\bth\bhn\bna\bam\bme\be  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn  below).   The  _\bw_\bo_\br_\bd  is
               expanded  using  tilde  expansion, parameter and variable expan-
-              sion, arithmetic substitution, command substitution, and process
-              substitution.   If  the shell option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh is enabled, the
-              match is performed without regard  to  the  case  of  alphabetic
-              characters.   When  a  match is found, the corresponding _\bl_\bi_\bs_\bt is
-              executed.  If the ;\b;;\b; operator is used, no subsequent matches are
-              attempted  after  the first pattern match.  Using ;\b;&\b& in place of
-              ;\b;;\b; causes execution to continue with the  _\bl_\bi_\bs_\bt  associated  with
-              the  next  set of patterns.  Using ;\b;;\b;&\b& in place of ;\b;;\b; causes the
-              shell to test the next pattern list in the  statement,  if  any,
-              and execute any associated _\bl_\bi_\bs_\bt on a successful match.  The exit
-              status is zero if no pattern matches.  Otherwise, it is the exit
-              status of the last command executed in _\bl_\bi_\bs_\bt.
-
-       i\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt_\b; [ e\bel\bli\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt; ] ... [ e\bel\bls\bse\be _\bl_\bi_\bs_\bt; ] f\bfi\bi
-              The  i\bif\bf  _\bl_\bi_\bs_\bt is executed.  If its exit status is zero, the t\bth\bhe\ben\bn
-              _\bl_\bi_\bs_\bt is executed.  Otherwise, each  e\bel\bli\bif\bf  _\bl_\bi_\bs_\bt  is  executed  in
-              turn,  and  if  its  exit status is zero, the corresponding t\bth\bhe\ben\bn
+              sion, arithmetic expansion, command substitution,  process  sub-
+              stitution  and quote removal.  Each _\bp_\ba_\bt_\bt_\be_\br_\bn examined is expanded
+              using tilde expansion, parameter and variable expansion,  arith-
+              metic expansion, command substitution, and process substitution.
+              If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell option is enabled, the  match  is  per-
+              formed  without  regard  to  the  case of alphabetic characters.
+              When a match is found, the corresponding _\bl_\bi_\bs_\bt is  executed.   If
+              the  ;\b;;\b;  operator  is  used, no subsequent matches are attempted
+              after the first pattern match.  Using ;\b;&\b& in place of  ;\b;;\b;  causes
+              execution to continue with the _\bl_\bi_\bs_\bt associated with the next set
+              of patterns.  Using ;\b;;\b;&\b& in place of ;\b;;\b; causes the shell to  test
+              the  next pattern list in the statement, if any, and execute any
+              associated _\bl_\bi_\bs_\bt on a successful match.  The exit status is  zero
+              if  no pattern matches.  Otherwise, it is the exit status of the
+              last command executed in _\bl_\bi_\bs_\bt.
+
+       i\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt; [ e\bel\bli\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt; ] ... [ e\bel\bls\bse\be _\bl_\bi_\bs_\bt; ] f\bfi\bi
+              The i\bif\bf _\bl_\bi_\bs_\bt is executed.  If its exit status is zero,  the  t\bth\bhe\ben\bn
+              _\bl_\bi_\bs_\bt  is  executed.   Otherwise,  each  e\bel\bli\bif\bf _\bl_\bi_\bs_\bt is executed in
+              turn, and if its exit status is  zero,  the  corresponding  t\bth\bhe\ben\bn
               _\bl_\bi_\bs_\bt is executed and the command completes.  Otherwise, the e\bel\bls\bse\be
-              _\bl_\bi_\bs_\b is executed, if present.  The exit status is the exit sta-
+              _\bl_\bi_\bs_\bis executed, if present.  The exit status is the exit  sta-
               tus of the last command executed, or zero if no condition tested
               true.
 
-       w\bwh\bhi\bil\ble\be _\bl_\bi_\bs_\bt; d\bdo\bo _\bl_\bi_\bs_\bt; d\bdo\bon\bne\be
-       u\bun\bnt\bti\bil\bl _\bl_\bi_\bs_\bt; d\bdo\bo _\bl_\bi_\bs_\bt; d\bdo\bon\bne\be
-              The  w\bwh\bhi\bil\ble\be  command continuously executes the d\bdo\bo _\bl_\bi_\bs_\bt as long as
-              the last command in _\bl_\bi_\bs_\bt returns an exit status  of  zero.   The
-              u\bun\bnt\bti\bil\bl command is identical to the w\bwh\bhi\bil\ble\be command, except that the
-              test is negated; the d\bdo\bo _\bl_\bi_\bs_\bt is executed as  long  as  the  last
-              command in _\bl_\bi_\bs_\bt returns a non-zero exit status.  The exit status
-              of the w\bwh\bhi\bil\ble\be and u\bun\bnt\bti\bil\bl commands is the exit status of  the  last
-              d\bdo\bo _\bl_\bi_\bs_\bt command executed, or zero if none was executed.
+       w\bwh\bhi\bil\ble\be _\bl_\bi_\bs_\bt_\b-_\b1; d\bdo\bo _\bl_\bi_\bs_\bt_\b-_\b2; d\bdo\bon\bne\be
+       u\bun\bnt\bti\bil\bl _\bl_\bi_\bs_\bt_\b-_\b1; d\bdo\bo _\bl_\bi_\bs_\bt_\b-_\b2; d\bdo\bon\bne\be
+              The w\bwh\bhi\bil\ble\be command continuously executes the list _\bl_\bi_\bs_\bt_\b-_\b2 as  long
+              as the last command in the list _\bl_\bi_\bs_\bt_\b-_\b1 returns an exit status of
+              zero.  The u\bun\bnt\bti\bil\bl command is  identical  to  the  w\bwh\bhi\bil\ble\be  command,
+              except  that  the test is negated: _\bl_\bi_\bs_\bt_\b-_\b2 is executed as long as
+              the last command in _\bl_\bi_\bs_\bt_\b-_\b1 returns a non-zero exit status.   The
+              exit  status  of the w\bwh\bhi\bil\ble\be and u\bun\bnt\bti\bil\bl commands is the exit status
+              of the last command executed in _\bl_\bi_\bs_\bt_\b-_\b2, or zero if none was exe-
+              cuted.
 
    C\bCo\bop\bpr\bro\boc\bce\bes\bss\bse\bes\bs
        A _\bc_\bo_\bp_\br_\bo_\bc_\be_\bs_\bs is a shell command preceded by the c\bco\bop\bpr\bro\boc\bc reserved word.  A
@@ -475,44 +503,51 @@ S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
               c\bco\bop\bpr\bro\boc\bc [_\bN_\bA_\bM_\bE] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn_\bs]
 
        This creates a coprocess named _\bN_\bA_\bM_\bE.  If  _\bN_\bA_\bM_\bE  is  not  supplied,  the
-       default name is _\bC_\bO_\bP_\bR_\bO_\bC.  _\bN_\bA_\bM_\bE must not be supplied if _\bc_\bo_\bm_\bm_\ba_\bn_\bd is a _\bs_\bi_\bm_\b-
+       default name is C\bCO\bOP\bPR\bRO\bOC\bC.  _\bN_\bA_\bM_\bE must not be supplied if _\bc_\bo_\bm_\bm_\ba_\bn_\bd is a _\bs_\bi_\bm_\b-
        _\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd (see above); otherwise, it is interpreted as the first word
-       of  the simple command.  When the coproc is executed, the shell creates
-       an array variable (see A\bAr\brr\bra\bay\bys\bs below) named _\bN_\bA_\bM_\bE in the context  of  the
-       executing  shell.   The  standard  output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a
+       of  the simple command.  When the coprocess is executed, the shell cre-
+       ates an array variable (see A\bAr\brr\bra\bay\bys\bs below) named _\bN_\bA_\bM_\bE in the context  of
+       the executing shell.  The standard output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a
        pipe to a file  descriptor  in  the  executing  shell,  and  that  file
        descriptor  is  assigned  to _\bN_\bA_\bM_\bE[0].  The standard input of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is
        connected via a pipe to a file descriptor in the executing  shell,  and
        that  file descriptor is assigned to _\bN_\bA_\bM_\bE[1].  This pipe is established
        before any redirections  specified  by  the  command  (see  R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
        below).   The  file  descriptors  can be utilized as arguments to shell
-       commands and redirections using standard word expansions.  The  process
-       id  of  the  shell spawned to execute the coprocess is available as the
-       value of the variable _\bN_\bA_\bM_\bE_PID.  The w\bwa\bai\bit\bt builtin command may  be  used
-       to wait for the coprocess to terminate.
+       commands and redirections using standard  word  expansions.   The  file
+       descriptors  are  not  available  in  subshells.  The process ID of the
+       shell spawned to execute the coprocess is available as the value of the
+       variable  _\bN_\bA_\bM_\bE_PID.   The  w\bwa\bai\bit\bt builtin command may be used to wait for
+       the coprocess to terminate.
 
-       The return status of a coprocess is the exit status of _\bc_\bo_\bm_\bm_\ba_\bn_\bd.
+       Since the coprocess is created as an asynchronous command,  the  c\bco\bop\bpr\bro\boc\bc
+       command  always  returns  success.  The return status of a coprocess is
+       the exit status of _\bc_\bo_\bm_\bm_\ba_\bn_\bd.
 
    S\bSh\bhe\bel\bll\bl F\bFu\bun\bnc\bct\bti\bio\bon\bn D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bns\bs
-       A  shell function is an object that is called like a simple command and
-       executes a compound command with a new set  of  positional  parameters.
+       A shell function is an object that is called like a simple command  and
+       executes  a  compound  command with a new set of positional parameters.
        Shell functions are declared as follows:
 
-       [ f\bfu\bun\bnc\bct\bti\bio\bon\bn ] _\bn_\ba_\bm_\be () _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn]
-              This  defines a function named _\bn_\ba_\bm_\be.  The reserved word f\bfu\bun\bnc\bct\bti\bio\bon\bn
-              is optional.  If the f\bfu\bun\bnc\bct\bti\bio\bon\bn reserved  word  is  supplied,  the
-              parentheses  are optional.  The _\bb_\bo_\bd_\by of the function is the com-
-              pound command _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd (see  C\bCo\bom\bmp\bpo\bou\bun\bnd\bd  C\bCo\bom\bmm\bma\ban\bnd\bds\bs  above).
-              That  command is usually a _\bl_\bi_\bs_\bt of commands between { and }, but
-              may be any command listed under C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs  above.   _\bc_\bo_\bm_\b-
+       _\bn_\ba_\bm_\be () _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn]
+       f\bfu\bun\bnc\bct\bti\bio\bon\bn _\bn_\ba_\bm_\be [()] _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn]
+              This defines a function named _\bn_\ba_\bm_\be.  The reserved word  f\bfu\bun\bnc\bct\bti\bio\bon\bn
+              is  optional.   If  the  f\bfu\bun\bnc\bct\bti\bio\bon\bn reserved word is supplied, the
+              parentheses are optional.  The _\bb_\bo_\bd_\by of the function is the  com-
+              pound  command  _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd  (see C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs above).
+              That command is usually a _\bl_\bi_\bs_\bt of commands between { and },  but
+              may  be  any  command listed under C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs above, with
+              one exception: If the f\bfu\bun\bnc\bct\bti\bio\bon\bn reserved word is  used,  but  the
+              parentheses  are  not  supplied,  the braces are required.  _\bc_\bo_\bm_\b-
               _\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed whenever _\bn_\ba_\bm_\be is specified as the name
-              of a simple command.  Any redirections (see  R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN  below)
-              specified  when  a  function  is  defined are performed when the
-              function is executed.  The exit status of a function  definition
-              is zero unless a syntax error occurs or a readonly function with
-              the same name already exists.  When executed, the exit status of
-              a  function  is  the exit status of the last command executed in
-              the body.  (See F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS below.)
+              of  a  simple  command.  When in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, _\bn_\ba_\bm_\be may not be the
+              name of one of the POSIX  _\bs_\bp_\be_\bc_\bi_\ba_\bl  _\bb_\bu_\bi_\bl_\bt_\bi_\bn_\bs.   Any  redirections
+              (see R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN below) specified when a function is defined are
+              performed when the function is executed.  The exit status  of  a
+              function  definition  is  zero unless a syntax error occurs or a
+              readonly function with the same name already exists.  When  exe-
+              cuted,  the  exit status of a function is the exit status of the
+              last command executed in the body.  (See F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS below.)
 
 C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS
        In a non-interactive shell, or an interactive shell in which the i\bin\bnt\bte\ber\br-\b-
@@ -551,13 +586,15 @@ Q\bQU\bUO\bOT\bTI\bIN\bNG\bG
 
        Enclosing  characters  in  double quotes preserves the literal value of
        all characters within the quotes, with the exception of $\b$, `\b`,  \\b\,  and,
-       when  history  expansion  is enabled, !\b!.  The characters $\b$ and `\b` retain
-       their special meaning within double quotes.  The backslash retains  its
-       special  meaning only when followed by one of the following characters:
-       $\b$, `\b`, "\b", \\b\, or <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>.  A double quote may be quoted  within  double
-       quotes by preceding it with a backslash.  If enabled, history expansion
-       will be performed unless an !\b!  appearing in double  quotes  is  escaped
-       using a backslash.  The backslash preceding the !\b!  is not removed.
+       when history expansion is enabled, !\b!.  When the shell is in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be,
+       the !\b! has no special meaning within double quotes,  even  when  history
+       expansion  is  enabled.   The  characters  $\b$ and `\b` retain their special
+       meaning within double quotes.  The backslash retains its special  mean-
+       ing  only when followed by one of the following characters: $\b$, `\b`, "\b", \\b\,
+       or <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>.  A double quote may be quoted  within  double  quotes  by
+       preceding  it  with a backslash.  If enabled, history expansion will be
+       performed unless an !\b!  appearing in double quotes is  escaped  using  a
+       backslash.  The backslash preceding the !\b!  is not removed.
 
        The  special  parameters  *\b*  and  @\b@ have special meaning when in double
        quotes (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).
@@ -568,7 +605,8 @@ Q\bQU\bUO\bOT\bTI\bIN\bNG\bG
        as follows:
               \\b\a\ba     alert (bell)
               \\b\b\bb     backspace
-              \\b\e\be     an escape character
+              \\b\e\be
+              \\b\E\bE     an escape character
               \\b\f\bf     form feed
               \\b\n\bn     new line
               \\b\r\br     carriage return
@@ -576,58 +614,96 @@ Q\bQU\bUO\bOT\bTI\bIN\bNG\bG
               \\b\v\bv     vertical tab
               \\b\\\b\     backslash
               \\b\'\b'     single quote
+              \\b\"\b"     double quote
+              \\b\?\b?     question mark
               \\b\_\bn_\bn_\bn   the  eight-bit  character  whose value is the octal value
                      _\bn_\bn_\bn (one to three digits)
               \\b\x\bx_\bH_\bH   the eight-bit character whose value  is  the  hexadecimal
                      value _\bH_\bH (one or two hex digits)
+              \\b\u\bu_\bH_\bH_\bH_\bH the  Unicode (ISO/IEC 10646) character whose value is the
+                     hexadecimal value _\bH_\bH_\bH_\bH (one to four hex digits)
+              \\b\U\bU_\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH
+                     the Unicode (ISO/IEC 10646) character whose value is  the
+                     hexadecimal value _\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH (one to eight hex digits)
               \\b\c\bc_\bx    a control-_\bx character
 
        The  expanded  result  is  single-quoted, as if the dollar sign had not
        been present.
 
-       A double-quoted string preceded by a dollar sign  ($\b$)  will  cause  the
-       string  to  be translated according to the current locale.  If the cur-
-       rent locale is C\bC or P\bPO\bOS\bSI\bIX\bX, the dollar sign is ignored.  If  the  string
-       is translated and replaced, the replacement is double-quoted.
+       A double-quoted string preceded by a dollar sign ($\b$"_\bs_\bt_\br_\bi_\bn_\bg") will cause
+       the  string  to  be translated according to the current locale.  If the
+       current locale is C\bC or P\bPO\bOS\bSI\bIX\bX, the  dollar  sign  is  ignored.   If  the
+       string is translated and replaced, the replacement is double-quoted.
 
 P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        A  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an entity that stores values.  It can be a _\bn_\ba_\bm_\be, a num-
        ber, or one of the special characters listed below under S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\bam\bm-\b-
        e\bet\bte\ber\brs\bs.   A _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be is a parameter denoted by a _\bn_\ba_\bm_\be.  A variable has a
        _\bv_\ba_\bl_\bu_\be and zero or more _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\bs.  Attributes are assigned  using  the
-       d\bde\bec\bcl\bla\bar\bre\b builtin command (see d\bde\bec\bcl\bla\bar\bre\be below in S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS).
+       d\bde\bec\bcl\bla\bar\bre\be builtin command (see d\bde\bec\bcl\bla\bar\bre\be below in S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS).
 
        A parameter is set if it has been assigned a value.  The null string is
-       a  valid  value.  Once a variable is set, it may be unset only by using
+       a valid value.  Once a variable is set, it may be unset only  by  using
        the u\bun\bns\bse\bet\bt builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
 
        A _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be may be assigned to by a statement of the form
 
               _\bn_\ba_\bm_\be=[_\bv_\ba_\bl_\bu_\be]
 
-       If _\bv_\ba_\bl_\bu_\be is not given, the variable is assigned the null  string.   All
-       _\bv_\ba_\bl_\bu_\be_\b undergo tilde expansion, parameter and variable expansion, com-
-       mand substitution, arithmetic expansion, and quote removal (see  E\bEX\bXP\bPA\bAN\bN-\b-
+       If  _\bv_\ba_\bl_\bu_\be  is not given, the variable is assigned the null string.  All
+       _\bv_\ba_\bl_\bu_\be_\bundergo tilde expansion, parameter and variable expansion,  com-
+       mand  substitution, arithmetic expansion, and quote removal (see E\bEX\bXP\bPA\bAN\bN-\b-
        S\bSI\bIO\bON\bN below).  If the variable has its i\bin\bnt\bte\beg\bge\ber\br attribute set, then _\bv_\ba_\bl_\bu_\be
        is evaluated as an arithmetic expression even if the $((...)) expansion
-       is  not  used  (see A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn below).  Word splitting is not
-       performed, with the exception of "\b"$\b$@\b@"\b" as explained below under  S\bSp\bpe\bec\bci\bia\bal\bl
-       P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs.   Pathname  expansion  is not performed.  Assignment state-
-       ments may also appear as arguments  to  the  a\bal\bli\bia\bas\bs,  d\bde\bec\bcl\bla\bar\bre\be,  t\bty\byp\bpe\bes\bse\bet\bt,
-       e\bex\bxp\bpo\bor\brt\bt, r\bre\bea\bad\bdo\bon\bnl\bly\by, and l\blo\boc\bca\bal\bl builtin commands.
+       is not used (see A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn below).  Word  splitting  is  not
+       performed,  with the exception of "\b"$\b$@\b@"\b" as explained below under S\bSp\bpe\bec\bci\bia\bal\bl
+       P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs.  Pathname expansion is not  performed.   Assignment  state-
+       ments  may  also  appear  as  arguments to the a\bal\bli\bia\bas\bs, d\bde\bec\bcl\bla\bar\bre\be, t\bty\byp\bpe\bes\bse\bet\bt,
+       e\bex\bxp\bpo\bor\brt\bt, r\bre\bea\bad\bdo\bon\bnl\bly\by, and l\blo\boc\bca\bal\bl builtin  commands  (_\bd_\be_\bc_\bl_\ba_\br_\ba_\bt_\bi_\bo_\bn  commands).
+       When in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, these builtins may appear in a command after one or
+       more instances of the  c\bco\bom\bmm\bma\ban\bnd\bd  builtin  and  retain  these  assignment
+       statement properties.
 
        In  the context where an assignment statement is assigning a value to a
        shell variable or array index, the += operator can be used to append to
-       or add to the variable's previous value.  When += is applied to a vari-
-       able for which the integer attribute has been set, _\bv_\ba_\bl_\bu_\be  is  evaluated
-       as  an arithmetic expression and added to the variable's current value,
-       which is also evaluated.  When += is applied to an array variable using
-       compound  assignment  (see  A\bAr\brr\bra\bay\bys\bs  below), the variable's value is not
-       unset (as it is when using =), and new values are appended to the array
-       beginning  at  one  greater than the array's maximum index (for indexed
-       arrays) or added as additional key-value pairs in an associative array.
-       When  applied  to  a  string-valued  variable,  _\bv_\ba_\bl_\bu_\be  is  expanded and
-       appended to the variable's value.
+       or  add  to  the variable's previous value.  This includes arguments to
+       builtin commands such as  d\bde\bec\bcl\bla\bar\bre\be  that  accept  assignment  statements
+       (_\bd_\be_\bc_\bl_\ba_\br_\ba_\bt_\bi_\bo_\bn commands).  When += is applied to a variable for which the
+       _\bi_\bn_\bt_\be_\bg_\be_\br attribute has been set, _\bv_\ba_\bl_\bu_\be is  evaluated  as  an  arithmetic
+       expression  and  added  to  the variable's current value, which is also
+       evaluated.  When += is applied to  an  array  variable  using  compound
+       assignment (see A\bAr\brr\bra\bay\bys\bs below), the variable's value is not unset (as it
+       is when using =), and new values are appended to the array beginning at
+       one  greater  than  the  array's  maximum index (for indexed arrays) or
+       added as additional key-value pairs  in  an  associative  array.   When
+       applied  to a string-valued variable, _\bv_\ba_\bl_\bu_\be is expanded and appended to
+       the variable's value.
+
+       A variable can be assigned the _\bn_\ba_\bm_\be_\br_\be_\bf attribute using the -\b-n\bn option to
+       the  d\bde\bec\bcl\bla\bar\bre\be or l\blo\boc\bca\bal\bl builtin commands (see the descriptions of d\bde\bec\bcl\bla\bar\bre\be
+       and l\blo\boc\bca\bal\bl below) to create a _\bn_\ba_\bm_\be_\br_\be_\bf, or a reference to  another  vari-
+       able.   This  allows  variables to be manipulated indirectly.  Whenever
+       the nameref variable is referenced, assigned  to,  unset,  or  has  its
+       attributes  modified  (other  than  the  _\bn_\ba_\bm_\be_\br_\be_\bf attribute itself), the
+       operation is actually  performed  on  the  variable  specified  by  the
+       nameref  variable's  value.   A  nameref  is commonly used within shell
+       functions to refer to a variable whose name is passed as an argument to
+       the  function.   For  instance, if a variable name is passed to a shell
+       function as its first argument, running
+              declare -n ref=$1
+       inside the function creates a nameref variable r\bre\bef\bf whose value  is  the
+       variable name passed as the first argument.  References and assignments
+       to r\bre\bef\bf, and changes to  its  attributes,  are  treated  as  references,
+       assignments, and attribute modifications to the variable whose name was
+       passed as $\b$1\b1.  If the control variable in a f\bfo\bor\br loop  has  the  nameref
+       attribute,  the  list  of words can be a list of shell variables, and a
+       name reference will be established for each word in the list, in  turn,
+       when the loop is executed.  Array variables cannot be given the n\bna\bam\bme\ber\bre\bef\bf
+       attribute.  However, nameref variables can  reference  array  variables
+       and  subscripted  array  variables.  Namerefs can be unset using the -\b-n\bn
+       option to the u\bun\bns\bse\bet\bt builtin.  Otherwise, if u\bun\bns\bse\bet\bt is executed with  the
+       name  of  a nameref variable as an argument, the variable referenced by
+       the nameref variable will be unset.
 
    P\bPo\bos\bsi\bit\bti\bio\bon\bna\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
        A _\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn_\ba_\bl _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a parameter denoted by one  or  more  digits,
@@ -644,39 +720,43 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        The shell treats several parameters specially.   These  parameters  may
        only be referenced; assignment to them is not allowed.
        *\b*      Expands  to  the positional parameters, starting from one.  When
-              the expansion occurs within double quotes, it expands to a  sin-
-              gle word with the value of each parameter separated by the first
-              character of the I\bIF\bFS\bS special variable.  That is, "$\b$*\b*" is equiva-
-              lent to "$\b$1\b1_\bc$\b$2\b2_\bc.\b..\b..\b.", where _\bc is the first character of the value
-              of the I\bIF\bFS\bS variable.  If I\bIF\bFS\bS is unset, the parameters are  sepa-
-              rated  by  spaces.   If  I\bIF\bFS\bS  is null, the parameters are joined
-              without intervening separators.
-       @\b@      Expands to the positional parameters, starting from  one.   When
+              the expansion is  not  within  double  quotes,  each  positional
+              parameter  expands  to a separate word.  In contexts where it is
+              performed, those words are subject to further word splitting and
+              pathname  expansion.   When  the  expansion occurs within double
+              quotes, it expands to a single  word  with  the  value  of  each
+              parameter  separated  by  the first character of the I\bIF\bFS\bS special
+              variable.  That is, "$\b$*\b*" is equivalent to "$\b$1\b1_\bc$\b$2\b2_\bc.\b..\b..\b.",  where  _\bc
+              is the first character of the value of the I\bIF\bFS\bS variable.  If I\bIF\bFS\bS
+              is unset, the parameters are separated by  spaces.   If  I\bIF\bFS\bS  is
+              null, the parameters are joined without intervening separators.
+       @\b@      Expands  to  the positional parameters, starting from one.  When
               the  expansion  occurs  within  double  quotes,  each  parameter
               expands to a separate word.  That is, "$\b$@\b@" is equivalent to "$\b$1\b1"
-              "$\b$2\b2"  ...   If the double-quoted expansion occurs within a word,
-              the expansion of the first parameter is joined with  the  begin-
-              ning  part  of  the original word, and the expansion of the last
-              parameter is joined with the last part  of  the  original  word.
-              When  there  are no positional parameters, "$\b$@\b@" and $\b$@\b@ expand to
+              "$\b$2\b2" ...  If the double-quoted expansion occurs within  a  word,
+              the  expansion  of the first parameter is joined with the begin-
+              ning part of the original word, and the expansion  of  the  last
+              parameter  is  joined  with  the last part of the original word.
+              When there are no positional parameters, "$\b$@\b@" and $\b$@\b@  expand  to
               nothing (i.e., they are removed).
        #\b#      Expands to the number of positional parameters in decimal.
-       ?\b?      Expands to the exit status of the most recently  executed  fore-
+       ?\b?      Expands  to  the exit status of the most recently executed fore-
               ground pipeline.
-       -\b-      Expands  to  the  current option flags as specified upon invoca-
-              tion, by the s\bse\bet\bt builtin command, or  those  set  by  the  shell
+       -\b-      Expands to the current option flags as  specified  upon  invoca-
+              tion,  by  the  s\bse\bet\bt  builtin  command, or those set by the shell
               itself (such as the -\b-i\bi option).
-       $\b$      Expands  to  the  process ID of the shell.  In a () subshell, it
-              expands to the process ID of the current  shell,  not  the  sub-
+       $\b$      Expands to the process ID of the shell.  In a  ()  subshell,  it
+              expands  to  the  process  ID of the current shell, not the sub-
               shell.
-       !\b!      Expands  to  the  process ID of the most recently executed back-
-              ground (asynchronous) command.
+       !\b!      Expands to the process ID of the job most recently  placed  into
+              the  background,  whether executed as an asynchronous command or
+              using the b\bbg\bg builtin (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL below).
        0\b0      Expands to the name of the shell or shell script.  This  is  set
               at shell initialization.  If b\bba\bas\bsh\bh is invoked with a file of com-
               mands, $\b$0\b0 is set to the name of that file.  If b\bba\bas\bsh\bh  is  started
               with  the  -\b-c\bc option, then $\b$0\b0 is set to the first argument after
               the string to be executed, if one is present.  Otherwise, it  is
-              set  to  the file name used to invoke b\bba\bas\bsh\bh, as given by argument
+              set  to  the  filename used to invoke b\bba\bas\bsh\bh, as given by argument
               zero.
        _\b_      At shell startup, set to the absolute pathname  used  to  invoke
               the  shell or shell script being executed as passed in the envi-
@@ -690,56 +770,71 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
    S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
        The following variables are set by the shell:
 
-       B\bBA\bAS\bSH\bH   Expands  to  the  full file name used to invoke this instance of
+       B\bBA\bAS\bSH\bH   Expands  to  the  full  filename used to invoke this instance of
               b\bba\bas\bsh\bh.
+       B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS
+              A colon-separated list of enabled shell options.  Each  word  in
+              the  list  is  a  valid  argument for the -\b-s\bs option to the s\bsh\bho\bop\bpt\bt
+              builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  The options
+              appearing  in  B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS  are  those reported as _\bo_\bn by s\bsh\bho\bop\bpt\bt.  If
+              this variable is in the environment when b\bba\bas\bsh\bh  starts  up,  each
+              shell  option  in  the  list  will be enabled before reading any
+              startup files.  This variable is read-only.
        B\bBA\bAS\bSH\bHP\bPI\bID\bD
-              Expands to the process id of the  current  b\bba\bas\bsh\bh  process.   This
+              Expands to the process ID of the  current  b\bba\bas\bsh\bh  process.   This
               differs  from  $\b$$\b$ under certain circumstances, such as subshells
               that do not require b\bba\bas\bsh\bh to be re-initialized.
        B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS
               An associative array variable whose members  correspond  to  the
-              internal list of aliases as maintained by the a\bal\bli\bia\bas\bs builtin Ele-
-              ments added to this array appear in the  alias  list;  unsetting
-              array  elements cause aliases to be removed from the alias list.
+              internal  list  of  aliases  as maintained by the a\bal\bli\bia\bas\bs builtin.
+              Elements added to this array appear in the alias list;  however,
+              unsetting  array elements currently does not cause aliases to be
+              removed from the alias list.  If B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS is unset, it loses
+              its special properties, even if it is subsequently reset.
        B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC
-              An array variable whose values are the number of  parameters  in
+              An  array  variable whose values are the number of parameters in
               each frame of the current b\bba\bas\bsh\bh execution call stack.  The number
-              of parameters to  the  current  subroutine  (shell  function  or
-              script  executed  with  .\b. or s\bso\bou\bur\brc\bce\be) is at the top of the stack.
-              When a subroutine is executed, the number of  parameters  passed
+              of  parameters  to  the  current  subroutine  (shell function or
+              script executed with .\b. or s\bso\bou\bur\brc\bce\be) is at the top  of  the  stack.
+              When  a  subroutine is executed, the number of parameters passed
               is pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC.  The shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC only when in
-              extended debugging mode (see the  description  of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg
+              extended  debugging  mode  (see  the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg
               option to the s\bsh\bho\bop\bpt\bt builtin below)
        B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
-              An  array  variable containing all of the parameters in the cur-
+              An array variable containing all of the parameters in  the  cur-
               rent b\bba\bas\bsh\bh execution call stack.  The final parameter of the last
-              subroutine  call is at the top of the stack; the first parameter
+              subroutine call is at the top of the stack; the first  parameter
               of the initial call is at the bottom.  When a subroutine is exe-
-              cuted,  the  parameters supplied are pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV.  The
-              shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging  mode  (see
-              the  description  of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg  option to the s\bsh\bho\bop\bpt\bt builtin
+              cuted, the parameters supplied are pushed onto  B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV.   The
+              shell  sets  B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging mode (see
+              the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg  option  to  the  s\bsh\bho\bop\bpt\b builtin
               below)
        B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS
-              An associative array variable whose members  correspond  to  the
-              internal  hash  table  of  commands  as  maintained  by the h\bha\bas\bsh\bh
+              An  associative  array  variable whose members correspond to the
+              internal hash table  of  commands  as  maintained  by  the  h\bha\bas\bsh\bh
               builtin.  Elements added to this array appear in the hash table;
-              unsetting  array  elements cause commands to be removed from the
-              hash table.
+              however, unsetting array elements currently does not cause  com-
+              mand  names  to be removed from the hash table.  If B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS is
+              unset, it loses its special properties, even  if  it  is  subse-
+              quently reset.
        B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD
-              The command currently being executed or about  to  be  executed,
+              The  command  currently  being executed or about to be executed,
               unless the shell is executing a command as the result of a trap,
-              in which case it is the command executing at  the  time  of  the
+              in  which  case  it  is the command executing at the time of the
               trap.
        B\bBA\bAS\bSH\bH_\b_E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN_\b_S\bST\bTR\bRI\bIN\bNG\bG
               The command argument to the -\b-c\bc invocation option.
        B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO
-              An  array  variable whose members are the line numbers in source
-              files   corresponding    to    each    member    of    F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE.
-              $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}  is  the line number in the source file where
-              $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} was called (or  $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b}  if  refer-
-              enced  within another shell function).  The corresponding source
-              file name is $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}.  Use L\bLI\bIN\bNE\bEN\bNO\bO to obtain the  cur-
-              rent line number.
+              An array variable whose members are the line numbers  in  source
+              files  where  each corresponding member of F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE was invoked.
+              $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}  is  the  line  number  in  the  source  file
+              ($\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b})  where  $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b}  was  called  (or
+              $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b} if referenced within  another  shell  func-
+              tion).  Use L\bLI\bIN\bNE\bEN\bNO\bO to obtain the current line number.
+       B\bBA\bAS\bSH\bH_\b_L\bLO\bOA\bAD\bDA\bAB\bBL\bLE\bES\bS_\b_P\bPA\bAT\bTH\bH
+              A  colon-separated  list of directories in which the shell looks
+              for dynamically loadable builtins specified by the  e\ben\bna\bab\bbl\ble\be  com-
+              mand.
        B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH
               An  array  variable  whose members are assigned by the =\b=~\b~ binary
               operator to the [\b[[\b[ conditional command.  The element with  index
@@ -748,51 +843,47 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               string matching the _\bnth parenthesized subexpression.  This vari-
               able is read-only.
        B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE
-              An array variable whose members are the source filenames  corre-
-              sponding to the elements in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array variable.
+              An array variable whose members are the source  filenames  where
+              the  corresponding  shell  function  names in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array
+              variable are defined.  The  shell  function  $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b}  is
+              defined   in   the   file  $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}  and  called  from
+              $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}.
        B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL
-              Incremented  by one each time a subshell or subshell environment
-              is spawned.  The initial value is 0.
+              Incremented by one within each subshell or subshell  environment
+              when  the  shell begins executing in that environment.  The ini-
+              tial value is 0.
        B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO
               A readonly array variable whose members hold version information
               for  this  instance  of  b\bba\bas\bsh\bh.  The values assigned to the array
               members are as follows:
-              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[0]\b]        The major version number (the  _\br_\be_\bl_\be_\ba_\bs_\be).
-              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[1]\b]        The  minor version number (the _\bv_\be_\br_\bs_\bi_\bo_\bn).
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[0]\b]        The major version number (the _\br_\be_\bl_\be_\ba_\bs_\be).
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[1]\b]        The minor version number (the _\bv_\be_\br_\bs_\bi_\bo_\bn).
               B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[2]\b]        The patch level.
               B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[3]\b]        The build version.
               B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[4]\b]        The release status (e.g., _\bb_\be_\bt_\ba_\b1).
               B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[5]\b]        The value of M\bMA\bAC\bCH\bHT\bTY\bYP\bPE\bE.
-
        B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIO\bON\bN
               Expands to a string describing the version of this  instance  of
               b\bba\bas\bsh\bh.
-
        C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD
               An  index  into $\b${\b{C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS}\b} of the word containing the current
               cursor position.  This variable is available only in shell func-
               tions  invoked  by  the  programmable completion facilities (see
               P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
-
        C\bCO\bOM\bMP\bP_\b_K\bKE\bEY\bY
               The key (or final key of a key sequence) used to invoke the cur-
               rent completion function.
-
        C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE
               The  current  command  line.  This variable is available only in
-              shell functions  and  external  commands  invoked  by  the  pro-
-              grammable  completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
-              below).
-
+              shell functions and external commands invoked  by  the  program-
+              mable completion facilities (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
        C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT
-              The index of the current cursor position relative to the  begin-
-              ning  of the current command.  If the current cursor position is
+              The  index of the current cursor position relative to the begin-
+              ning of the current command.  If the current cursor position  is
               at the end of the current command, the value of this variable is
-              equal  to  $\b${\b{#\b#C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE}\b}.   This  variable  is available only in
-              shell functions  and  external  commands  invoked  by  the  pro-
-              grammable  completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
-              below).
-
+              equal to $\b${\b{#\b#C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE}\b}.  This  variable  is  available  only  in
+              shell  functions  and  external commands invoked by the program-
+              mable completion facilities (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
        C\bCO\bOM\bMP\bP_\b_T\bTY\bYP\bPE\bE
               Set to an integer value corresponding to the type of  completion
               attempted  that  caused a completion function to be called: _\bT_\bA_\bB,
@@ -800,108 +891,107 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               sive  tabs,  _\b!, for listing alternatives on partial word comple-
               tion, _\b@, to list completions if the word is not  unmodified,  or
               _\b%,  for  menu  completion.   This  variable is available only in
-              shell functions  and  external  commands  invoked  by  the  pro-
-              grammable  completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
-              below).
-
+              shell functions and external commands invoked  by  the  program-
+              mable completion facilities (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
        C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
-              The set of characters that the r\bre\bea\bad\bdl\bli\bin\bne\be library treats  as  word
-              separators  when performing word completion.  If C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
-              is unset, it loses its special properties, even if it is  subse-
+              The  set  of characters that the r\bre\bea\bad\bdl\bli\bin\bne\be library treats as word
+              separators when performing word completion.  If  C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
+              is  unset, it loses its special properties, even if it is subse-
               quently reset.
-
        C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS
-              An  array variable (see A\bAr\brr\bra\bay\bys\bs below) consisting of the individ-
-              ual words in the current command line.  The line is  split  into
-              words  as  r\bre\bea\bad\bdl\bli\bin\bne\be  would  split  it,  using C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS as
+              An array variable (see A\bAr\brr\bra\bay\bys\bs below) consisting of the  individ-
+              ual  words  in the current command line.  The line is split into
+              words as r\bre\bea\bad\bdl\bli\bin\bne\be  would  split  it,  using  C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\b as
               described above.  This variable is available only in shell func-
-              tions  invoked  by  the  programmable completion facilities (see
+              tions invoked by the  programmable  completion  facilities  (see
               P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
-
+       C\bCO\bOP\bPR\bRO\bOC\bC An  array  variable  (see A\bAr\brr\bra\bay\bys\bs below) created to hold the file
+              descriptors for output from and input to  an  unnamed  coprocess
+              (see C\bCo\bop\bpr\bro\boc\bce\bes\bss\bse\bes\bs above).
        D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK
               An array variable (see A\bAr\brr\bra\bay\bys\bs below) containing the current con-
-              tents  of  the directory stack.  Directories appear in the stack
-              in the order they are displayed by the d\bdi\bir\brs\bs builtin.   Assigning
+              tents of the directory stack.  Directories appear in  the  stack
+              in  the order they are displayed by the d\bdi\bir\brs\bs builtin.  Assigning
               to members of this array variable may be used to modify directo-
-              ries already in the stack, but the p\bpu\bus\bsh\bhd\bd and p\bpo\bop\bpd\bd builtins  must
+              ries  already in the stack, but the p\bpu\bus\bsh\bhd\bd and p\bpo\bop\bpd\bd builtins must
               be used to add and remove directories.  Assignment to this vari-
-              able will not change the  current  directory.   If  D\bDI\bIR\bRS\bST\bTA\bAC\bCK\b is
-              unset,  it  loses  its  special properties, even if it is subse-
+              able  will  not  change  the  current directory.  If D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK is
+              unset, it loses its special properties, even  if  it  is  subse-
               quently reset.
-
-       E\bEU\bUI\bID\bD   Expands to the effective user ID of the current  user,  initial-
+       E\bEU\bUI\bID\bD   Expands  to  the effective user ID of the current user, initial-
               ized at shell startup.  This variable is readonly.
-
        F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE
-              An  array  variable  containing the names of all shell functions
+              An array variable containing the names of  all  shell  functions
               currently in the execution call stack.  The element with index 0
               is the name of any currently-executing shell function.  The bot-
-              tom-most element is "main".  This variable exists  only  when  a
-              shell  function  is  executing.  Assignments to F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE have no
-              effect and return an error status.  If  F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE  is  unset,  it
-              loses  its special properties, even if it is subsequently reset.
-
-       G\bGR\bRO\bOU\bUP\bPS\bS An array variable containing the list of  groups  of  which  the
-              current  user is a member.  Assignments to G\bGR\bRO\bOU\bUP\bPS\bS have no effect
-              and return an error status.  If G\bGR\bRO\bOU\bUP\bPS\bS is unset,  it  loses  its
-              special properties, even if it is subsequently reset.
+              tom-most  element  (the  one  with the highest index) is "main".
+              This variable exists only when a shell  function  is  executing.
+              Assignments  to  F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE have no effect.  If F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE is unset,
+              it loses its special properties,  even  if  it  is  subsequently
+              reset.
 
+              This  variable  can  be  used  with B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO and B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE.
+              Each  element  of  F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE  has   corresponding   elements   in
+              B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO  and  B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE  to  describe the call stack.  For
+              instance,   $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b}   was   called   from    the    file
+              $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}  at  line  number  $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}.  The
+              c\bca\bal\bll\ble\ber\br builtin displays the current call stack using this infor-
+              mation.
+       G\bGR\bRO\bOU\bUP\bPS\bS An  array  variable  containing  the list of groups of which the
+              current user is a member.  Assignments to G\bGR\bRO\bOU\bUP\bPS\bS have no effect.
+              If  G\bGR\bRO\bOU\bUP\bPS\bS is unset, it loses its special properties, even if it
+              is subsequently reset.
        H\bHI\bIS\bST\bTC\bCM\bMD\bD
               The history number, or index in the history list, of the current
-              command.  If H\bHI\bIS\bST\bTC\bCM\bMD\bD is unset, it loses its special  properties,
+              command.   If H\bHI\bIS\bST\bTC\bCM\bMD\bD is unset, it loses its special properties,
               even if it is subsequently reset.
-
        H\bHO\bOS\bST\bTN\bNA\bAM\bME\bE
               Automatically set to the name of the current host.
-
        H\bHO\bOS\bST\bTT\bTY\bYP\bPE\bE
-              Automatically  set  to a string that uniquely describes the type
-              of machine on which b\bba\bas\bsh\bh is executing.  The default  is  system-
+              Automatically set to a string that uniquely describes  the  type
+              of  machine  on which b\bba\bas\bsh\bh is executing.  The default is system-
               dependent.
-
-       L\bLI\bIN\bNE\bEN\bNO\bO Each  time this parameter is referenced, the shell substitutes a
-              decimal number representing the current sequential  line  number
-              (starting  with  1)  within a script or function.  When not in a
-              script or function, the value substituted is not  guaranteed  to
+       L\bLI\bIN\bNE\bEN\bNO\bO Each time this parameter is referenced, the shell substitutes  a
+              decimal  number  representing the current sequential line number
+              (starting with 1) within a script or function.  When  not  in  a
+              script  or  function, the value substituted is not guaranteed to
               be meaningful.  If L\bLI\bIN\bNE\bEN\bNO\bO is unset, it loses its special proper-
               ties, even if it is subsequently reset.
-
        M\bMA\bAC\bCH\bHT\bTY\bYP\bPE\bE
-              Automatically set to a string that fully  describes  the  system
-              type  on  which  b\bba\bas\bsh\bh is executing, in the standard GNU _\bc_\bp_\bu_\b-_\bc_\bo_\bm_\b-
+              Automatically  set  to  a string that fully describes the system
+              type on which b\bba\bas\bsh\bh is executing, in the  standard  GNU  _\bc_\bp_\bu_\b-_\bc_\bo_\bm_\b-
               _\bp_\ba_\bn_\by_\b-_\bs_\by_\bs_\bt_\be_\bm format.  The default is system-dependent.
-
+       M\bMA\bAP\bPF\bFI\bIL\bLE\bE
+              An  array  variable  (see A\bAr\brr\bra\bay\bys\bs below) created to hold the text
+              read by the m\bma\bap\bpf\bfi\bil\ble\be builtin when no variable name is supplied.
        O\bOL\bLD\bDP\bPW\bWD\bD The previous working directory as set by the c\bcd\bd command.
-
        O\bOP\bPT\bTA\bAR\bRG\bG The value of the last option argument processed by  the  g\bge\bet\bto\bop\bpt\bts\bs
               builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
-
        O\bOP\bPT\bTI\bIN\bND\bD The  index  of  the next argument to be processed by the g\bge\bet\bto\bop\bpt\bts\bs
               builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
-
        O\bOS\bST\bTY\bYP\bPE\bE Automatically set to a string that describes the operating  sys-
               tem  on  which  b\bba\bas\bsh\bh is executing.  The default is system-depen-
               dent.
-
        P\bPI\bIP\bPE\bES\bST\bTA\bAT\bTU\bUS\bS
               An array variable (see A\bAr\brr\bra\bay\bys\bs below) containing a list  of  exit
               status  values  from the processes in the most-recently-executed
               foreground pipeline (which may contain only a single command).
-
        P\bPP\bPI\bID\bD   The process ID of the shell's parent.  This  variable  is  read-
               only.
-
        P\bPW\bWD\bD    The current working directory as set by the c\bcd\bd command.
-
        R\bRA\bAN\bND\bDO\bOM\bM Each time this parameter is referenced, a random integer between
               0 and 32767 is generated.  The sequence of random numbers may be
               initialized by assigning a value to R\bRA\bAN\bND\bDO\bOM\bM.  If R\bRA\bAN\bND\bDO\bOM\bM is unset,
               it loses its special properties,  even  if  it  is  subsequently
               reset.
-
+       R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE
+              The contents of the r\bre\bea\bad\bdl\bli\bin\bne\be line buffer, for use with "bind -x"
+              (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+       R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT
+              The position of the insertion point in the r\bre\bea\bad\bdl\bli\bin\bne\be line buffer,
+              for use with "bind -x" (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
        R\bRE\bEP\bPL\bLY\bY  Set  to  the line of input read by the r\bre\bea\bad\bd builtin command when
               no arguments are supplied.
-
        S\bSE\bEC\bCO\bON\bND\bDS\bS
               Each time this parameter is referenced, the  number  of  seconds
               since  shell  invocation is returned.  If a value is assigned to
@@ -909,7 +999,6 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               number  of seconds since the assignment plus the value assigned.
               If S\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special properties, even if it
               is subsequently reset.
-
        S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS
               A  colon-separated  list of enabled shell options.  Each word in
               the list is a valid argument  for  the  -\b-o\bo  option  to  the  s\bse\bet\bt
@@ -918,90 +1007,143 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               this  variable  is  in the environment when b\bba\bas\bsh\bh starts up, each
               shell option in the list will  be  enabled  before  reading  any
               startup files.  This variable is read-only.
-
        S\bSH\bHL\bLV\bVL\bL  Incremented by one each time an instance of b\bba\bas\bsh\bh is started.
-
        U\bUI\bID\bD    Expands to the user ID of the current user, initialized at shell
               startup.  This variable is readonly.
 
        The following variables are used by the shell.   In  some  cases,  b\bba\bas\bsh\bh
        assigns a default value to a variable; these cases are noted below.
 
+       B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT
+              The  value  is used to set the shell's compatibility level.  See
+              the description of the s\bsh\bho\bop\bpt\bt builtin below under  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN
+              C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  for  a description of the various compatibility levels
+              and their effects.  The value may be  a  decimal  number  (e.g.,
+              4.2)  or an integer (e.g., 42) corresponding to the desired com-
+              patibility level.  If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is unset or set to  the  empty
+              string,  the  compatibility  level is set to the default for the
+              current version.  If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is set to a value that  is  not
+              one of the valid compatibility levels, the shell prints an error
+              message and sets the compatibility level to the default for  the
+              current  version.   The valid compatibility levels correspond to
+              the  compatibility  options  accepted  by  the   s\bsh\bho\bop\bpt\bt   builtin
+              described below (for example, c\bco\bom\bmp\bpa\bat\bt4\b42\b2 means that 4.2 and 42 are
+              valid values).  The current version is also a valid value.
        B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV
-              If  this parameter is set when b\bba\bas\bsh\bh is executing a shell script,
-              its value is interpreted as a filename  containing  commands  to
+              If this parameter is set when b\bba\bas\bsh\bh is executing a shell  script,
+              its  value  is  interpreted as a filename containing commands to
               initialize the shell, as in _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc.  The value of B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV is
-              subjected to  parameter  expansion,  command  substitution,  and
-              arithmetic  expansion  before  being interpreted as a file name.
-              P\bPA\bAT\bTH\bH is not used to search for the resultant file name.
+              subjected  to  parameter  expansion,  command  substitution, and
+              arithmetic expansion before being  interpreted  as  a  filename.
+              P\bPA\bAT\bTH\bH is not used to search for the resultant filename.
+       B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD
+              If  set  to an integer corresponding to a valid file descriptor,
+              b\bba\bas\bsh\bh will write the  trace  output  generated  when  _\bs_\be_\bt  _\b-_\bx  is
+              enabled  to that file descriptor.  The file descriptor is closed
+              when B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD is unset or assigned a new value.   Unsetting
+              B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD  or assigning it the empty string causes the trace
+              output to be sent to the  standard  error.   Note  that  setting
+              B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD to 2 (the standard error file descriptor) and then
+              unsetting it will result in the standard error being closed.
        C\bCD\bDP\bPA\bAT\bTH\bH The search path for the c\bcd\bd command.  This is  a  colon-separated
               list  of  directories  in  which the shell looks for destination
               directories specified by the c\bcd\bd  command.   A  sample  value  is
               ".:~:/usr".
+       C\bCH\bHI\bIL\bLD\bD_\b_M\bMA\bAX\bX
+              Set  the  number  of exited child status values for the shell to
+              remember.  Bash will not allow this value to be decreased  below
+              a  POSIX-mandated  minimum,  and  there is a maximum value (cur-
+              rently 8192) that this may not exceed.   The  minimum  value  is
+              system-dependent.
        C\bCO\bOL\bLU\bUM\bMN\bNS\bS
-              Used  by  the  s\bse\bel\ble\bec\bct\bt  builtin command to determine the terminal
-              width when printing selection  lists.   Automatically  set  upon
-              receipt of a SIGWINCH.
+              Used  by  the  s\bse\bel\ble\bec\bct\bt compound command to determine the terminal
+              width when printing selection lists.  Automatically set  if  the
+              c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be  option  is enabled or in an interactive shell upon
+              receipt of a S\bSI\bIG\bGW\bWI\bIN\bNC\bCH\bH.
        C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
               An array variable from which b\bba\bas\bsh\bh reads the possible completions
-              generated by a shell function invoked by the  programmable  com-
-              pletion facility (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
+              generated  by  a shell function invoked by the programmable com-
+              pletion facility  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be  C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn  below).   Each
+              array element contains one possible completion.
        E\bEM\bMA\bAC\bCS\bS  If  b\bba\bas\bsh\bh  finds  this variable in the environment when the shell
               starts with value "t", it assumes that the shell is  running  in
-              an emacs shell buffer and disables line editing.
+              an Emacs shell buffer and disables line editing.
+       E\bEN\bNV\bV    Similar  to  B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV;  used  when the shell is invoked in POSIX
+              mode.
+       E\bEX\bXE\bEC\bCI\bIG\bGN\bNO\bOR\bRE\bE
+              A colon-separated list of shell patterns (see P\bPa\bat\btt\bte\ber\brn\bn  M\bMa\bat\btc\bch\bhi\bin\bng\bg)
+              defining  the list of filenames to be ignored by command search.
+              Files whose full pathnames match one of these patterns  are  not
+              considered  executable  files for the purposes of completion and
+              command execution.  This does not affect the behavior of the  [\b[,
+              t\bte\bes\bst\bt,  and  [\b[[\b[  commands.   Use  this  variable to ignore shared
+              library files that have the executable bit set, but are not exe-
+              cutable  files.   The pattern matching honors the setting of the
+              e\bex\bxt\btg\bgl\blo\bob\bb shell option.
        F\bFC\bCE\bED\bDI\bIT\bT The default editor for the f\bfc\bc builtin command.
        F\bFI\bIG\bGN\bNO\bOR\bRE\bE
-              A  colon-separated  list  of  suffixes to ignore when performing
+              A colon-separated list of suffixes  to  ignore  when  performing
               filename completion (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE below).  A filename whose suf-
-              fix  matches  one of the entries in F\bFI\bIG\bGN\bNO\bOR\bRE\bE is excluded from the
+              fix matches one of the entries in F\bFI\bIG\bGN\bNO\bOR\bRE\bE is excluded  from  the
               list of matched filenames.  A sample value is ".o:~".
+       F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT
+              If  set  to  a  numeric  value greater than 0, defines a maximum
+              function nesting level.  Function invocations that  exceed  this
+              nesting level will cause the current command to abort.
        G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE
               A colon-separated list of patterns defining the set of filenames
               to be ignored by pathname expansion.  If a filename matched by a
-              pathname expansion pattern also matches one of the  patterns  in
+              pathname  expansion  pattern also matches one of the patterns in
               G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE, it is removed from the list of matches.
        H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL
-              A  colon-separated  list  of values controlling how commands are
-              saved on the history list.   If  the  list  of  values  includes
-              _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be,  lines  which  begin with a s\bsp\bpa\bac\bce\be character are not
-              saved in the history list.  A value of _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs  causes  lines
+              A colon-separated list of values controlling  how  commands  are
+              saved  on  the  history  list.   If  the list of values includes
+              _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be, lines which begin with a s\bsp\bpa\bac\bce\be  character  are  not
+              saved  in  the history list.  A value of _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs causes lines
               matching the previous history entry to not be saved.  A value of
               _\bi_\bg_\bn_\bo_\br_\be_\bb_\bo_\bt_\bh is shorthand for _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be and _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs.  A value
               of _\be_\br_\ba_\bs_\be_\bd_\bu_\bp_\bs causes all previous lines matching the current line
-              to be removed from the history list before that line  is  saved.
-              Any  value  not in the above list is ignored.  If H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL is
-              unset, or does not include a valid value, all lines read by  the
+              to  be  removed from the history list before that line is saved.
+              Any value not in the above list is ignored.  If  H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\b is
+              unset,  or does not include a valid value, all lines read by the
               shell parser are saved on the history list, subject to the value
-              of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.  The second and subsequent lines of a  multi-line
-              compound  command  are  not tested, and are added to the history
+              of  H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.  The second and subsequent lines of a multi-line
+              compound command are not tested, and are added  to  the  history
               regardless of the value of H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL.
        H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE
               The name of the file in which command history is saved (see H\bHI\bIS\bS-\b-
-              T\bTO\bOR\bRY\bY  below).   The default value is _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by.  If unset,
-              the command history is  not  saved  when  an  interactive  shell
-              exits.
+              T\bTO\bOR\bRY\bY below).  The default value is _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by.   If  unset,
+              the command history is not saved when a shell exits.
        H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE
               The maximum number of lines contained in the history file.  When
               this variable is assigned a value, the  history  file  is  trun-
-              cated,  if necessary, by removing the oldest entries, to contain
-              no more than that number of lines.  The default  value  is  500.
-              The history file is also truncated to this size after writing it
-              when an interactive shell exits.
+              cated,  if  necessary,  to  contain  no more than that number of
+              lines by removing the oldest entries.  The history file is  also
+              truncated  to this size after writing it when a shell exits.  If
+              the value is 0, the history file  is  truncated  to  zero  size.
+              Non-numeric  values  and  numeric  values less than zero inhibit
+              truncation.  The shell sets the default value to  the  value  of
+              H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE after reading any startup files.
        H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE
-              A colon-separated list of patterns used to decide which  command
-              lines  should  be  saved  on  the history list.  Each pattern is
-              anchored at the beginning of the line and must  match  the  com-
-              plete  line  (no  implicit  `*\b*'  is  appended).  Each pattern is
-              tested against the line after the checks specified  by  H\bHI\bIS\bST\bTC\bCO\bON\bN-\b-
-              T\bTR\bRO\bOL\b are  applied.   In  addition  to  the normal shell pattern
+              A  colon-separated list of patterns used to decide which command
+              lines should be saved on the  history  list.   Each  pattern  is
+              anchored  at  the  beginning of the line and must match the com-
+              plete line (no implicit  `*\b*'  is  appended).   Each  pattern  is
+              tested  against  the line after the checks specified by H\bHI\bIS\bST\bTC\bCO\bON\bN-\b-
+              T\bTR\bRO\bOL\bare applied.  In  addition  to  the  normal  shell  pattern
               matching characters, `&\b&' matches the previous history line.  `&\b&'
-              may  be  escaped  using  a  backslash;  the backslash is removed
+              may be escaped using  a  backslash;  the  backslash  is  removed
               before attempting a match.  The second and subsequent lines of a
               multi-line compound command are not tested, and are added to the
-              history regardless of the value of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.
+              history  regardless  of  the  value  of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.  The pattern
+              matching honors the setting of the e\bex\bxt\btg\bgl\blo\bob\bb shell option.
        H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE
               The number of commands to remember in the command  history  (see
-              H\bHI\bIS\bST\bTO\bOR\bRY\bY below).  The default value is 500.
+              H\bHI\bIS\bST\bTO\bOR\bRY\bY  below).   If  the value is 0, commands are not saved in
+              the history list.  Numeric values less than zero result in every
+              command  being  saved  on  the history list (there is no limit).
+              The shell sets the  default  value  to  500  after  reading  any
+              startup files.
        H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT
               If  this  variable  is  set and not null, its value is used as a
               format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to print the time stamp associated
@@ -1020,9 +1162,9 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               the shell is running;  the  next  time  hostname  completion  is
               attempted  after the value is changed, b\bba\bas\bsh\bh adds the contents of
               the new file to the existing list.  If H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE is set, but  has
-              no value, b\bba\bas\bsh\bh attempts to read _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs to obtain the list of
-              possible hostname completions.   When  H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE  is  unset,  the
-              hostname list is cleared.
+              no  value,  or  does  not name a readable file, b\bba\bas\bsh\bh attempts to
+              read _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs to obtain the list of possible hostname  comple-
+              tions.  When H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE is unset, the hostname list is cleared.
        I\bIF\bFS\bS    The  _\bI_\bn_\bt_\be_\br_\bn_\ba_\bl  _\bF_\bi_\be_\bl_\bd  _\bS_\be_\bp_\ba_\br_\ba_\bt_\bo_\br  that is used for word splitting
               after expansion and to split lines  into  words  with  the  r\bre\bea\bad\bd
               builtin  command.   The  default  value  is  ``<space><tab><new-
@@ -1057,24 +1199,29 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        L\bLC\bC_\b_N\bNU\bUM\bME\bER\bRI\bIC\bC
               This  variable  determines  the  locale category used for number
               formatting.
-       L\bLI\bIN\bNE\bES\bS  Used by the s\bse\bel\ble\bec\bct\bt  builtin  command  to  determine  the  column
-              length  for  printing  selection  lists.  Automatically set upon
-              receipt of a SIGWINCH.
-       M\bMA\bAI\bIL\bL   If this parameter is set to a file name and the  M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH  vari-
-              able is not set, b\bba\bas\bsh\bh informs the user of the arrival of mail in
-              the specified file.
+       L\bLC\bC_\b_T\bTI\bIM\bME\bE
+              This variable determines the locale category used for  data  and
+              time formatting.
+       L\bLI\bIN\bNE\bES\bS  Used  by  the  s\bse\bel\ble\bec\bct\bt  compound  command to determine the column
+              length for printing selection lists.  Automatically set  if  the
+              c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be  option  is enabled or in an interactive shell upon
+              receipt of a S\bSI\bIG\bGW\bWI\bIN\bNC\bCH\bH.
+       M\bMA\bAI\bIL\bL   If this parameter is set to a file or  directory  name  and  the
+              M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH  variable  is  not  set,  b\bba\bas\bsh\bh  informs the user of the
+              arrival of mail in the specified file or  Maildir-format  direc-
+              tory.
        M\bMA\bAI\bIL\bLC\bCH\bHE\bEC\bCK\bK
-              Specifies how often (in seconds)  b\bba\bas\bsh\bh  checks  for  mail.   The
-              default  is  60 seconds.  When it is time to check for mail, the
-              shell does so before displaying the  primary  prompt.   If  this
-              variable  is  unset,  or  set  to  a  value that is not a number
+              Specifies  how  often  (in  seconds)  b\bba\bas\bsh\bh checks for mail.  The
+              default is 60 seconds.  When it is time to check for  mail,  the
+              shell  does  so  before  displaying the primary prompt.  If this
+              variable is unset, or set to  a  value  that  is  not  a  number
               greater than or equal to zero, the shell disables mail checking.
        M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH
-              A  colon-separated  list  of  file names to be checked for mail.
-              The message to be printed when mail arrives in a particular file
-              may  be  specified  by separating the file name from the message
-              with a `?'.  When used in the text of the message, $\b$_\b_ expands to
-              the name of the current mailfile.  Example:
+              A colon-separated list of filenames to be checked for mail.  The
+              message to be printed when mail arrives in a particular file may
+              be  specified by separating the filename from the message with a
+              `?'.  When used in the text of the message, $\b$_\b_  expands  to  the
+              name of the current mailfile.  Example:
               M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH='/var/mail/bfox?"You  have  mail":~/shell-mail?"$_  has
               mail!"'
               B\bBa\bas\bsh\bh supplies a default value for this variable, but  the  loca-
@@ -1091,42 +1238,45 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               name  may  appear  as  two  adjacent colons, or as an initial or
               trailing colon.  The default path is  system-dependent,  and  is
               set  by  the administrator who installs b\bba\bas\bsh\bh.  A common value is
-              ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''.
+              ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
        P\bPO\bOS\bSI\bIX\bXL\bLY\bY_\b_C\bCO\bOR\bRR\bRE\bEC\bCT\bT
-              If this variable is in the environment  when  b\bba\bas\bsh\bh  starts,  the
-              shell  enters _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be before reading the startup files, as if
-              the -\b--\b-p\bpo\bos\bsi\bix\bx invocation option had been supplied.  If it  is  set
-              while  the  shell is running, b\bba\bas\bsh\bh enables _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, as if the
+              If  this  variable  is  in the environment when b\bba\bas\bsh\bh starts, the
+              shell enters _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be before reading the startup files, as  if
+              the  -\b--\b-p\bpo\bos\bsi\bix\bx  invocation option had been supplied.  If it is set
+              while the shell is running, b\bba\bas\bsh\bh enables _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, as  if  the
               command _\bs_\be_\bt _\b-_\bo _\bp_\bo_\bs_\bi_\bx had been executed.
        P\bPR\bRO\bOM\bMP\bPT\bT_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD
               If set, the value is executed as a command prior to issuing each
               primary prompt.
        P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM
-              If  set  to a number greater than zero, the value is used as the
+              If set to a number greater than zero, the value is used  as  the
               number of trailing directory components to retain when expanding
-              the  \\b\w\bw  a\ban\bnd\bd  \\b\W\bW  p\bpr\bro\bom\bmp\bpt\bt  s\bst\btr\bri\bin\bng\bg  e\bes\bsc\bca\bap\bpe\bes\bs (\b(s\bse\bee\be P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below).
+              the \\b\w\bw and \\b\W\bW  prompt  string  escapes  (see  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\b below).
               Characters removed are replaced with an ellipsis.
-       P\bPS\bS1\b1    The value of this parameter is expanded  (see  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG  below)
-              and  used  as  the  primary prompt string.  The default value is
+       P\bPS\bS0\b0    The  value  of  this parameter is expanded (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below)
+              and displayed by interactive shells after reading a command  and
+              before the command is executed.
+       P\bPS\bS1\b1    The  value  of  this parameter is expanded (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below)
+              and used as the primary prompt string.   The  default  value  is
               ``\\b\s\bs-\b-\\b\v\bv\\b\$\b$ ''.
-       P\bPS\bS2\b2    The value of this parameter is expanded as with P\bPS\bS1\b1 and used  as
+       P\bPS\bS2\b2    The  value of this parameter is expanded as with P\bPS\bS1\b1 and used as
               the secondary prompt string.  The default is ``>\b> ''.
        P\bPS\bS3\b3    The value of this parameter is used as the prompt for the s\bse\bel\ble\bec\bct\bt
               command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above).
-       P\bPS\bS4\b4    The value of this parameter is expanded  as  with  P\bPS\bS1\b1  and  the
-              value  is  printed  before  each command b\bba\bas\bsh\bh displays during an
-              execution trace.  The first character of P\bPS\bS4\b4 is replicated  mul-
-              tiple  times, as necessary, to indicate multiple levels of indi-
+       P\bPS\bS4\b4    The  value  of  this  parameter  is expanded as with P\bPS\bS1\b1 and the
+              value is printed before each command  b\bba\bas\bsh\bh  displays  during  an
+              execution  trace.  The first character of P\bPS\bS4\b4 is replicated mul-
+              tiple times, as necessary, to indicate multiple levels of  indi-
               rection.  The default is ``+\b+ ''.
        S\bSH\bHE\bEL\bLL\bL  The full pathname to the shell is kept in this environment vari-
-              able.   If  it is not set when the shell starts, b\bba\bas\bsh\bh assigns to
+              able.  If it is not set when the shell starts, b\bba\bas\bsh\bh  assigns  to
               it the full pathname of the current user's login shell.
        T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT
-              The value of this parameter is used as a format string  specify-
-              ing  how  the timing information for pipelines prefixed with the
-              t\bti\bim\bme\breserved word should be displayed.  The %\b% character  intro-
-              duces  an  escape  sequence  that is expanded to a time value or
-              other information.  The escape sequences and their meanings  are
+              The  value of this parameter is used as a format string specify-
+              ing how the timing information for pipelines prefixed  with  the
+              t\bti\bim\bme\b reserved word should be displayed.  The %\b% character intro-
+              duces an escape sequence that is expanded to  a  time  value  or
+              other  information.  The escape sequences and their meanings are
               as follows; the braces denote optional portions.
               %\b%%\b%        A literal %\b%.
               %\b%[\b[_\bp]\b][\b[l\bl]\b]R\bR  The elapsed time in seconds.
@@ -1134,33 +1284,31 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               %\b%[\b[_\bp]\b][\b[l\bl]\b]S\bS  The number of CPU seconds spent in system mode.
               %\b%P\bP        The CPU percentage, computed as (%U + %S) / %R.
 
-              The  optional  _\bp is a digit specifying the _\bp_\br_\be_\bc_\bi_\bs_\bi_\bo_\bn, the number
+              The optional _\bp is a digit specifying the _\bp_\br_\be_\bc_\bi_\bs_\bi_\bo_\bn,  the  number
               of fractional digits after a decimal point.  A value of 0 causes
               no decimal point or fraction to be output.  At most three places
-              after the decimal point may be specified; values  of  _\b greater
-              than  3 are changed to 3.  If _\bp is not specified, the value 3 is
+              after  the  decimal  point may be specified; values of _\bp greater
+              than 3 are changed to 3.  If _\bp is not specified, the value 3  is
               used.
 
-              The optional l\bl specifies a longer format, including minutes,  of
-              the  form  _\bM_\bMm_\bS_\bS._\bF_\bFs.   The value of _\bp determines whether or not
+              The  optional l\bl specifies a longer format, including minutes, of
+              the form _\bM_\bMm_\bS_\bS._\bF_\bFs.  The value of _\bp determines  whether  or  not
               the fraction is included.
 
-              If this variable is not set, b\bba\bas\bsh\bh acts as if it  had  the  value
-              $\b$'\b'\\b\n\bnr\bre\bea\bal\bl\\b\t\bt%\b%3\b3l\blR\bR\\b\n\bnu\bus\bse\ber\br\\b\t\bt%\b%3\b3l\blU\bU\\b\n\bns\bsy\bys\bs%\b%3\b3l\blS\bS'\b'.   If the value is null, no
-              timing information is displayed.  A trailing  newline  is  added
+              If  this  variable  is not set, b\bba\bas\bsh\bh acts as if it had the value
+              $\b$'\b'\\b\n\bnr\bre\bea\bal\bl\\b\t\bt%\b%3\b3l\blR\bR\\b\n\bnu\bus\bse\ber\br\\b\t\bt%\b%3\b3l\blU\bU\\b\n\bns\bsy\bys\bs\\b\t\bt%\b%3\b3l\blS\bS'\b'.  If the value  is  null,
+              no timing information is displayed.  A trailing newline is added
               when the format string is displayed.
-
-       T\bTM\bMO\bOU\bUT\bT  If  set  to  a  value greater than zero, T\bTM\bMO\bOU\bUT\bT is treated as the
+       T\bTM\bMO\bOU\bUT\bT  If set to a value greater than zero, T\bTM\bMO\bOU\bUT\bT  is  treated  as  the
               default timeout for the r\bre\bea\bad\bd builtin.  The s\bse\bel\ble\bec\bct\bt command termi-
               nates if input does not arrive after T\bTM\bMO\bOU\bUT\bT seconds when input is
-              coming from a terminal.  In an interactive shell, the  value  is
-              interpreted  as  the  number  of seconds to wait for input after
-              issuing the primary prompt.  B\bBa\bas\bsh\bh terminates after  waiting  for
-              that number of seconds if input does not arrive.
-
-       T\bTM\bMP\bPD\bDI\bIR\bR If  set, B\bBa\bas\bsh\bh uses its value as the name of a directory in which
-              B\bBa\bas\bsh\bh creates temporary files for the shell's use.
-
+              coming  from  a terminal.  In an interactive shell, the value is
+              interpreted as the number of seconds to wait for a line of input
+              after issuing the primary prompt.  B\bBa\bas\bsh\bh terminates after waiting
+              for that number of seconds if a complete line of input does  not
+              arrive.
+       T\bTM\bMP\bPD\bDI\bIR\bR If  set, b\bba\bas\bsh\bh uses its value as the name of a directory in which
+              b\bba\bas\bsh\bh creates temporary files for the shell's use.
        a\bau\but\bto\bo_\b_r\bre\bes\bsu\bum\bme\be
               This variable controls how the shell interacts with the user and
               job  control.   If this variable is set, single word simple com-
@@ -1177,7 +1325,6 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               to any other value, the supplied string must be a  prefix  of  a
               stopped job's name; this provides functionality analogous to the
               %\b%_\bs_\bt_\br_\bi_\bn_\bg job identifier.
-
        h\bhi\bis\bst\btc\bch\bha\bar\brs\bs
               The two or three characters which control history expansion  and
               tokenization (see H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below).  The first character
@@ -1199,34 +1346,39 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        explicitly declare an array.  There is no maximum limit on the size  of
        an  array, nor any requirement that members be indexed or assigned con-
        tiguously.  Indexed arrays are  referenced  using  integers  (including
-       arithmetic  expressions)   and  are  zero-based; associative arrays are
-       referenced using arbitrary strings.
+       arithmetic expressions) and are zero-based; associative arrays are ref-
+       erenced using arbitrary strings.  Unless otherwise noted, indexed array
+       indices must be non-negative integers.
 
-       An indexed array is created automatically if any variable  is  assigned
+       An  indexed  array is created automatically if any variable is assigned
        to using the syntax _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be.  The _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is treated as
-       an arithmetic expression that must evaluate to a number greater than or
-       equal  to zero.  To explicitly declare an indexed array, use d\bde\bec\bcl\bla\bar\bre\be -\b-a\ba
-       _\bn_\ba_\bm_\be (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  d\bde\bec\bcl\bla\bar\bre\be -\b-a\ba _\bn_\ba_\bm_\be[\b[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]\b] is
-       also accepted; the _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is ignored.
+       an arithmetic expression that must evaluate to a number.  To explicitly
+       declare an indexed array, use d\bde\bec\bcl\bla\bar\bre\be -\b-a\ba _\bn_\ba_\bm_\be (see S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bM-\b-
+       M\bMA\bAN\bND\bDS\bS  below).   d\bde\bec\bcl\bla\bar\bre\be  -\b-a\ba _\bn_\ba_\bm_\be[\b[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]\b] is also accepted; the _\bs_\bu_\bb_\b-
+       _\bs_\bc_\br_\bi_\bp_\bt is ignored.
 
        Associative arrays are created using d\bde\bec\bcl\bla\bar\bre\be -\b-A\bA _\bn_\ba_\bm_\be.
 
        Attributes may be specified for an array variable using the d\bde\bec\bcl\bla\bar\bre\be and
-       r\bre\bea\bad\bdo\bon\bnl\bly\by builtins.  Each attribute applies to all members of an  array.
+       r\bre\bea\bad\bdo\bon\bnl\bly\by builtins.  Each attribute applies to all members of an array.
 
        Arrays   are  assigned  to  using  compound  assignments  of  the  form
        _\bn_\ba_\bm_\be=(\b(value_\b1 ... value_\bn)\b),  where  each  _\bv_\ba_\bl_\bu_\be  is  of  the  form  [_\bs_\bu_\bb_\b-
-       _\bs_\bc_\br_\bi_\bp_\bt]=_\bs_\bt_\br_\bi_\bn_\bg.   Indexed  array assignments do not require the bracket
-       and subscript.  When assigning  to  indexed  arrays,  if  the  optional
-       brackets  and subscript are supplied, that index is assigned to; other-
-       wise the index of the element assigned is the last index assigned to by
-       the statement plus one.  Indexing starts at zero.
+       _\bs_\bc_\br_\bi_\bp_\bt]=_\bs_\bt_\br_\bi_\bn_\bg.   Indexed array assignments do not require anything but
+       _\bs_\bt_\br_\bi_\bn_\bg.  When assigning to indexed arrays, if the optional brackets and
+       subscript  are supplied, that index is assigned to; otherwise the index
+       of the element assigned is the last index assigned to by the  statement
+       plus one.  Indexing starts at zero.
 
        When assigning to an associative array, the subscript is required.
 
        This  syntax is also accepted by the d\bde\bec\bcl\bla\bar\bre\be builtin.  Individual array
        elements may be assigned  to  using  the  _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be  syntax
-       introduced above.
+       introduced  above.  When assigning to an indexed array, if _\bn_\ba_\bm_\be is sub-
+       scripted by a negative number, that number is interpreted  as  relative
+       to  one  greater  than  the  maximum index of _\bn_\ba_\bm_\be, so negative indices
+       count back from the end of the array, and an index of -1 references the
+       last element.
 
        Any  element  of  an  array may be referenced using ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}.
        The braces are required to avoid conflicts with pathname expansion.  If
@@ -1243,34 +1395,54 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        expansion  of  the  special  parameters *\b* and @\b@ (see S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
        above).  ${#_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}  expands  to  the  length  of  ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\b-
        _\bs_\bc_\br_\bi_\bp_\bt]}.   If _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is *\b* or @\b@, the expansion is the number of ele-
-       ments in the array.  Referencing an array variable without a  subscript
-       is equivalent to referencing the array with a subscript of 0.
+       ments in the array.  If the _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt used to reference an  element  of
+       an  indexed  array  evaluates  to a number less than zero, it is inter-
+       preted as relative to one greater than the maximum index of the  array,
+       so  negative indices count back from the end of the array, and an index
+       of -1 references the last element.
+
+       Referencing an array variable without a subscript is equivalent to ref-
+       erencing  the array with a subscript of 0.  Any reference to a variable
+       using a valid subscript is legal, and b\bba\bas\bsh\bh will create an array if nec-
+       essary.
+
+       An  array variable is considered set if a subscript has been assigned a
+       value.  The null string is a valid value.
+
+       It is possible to obtain the keys (indices) of an array as well as  the
+       values.   ${!\b!_\bn_\ba_\bm_\be[_\b@]} and ${!\b!_\bn_\ba_\bm_\be[_\b*]} expand to the indices assigned in
+       array variable _\bn_\ba_\bm_\be.  The treatment when in double quotes is similar to
+       the expansion of the special parameters _\b@ and _\b* within double quotes.
 
        The  u\bun\bns\bse\bet\bt  builtin  is  used to destroy arrays.  u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]
-       destroys the array element at index _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt.  Care must be  taken  to
-       avoid unwanted side effects caused by filename generation.  u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be,
-       where _\bn_\ba_\bm_\be is an array, or u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt], where _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is  *\b*
-       or @\b@, removes the entire array.
-
-       The  d\bde\bec\bcl\bla\bar\bre\be,  l\blo\boc\bca\bal\bl,  and r\bre\bea\bad\bdo\bon\bnl\bly\by builtins each accept a -\b-a\ba option to
-       specify an indexed array and a -\b-A\bA  option  to  specify  an  associative
-       array.   The r\bre\bea\bad\bd builtin accepts a -\b-a\ba option to assign a list of words
-       read from the standard input to an array.  The s\bse\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtins
-       display  array values in a way that allows them to be reused as assign-
-       ments.
+       destroys the array element at index _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt.  Negative subscripts  to
+       indexed  arrays are interpreted as described above.  Care must be taken
+       to avoid unwanted side effects caused  by  pathname  expansion.   u\bun\bns\bse\bet\bt
+       _\bn_\ba_\bm_\be, where _\bn_\ba_\bm_\be is an array, or u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt], where _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt
+       is *\b* or @\b@, removes the entire array.
+
+       The d\bde\bec\bcl\bla\bar\bre\be, l\blo\boc\bca\bal\bl, and r\bre\bea\bad\bdo\bon\bnl\bly\by builtins each accept a  -\b-a\ba  option  to
+       specify  an  indexed  array  and  a -\b-A\bA option to specify an associative
+       array.  If both options are supplied, -\b-A\bA takes  precedence.   The  r\bre\bea\bad\bd
+       builtin  accepts  a  -\b-a\ba  option to assign a list of words read from the
+       standard input to an array.  The s\bse\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtins display array
+       values in a way that allows them to be reused as assignments.
 
 E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        Expansion is performed on the command line after it has been split into
-       words.   There are seven kinds of expansion performed: _\bb_\br_\ba_\bc_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,
-       _\bt_\bi_\bl_\bd_\b_\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br _\ba_\bn_\bd _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be  _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,  _\bc_\bo_\bm_\bm_\ba_\bn_\b _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\b-
+       words.  There are seven kinds of expansion performed: _\bb_\br_\ba_\bc_\b _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,
+       _\bt_\bi_\bl_\bd_\b _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  _\ba_\bn_\bd _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bc_\bo_\bm_\bm_\ba_\bn_\bd _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\b-
        _\bt_\bi_\bo_\bn, _\ba_\br_\bi_\bt_\bh_\bm_\be_\bt_\bi_\bc _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bw_\bo_\br_\bd _\bs_\bp_\bl_\bi_\bt_\bt_\bi_\bn_\bg, and _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn.
 
-       The  order  of expansions is: brace expansion, tilde expansion, parame-
-       ter, variable and arithmetic expansion and command  substitution  (done
-       in a left-to-right fashion), word splitting, and pathname expansion.
+       The order of expansions is: brace expansion; tilde expansion, parameter
+       and  variable expansion, arithmetic expansion, and command substitution
+       (done in a left-to-right fashion); word splitting; and pathname  expan-
+       sion.
 
        On systems that can support it, there is an additional expansion avail-
-       able: _\bp_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn.
+       able: _\bp_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn.  This is performed  at  the  same  time  as
+       tilde,  parameter,  variable, and arithmetic expansion and command sub-
+       stitution.
 
        Only brace expansion, word splitting, and pathname expansion can change
        the  number of words of the expansion; other expansions expand a single
@@ -1299,10 +1471,10 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        or  _\by  begins  with  a  zero, the shell attempts to force all generated
        terms to contain the same number of digits, zero-padding  where  neces-
        sary.   When  characters  are  supplied, the expression expands to each
-       character lexicographically between _\bx and _\by, inclusive.  Note that both
-       _\bx  and  _\by must be of the same type.  When the increment is supplied, it
-       is used as the difference between each term.  The default increment  is
-       1 or -1 as appropriate.
+       character lexicographically between  _\bx  and  _\by,  inclusive,  using  the
+       default  C  locale.   Note  that both _\bx and _\by must be of the same type.
+       When the increment is supplied, it is used as  the  difference  between
+       each term.  The default increment is 1 or -1 as appropriate.
 
        Brace expansion is performed before any other expansions, and any char-
        acters special to other expansions are preserved in the result.  It  is
@@ -1360,7 +1532,7 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
 
        Each variable assignment is checked for unquoted tilde-prefixes immedi-
        ately following a :\b: or the first =\b=.  In these cases, tilde expansion is
-       also performed.  Consequently, one may use file names  with  tildes  in
+       also performed.  Consequently, one may use  filenames  with  tildes  in
        assignments  to  P\bPA\bAT\bTH\bH,  M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH, and C\bCD\bDP\bPA\bAT\bTH\bH, and the shell assigns the
        expanded value.
 
@@ -1380,92 +1552,121 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
               The  value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is substituted.  The braces are required
               when _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a positional  parameter  with  more  than  one
               digit, or when _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is followed by a character which is not
-              to be interpreted as part of its name.
-
-       If the first character of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an exclamation point, a level of
-       variable  indirection  is introduced.  B\bBa\bas\bsh\bh uses the value of the vari-
-       able formed from the rest of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as the  name  of  the  variable;
-       this  variable  is  then expanded and that value is used in the rest of
-       the substitution, rather than the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br itself.   This  is
-       known as _\bi_\bn_\bd_\bi_\br_\be_\bc_\bt _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn.  The exceptions to this are the expansions
-       of ${!_\bp_\br_\be_\bf_\bi_\bx*} and ${!\b!_\bn_\ba_\bm_\be[_\b@]} described below.  The exclamation  point
-       must  immediately  follow the left brace in order to introduce indirec-
-       tion.
+              to be interpreted as part of its name.  The _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a shell
+              parameter  as  described above P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS) or an array reference
+              (A\bAr\brr\bra\bay\bys\bs).
+
+       If the first character of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an exclamation  point  (!\b!),  and
+       _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is not a _\bn_\ba_\bm_\be_\br_\be_\bf, it introduces a level of variable indirec-
+       tion.  B\bBa\bas\bsh\bh uses the value of the variable  formed  from  the  rest  of
+       _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  as  the name of the variable; this variable is then expanded
+       and that value is used in the rest of the substitution, rather than the
+       value  of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  itself.  This is known as _\bi_\bn_\bd_\bi_\br_\be_\bc_\bt _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn.  If
+       _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a nameref, this expands to the name of the variable refer-
+       enced  by  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br instead of performing the complete indirect expan-
+       sion.  The exceptions to this are the  expansions  of  ${!\b!_\bp_\br_\be_\bf_\bi_\bx*\b*}  and
+       ${!\b!_\bn_\ba_\bm_\be[_\b@]}  described  below.   The exclamation point must immediately
+       follow the left brace in order to introduce indirection.
 
        In each of the cases below, _\bw_\bo_\br_\bd is subject to tilde expansion, parame-
        ter expansion, command substitution, and arithmetic expansion.
 
        When  not  performing  substring  expansion, using the forms documented
-       below, b\bba\bas\bsh\bh tests for a parameter that is unset or null.  Omitting  the
-       colon results in a test only for a parameter that is unset.
+       below (e.g., :\b:-\b-), b\bba\bas\bsh\bh tests for a parameter that  is  unset  or  null.
+       Omitting  the  colon  results  in  a  test only for a parameter that is
+       unset.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:-\b-_\bw_\bo_\br_\bd}
-              U\bUs\bse\b D\bDe\bef\bfa\bau\bul\blt\bt  V\bVa\bal\blu\bue\bes\bs.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is unset or null, the expan-
-              sion of _\bw_\bo_\br_\bd is substituted.  Otherwise, the value of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
+              U\bUs\bse\bD\bDe\bef\bfa\bau\bul\blt\bt V\bVa\bal\blu\bue\bes\bs.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is unset or null,  the  expan-
+              sion  of _\bw_\bo_\br_\bd is substituted.  Otherwise, the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
               is substituted.
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:=\b=_\bw_\bo_\br_\bd}
-              A\bAs\bss\bsi\big\bgn\b D\bDe\bef\bfa\bau\bul\blt\bt  V\bVa\bal\blu\bue\bes\bs.   If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  unset or null, the
+              A\bAs\bss\bsi\big\bgn\bD\bDe\bef\bfa\bau\bul\blt\bt V\bVa\bal\blu\bue\bes\bs.  If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  unset  or  null,  the
               expansion of _\bw_\bo_\br_\bd is assigned to _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  The value of _\bp_\ba_\br_\ba_\bm_\b-
-              _\be_\bt_\be_\b is  then  substituted.   Positional parameters and special
+              _\be_\bt_\be_\bis then substituted.   Positional  parameters  and  special
               parameters may not be assigned to in this way.
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:?\b?_\bw_\bo_\br_\bd}
-              D\bDi\bis\bsp\bpl\bla\bay\bE\bEr\brr\bro\bor\br i\bif\bf N\bNu\bul\bll\bl o\bor\br U\bUn\bns\bse\bet\bt.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or  unset,
-              the  expansion  of  _\bw_\bo_\br_\bd (or a message to that effect if _\bw_\bo_\br_\bd is
-              not present) is written to the standard error and the shell,  if
+              D\bDi\bis\bsp\bpl\bla\bay\b E\bEr\brr\bro\bor\br i\bif\bf N\bNu\bul\bll\bl o\bor\br U\bUn\bns\bse\bet\bt.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset,
+              the expansion of _\bw_\bo_\br_\bd (or a message to that effect  if  _\bw_\bo_\br_\b is
+              not  present) is written to the standard error and the shell, if
               it is not interactive, exits.  Otherwise, the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
               is substituted.
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:+\b+_\bw_\bo_\br_\bd}
-              U\bUs\bse\bA\bAl\blt\bte\ber\brn\bna\bat\bte\be V\bVa\bal\blu\bue\be.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset, nothing  is
+              U\bUs\bse\b A\bAl\blt\bte\ber\brn\bna\bat\bte\be V\bVa\bal\blu\bue\be.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset, nothing is
               substituted, otherwise the expansion of _\bw_\bo_\br_\bd is substituted.
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:_\bo_\bf_\bf_\bs_\be_\bt}
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:_\bo_\bf_\bf_\bs_\be_\bt:\b:_\bl_\be_\bn_\bg_\bt_\bh}
-              S\bSu\bub\bbs\bst\btr\bri\bin\bng\bg  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn.\b.   Expands  to  up  to _\bl_\be_\bn_\bg_\bt_\bh characters of
-              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br starting at the character  specified  by  _\bo_\bf_\bf_\bs_\be_\bt.   If
-              _\bl_\be_\bn_\bg_\bt_\bh  is omitted, expands to the substring of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br start-
-              ing at the character specified by _\bo_\bf_\bf_\bs_\be_\bt.  _\bl_\be_\bn_\bg_\bt_\bh and _\bo_\bf_\bf_\bs_\be_\bt are
-              arithmetic   expressions   (see  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC  E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN  below).
-              _\bl_\be_\bn_\bg_\bt_\bh must evaluate to a number greater than or equal to  zero.
+              S\bSu\bub\bbs\bst\btr\bri\bin\bng\bg E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn.  Expands to up to _\bl_\be_\bn_\bg_\bt_\bh characters of  the
+              value  of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br starting at the character specified by _\bo_\bf_\bf_\b-
+              _\bs_\be_\bt.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@, an indexed array subscripted by @\b@ or *\b*,
+              or  an  associative  array name, the results differ as described
+              below.  If _\bl_\be_\bn_\bg_\bt_\bh is omitted, expands to the  substring  of  the
+              value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br starting at the character specified by _\bo_\bf_\bf_\bs_\be_\bt
+              and extending to the end of the value.  _\bl_\be_\bn_\bg_\bt_\bh  and  _\bo_\bf_\bf_\bs_\be_\bt  are
+              arithmetic expressions (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN below).
+
               If  _\bo_\bf_\bf_\bs_\be_\bt  evaluates  to  a number less than zero, the value is
-              used as an offset from the end of the value  of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.   If
-              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  @\b@,  the  result  is  _\bl_\be_\bn_\bg_\bt_\bh positional parameters
-              beginning at _\bo_\bf_\bf_\bs_\be_\bt.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an indexed array name sub-
-              scripted  by  @  or  *,  the result is the _\bl_\be_\bn_\bg_\bt_\bh members of the
-              array beginning with ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br[_\bo_\bf_\bf_\bs_\be_\bt]}.  A negative _\bo_\bf_\bf_\bs_\be_\bt is
-              taken  relative  to  one  greater  than the maximum index of the
-              specified array.  Substring expansion applied to an  associative
-              array  produces  undefined results.  Note that a negative offset
-              must be separated from the colon by at least one space to  avoid
-              being  confused  with  the  :- expansion.  Substring indexing is
-              zero-based unless the positional parameters are used,  in  which
-              case  the  indexing starts at 1 by default.  If _\bo_\bf_\bf_\bs_\be_\bt is 0, and
-              the positional parameters are used, $\b$0\b0 is prefixed to the  list.
+              used as an offset in characters from the end  of  the  value  of
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.   If  _\bl_\be_\bn_\bg_\bt_\bh evaluates to a number less than zero, it
+              is interpreted as an offset in characters from the  end  of  the
+              value  of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br rather than a number of characters, and the
+              expansion is the characters  between  _\bo_\bf_\bf_\bs_\be_\bt  and  that  result.
+              Note  that a negative offset must be separated from the colon by
+              at least one space to avoid being confused with  the  :\b:-\b-  expan-
+              sion.
+
+              If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  @\b@, the result is _\bl_\be_\bn_\bg_\bt_\bh positional parameters
+              beginning at _\bo_\bf_\bf_\bs_\be_\bt.  A negative _\bo_\bf_\bf_\bs_\be_\bt is taken relative to one
+              greater  than the greatest positional parameter, so an offset of
+              -1 evaluates to the last positional parameter.  It is an  expan-
+              sion error if _\bl_\be_\bn_\bg_\bt_\bh evaluates to a number less than zero.
+
+              If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an indexed array name subscripted by @ or *, the
+              result is  the  _\bl_\be_\bn_\bg_\bt_\bh  members  of  the  array  beginning  with
+              ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br[_\bo_\bf_\bf_\bs_\be_\bt]}.   A  negative  _\bo_\bf_\bf_\bs_\be_\bt is taken relative to
+              one greater than the maximum index of the specified  array.   It
+              is  an expansion error if _\bl_\be_\bn_\bg_\bt_\bh evaluates to a number less than
+              zero.
+
+              Substring expansion applied to  an  associative  array  produces
+              undefined results.
+
+              Substring  indexing  is zero-based unless the positional parame-
+              ters are used, in  which  case  the  indexing  starts  at  1  by
+              default.   If  _\bo_\bf_\bf_\bs_\be_\bt  is  0,  and the positional parameters are
+              used, $\b$0\b0 is prefixed to the list.
 
        ${!\b!_\bp_\br_\be_\bf_\bi_\bx*\b*}
        ${!\b!_\bp_\br_\be_\bf_\bi_\bx@\b@}
-              N\bNa\bam\bme\bes\b m\bma\bat\btc\bch\bhi\bin\bng\bg p\bpr\bre\bef\bfi\bix\bx.\b.  Expands to the names of variables whose
+              N\bNa\bam\bme\bes\bm\bma\bat\btc\bch\bhi\bin\bng\bg p\bpr\bre\bef\bfi\bix\bx.  Expands to the names of variables  whose
               names begin with _\bp_\br_\be_\bf_\bi_\bx, separated by the first character of the
-              I\bIF\bFS\b special variable.  When _\b@ is used and the expansion appears
-              within double quotes, each variable name expands to  a  separate
+              I\bIF\bFS\bspecial variable.  When _\b@ is used and the expansion  appears
+              within  double  quotes, each variable name expands to a separate
               word.
 
        ${!\b!_\bn_\ba_\bm_\be[_\b@]}
        ${!\b!_\bn_\ba_\bm_\be[_\b*]}
-              L\bLi\bis\bst\b o\bof\bf  a\bar\brr\bra\bay\by  k\bke\bey\bys\bs.\b.  If _\bn_\ba_\bm_\be is an array variable, expands to
-              the list of array indices (keys) assigned in _\bn_\ba_\bm_\be.  If  _\bn_\ba_\bm_\b is
-              not  an  array,  expands to 0 if _\bn_\ba_\bm_\be is set and null otherwise.
-              When _\b@ is used and the expansion appears within  double  quotes,
+              L\bLi\bis\bst\bo\bof\bf a\bar\brr\bra\bay\by k\bke\bey\bys\bs.  If _\bn_\ba_\bm_\be is an array  variable,  expands  to
+              the  list  of array indices (keys) assigned in _\bn_\ba_\bm_\be.  If _\bn_\ba_\bm_\be is
+              not an array, expands to 0 if _\bn_\ba_\bm_\be is set  and  null  otherwise.
+              When  _\b@  is used and the expansion appears within double quotes,
               each key expands to a separate word.
 
        ${#\b#_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}
-              P\bPa\bar\bra\bam\bme\bet\bte\ber\br  l\ble\ben\bng\bgt\bth\bh.\b.   The  length  in  characters of the value of
-              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is substituted.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is *\b*  or  @\b@,  the  value
-              substituted  is the number of positional parameters.  If _\bp_\ba_\br_\ba_\bm_\be_\b-
-              _\bt_\be_\br is an array name subscripted by *\b* or @\b@,  the  value  substi-
-              tuted is the number of elements in the array.
+              P\bPa\bar\bra\bam\bme\bet\bte\ber\br l\ble\ben\bng\bgt\bth\bh.  The length in  characters  of  the  value  of
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  substituted.   If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is *\b* or @\b@, the value
+              substituted is the number of positional parameters.  If  _\bp_\ba_\br_\ba_\bm_\be_\b-
+              _\bt_\be_\br  is  an  array name subscripted by *\b* or @\b@, the value substi-
+              tuted is the number of elements in the array.  If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is
+              an  indexed  array  name  subscripted by a negative number, that
+              number is interpreted as relative to one greater than the  maxi-
+              mum  index of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, so negative indices count back from the
+              end of the array, and an index of -1 references  the  last  ele-
+              ment.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br#\b#_\bw_\bo_\br_\bd}
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br#\b##\b#_\bw_\bo_\br_\bd}
-              R\bRe\bem\bmo\bov\bve\be m\bma\bat\btc\bch\bhi\bin\bng\bg p\bpr\bre\bef\bfi\bix\bx p\bpa\bat\btt\bte\ber\brn\bn.\b.  The _\bw_\bo_\br_\bd is expanded to produce
+              R\bRe\bem\bmo\bov\bve\be m\bma\bat\btc\bch\bhi\bin\bng\bg p\bpr\bre\bef\bfi\bix\bx p\bpa\bat\btt\bte\ber\brn\bn.  The _\bw_\bo_\br_\bd is expanded to produce
               a pattern just as in pathname expansion.  If the pattern matches
               the  beginning of the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the result of the
               expansion is the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with  the  shortest
@@ -1479,7 +1680,7 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br%\b%_\bw_\bo_\br_\bd}
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br%\b%%\b%_\bw_\bo_\br_\bd}
-              R\bRe\bem\bmo\bov\bve\be m\bma\bat\btc\bch\bhi\bin\bng\bg s\bsu\buf\bff\bfi\bix\bx p\bpa\bat\btt\bte\ber\brn\bn.\b.  The _\bw_\bo_\br_\bd is expanded to produce
+              R\bRe\bem\bmo\bov\bve\be m\bma\bat\btc\bch\bhi\bin\bng\bg s\bsu\buf\bff\bfi\bix\bx p\bpa\bat\btt\bte\ber\brn\bn.  The _\bw_\bo_\br_\bd is expanded to produce
               a pattern just as in pathname expansion.  If the pattern matches
               a  trailing portion of the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the
               result of the expansion is the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  with
@@ -1492,7 +1693,7 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
               the array in turn, and the expansion is the resultant list.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br/\b/_\bp_\ba_\bt_\bt_\be_\br_\bn/\b/_\bs_\bt_\br_\bi_\bn_\bg}
-              P\bPa\bat\btt\bte\ber\brn\bn s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn.\b.  The _\bp_\ba_\bt_\bt_\be_\br_\bn is expanded to produce a pat-
+              P\bPa\bat\btt\bte\ber\brn\bn s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn.  The _\bp_\ba_\bt_\bt_\be_\br_\bn is expanded to produce a pat-
               tern just as in pathname expansion.  _\bP_\ba_\br_\ba_\bm_\be_\bt_\be_\br is  expanded  and
               the  longest match of _\bp_\ba_\bt_\bt_\be_\br_\bn against its value is replaced with
               _\bs_\bt_\br_\bi_\bn_\bg.  If _\bp_\ba_\bt_\bt_\be_\br_\bn begins with /\b/, all matches  of  _\bp_\ba_\bt_\bt_\be_\br_\bn  are
@@ -1501,47 +1702,81 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
               ning of the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  If _\bp_\ba_\bt_\bt_\be_\br_\bn begins with
               %\b%, it must match at the end of the expanded value of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.
               If _\bs_\bt_\br_\bi_\bn_\bg is null, matches of _\bp_\ba_\bt_\bt_\be_\br_\bn are deleted and the /\b/ fol-
-              lowing _\bp_\ba_\bt_\bt_\be_\br_\bn may be omitted.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the sub-
-              stitution  operation  is applied to each positional parameter in
-              turn, and the expansion is the resultant list.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is
-              an  array  variable  subscripted  with  @\b@ or *\b*, the substitution
-              operation is applied to each member of the array  in  turn,  and
-              the expansion is the resultant list.
+              lowing _\bp_\ba_\bt_\bt_\be_\br_\bn may be omitted.  If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell  option
+              is enabled, the match is performed without regard to the case of
+              alphabetic characters.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the substitution
+              operation  is  applied to each positional parameter in turn, and
+              the expansion is the resultant list.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is  an  array
+              variable  subscripted with @\b@ or *\b*, the substitution operation is
+              applied to each member of the array in turn, and  the  expansion
+              is the resultant list.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br^\b^_\bp_\ba_\bt_\bt_\be_\br_\bn}
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br^\b^^\b^_\bp_\ba_\bt_\bt_\be_\br_\bn}
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br,\b,_\bp_\ba_\bt_\bt_\be_\br_\bn}
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br,\b,,\b,_\bp_\ba_\bt_\bt_\be_\br_\bn}
-              C\bCa\bas\bse\be  m\bmo\bod\bdi\bif\bfi\bic\bca\bat\bti\bio\bon\bn.\b.   This expansion modifies the case of alpha-
+              C\bCa\bas\bse\be  m\bmo\bod\bdi\bif\bfi\bic\bca\bat\bti\bio\bon\bn.   This expansion modifies the case of alpha-
               betic characters in _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  The _\bp_\ba_\bt_\bt_\be_\br_\bn is expanded to  pro-
-              duce  a  pattern  just as in pathname expansion.  The ^\b^ operator
-              converts lowercase letters matching _\bp_\ba_\bt_\bt_\be_\br_\bn to uppercase; the  ,\b,
-              operator  converts matching uppercase letters to lowercase.  The
-              ^\b^^\b^ and ,\b,,\b, expansions  convert  each  matched  character  in  the
-              expanded  value;  the  ^\b^ and ,\b, expansions match and convert only
-              the first character in the expanded value..  If _\bp_\ba_\bt_\bt_\be_\br_\bn is omit-
-              ted,  it is treated like a ?\b?, which matches every character.  If
-              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the case modification operation is  applied
-              to  each  positional parameter in turn, and the expansion is the
-              resultant list.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array  variable  subscripted
-              with  @\b@ or *\b*, the case modification operation is applied to each
-              member of the array in turn, and the expansion is the  resultant
-              list.
+              duce a pattern just as in pathname expansion.  Each character in
+              the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is tested against _\bp_\ba_\bt_\bt_\be_\br_\bn,  and,
+              if  it  matches the pattern, its case is converted.  The pattern
+              should not attempt to match more  than  one  character.   The  ^\b^
+              operator  converts  lowercase letters matching _\bp_\ba_\bt_\bt_\be_\br_\bn to upper-
+              case; the ,\b, operator converts matching uppercase letters to low-
+              ercase.  The ^\b^^\b^ and ,\b,,\b, expansions convert each matched character
+              in the expanded value; the ^\b^ and ,\b, expansions match and  convert
+              only  the  first character in the expanded value.  If _\bp_\ba_\bt_\bt_\be_\br_\bn is
+              omitted, it is treated like a ?\b?, which matches every  character.
+              If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  @\b@  or  *\b*,  the case modification operation is
+              applied to each positional parameter in turn, and the  expansion
+              is  the  resultant list.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array variable sub-
+              scripted with @\b@ or *\b*, the case modification operation is applied
+              to  each  member  of the array in turn, and the expansion is the
+              resultant list.
+
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br@\b@_\bo_\bp_\be_\br_\ba_\bt_\bo_\br}
+              P\bPa\bar\bra\bam\bme\bet\bte\ber\br t\btr\bra\ban\bns\bsf\bfo\bor\brm\bma\bat\bti\bio\bon\bn.  The expansion is either a transforma-
+              tion  of  the  value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br or information about _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
+              itself, depending on the value of _\bo_\bp_\be_\br_\ba_\bt_\bo_\br.  Each _\bo_\bp_\be_\br_\ba_\bt_\bo_\br is  a
+              single letter:
+
+              Q\bQ      The  expansion is a string that is the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
+                     quoted in a format that can be reused as input.
+              E\bE      The expansion is a string that is the value of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
+                     with  backslash  escape  sequences  expanded  as with the
+                     $\b$'\b'.\b..\b..\b.'\b' quoting mechansim.
+              P\bP      The expansion is a string that is the result of expanding
+                     the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as if it were a prompt string (see
+                     P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below).
+              A\bA      The expansion is a string in the form  of  an  assignment
+                     statement  or  d\bde\bec\bcl\bla\bar\bre\be  command  that, if evaluated, will
+                     recreate _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with its attributes and value.
+              a\ba      The expansion is a string consisting of flag values  rep-
+                     resenting _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br's attributes.
+
+              If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is @\b@ or *\b*, the operation is applied to each posi-
+              tional parameter in turn, and the  expansion  is  the  resultant
+              list.   If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array variable subscripted with @\b@ or
+              *\b*, the case modification operation is applied to each member  of
+              the array in turn, and the expansion is the resultant list.
+
+              The  result  of  the  expansion is subject to word splitting and
+              pathname expansion as described below.
 
    C\bCo\bom\bmm\bma\ban\bnd\bd S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
        _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn allows the output of a command to replace the com-
        mand name.  There are two forms:
 
-
               $\b$(\b(_\bc_\bo_\bm_\bm_\ba_\bn_\bd)\b)
        or
               `\b`_\bc_\bo_\bm_\bm_\ba_\bn_\bd`\b`
 
-       B\bBa\bas\bsh\bh performs the expansion by executing _\bc_\bo_\bm_\bm_\ba_\bn_\bd and replacing the com-
-       mand  substitution  with  the  standard output of the command, with any
-       trailing newlines deleted.  Embedded newlines are not deleted, but they
-       may  be  removed during word splitting.  The command substitution $\b$(\b(c\bca\bat\bt
-       _\bf_\bi_\bl_\be)\b) can be replaced by the equivalent but faster $\b$(\b(<\b< _\bf_\bi_\bl_\be)\b).
+       B\bBa\bas\bsh\bh performs the expansion by executing _\bc_\bo_\bm_\bm_\ba_\bn_\bd in a subshell environ-
+       ment and replacing the command substitution with the standard output of
+       the command, with any trailing newlines deleted.  Embedded newlines are
+       not deleted, but they may be removed during word splitting.   The  com-
+       mand  substitution  $\b$(\b(c\bca\bat\bt  _\bf_\bi_\bl_\be)\b)  can be replaced by the equivalent but
+       faster $\b$(\b(<\b< _\bf_\bi_\bl_\be)\b).
 
        When the old-style backquote form of substitution  is  used,  backslash
        retains  its  literal  meaning except when followed by $\b$, `\b`, or \\b\.  The
@@ -1564,23 +1799,25 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
 
        The _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is treated as if it were within  double  quotes,  but  a
        double  quote  inside  the  parentheses  is not treated specially.  All
-       tokens in the expression undergo parameter expansion, string expansion,
-       command  substitution, and quote removal.  Arithmetic expansions may be
+       tokens in the expression undergo parameter and variable expansion, com-
+       mand  substitution,  and  quote  removal.  The result is treated as the
+       arithmetic expression to be evaluated.  Arithmetic  expansions  may  be
        nested.
 
-       The evaluation is performed according to the rules listed  below  under
+       The  evaluation  is performed according to the rules listed below under
        A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.  If _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is invalid, b\bba\bas\bsh\bh prints a message
        indicating failure and no substitution occurs.
 
    P\bPr\bro\boc\bce\bes\bss\bs S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
-       _\bP_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn is supported on systems that support  named  pipes
-       (_\bF_\bI_\bF_\bO_\bs)  or the /\b/d\bde\bev\bv/\b/f\bfd\bd method of naming open files.  It takes the form
-       of <\b<(\b(_\bl_\bi_\bs_\bt)\b) or >\b>(\b(_\bl_\bi_\bs_\bt)\b).  The process _\bl_\bi_\bs_\bt is run with its input or  out-
-       put connected to a _\bF_\bI_\bF_\bO or some file in /\b/d\bde\bev\bv/\b/f\bfd\bd.  The name of this file
-       is passed as an argument to the current command as the  result  of  the
-       expansion.   If the >\b>(\b(_\bl_\bi_\bs_\bt)\b) form is used, writing to the file will pro-
-       vide input for _\bl_\bi_\bs_\bt.  If the <\b<(\b(_\bl_\bi_\bs_\bt)\b) form is used, the file  passed  as
-       an argument should be read to obtain the output of _\bl_\bi_\bs_\bt.
+       _\bP_\br_\bo_\bc_\be_\bs_\bs  _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn allows a process's input or output to be referred
+       to using a filename.  It takes the form of  <\b<(\b(_\bl_\bi_\bs_\bt)\b)  or  >\b>(\b(_\bl_\bi_\bs_\bt)\b).   The
+       process  _\bl_\bi_\bs_\bt is run asynchronously, and its input or output appears as
+       a filename.  This filename is passed as an argument to the current com-
+       mand  as  the  result  of  the expansion.  If the >\b>(\b(_\bl_\bi_\bs_\bt)\b) form is used,
+       writing to the file will provide input for _\bl_\bi_\bs_\bt.  If the  <\b<(\b(_\bl_\bi_\bs_\bt)\b)  form
+       is  used,  the  file passed as an argument should be read to obtain the
+       output of _\bl_\bi_\bs_\bt.  Process substitution is supported on systems that sup-
+       port named pipes (_\bF_\bI_\bF_\bO_\bs) or the /\b/d\bde\bev\bv/\b/f\bfd\bd method of naming open files.
 
        When  available,  process substitution is performed simultaneously with
        parameter and variable expansion, command substitution, and  arithmetic
@@ -1592,24 +1829,28 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        for _\bw_\bo_\br_\bd _\bs_\bp_\bl_\bi_\bt_\bt_\bi_\bn_\bg.
 
        The  shell  treats each character of I\bIF\bFS\bS as a delimiter, and splits the
-       results of the other expansions into words on these characters.  If I\bIF\bFS\bS
-       is  unset,  or its value is exactly <\b<s\bsp\bpa\bac\bce\be>\b><\b<t\bta\bab\bb>\b><\b<n\bne\bew\bwl\bli\bin\bne\be>\b>, the default,
-       then sequences of <\b<s\bsp\bpa\bac\bce\be>\b>, <\b<t\bta\bab\bb>\b>, and <\b<n\bne\bew\bwl\bli\bin\bne\be>\b> at  the  beginning  and
-       end  of  the  results  of  the previous expansions are ignored, and any
-       sequence of I\bIF\bFS\bS characters not  at  the  beginning  or  end  serves  to
-       delimit  words.   If  I\bIF\bFS\bS  has  a  value  other  than the default, then
-       sequences of the whitespace characters s\bsp\bpa\bac\bce\be and t\bta\bab\bb are ignored at the
-       beginning  and  end of the word, as long as the whitespace character is
-       in the value of I\bIF\bFS\bS (an I\bIF\bFS\bS whitespace character).   Any  character  in
-       I\bIF\bFS\bS  that is not I\bIF\bFS\bS whitespace, along with any adjacent I\bIF\bFS\bS whitespace
-       characters, delimits a field.  A sequence of I\bIF\bFS\bS whitespace  characters
-       is  also  treated as a delimiter.  If the value of I\bIF\bFS\bS is null, no word
-       splitting occurs.
-
-       Explicit null arguments ("\b""\b" or '\b''\b')  are  retained.   Unquoted  implicit
-       null arguments, resulting from the expansion of parameters that have no
-       values, are removed.  If a parameter with no value is  expanded  within
-       double quotes, a null argument results and is retained.
+       results of the other expansions into words using  these  characters  as
+       field   terminators.   If  I\bIF\bFS\bS  is  unset,  or  its  value  is  exactly
+       <\b<s\bsp\bpa\bac\bce\be>\b><\b<t\bta\bab\bb>\b><\b<n\bne\bew\bwl\bli\bin\bne\be>\b>, the default, then sequences of  <\b<s\bsp\bpa\bac\bce\be>\b>,  <\b<t\bta\bab\bb>\b>,
+       and  <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>  at the beginning and end of the results of the previous
+       expansions are ignored, and any sequence of I\bIF\bFS\bS characters not  at  the
+       beginning  or  end  serves  to delimit words.  If I\bIF\bFS\bS has a value other
+       than the default, then sequences of the  whitespace  characters  s\bsp\bpa\bac\bce\be,
+       t\bta\bab\bb,  and  n\bne\bew\bwl\bli\bin\bne\be are ignored at the beginning and end of the word, as
+       long as the whitespace character is in the value of I\bIF\bFS\bS (an I\bIF\bFS\bS  white-
+       space  character).   Any  character  in I\bIF\bFS\bS that is not I\bIF\bFS\bS whitespace,
+       along with any adjacent I\bIF\bFS\bS whitespace characters, delimits a field.  A
+       sequence  of  I\bIF\bFS\bS whitespace characters is also treated as a delimiter.
+       If the value of I\bIF\bFS\bS is null, no word splitting occurs.
+
+       Explicit null arguments ("\b""\b" or '\b''\b') are retained and passed to  commands
+       as empty strings.  Unquoted implicit null arguments, resulting from the
+       expansion of parameters that have no values, are removed.  If a parame-
+       ter  with  no  value  is expanded within double quotes, a null argument
+       results and is retained and passed to a command  as  an  empty  string.
+       When  a  quoted null argument appears as part of a word whose expansion
+       is non-null, the null argument is removed.   That  is,  the  word  -d''
+       becomes -d after word splitting and null argument removal.
 
        Note that if no expansion occurs, no splitting is performed.
 
@@ -1617,81 +1858,90 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        After  word  splitting,  unless  the -\b-f\bf option has been set, b\bba\bas\bsh\bh scans
        each word for the characters *\b*, ?\b?, and [\b[.  If one of  these  characters
        appears,  then  the word is regarded as a _\bp_\ba_\bt_\bt_\be_\br_\bn, and replaced with an
-       alphabetically sorted list of file names matching the pattern.   If  no
-       matching  file  names  are  found, and the shell option n\bnu\bul\bll\blg\bgl\blo\bob\bb is not
-       enabled, the word is left unchanged.  If the n\bnu\bul\bll\blg\bgl\blo\bob\bb  option  is  set,
-       and  no  matches are found, the word is removed.  If the f\bfa\bai\bil\blg\bgl\blo\bob\bb shell
-       option is set, and no matches are found, an error  message  is  printed
-       and  the  command  is  not executed.  If the shell option n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb is
-       enabled, the match is performed without regard to the  case  of  alpha-
-       betic  characters.   When a pattern is used for pathname expansion, the
-       character `\b``\b`.\b.'\b''\b'  at the start of a  name  or  immediately  following  a
-       slash  must  be  matched explicitly, unless the shell option d\bdo\bot\btg\bgl\blo\bob\bb is
-       set.  When matching a pathname, the  slash  character  must  always  be
-       matched  explicitly.   In  other  cases,  the  `\b``\b`.\b.'\b''\b'   character is not
-       treated specially.  See the description  of  s\bsh\bho\bop\bpt\bt  below  under  S\bSH\bHE\bEL\bLL\bL
-       B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  for a description of the n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb, n\bnu\bul\bll\blg\bgl\blo\bob\bb, f\bfa\bai\bil\bl-\b-
-       g\bgl\blo\bob\bb, and d\bdo\bot\btg\bgl\blo\bob\bb shell options.
-
-       The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable may be used to restrict the set  of  file
-       names  matching  a  _\bp_\ba_\bt_\bt_\be_\br_\bn.   If G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set, each matching file
-       name that also matches one of the patterns  in  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  is  removed
-       from the list of matches.  The file names `\b``\b`.\b.'\b''\b'  and `\b``\b`.\b..\b.'\b''\b'  are always
-       ignored when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set and not null.  However, setting  G\bGL\bLO\bOB\bBI\bIG\bG-\b-
-       N\bNO\bOR\bRE\bE  to  a non-null value has the effect of enabling the d\bdo\bot\btg\bgl\blo\bob\bb shell
-       option, so all other file names beginning with a `\b``\b`.\b.'\b''\b'  will match.  To
-       get  the  old  behavior  of ignoring file names beginning with a `\b``\b`.\b.'\b''\b',
-       make `\b``\b`.\b.*\b*'\b''\b'  one of the patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE.  The d\bdo\bot\btg\bgl\blo\bob\bb option  is
-       disabled when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is unset.
+       alphabetically sorted list of filenames matching the pattern (see  P\bPa\bat\bt-\b-
+       t\bte\ber\brn\bn  M\bMa\bat\btc\bch\bhi\bin\bng\bg  below).   If  no  matching filenames are found, and the
+       shell option n\bnu\bul\bll\blg\bgl\blo\bob\bb is not enabled, the word is left  unchanged.   If
+       the  n\bnu\bul\bll\blg\bgl\blo\bob\bb  option  is  set,  and  no matches are found, the word is
+       removed.  If the f\bfa\bai\bil\blg\bgl\blo\bob\bb shell option  is  set,  and  no  matches  are
+       found, an error message is printed and the command is not executed.  If
+       the shell option n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb is enabled, the match is performed  without
+       regard  to  the  case of alphabetic characters.  When a pattern is used
+       for pathname expansion, the character `\b``\b`.\b.'\b''\b'  at the start of a name  or
+       immediately  following  a  slash must be matched explicitly, unless the
+       shell option d\bdo\bot\btg\bgl\blo\bob\bb is set.  When matching a pathname, the slash char-
+       acter  must  always  be  matched explicitly.  In other cases, the `\b``\b`.\b.'\b''\b'
+       character is not treated specially.  See the description of s\bsh\bho\bop\bpt\bt below
+       under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS for a description of the n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb, n\bnu\bul\bll\bl-\b-
+       g\bgl\blo\bob\bb, f\bfa\bai\bil\blg\bgl\blo\bob\bb, and d\bdo\bot\btg\bgl\blo\bob\bb shell options.
+
+       The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable may be used to restrict the set of  file-
+       names matching a _\bp_\ba_\bt_\bt_\be_\br_\bn.  If G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set, each matching filename
+       that also matches one of the patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is removed from the
+       list of matches.  If the n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb option is set, the matching against
+       the patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is performed without regard  to  case.   The
+       filenames  `\b``\b`.\b.'\b''\b'  and `\b``\b`.\b..\b.'\b''\b'  are always ignored when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set
+       and not null.  However, setting G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE to a non-null value has  the
+       effect  of  enabling  the  d\bdo\bot\btg\bgl\blo\bob\bb shell option, so all other filenames
+       beginning with a `\b``\b`.\b.'\b''\b'  will match.  To get the old behavior of  ignor-
+       ing  filenames beginning with a `\b``\b`.\b.'\b''\b', make `\b``\b`.\b.*\b*'\b''\b'  one of the patterns
+       in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE.  The d\bdo\bot\btg\bgl\blo\bob\bb  option  is  disabled  when  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  is
+       unset.   The  pattern  matching honors the setting of the e\bex\bxt\btg\bgl\blo\bob\bb shell
+       option.
 
        P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg
 
        Any character that appears in a pattern, other than the special pattern
-       characters described below, matches itself.  The NUL character may  not
-       occur  in  a pattern.  A backslash escapes the following character; the
-       escaping backslash is discarded when  matching.   The  special  pattern
+       characters  described below, matches itself.  The NUL character may not
+       occur in a pattern.  A backslash escapes the following  character;  the
+       escaping  backslash  is  discarded  when matching.  The special pattern
        characters must be quoted if they are to be matched literally.
 
        The special pattern characters have the following meanings:
 
-       *\b*      Matches  any  string, including the null string.  When the g\bgl\blo\bob\bb-\b-
-              s\bst\bta\bar\br shell option is enabled, and *\b* is used in a filename expan-
-              sion  context,  two  adjacent  *\b*s  used as a single pattern will
-              match all files and zero or more directories and subdirectories.
-              If  followed by a /\b/, two adjacent *\b*s will match only directories
-              and subdirectories.
-       ?\b?      Matches any single character.
-       [\b[.\b..\b..\b.]\b]  Matches any one of the enclosed characters.  A pair  of  charac-
-              ters separated by a hyphen denotes a _\br_\ba_\bn_\bg_\be _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn; any char-
-              acter that sorts between those two characters, inclusive,  using
-              the  current  locale's  collating sequence and character set, is
-              matched.  If the first character following the [\b[ is a !\b!  or a  ^\b^
-              then  any  character not enclosed is matched.  The sorting order
-              of characters in range expressions is determined by the  current
-              locale  and  the value of the L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE shell variable, if set.
-              A -\b- may be matched by including it as the first or last  charac-
-              ter in the set.  A ]\b] may be matched by including it as the first
-              character in the set.
-
-              Within [\b[ and ]\b], _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br _\bc_\bl_\ba_\bs_\bs_\be_\bs can  be  specified  using  the
-              syntax  [\b[:\b:_\bc_\bl_\ba_\bs_\bs:\b:]\b],  where  _\bc_\bl_\ba_\bs_\bs is one of the following classes
-              defined in the POSIX standard:
-              a\bal\bln\bnu\bum\bm a\bal\blp\bph\bha\ba a\bas\bsc\bci\bii\bi b\bbl\bla\ban\bnk\bk c\bcn\bnt\btr\brl\bl  d\bdi\big\bgi\bit\bt  g\bgr\bra\bap\bph\bh  l\blo\bow\bwe\ber\br  p\bpr\bri\bin\bnt\bt  p\bpu\bun\bnc\bct\bt
-              s\bsp\bpa\bac\bce\be u\bup\bpp\bpe\ber\br w\bwo\bor\brd\bd x\bxd\bdi\big\bgi\bit\bt
-              A character class matches any character belonging to that class.
-              The w\bwo\bor\brd\bd character class matches letters, digits, and the  char-
-              acter _.
-
-              Within  [\b[ and ]\b], an _\be_\bq_\bu_\bi_\bv_\ba_\bl_\be_\bn_\bc_\be _\bc_\bl_\ba_\bs_\bs can be specified using the
-              syntax [\b[=\b=_\bc=\b=]\b], which matches all characters with the same  colla-
-              tion  weight (as defined by the current locale) as the character
-              _\bc.
-
-              Within [\b[ and ]\b], the syntax [\b[.\b._\bs_\by_\bm_\bb_\bo_\bl.\b.]\b] matches the collating sym-
-              bol _\bs_\by_\bm_\bb_\bo_\bl.
+              *\b*      Matches any string, including the null string.  When  the
+                     g\bgl\blo\bob\bbs\bst\bta\bar\br  shell  option  is  enabled,  and *\b* is used in a
+                     pathname expansion context, two adjacent  *\b*s  used  as  a
+                     single  pattern  will  match  all  files and zero or more
+                     directories and subdirectories.  If followed by a /\b/,  two
+                     adjacent  *\b*s  will match only directories and subdirecto-
+                     ries.
+              ?\b?      Matches any single character.
+              [\b[.\b..\b..\b.]\b]  Matches any one of the enclosed characters.   A  pair  of
+                     characters  separated by a hyphen denotes a _\br_\ba_\bn_\bg_\be _\be_\bx_\bp_\br_\be_\bs_\b-
+                     _\bs_\bi_\bo_\bn; any character that falls between those two  charac-
+                     ters,  inclusive,  using  the  current locale's collating
+                     sequence and character set, is  matched.   If  the  first
+                     character following the [\b[ is a !\b!  or a ^\b^ then any charac-
+                     ter not enclosed is matched.  The sorting order of  char-
+                     acters  in range expressions is determined by the current
+                     locale and the values of the L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE or  L\bLC\bC_\b_A\bAL\bLL\bL  shell
+                     variables, if set.  To obtain the traditional interpreta-
+                     tion of range expressions, where [\b[a\ba-\b-d\bd]\b] is  equivalent  to
+                     [\b[a\bab\bbc\bcd\bd]\b],  set  value of the L\bLC\bC_\b_A\bAL\bLL\bL shell variable to C\bC, or
+                     enable the g\bgl\blo\bob\bba\bas\bsc\bci\bii\bir\bra\ban\bng\bge\bes\bs shell  option.   A  -\b-  may  be
+                     matched by including it as the first or last character in
+                     the set.  A ]\b] may be matched by including it as the first
+                     character in the set.
+
+                     Within  [\b[ and ]\b], _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br _\bc_\bl_\ba_\bs_\bs_\be_\bs can be specified using
+                     the syntax [\b[:\b:_\bc_\bl_\ba_\bs_\bs:\b:]\b], where _\bc_\bl_\ba_\bs_\bs is one of the following
+                     classes defined in the POSIX standard:
+                     a\bal\bln\bnu\bum\bm  a\bal\blp\bph\bha\ba  a\bas\bsc\bci\bii\bi  b\bbl\bla\ban\bnk\bk  c\bcn\bnt\btr\brl\bl d\bdi\big\bgi\bit\bt g\bgr\bra\bap\bph\bh l\blo\bow\bwe\ber\br p\bpr\bri\bin\bnt\bt
+                     p\bpu\bun\bnc\bct\bt s\bsp\bpa\bac\bce\be u\bup\bpp\bpe\ber\br w\bwo\bor\brd\bd x\bxd\bdi\big\bgi\bit\bt
+                     A character class matches any character belonging to that
+                     class.  The w\bwo\bor\brd\bd character class matches letters, digits,
+                     and the character _.
+
+                     Within [\b[ and ]\b], an _\be_\bq_\bu_\bi_\bv_\ba_\bl_\be_\bn_\bc_\be  _\bc_\bl_\ba_\bs_\bs  can  be  specified
+                     using the syntax [\b[=\b=_\bc=\b=]\b], which matches all characters with
+                     the same collation weight  (as  defined  by  the  current
+                     locale) as the character _\bc.
+
+                     Within [\b[ and ]\b], the syntax [\b[.\b._\bs_\by_\bm_\bb_\bo_\bl.\b.]\b] matches the collat-
+                     ing symbol _\bs_\by_\bm_\bb_\bo_\bl.
 
        If the e\bex\bxt\btg\bgl\blo\bob\bb shell option is enabled using the s\bsh\bho\bop\bpt\bt builtin, several
-       extended pattern matching operators are recognized.  In  the  following
+       extended  pattern  matching operators are recognized.  In the following
        description, a _\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt is a list of one or more patterns separated
        by a |\b|.  Composite patterns may be formed using one or more of the fol-
        lowing sub-patterns:
@@ -1709,48 +1959,58 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
 
    Q\bQu\buo\bot\bte\be R\bRe\bem\bmo\bov\bva\bal\bl
        After the preceding expansions, all unquoted occurrences of the charac-
-       ters \\b\, '\b', and "\b" that did not result from one of the  above  expansions
+       ters  \\b\,  '\b', and "\b" that did not result from one of the above expansions
        are removed.
 
 R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
-       Before  a  command  is executed, its input and output may be _\br_\be_\bd_\bi_\br_\be_\bc_\bt_\be_\bd
-       using a special notation interpreted by  the  shell.   Redirection  may
-       also  be  used  to open and close files for the current shell execution
-       environment.  The following redirection operators may precede or appear
-       anywhere within a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or may follow a _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  Redirections
-       are processed in the order they appear, from left to right.
-
-       In the following descriptions, if the file descriptor number  is  omit-
-       ted,  and the first character of the redirection operator is <\b<, the re-
-       direction refers to the standard input (file  descriptor  0).   If  the
-       first  character  of  the  redirection  operator  is >\b>, the redirection
+       Before a command is executed, its input and output  may  be  _\br_\be_\bd_\bi_\br_\be_\bc_\bt_\be_\bd
+       using  a special notation interpreted by the shell.  Redirection allows
+       commands' file handles to be duplicated, opened, closed, made to  refer
+       to different files, and can change the files the command reads from and
+       writes to.  Redirection may also be used to modify file handles in  the
+       current  shell execution environment.  The following redirection opera-
+       tors may precede or appear anywhere within a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or may fol-
+       low  a  _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   Redirections are processed in the order they appear,
+       from left to right.
+
+       Each redirection that may be preceded by a file descriptor  number  may
+       instead be preceded by a word of the form {_\bv_\ba_\br_\bn_\ba_\bm_\be}.  In this case, for
+       each redirection operator except >&- and <&-, the shell will allocate a
+       file  descriptor  greater than or equal to 10 and assign it to _\bv_\ba_\br_\bn_\ba_\bm_\be.
+       If >&- or <&- is preceded by {_\bv_\ba_\br_\bn_\ba_\bm_\be}, the value  of  _\bv_\ba_\br_\bn_\ba_\bm_\be  defines
+       the file descriptor to close.
+
+       In  the  following descriptions, if the file descriptor number is omit-
+       ted, and the first character of the redirection operator is <\b<, the  re-
+       direction  refers  to  the  standard input (file descriptor 0).  If the
+       first character of the  redirection  operator  is  >\b>,  the  redirection
        refers to the standard output (file descriptor 1).
 
-       The word following the redirection operator in the  following  descrip-
-       tions,  unless  otherwise noted, is subjected to brace expansion, tilde
-       expansion, parameter expansion, command substitution, arithmetic expan-
-       sion,  quote  removal,  pathname  expansion, and word splitting.  If it
-       expands to more than one word, b\bba\bas\bsh\bh reports an error.
+       The  word  following the redirection operator in the following descrip-
+       tions, unless otherwise noted, is subjected to brace  expansion,  tilde
+       expansion,  parameter  and  variable  expansion,  command substitution,
+       arithmetic expansion,  quote  removal,  pathname  expansion,  and  word
+       splitting.  If it expands to more than one word, b\bba\bas\bsh\bh reports an error.
 
-       Note that the order of redirections is significant.  For  example,  the
+       Note  that  the order of redirections is significant.  For example, the
        command
 
               ls >\b> dirlist 2>\b>&\b&1
 
-       directs  both  standard  output and standard error to the file _\bd_\bi_\br_\bl_\bi_\bs_\bt,
+       directs both standard output and standard error to  the  file  _\bd_\bi_\br_\bl_\bi_\bs_\bt,
        while the command
 
               ls 2>\b>&\b&1 >\b> dirlist
 
-       directs only the standard output to file _\bd_\bi_\br_\bl_\bi_\bs_\bt, because the  standard
-       error  was duplicated from the standard output before the standard out-
+       directs  only the standard output to file _\bd_\bi_\br_\bl_\bi_\bs_\bt, because the standard
+       error was duplicated from the standard output before the standard  out-
        put was redirected to _\bd_\bi_\br_\bl_\bi_\bs_\bt.
 
        B\bBa\bas\bsh\bh handles several filenames specially when they are used in redirec-
        tions, as described in the following table:
 
               /\b/d\bde\bev\bv/\b/f\bfd\bd/\b/_\bf_\bd
-                     If  _\bf_\bd  is  a valid integer, file descriptor _\bf_\bd is dupli-
+                     If _\bf_\bd is a valid integer, file descriptor  _\bf_\bd  is  dupli-
                      cated.
               /\b/d\bde\bev\bv/\b/s\bst\btd\bdi\bin\bn
                      File descriptor 0 is duplicated.
@@ -1760,22 +2020,22 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
                      File descriptor 2 is duplicated.
               /\b/d\bde\bev\bv/\b/t\btc\bcp\bp/\b/_\bh_\bo_\bs_\bt/\b/_\bp_\bo_\br_\bt
                      If _\bh_\bo_\bs_\bt is a valid hostname or Internet address, and _\bp_\bo_\br_\bt
-                     is  an integer port number or service name, b\bba\bas\bsh\bh attempts
-                     to open a TCP connection to the corresponding socket.
+                     is an integer port number or service name, b\bba\bas\bsh\b attempts
+                     to open the corresponding TCP socket.
               /\b/d\bde\bev\bv/\b/u\bud\bdp\bp/\b/_\bh_\bo_\bs_\bt/\b/_\bp_\bo_\br_\bt
                      If _\bh_\bo_\bs_\bt is a valid hostname or Internet address, and _\bp_\bo_\br_\bt
-                     is  an integer port number or service name, b\bba\bas\bsh\bh attempts
-                     to open a UDP connection to the corresponding socket.
+                     is an integer port number or service name, b\bba\bas\bsh\b attempts
+                     to open the corresponding UDP socket.
 
        A failure to open or create a file causes the redirection to fail.
 
-       Redirections using file descriptors greater than 9 should be used  with
-       care,  as they may conflict with file descriptors the shell uses inter-
+       Redirections  using file descriptors greater than 9 should be used with
+       care, as they may conflict with file descriptors the shell uses  inter-
        nally.
 
    R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg I\bIn\bnp\bpu\but\bt
        Redirection of input causes the file whose name results from the expan-
-       sion  of  _\bw_\bo_\br_\bd  to  be  opened for reading on file descriptor _\bn, or the
+       sion of _\bw_\bo_\br_\bd to be opened for reading on  file  descriptor  _\bn,  or  the
        standard input (file descriptor 0) if _\bn is not specified.
 
        The general format for redirecting input is:
@@ -1783,40 +2043,39 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
               [_\bn]<\b<_\bw_\bo_\br_\bd
 
    R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg O\bOu\but\btp\bpu\but\bt
-       Redirection of output causes the  file  whose  name  results  from  the
+       Redirection  of  output  causes  the  file  whose name results from the
        expansion of _\bw_\bo_\br_\bd to be opened for writing on file descriptor _\bn, or the
        standard output (file descriptor 1) if _\bn is not specified.  If the file
-       does  not exist it is created; if it does exist it is truncated to zero
+       does not exist it is created; if it does exist it is truncated to  zero
        size.
 
        The general format for redirecting output is:
 
               [_\bn]>\b>_\bw_\bo_\br_\bd
 
-       If the redirection operator is >\b>, and the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to  the  s\bse\bet\bt
-       builtin  has  been enabled, the redirection will fail if the file whose
-       name results from the expansion of _\bw_\bo_\br_\bd exists and is a  regular  file.
+       If  the  redirection operator is >\b>, and the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to the s\bse\bet\bt
+       builtin has been enabled, the redirection will fail if the  file  whose
+       name  results  from the expansion of _\bw_\bo_\br_\bd exists and is a regular file.
        If the redirection operator is >\b>|\b|, or the redirection operator is >\b> and
        the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to the s\bse\bet\bt builtin command is not enabled, the re-
        direction is attempted even if the file named by _\bw_\bo_\br_\bd exists.
 
    A\bAp\bpp\bpe\ben\bnd\bdi\bin\bng\bg R\bRe\bed\bdi\bir\bre\bec\bct\bte\bed\bd O\bOu\but\btp\bpu\but\bt
-       Redirection  of  output  in  this  fashion  causes  the file whose name
-       results from the expansion of _\bw_\bo_\br_\bd to be opened for appending  on  file
-       descriptor  _\bn,  or  the standard output (file descriptor 1) if _\bn is not
+       Redirection of output in  this  fashion  causes  the  file  whose  name
+       results  from  the expansion of _\bw_\bo_\br_\bd to be opened for appending on file
+       descriptor _\bn, or the standard output (file descriptor 1) if  _\bn  is  not
        specified.  If the file does not exist it is created.
 
        The general format for appending output is:
 
               [_\bn]>\b>>\b>_\bw_\bo_\br_\bd
 
-
    R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg S\bSt\bta\ban\bnd\bda\bar\brd\bd O\bOu\but\btp\bpu\but\bt a\ban\bnd\bd S\bSt\bta\ban\bnd\bda\bar\brd\bd E\bEr\brr\bro\bor\br
-       This construct allows both the standard output (file descriptor 1)  and
-       the  standard  error output (file descriptor 2) to be redirected to the
+       This  construct allows both the standard output (file descriptor 1) and
+       the standard error output (file descriptor 2) to be redirected  to  the
        file whose name is the expansion of _\bw_\bo_\br_\bd.
 
-       There are two formats for  redirecting  standard  output  and  standard
+       There  are  two  formats  for  redirecting standard output and standard
        error:
 
               &\b&>\b>_\bw_\bo_\br_\bd
@@ -1828,10 +2087,13 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
 
               >\b>_\bw_\bo_\br_\bd 2>\b>&\b&1
 
+       When  using  the second form, _\bw_\bo_\br_\bd may not expand to a number or -\b-.  If
+       it does,  other  redirection  operators  apply  (see  D\bDu\bup\bpl\bli\bic\bca\bat\bti\bin\bng\bg  F\bFi\bil\ble\be
+       D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs below) for compatibility reasons.
 
    A\bAp\bpp\bpe\ben\bnd\bdi\bin\bng\bg S\bSt\bta\ban\bnd\bda\bar\brd\bd O\bOu\but\btp\bpu\but\bt a\ban\bnd\bd S\bSt\bta\ban\bnd\bda\bar\brd\bd E\bEr\brr\bro\bor\br
-       This construct allows both the standard output (file descriptor 1)  and
-       the  standard  error  output  (file descriptor 2) to be appended to the
+       This  construct allows both the standard output (file descriptor 1) and
+       the standard error output (file descriptor 2) to  be  appended  to  the
        file whose name is the expansion of _\bw_\bo_\br_\bd.
 
        The format for appending standard output and standard error is:
@@ -1842,26 +2104,29 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
 
               >\b>>\b>_\bw_\bo_\br_\bd 2>\b>&\b&1
 
+       (see D\bDu\bup\bpl\bli\bic\bca\bat\bti\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs below).
+
    H\bHe\ber\bre\be D\bDo\boc\bcu\bum\bme\ben\bnt\bts\bs
-       This type of redirection instructs the shell to  read  input  from  the
+       This  type  of  redirection  instructs the shell to read input from the
        current source until a line containing only _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br (with no trailing
-       blanks) is seen.  All of the lines read up to that point are then  used
-       as the standard input for a command.
+       blanks)  is seen.  All of the lines read up to that point are then used
+       as the standard input (or file descriptor _\bn if _\bn is  specified)  for  a
+       command.
 
        The format of here-documents is:
 
-              <\b<<\b<[-\b-]_\bw_\bo_\br_\bd
+              [_\bn]<\b<<\b<[-\b-]_\bw_\bo_\br_\bd
                       _\bh_\be_\br_\be_\b-_\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt
               _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br
 
-       No  parameter expansion, command substitution, arithmetic expansion, or
-       pathname expansion is performed on _\bw_\bo_\br_\bd.  If any characters in _\bw_\bo_\br_\bd are
-       quoted,  the  _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br is the result of quote removal on _\bw_\bo_\br_\bd, and the
-       lines in the here-document are not expanded.  If _\bw_\bo_\br_\bd is unquoted,  all
-       lines  of  the here-document are subjected to parameter expansion, com-
-       mand substitution, and arithmetic expansion.  In the latter  case,  the
-       character  sequence  \\b\<\b<n\bne\bew\bwl\bli\bin\bne\be>\b> is ignored, and \\b\ must be used to quote
-       the characters \\b\, $\b$, and `\b`.
+       No  parameter  and variable expansion, command substitution, arithmetic
+       expansion, or pathname expansion is performed on _\bw_\bo_\br_\bd.  If any  charac-
+       ters  in  _\bw_\bo_\br_\bd are quoted, the _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br is the result of quote removal
+       on _\bw_\bo_\br_\bd, and the lines in the here-document are not expanded.  If  _\bw_\bo_\br_\bd
+       is  unquoted, all lines of the here-document are subjected to parameter
+       expansion, command substitution, and arithmetic expansion, the  charac-
+       ter  sequence  \\b\<\b<n\bne\bew\bwl\bli\bin\bne\be>\b>  is  ignored, and \\b\ must be used to quote the
+       characters \\b\, $\b$, and `\b`.
 
        If the redirection operator is <\b<<\b<-\b-, then all leading tab characters are
        stripped  from  input  lines  and  the line containing _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br.  This
@@ -1871,9 +2136,14 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
    H\bHe\ber\bre\be S\bSt\btr\bri\bin\bng\bgs\bs
        A variant of here documents, the format is:
 
-              <\b<<\b<<\b<_\bw_\bo_\br_\bd
+              [_\bn]<\b<<\b<<\b<_\bw_\bo_\br_\bd
 
-       The _\bw_\bo_\br_\bd is expanded and supplied to the command on its standard input.
+       The  _\bw_\bo_\br_\bd  undergoes  brace  expansion,  tilde expansion, parameter and
+       variable expansion, command  substitution,  arithmetic  expansion,  and
+       quote  removal.   Pathname  expansion  and  word splitting are not per-
+       formed.  The result is supplied as a  single  string,  with  a  newline
+       appended, to the command on its standard input (or file descriptor _\bn if
+       _\bn is specified).
 
    D\bDu\bup\bpl\bli\bic\bca\bat\bti\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs
        The redirection operator
@@ -1894,16 +2164,17 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
        is  used  similarly  to duplicate output file descriptors.  If _\bn is not
        specified, the standard output (file descriptor 1)  is  used.   If  the
        digits  in _\bw_\bo_\br_\bd do not specify a file descriptor open for output, a re-
-       direction error occurs.  As a special case, if _\bn is omitted,  and  _\bw_\bo_\br_\bd
-       does not expand to one or more digits, the standard output and standard
-       error are redirected as described previously.
+       direction error occurs.  If _\bw_\bo_\br_\bd evaluates to -\b-, file descriptor  _\bn  is
+       closed.   As  a special case, if _\bn is omitted, and _\bw_\bo_\br_\bd does not expand
+       to one or more digits or -\b-, the standard output and standard error  are
+       redirected as described previously.
 
    M\bMo\bov\bvi\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs
        The redirection operator
 
               [_\bn]<\b<&\b&_\bd_\bi_\bg_\bi_\bt-\b-
 
-       moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or  the  standard
+       moves  the  file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
        input (file descriptor 0) if _\bn is not specified.  _\bd_\bi_\bg_\bi_\bt is closed after
        being duplicated to _\bn.
 
@@ -1911,7 +2182,7 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
 
               [_\bn]>\b>&\b&_\bd_\bi_\bg_\bi_\bt-\b-
 
-       moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or  the  standard
+       moves  the  file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
        output (file descriptor 1) if _\bn is not specified.
 
    O\bOp\bpe\ben\bni\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs f\bfo\bor\br R\bRe\bea\bad\bdi\bin\bng\bg a\ban\bnd\bd W\bWr\bri\bit\bti\bin\bng\bg
@@ -1919,79 +2190,86 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
 
               [_\bn]<\b<>\b>_\bw_\bo_\br_\bd
 
-       causes  the  file  whose name is the expansion of _\bw_\bo_\br_\bd to be opened for
-       both reading and writing on file descriptor _\bn, or on file descriptor  0
+       causes the file whose name is the expansion of _\bw_\bo_\br_\bd to  be  opened  for
+       both  reading and writing on file descriptor _\bn, or on file descriptor 0
        if _\bn is not specified.  If the file does not exist, it is created.
 
 A\bAL\bLI\bIA\bAS\bSE\bES\bS
-       _\bA_\bl_\bi_\ba_\bs_\be_\b allow a string to be substituted for a word when it is used as
-       the first word of a simple command.  The  shell  maintains  a  list  of
-       aliases  that  may  be set and unset with the a\bal\bli\bia\bas\bs and u\bun\bna\bal\bli\bia\bas\bs builtin
-       commands (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  The first  word  of  each
-       simple  command, if unquoted, is checked to see if it has an alias.  If
-       so, that word is replaced by the text of the alias.  The characters  /\b/,
-       $\b$,  `\b`,  and =\b= and any of the shell _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs or quoting characters
+       _\bA_\bl_\bi_\ba_\bs_\be_\ballow a string to be substituted for a word when it is used  as
+       the  first  word  of  a  simple command.  The shell maintains a list of
+       aliases that may be set and unset with the a\bal\bli\bia\bas\bs  and  u\bun\bna\bal\bli\bia\bas\b builtin
+       commands  (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  The first word of each
+       simple command, if unquoted, is checked to see if it has an alias.   If
+       so,  that word is replaced by the text of the alias.  The characters /\b/,
+       $\b$, `\b`, and =\b= and any of the shell _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs or  quoting  characters
        listed above may not appear in an alias name.  The replacement text may
-       contain  any  valid  shell  input, including shell metacharacters.  The
-       first word of the replacement text is tested for aliases,  but  a  word
-       that  is  identical to an alias being expanded is not expanded a second
-       time.  This means that one may alias l\bls\bs to l\bls\bs  -\b-F\bF,  for  instance,  and
-       b\bba\bas\bsh\b does  not try to recursively expand the replacement text.  If the
-       last character of the alias value is a _\bb_\bl_\ba_\bn_\bk,  then  the  next  command
+       contain any valid shell input,  including  shell  metacharacters.   The
+       first  word  of  the replacement text is tested for aliases, but a word
+       that is identical to an alias being expanded is not expanded  a  second
+       time.   This  means  that  one may alias l\bls\bs to l\bls\bs -\b-F\bF, for instance, and
+       b\bba\bas\bsh\bdoes not try to recursively expand the replacement text.   If  the
+       last  character  of  the  alias value is a _\bb_\bl_\ba_\bn_\bk, then the next command
        word following the alias is also checked for alias expansion.
 
        Aliases are created and listed with the a\bal\bli\bia\bas\bs command, and removed with
        the u\bun\bna\bal\bli\bia\bas\bs command.
 
-       There is no mechanism for using arguments in the replacement text.   If
-       arguments  are  needed,  a shell function should be used (see F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
+       There  is no mechanism for using arguments in the replacement text.  If
+       arguments are needed, a shell function should be  used  (see  F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
        below).
 
-       Aliases are not expanded when the shell is not interactive, unless  the
-       e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\b shell option is set using s\bsh\bho\bop\bpt\bt (see the description of
+       Aliases  are not expanded when the shell is not interactive, unless the
+       e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bshell option is set using s\bsh\bho\bop\bpt\bt (see the description  of
        s\bsh\bho\bop\bpt\bt under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
 
-       The rules concerning the definition and use  of  aliases  are  somewhat
-       confusing.   B\bBa\bas\bsh\bh  always  reads  at  least  one complete line of input
-       before executing any  of  the  commands  on  that  line.   Aliases  are
-       expanded  when  a command is read, not when it is executed.  Therefore,
-       an alias definition appearing on the same line as another command  does
-       not  take  effect  until  the next line of input is read.  The commands
+       The  rules  concerning  the  definition and use of aliases are somewhat
+       confusing.  B\bBa\bas\bsh\bh always reads at  least  one  complete  line  of  input
+       before  executing  any  of  the  commands  on  that  line.  Aliases are
+       expanded when a command is read, not when it is  executed.   Therefore,
+       an  alias definition appearing on the same line as another command does
+       not take effect until the next line of input  is  read.   The  commands
        following the alias definition on that line are not affected by the new
-       alias.   This  behavior  is  also an issue when functions are executed.
-       Aliases are expanded when a function definition is read, not  when  the
-       function  is  executed,  because a function definition is itself a com-
-       pound command.  As a consequence, aliases defined in a function are not
-       available  until  after  that function is executed.  To be safe, always
-       put alias definitions on a separate line, and do not use a\bal\bli\bia\bas\bs in  com-
-       pound commands.
+       alias.  This behavior is also an issue  when  functions  are  executed.
+       Aliases  are  expanded when a function definition is read, not when the
+       function is executed, because a function definition is  itself  a  com-
+       mand.   As  a consequence, aliases defined in a function are not avail-
+       able until after that function is executed.  To  be  safe,  always  put
+       alias  definitions on a separate line, and do not use a\bal\bli\bia\bas\bs in compound
+       commands.
 
        For almost every purpose, aliases are superseded by shell functions.
 
 F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
-       A  shell  function,  defined  as  described  above under S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR,
-       stores a series of commands for later execution.  When the  name  of  a
-       shell  function  is used as a simple command name, the list of commands
+       A shell function, defined  as  described  above  under  S\bSH\bHE\bEL\bLL\b G\bGR\bRA\bAM\bMM\bMA\bAR\bR,
+       stores  a  series  of commands for later execution.  When the name of a
+       shell function is used as a simple command name, the list  of  commands
        associated with that function name is executed.  Functions are executed
-       in  the  context  of  the  current  shell; no new process is created to
-       interpret them (contrast this with the execution of  a  shell  script).
-       When  a  function is executed, the arguments to the function become the
+       in the context of the current shell;  no  new  process  is  created  to
+       interpret  them  (contrast  this with the execution of a shell script).
+       When a function is executed, the arguments to the function  become  the
        positional parameters during its execution.  The special parameter #\b# is
-       updated  to reflect the change.  Special parameter 0 is unchanged.  The
-       first element of the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE variable is set to the name of the  func-
-       tion  while  the function is executing.  All other aspects of the shell
-       execution environment are identical between a function and  its  caller
-       with the exception that the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps (see the description
-       of the t\btr\bra\bap\bp builtin under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) are not  inher-
-       ited  unless  the  function has been given the t\btr\bra\bac\bce\be attribute (see the
-       description of the d\bde\bec\bcl\bla\bar\bre\be builtin below) or  the  -\b-o\bo  f\bfu\bun\bnc\bct\btr\bra\bac\bce\be  shell
-       option  has  been enabled with the s\bse\bet\bt builtin (in which case all func-
-       tions inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps).
+       updated to reflect the change.  Special parameter 0\b0 is unchanged.   The
+       first  element of the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE variable is set to the name of the func-
+       tion while the function is executing.
+
+       All other aspects of the  shell  execution  environment  are  identical
+       between  a function and its caller with these exceptions: the D\bDE\bEB\bBU\bUG\bG and
+       R\bRE\bET\bTU\bUR\bRN\bN traps (see the description  of  the  t\btr\bra\bap\bp  builtin  under  S\bSH\bHE\bEL\bLL\bL
+       B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) are not inherited unless the function has been
+       given the t\btr\bra\bac\bce\be attribute (see the description of the  d\bde\bec\bcl\bla\bar\bre\be  builtin
+       below)  or  the -\b-o\bo f\bfu\bun\bnc\bct\btr\bra\bac\bce\be shell option has been enabled with the s\bse\bet\bt
+       builtin (in which case all  functions  inherit  the  D\bDE\bEB\bBU\bUG\bG  and  R\bRE\bET\bTU\bUR\bRN\bN
+       traps),  and the E\bER\bRR\bR trap is not inherited unless the -\b-o\bo e\ber\brr\brt\btr\bra\bac\bce\be shell
+       option has been enabled.
 
        Variables local to the function may be declared with the l\blo\boc\bca\bal\bl  builtin
        command.  Ordinarily, variables and their values are shared between the
        function and its caller.
 
+       The F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT variable, if set  to  a  numeric  value  greater  than  0,
+       defines  a  maximum  function nesting level.  Function invocations that
+       exceed the limit cause the entire command to abort.
+
        If the builtin command r\bre\bet\btu\bur\brn\bn is executed in a function,  the  function
        completes  and  execution resumes with the next command after the func-
        tion call.  Any command associated with the  R\bRE\bET\bTU\bUR\bRN\bN  trap  is  executed
@@ -2010,7 +2288,9 @@ F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
        tically-named  entries  in  the environment passed to the shell's chil-
        dren.  Care should be taken in cases where this may cause a problem.
 
-       Functions may be recursive.  No limit  is  imposed  on  the  number  of
+       Functions may be recursive.  The F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT variable may be used to limit
+       the  depth  of the function call stack and restrict the number of func-
+       tion invocations.  By default, no limit is imposed  on  the  number  of
        recursive calls.
 
 A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN
@@ -2056,18 +2336,18 @@ A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN
        The  value  of a variable is evaluated as an arithmetic expression when
        it is referenced, or when a variable which has been given  the  _\bi_\bn_\bt_\be_\bg_\be_\br
        attribute using d\bde\bec\bcl\bla\bar\bre\be -\b-i\bi is assigned a value.  A null value evaluates
-       to 0.  A shell variable need not have its integer attribute  turned  on
+       to 0.  A shell variable need not have its _\bi_\bn_\bt_\be_\bg_\be_\br attribute  turned  on
        to be used in an expression.
 
        Constants with a leading 0 are interpreted as octal numbers.  A leading
        0x or  0X  denotes  hexadecimal.   Otherwise,  numbers  take  the  form
-       [_\bb_\ba_\bs_\be_\b#]n,  where _\bb_\ba_\bs_\be is a decimal number between 2 and 64 representing
-       the arithmetic base, and _\bn is a number in that base.  If _\bb_\ba_\bs_\be_\b# is omit-
-       ted,  then  base 10 is used.  The digits greater than 9 are represented
-       by the lowercase letters, the uppercase letters,  @,  and  _,  in  that
-       order.   If  _\bb_\ba_\bs_\be  is less than or equal to 36, lowercase and uppercase
-       letters may be used interchangeably to represent numbers between 10 and
-       35.
+       [_\bb_\ba_\bs_\be_\b#]n,  where the optional _\bb_\ba_\bs_\be is a decimal number between 2 and 64
+       representing the arithmetic base, and _\bn is a number in that  base.   If
+       _\bb_\ba_\bs_\be_\b#  is omitted, then base 10 is used.  When specifying _\bn, the digits
+       greater than 9 are represented by the lowercase letters, the  uppercase
+       letters, @, and _, in that order.  If _\bb_\ba_\bs_\be is less than or equal to 36,
+       lowercase and uppercase letters may be used interchangeably  to  repre-
+       sent numbers between 10 and 35.
 
        Operators  are  evaluated  in  order of precedence.  Sub-expressions in
        parentheses are evaluated first and may override the  precedence  rules
@@ -2087,6 +2367,9 @@ C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
        bolic links and operate on the target of the link, rather than the link
        itself.
 
+       When used with [\b[[\b[, the <\b< and >\b> operators sort  lexicographically  using
+       the current locale.  The t\bte\bes\bst\bt command sorts using ASCII ordering.
+
        -\b-a\ba _\bf_\bi_\bl_\be
               True if _\bf_\bi_\bl_\be exists.
        -\b-b\bb _\bf_\bi_\bl_\be
@@ -2118,30 +2401,36 @@ C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
               True if _\bf_\bi_\bl_\be exists and is writable.
        -\b-x\bx _\bf_\bi_\bl_\be
               True if _\bf_\bi_\bl_\be exists and is executable.
-       -\b-O\bO _\bf_\bi_\bl_\be
-              True if _\bf_\bi_\bl_\be exists and is owned by the effective user id.
        -\b-G\bG _\bf_\bi_\bl_\be
               True if _\bf_\bi_\bl_\be exists and is owned by the effective group id.
        -\b-L\bL _\bf_\bi_\bl_\be
               True if _\bf_\bi_\bl_\be exists and is a symbolic link.
-       -\b-S\bS _\bf_\bi_\bl_\be
-              True if _\bf_\bi_\bl_\be exists and is a socket.
        -\b-N\bN _\bf_\bi_\bl_\be
-              True if _\bf_\bi_\bl_\be exists and has been  modified  since  it  was  last
+              True  if  _\bf_\bi_\bl_\be  exists  and  has been modified since it was last
               read.
+       -\b-O\bO _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is owned by the effective user id.
+       -\b-S\bS _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is a socket.
+       _\bf_\bi_\bl_\be_\b1 -\b-e\bef\bf _\bf_\bi_\bl_\be_\b2
+              True if _\bf_\bi_\bl_\be_\b1 and _\bf_\bi_\bl_\be_\b2 refer to the same device and inode  num-
+              bers.
        _\bf_\bi_\bl_\be_\b1 -n\bnt\bt _\bf_\bi_\bl_\be_\b2
               True  if  _\bf_\bi_\bl_\be_\b1  is  newer (according to modification date) than
               _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b1 exists and _\bf_\bi_\bl_\be_\b2 does not.
        _\bf_\bi_\bl_\be_\b1 -o\bot\bt _\bf_\bi_\bl_\be_\b2
               True if _\bf_\bi_\bl_\be_\b1 is older than _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b2 exists and  _\bf_\bi_\bl_\be_\b1
               does not.
-       _\bf_\bi_\bl_\be_\b1 -\b-e\bef\bf _\bf_\bi_\bl_\be_\b2
-              True  if _\bf_\bi_\bl_\be_\b1 and _\bf_\bi_\bl_\be_\b2 refer to the same device and inode num-
-              bers.
        -\b-o\bo _\bo_\bp_\bt_\bn_\ba_\bm_\be
-              True if shell option  _\bo_\bp_\bt_\bn_\ba_\bm_\be  is  enabled.   See  the  list  of
-              options  under  the  description  of  the  -\b-o\bo  option to the s\bse\bet\bt
+              True  if  the  shell option _\bo_\bp_\bt_\bn_\ba_\bm_\be is enabled.  See the list of
+              options under the description  of  the  -\b-o\bo  option  to  the  s\bse\bet\bt
               builtin below.
+       -\b-v\bv _\bv_\ba_\br_\bn_\ba_\bm_\be
+              True  if  the shell variable _\bv_\ba_\br_\bn_\ba_\bm_\be is set (has been assigned a
+              value).
+       -\b-R\bR _\bv_\ba_\br_\bn_\ba_\bm_\be
+              True if the shell variable _\bv_\ba_\br_\bn_\ba_\bm_\be is set and is a  name  refer-
+              ence.
        -\b-z\bz _\bs_\bt_\br_\bi_\bn_\bg
               True if the length of _\bs_\bt_\br_\bi_\bn_\bg is zero.
        _\bs_\bt_\br_\bi_\bn_\bg
@@ -2149,38 +2438,39 @@ C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
               True if the length of _\bs_\bt_\br_\bi_\bn_\bg is non-zero.
 
        _\bs_\bt_\br_\bi_\bn_\bg_\b1 =\b==\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
-              True if the strings are equal.  =\b= may be used in place of =\b==\b= for
-              strict POSIX compliance.
+       _\bs_\bt_\br_\bi_\bn_\bg_\b1 =\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
+              True  if  the strings are equal.  =\b= should be used with the t\bte\bes\bst\bt
+              command for POSIX conformance.  When used with the  [\b[[\b[  command,
+              this performs pattern matching as described above (C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bm-\b-
+              m\bma\ban\bnd\bds\bs).
 
        _\bs_\bt_\br_\bi_\bn_\bg_\b1 !\b!=\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
               True if the strings are not equal.
 
        _\bs_\bt_\br_\bi_\bn_\bg_\b1 <\b< _\bs_\bt_\br_\bi_\bn_\bg_\b2
-              True  if  _\bs_\bt_\br_\bi_\bn_\bg_\b1  sorts before _\bs_\bt_\br_\bi_\bn_\bg_\b2 lexicographically in the
-              current locale.
+              True if _\bs_\bt_\br_\bi_\bn_\bg_\b1 sorts before _\bs_\bt_\br_\bi_\bn_\bg_\b2 lexicographically.
 
        _\bs_\bt_\br_\bi_\bn_\bg_\b1 >\b> _\bs_\bt_\br_\bi_\bn_\bg_\b2
-              True if _\bs_\bt_\br_\bi_\bn_\bg_\b1 sorts after  _\bs_\bt_\br_\bi_\bn_\bg_\b2  lexicographically  in  the
-              current locale.
+              True if _\bs_\bt_\br_\bi_\bn_\bg_\b1 sorts after _\bs_\bt_\br_\bi_\bn_\bg_\b2 lexicographically.
 
        _\ba_\br_\bg_\b1 O\bOP\bP _\ba_\br_\bg_\b2
-              O\bOP\b is one of -\b-e\beq\bq, -\b-n\bne\be, -\b-l\blt\bt, -\b-l\ble\be, -\b-g\bgt\bt, or -\b-g\bge\be.  These arithmetic
-              binary operators return true if _\ba_\br_\bg_\b1 is equal to, not equal  to,
-              less  than, less than or equal to, greater than, or greater than
-              or equal to _\ba_\br_\bg_\b2, respectively.  _\bA_\br_\bg_\b1 and _\ba_\br_\bg_\b2 may  be  positive
+              O\bOP\bis one of -\b-e\beq\bq, -\b-n\bne\be, -\b-l\blt\bt, -\b-l\ble\be, -\b-g\bgt\bt, or -\b-g\bge\be.  These  arithmetic
+              binary  operators return true if _\ba_\br_\bg_\b1 is equal to, not equal to,
+              less than, less than or equal to, greater than, or greater  than
+              or  equal  to _\ba_\br_\bg_\b2, respectively.  _\bA_\br_\bg_\b1 and _\ba_\br_\bg_\b2 may be positive
               or negative integers.
 
 S\bSI\bIM\bMP\bPL\bLE\bE C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
-       When  a  simple  command  is executed, the shell performs the following
+       When a simple command is executed, the  shell  performs  the  following
        expansions, assignments, and redirections, from left to right.
 
-       1.     The words that the parser has  marked  as  variable  assignments
-              (those  preceding  the  command name) and redirections are saved
+       1.     The  words  that  the  parser has marked as variable assignments
+              (those preceding the command name) and  redirections  are  saved
               for later processing.
 
-       2.     The words that are not variable assignments or redirections  are
-              expanded.   If  any words remain after expansion, the first word
-              is taken to be the name of the command and the  remaining  words
+       2.     The  words that are not variable assignments or redirections are
+              expanded.  If any words remain after expansion, the  first  word
+              is  taken  to be the name of the command and the remaining words
               are the arguments.
 
        3.     Redirections are performed as described above under R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN.
@@ -2257,7 +2547,6 @@ C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bN
        The  shell  has an _\be_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt, which consists of the follow-
        ing:
 
-
        +\bo      open files inherited by the shell at invocation, as modified  by
               redirections supplied to the e\bex\bxe\bec\bc builtin
 
@@ -2283,7 +2572,7 @@ C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bN
        +\bo      shell aliases defined with a\bal\bli\bia\bas\bs
 
        +\bo      various process IDs, including those  of  background  jobs,  the
-              value of $\b$$\b$, and the value of $\b$P\bPP\bPI\bID\bD
+              value of $\b$$\b$, and the value of P\bPP\bPI\bID\bD
 
        When  a  simple command other than a builtin or shell function is to be
        executed, it is invoked in a separate execution environment  that  con-
@@ -2316,7 +2605,7 @@ C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bN
        ronment cannot affect the shell's execution environment.
 
        Subshells spawned to execute command substitutions inherit the value of
-       the  -\b-e\be  option  from  the  parent shell.  When not in posix mode, Bash
+       the  -\b-e\be  option  from  the  parent shell.  When not in _\bp_\bo_\bs_\bi_\bx mode, b\bba\bas\bsh\bh
        clears the -\b-e\be option in such subshells.
 
        If a command is followed by a &\b& and job  control  is  not  active,  the
@@ -2351,15 +2640,15 @@ E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
        just those that precede the command name.
 
        When b\bba\bas\bsh\bh invokes an external command, the variable _\b_  is  set  to  the
-       full  file  name of the command and passed to that command in its envi-
-       ronment.
+       full filename of the command and passed to that command in its environ-
+       ment.
 
 E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS
        The exit status of an executed command is the  value  returned  by  the
        _\bw_\ba_\bi_\bt_\bp_\bi_\bd system call or equivalent function.  Exit statuses fall between
        0 and 255, though, as explained below, the shell may use  values  above
        125 specially.  Exit statuses from shell builtins and compound commands
-       are also limited to this range. Under certain circumstances, the  shell
+       are also limited to this range.  Under certain circumstances, the shell
        will use special values to indicate specific failure modes.
 
        For the shell's purposes, a command which exits with a zero exit status
@@ -2376,49 +2665,51 @@ E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS
 
        Shell  builtin  commands return a status of 0 (_\bt_\br_\bu_\be) if successful, and
        non-zero (_\bf_\ba_\bl_\bs_\be) if an error occurs while they execute.   All  builtins
-       return an exit status of 2 to indicate incorrect usage.
+       return  an  exit  status  of  2  to indicate incorrect usage, generally
+       invalid options or missing arguments.
 
-       B\bBa\bas\bsh\b itself  returns  the  exit  status  of the last command executed,
-       unless a syntax error occurs, in which case it exits  with  a  non-zero
+       B\bBa\bas\bsh\bitself returns the exit  status  of  the  last  command  executed,
+       unless  a  syntax  error occurs, in which case it exits with a non-zero
        value.  See also the e\bex\bxi\bit\bt builtin command below.
 
 S\bSI\bIG\bGN\bNA\bAL\bLS\bS
-       When  b\bba\bas\bsh\bh  is  interactive,  in  the  absence of any traps, it ignores
+       When b\bba\bas\bsh\bh is interactive, in the  absence  of  any  traps,  it  ignores
        S\bSI\bIG\bGT\bTE\bER\bRM\bM (so that k\bki\bil\bll\bl 0\b0 does not kill an interactive shell), and S\bSI\bIG\bGI\bIN\bNT\bT
-       is  caught and handled (so that the w\bwa\bai\bit\bt builtin is interruptible).  In
-       all cases, b\bba\bas\bsh\bh ignores S\bSI\bIG\bGQ\bQU\bUI\bIT\bT.  If job control  is  in  effect,  b\bba\bas\bsh\bh
+       is caught and handled (so that the w\bwa\bai\bit\bt builtin is interruptible).   In
+       all  cases,  b\bba\bas\bsh\bh  ignores  S\bSI\bIG\bGQ\bQU\bUI\bIT\bT.  If job control is in effect, b\bba\bas\bsh\bh
        ignores S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bTT\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
 
        Non-builtin commands run by b\bba\bas\bsh\bh have signal handlers set to the values
-       inherited by the shell from its parent.  When job  control  is  not  in
-       effect,  asynchronous commands ignore S\bSI\bIG\bGI\bIN\bNT\bT and S\bSI\bIG\bGQ\bQU\bUI\bIT\bT in addition to
-       these inherited handlers.  Commands run as a result of command  substi-
+       inherited  by  the  shell  from its parent.  When job control is not in
+       effect, asynchronous commands ignore S\bSI\bIG\bGI\bIN\bNT\bT and S\bSI\bIG\bGQ\bQU\bUI\bIT\bT in addition  to
+       these  inherited handlers.  Commands run as a result of command substi-
        tution ignore the keyboard-generated job control signals S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bT-\b-
        T\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
 
-       The shell exits by default upon receipt of a S\bSI\bIG\bGH\bHU\bUP\bP.   Before  exiting,
-       an  interactive  shell  resends  the  S\bSI\bIG\bGH\bHU\bUP\bP  to  all  jobs, running or
+       The  shell  exits by default upon receipt of a S\bSI\bIG\bGH\bHU\bUP\bP.  Before exiting,
+       an interactive shell  resends  the  S\bSI\bIG\bGH\bHU\bUP\bP  to  all  jobs,  running  or
        stopped.  Stopped jobs are sent S\bSI\bIG\bGC\bCO\bON\bNT\bT to ensure that they receive the
-       S\bSI\bIG\bGH\bHU\bUP\bP.   To  prevent the shell from sending the signal to a particular
-       job, it should be removed from the jobs table with the  d\bdi\bis\bso\bow\bwn\b builtin
-       (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below)  or marked to not receive S\bSI\bIG\bGH\bHU\bUP\bP
+       S\bSI\bIG\bGH\bHU\bUP\bP.  To prevent the shell from sending the signal to  a  particular
+       job,  it  should be removed from the jobs table with the d\bdi\bis\bso\bow\bwn\bn builtin
+       (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) or  marked  to  not  receive  S\bSI\bIG\bGH\bHU\bUP\bP
        using d\bdi\bis\bso\bow\bwn\bn -\b-h\bh.
 
-       If the h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt shell option has been set with  s\bsh\bho\bop\bpt\bt,  b\bba\bas\bsh\bh  sends  a
+       If  the  h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt  shell  option has been set with s\bsh\bho\bop\bpt\bt, b\bba\bas\bsh\bh sends a
        S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an interactive login shell exits.
 
-       If  b\bba\bas\bsh\bh is waiting for a command to complete and receives a signal for
+       If b\bba\bas\bsh\bh is waiting for a command to complete and receives a signal  for
        which a trap has been set, the trap will not be executed until the com-
-       mand  completes.   When b\bba\bas\bsh\bh is waiting for an asynchronous command via
-       the w\bwa\bai\bit\bt builtin, the reception of a signal for which a trap  has  been
+       mand completes.  When b\bba\bas\bsh\bh is waiting for an asynchronous  command  via
+       the  w\bwa\bai\bit\bt  builtin, the reception of a signal for which a trap has been
        set will cause the w\bwa\bai\bit\bt builtin to return immediately with an exit sta-
        tus greater than 128, immediately after which the trap is executed.
 
 J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL
-       _\bJ_\bo_\b_\bc_\bo_\bn_\bt_\br_\bo_\bl refers to the ability to  selectively  stop  (_\bs_\bu_\bs_\bp_\be_\bn_\bd)  the
+       _\bJ_\bo_\b _\bc_\bo_\bn_\bt_\br_\bo_\bl  refers  to  the ability to selectively stop (_\bs_\bu_\bs_\bp_\be_\bn_\bd) the
        execution of processes and continue (_\br_\be_\bs_\bu_\bm_\be) their execution at a later
-       point.  A user typically  employs  this  facility  via  an  interactive
-       interface supplied jointly by the system's terminal driver and b\bba\bas\bsh\bh.
+       point.   A  user  typically  employs  this  facility via an interactive
+       interface supplied jointly by the operating  system  kernel's  terminal
+       driver and b\bba\bas\bsh\bh.
 
        The  shell  associates  a  _\bj_\bo_\bb with each pipeline.  It keeps a table of
        currently executing jobs, which may be listed with  the  j\bjo\bob\bbs\bs  command.
@@ -2439,10 +2730,12 @@ J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL
        generated  signals  such  as S\bSI\bIG\bGI\bIN\bNT\bT.  These processes are said to be in
        the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd.  _\bB_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd processes are those whose process group  ID
        differs from the terminal's; such processes are immune to keyboard-gen-
-       erated signals.  Only foreground processes are allowed to read from  or
-       write to the terminal.  Background processes which attempt to read from
-       (write to) the terminal are sent a S\bSI\bIG\bGT\bTT\bTI\bIN\bN (\b(S\bSI\bIG\bGT\bTT\bTO\bOU\bU)\b) signal by the ter-
-       minal driver, which, unless caught, suspends the process.
+       erated signals.  Only foreground processes are allowed to read from or,
+       if  the  user  so  specifies  with  stty tostop, write to the terminal.
+       Background processes which attempt to read from  (write  to  when  stty
+       tostop  is  in effect) the terminal are sent a S\bSI\bIG\bGT\bTT\bTI\bIN\bN (\b(S\bSI\bIG\bGT\bTT\bTO\bOU\bU)\b) signal
+       by the kernel's terminal driver, which,  unless  caught,  suspends  the
+       process.
 
        If  the operating system on which b\bba\bas\bsh\bh is running supports job control,
        b\bba\bas\bsh\bh contains facilities to use it.  Typing the _\bs_\bu_\bs_\bp_\be_\bn_\bd character (typ-
@@ -2496,15 +2789,16 @@ J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL
 P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
        When executing interactively, b\bba\bas\bsh\bh displays the primary prompt P\bPS\bS1\b1 when
        it  is  ready  to  read a command, and the secondary prompt P\bPS\bS2\b2 when it
-       needs more input to complete  a  command.   B\bBa\bas\bsh\bh  allows  these  prompt
-       strings  to  be  customized  by inserting a number of backslash-escaped
+       needs more input to complete a command.  B\bBa\bas\bsh\bh  displays  P\bPS\bS0\b0  after  it
+       reads  a  command  but  before  executing it.  B\bBa\bas\bsh\bh allows these prompt
+       strings to be customized by inserting  a  number  of  backslash-escaped
        special characters that are decoded as follows:
               \\b\a\ba     an ASCII bell character (07)
-              \\b\d\bd     the date in "Weekday Month Date" format (e.g.,  "Tue  May
+              \\b\d\bd     the  date  in "Weekday Month Date" format (e.g., "Tue May
                      26")
               \\b\D\bD{\b{_\bf_\bo_\br_\bm_\ba_\bt}\b}
-                     the  _\bf_\bo_\br_\bm_\ba_\bt  is  passed  to _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) and the result is
-                     inserted into the prompt string; an empty _\bf_\bo_\br_\bm_\ba_\b results
+                     the _\bf_\bo_\br_\bm_\ba_\bt is passed to _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3)  and  the  result  is
+                     inserted  into the prompt string; an empty _\bf_\bo_\br_\bm_\ba_\bt results
                      in a locale-specific time representation.  The braces are
                      required
               \\b\e\be     an ASCII escape character (033)
@@ -2514,7 +2808,7 @@ P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
               \\b\l\bl     the basename of the shell's terminal device name
               \\b\n\bn     newline
               \\b\r\br     carriage return
-              \\b\s\bs     the name of the shell, the basename of  $\b$0\b0  (the  portion
+              \\b\s\bs     the  name  of  the shell, the basename of $\b$0\b0 (the portion
                      following the final slash)
               \\b\t\bt     the current time in 24-hour HH:MM:SS format
               \\b\T\bT     the current time in 12-hour HH:MM:SS format
@@ -2524,7 +2818,8 @@ P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
               \\b\v\bv     the version of b\bba\bas\bsh\bh (e.g., 2.00)
               \\b\V\bV     the release of b\bba\bas\bsh\bh, version + patch level (e.g., 2.00.0)
               \\b\w\bw     the current working  directory,  with  $\b$H\bHO\bOM\bME\bE  abbreviated
-                     with a tilde (uses the $\b$P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM variable)
+                     with  a tilde (uses the value of the P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM vari-
+                     able)
               \\b\W\bW     the basename of the current working directory, with $\b$H\bHO\bOM\bME\bE
                      abbreviated with a tilde
               \\b\!\b!     the history number of this command
@@ -2532,66 +2827,66 @@ P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
               \\b\$\b$     if the effective UID is 0, a #\b#, otherwise a $\b$
               \\b\_\bn_\bn_\bn   the character corresponding to the octal number _\bn_\bn_\bn
               \\b\\\b\     a backslash
-              \\b\[\b[     begin a sequence of non-printing characters, which  could
-                     be  used  to  embed  a terminal control sequence into the
+              \\b\[\b[     begin  a sequence of non-printing characters, which could
+                     be used to embed a terminal  control  sequence  into  the
                      prompt
               \\b\]\b]     end a sequence of non-printing characters
 
-       The command number and the history number are  usually  different:  the
-       history  number of a command is its position in the history list, which
-       may include commands  restored  from  the  history  file  (see  H\bHI\bIS\bST\bTO\bOR\bRY\bY
-       below),  while  the  command  number is the position in the sequence of
-       commands executed during the current shell session.  After  the  string
-       is  decoded,  it is expanded via parameter expansion, command substitu-
-       tion, arithmetic expansion, and quote removal, subject to the value  of
-       the  p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs  shell option (see the description of the s\bsh\bho\bop\bpt\bt command
+       The  command  number  and the history number are usually different: the
+       history number of a command is its position in the history list,  which
+       may  include  commands  restored  from  the  history  file (see H\bHI\bIS\bST\bTO\bOR\bRY\bY
+       below), while the command number is the position  in  the  sequence  of
+       commands  executed  during the current shell session.  After the string
+       is decoded, it is expanded via parameter expansion,  command  substitu-
+       tion,  arithmetic expansion, and quote removal, subject to the value of
+       the p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs shell option (see the description of the  s\bsh\bho\bop\bpt\b command
        under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
 
 R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
-       This is the library that handles reading input when using  an  interac-
+       This  is  the library that handles reading input when using an interac-
        tive shell, unless the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option is given at shell invocation.
        Line editing is also used when using the -\b-e\be option to the r\bre\bea\bad\bd builtin.
-       By default, the line editing commands are similar to those of emacs.  A
+       By default, the line editing commands are similar to those of Emacs.  A
        vi-style line editing interface is also available.  Line editing can be
-       enabled  at  any  time  using  the -\b-o\bo e\bem\bma\bac\bcs\bs or -\b-o\bo v\bvi\bi options to the s\bse\bet\bt
-       builtin (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  To turn off  line  editing
-       after  the  shell  is running, use the +\b+o\bo e\bem\bma\bac\bcs\bs or +\b+o\bo v\bvi\bi options to the
+       enabled at any time using the -\b-o\bo e\bem\bma\bac\bcs\bs or -\b-o\bo  v\bvi\bi  options  to  the  s\bse\bet\bt
+       builtin  (see  S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  To turn off line editing
+       after the shell is running, use the +\b+o\bo e\bem\bma\bac\bcs\bs or +\b+o\bo v\bvi\bi  options  to  the
        s\bse\bet\bt builtin.
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be N\bNo\bot\bta\bat\bti\bio\bon\bn
-       In this section, the emacs-style notation is used to denote keystrokes.
-       Control  keys  are  denoted by C-_\bk_\be_\by, e.g., C-n means Control-N.  Simi-
-       larly, _\bm_\be_\bt_\ba keys are denoted by M-_\bk_\be_\by, so M-x means Meta-X.   (On  key-
-       boards  without a _\bm_\be_\bt_\ba key, M-_\bx means ESC _\bx, i.e., press the Escape key
+       In this section, the Emacs-style notation is used to denote keystrokes.
+       Control keys are denoted by C-_\bk_\be_\by, e.g., C-n  means  Control-N.   Simi-
+       larly,  _\bm_\be_\bt_\ba  keys are denoted by M-_\bk_\be_\by, so M-x means Meta-X.  (On key-
+       boards without a _\bm_\be_\bt_\ba key, M-_\bx means ESC _\bx, i.e., press the Escape  key
        then the _\bx key.  This makes ESC the _\bm_\be_\bt_\ba _\bp_\br_\be_\bf_\bi_\bx.  The combination M-C-_\bx
-       means  ESC-Control-_\bx, or press the Escape key then hold the Control key
+       means ESC-Control-_\bx, or press the Escape key then hold the Control  key
        while pressing the _\bx key.)
 
        Readline commands may be given numeric _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs, which normally act as
-       a  repeat  count.   Sometimes,  however, it is the sign of the argument
-       that is significant.  Passing a negative argument  to  a  command  that
-       acts  in the forward direction (e.g., k\bki\bil\bll\bl-\b-l\bli\bin\bne\be) causes that command to
-       act in a backward direction.  Commands whose  behavior  with  arguments
+       a repeat count.  Sometimes, however, it is the  sign  of  the  argument
+       that  is  significant.   Passing  a negative argument to a command that
+       acts in the forward direction (e.g., k\bki\bil\bll\bl-\b-l\bli\bin\bne\be) causes that command  to
+       act  in  a  backward direction.  Commands whose behavior with arguments
        deviates from this are noted below.
 
-       When  a command is described as _\bk_\bi_\bl_\bl_\bi_\bn_\bg text, the text deleted is saved
+       When a command is described as _\bk_\bi_\bl_\bl_\bi_\bn_\bg text, the text deleted is  saved
        for possible future retrieval (_\by_\ba_\bn_\bk_\bi_\bn_\bg).  The killed text is saved in a
        _\bk_\bi_\bl_\bl _\br_\bi_\bn_\bg.  Consecutive kills cause the text to be accumulated into one
        unit, which can be yanked all at once.  Commands which do not kill text
        separate the chunks of text on the kill ring.
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be I\bIn\bni\bit\bti\bia\bal\bli\biz\bza\bat\bti\bio\bon\bn
-       Readline  is  customized  by putting commands in an initialization file
-       (the _\bi_\bn_\bp_\bu_\bt_\br_\bc file).  The name of this file is taken from the  value  of
-       the  I\bIN\bNP\bPU\bUT\bTR\bRC\bC  variable.   If  that  variable  is  unset, the default is
-       _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc.  When a program which uses the readline library starts  up,
+       Readline is customized by putting commands in  an  initialization  file
+       (the  _\bi_\bn_\bp_\bu_\bt_\br_\bc  file).  The name of this file is taken from the value of
+       the I\bIN\bNP\bPU\bUT\bTR\bRC\bC variable.  If  that  variable  is  unset,  the  default  is
+       _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc.   When a program which uses the readline library starts up,
        the initialization file is read, and the key bindings and variables are
-       set.  There are only a few basic constructs  allowed  in  the  readline
-       initialization  file.  Blank lines are ignored.  Lines beginning with a
-       #\bare comments.  Lines beginning with a  $\b$  indicate  conditional  con-
+       set.   There  are  only  a few basic constructs allowed in the readline
+       initialization file.  Blank lines are ignored.  Lines beginning with  a
+       #\b are  comments.   Lines  beginning with a $\b$ indicate conditional con-
        structs.  Other lines denote key bindings and variable settings.
 
-       The  default  key-bindings  may be changed with an _\bi_\bn_\bp_\bu_\bt_\br_\bc file.  Other
+       The default key-bindings may be changed with an  _\bi_\bn_\bp_\bu_\bt_\br_\bc  file.   Other
        programs that use this library may add their own commands and bindings.
 
        For example, placing
@@ -2611,7 +2906,7 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
    R\bRe\bea\bad\bdl\bli\bin\bne\be K\bKe\bey\by B\bBi\bin\bnd\bdi\bin\bng\bgs\bs
        The syntax for controlling key bindings in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file is  simple.
        All  that is required is the name of the command or the text of a macro
-       and a key sequence to which it should be bound. The name may be  speci-
+       and a key sequence to which it should be bound.  The name may be speci-
        fied in one of two ways: as a symbolic key name, possibly with _\bM_\be_\bt_\ba_\b- or
        _\bC_\bo_\bn_\bt_\br_\bo_\bl_\b- prefixes, or as a key sequence.
 
@@ -2697,6 +2992,16 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               If  set  to O\bOn\bn, readline attempts to bind the control characters
               treated specially by the kernel's terminal driver to their read-
               line equivalents.
+       c\bco\bol\blo\bor\bre\bed\bd-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-p\bpr\bre\bef\bfi\bix\bx (\b(O\bOf\bff\bf)\b)
+              If  set  to  O\bOn\bn, when listing completions, readline displays the
+              common prefix of the set of possible completions using a differ-
+              ent  color.   The  color definitions are taken from the value of
+              the L\bLS\bS_\b_C\bCO\bOL\bLO\bOR\bRS\bS environment variable.
+       c\bco\bol\blo\bor\bre\bed\bd-\b-s\bst\bta\bat\bts\bs (\b(O\bOf\bff\bf)\b)
+              If set to O\bOn\bn, readline displays possible completions using  dif-
+              ferent  colors  to  indicate their file type.  The color defini-
+              tions are taken from the  value  of  the  L\bLS\bS_\b_C\bCO\bOL\bLO\bOR\bRS\bS  environment
+              variable.
        c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn (\b(`\b``\b`#\b#'\b''\b')\b)
               The  string  that  is  inserted when the readline i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt
               command is executed.  This command is bound to M\bM-\b-#\b# in emacs mode
@@ -2729,60 +3034,101 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               mapped to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt.
        e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be (\b(e\bem\bma\bac\bcs\bs)\b)
               Controls whether readline begins with a set of key bindings sim-
-              ilar to _\be_\bm_\ba_\bc_\bs or _\bv_\bi.  e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be can be set to either e\bem\bma\bac\bcs\bs or
+              ilar to _\bE_\bm_\ba_\bc_\bs or _\bv_\bi.  e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be can be set to either e\bem\bma\bac\bcs\bs or
               v\bvi\bi.
+       e\bec\bch\bho\bo-\b-c\bco\bon\bnt\btr\bro\bol\bl-\b-c\bch\bha\bar\bra\bac\bct\bte\ber\brs\bs (\b(O\bOn\bn)\b)
+              When  set to O\bOn\bn, on operating systems that indicate they support
+              it, readline echoes a character corresponding to a signal gener-
+              ated from the keyboard.
+       e\ben\bna\bab\bbl\ble\be-\b-b\bbr\bra\bac\bck\bke\bet\bte\bed\bd-\b-p\bpa\bas\bst\bte\be (\b(O\bOf\bff\bf)\b)
+              When  set  to  O\bOn\bn, readline will configure the terminal in a way
+              that will enable it to insert each paste into the editing buffer
+              as a single string of characters, instead of treating each char-
+              acter as if it had been read from the keyboard.  This  can  pre-
+              vent  pasted  characters  from being interpreted as editing com-
+              mands.
        e\ben\bna\bab\bbl\ble\be-\b-k\bke\bey\byp\bpa\bad\bd (\b(O\bOf\bff\bf)\b)
               When set to O\bOn\bn, readline will try to enable the application key-
-              pad when it is called.  Some systems need  this  to  enable  the
+              pad  when  it  is  called.  Some systems need this to enable the
               arrow keys.
+       e\ben\bna\bab\bbl\ble\be-\b-m\bme\bet\bta\ba-\b-k\bke\bey\by (\b(O\bOn\bn)\b)
+              When set to O\bOn\bn, readline will try to enable  any  meta  modifier
+              key  the  terminal claims to support when it is called.  On many
+              terminals, the meta key is used to send eight-bit characters.
        e\bex\bxp\bpa\ban\bnd\bd-\b-t\bti\bil\bld\bde\be (\b(O\bOf\bff\bf)\b)
-              If  set  to  o\bon\bn,  tilde  expansion  is  performed  when readline
+              If set  to  O\bOn\bn,  tilde  expansion  is  performed  when  readline
               attempts word completion.
        h\bhi\bis\bst\bto\bor\bry\by-\b-p\bpr\bre\bes\bse\ber\brv\bve\be-\b-p\bpo\boi\bin\bnt\bt (\b(O\bOf\bff\bf)\b)
-              If set to o\bon\bn, the history code attempts to place  point  at  the
-              same  location on each history line retrieved with p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bs-\b-
+              If  set  to  O\bOn\bn, the history code attempts to place point at the
+              same location on each history line retrieved with  p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bs-\b-
               t\bto\bor\bry\by or n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by.
-       h\bhi\bis\bst\bto\bor\bry\by-\b-s\bsi\biz\bze\be (\b(0\b0)\b)
-              Set the maximum number of history entries saved in  the  history
-              list.  If set to zero, the number of entries in the history list
-              is not limited.
+       h\bhi\bis\bst\bto\bor\bry\by-\b-s\bsi\biz\bze\be (\b(u\bun\bns\bse\bet\bt)\b)
+              Set  the  maximum number of history entries saved in the history
+              list.  If set to zero, any existing history entries are  deleted
+              and no new entries are saved.  If set to a value less than zero,
+              the number of history entries is not limited.  By  default,  the
+              number of history entries is not limited.
        h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsc\bcr\bro\bol\bll\bl-\b-m\bmo\bod\bde\be (\b(O\bOf\bff\bf)\b)
-              When set to O\bOn\bn, makes readline use a single  line  for  display,
+              When  set  to  O\bOn\bn, makes readline use a single line for display,
               scrolling the input horizontally on a single screen line when it
-              becomes longer than the screen width rather than wrapping  to  a
+              becomes  longer  than the screen width rather than wrapping to a
               new line.
        i\bin\bnp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
-              If  set to O\bOn\bn, readline will enable eight-bit input (that is, it
-              will not strip the high  bit  from  the  characters  it  reads),
+              If set to O\bOn\bn, readline will enable eight-bit input (that is,  it
+              will  not  strip  the  high  bit  from the characters it reads),
               regardless of what the terminal claims it can support.  The name
               m\bme\bet\bta\ba-\b-f\bfl\bla\bag\bg is a synonym for this variable.
        i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs (\b(`\b``\b`C\bC-\b-[\b[C\bC-\b-J\bJ'\b''\b')\b)
-              The string of characters that should  terminate  an  incremental
-              search  without  subsequently  executing the character as a com-
-              mand.  If this variable has not been given a value, the  charac-
+              The  string  of  characters that should terminate an incremental
+              search without subsequently executing the character  as  a  com-
+              mand.   If this variable has not been given a value, the charac-
               ters _\bE_\bS_\bC and _\bC_\b-_\bJ will terminate an incremental search.
        k\bke\bey\bym\bma\bap\bp (\b(e\bem\bma\bac\bcs\bs)\b)
-              Set  the current readline keymap.  The set of valid keymap names
-              is _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b,  _\bv_\bi_\b _\bv_\bi_\b-_\bc_\bo_\bm_\b-
-              _\bm_\ba_\bn_\bd,  and  _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs is
-              equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.  The default value is  _\be_\bm_\ba_\bc_\bs;  the
+              Set the current readline keymap.  The set of valid keymap  names
+              is  _\be_\bm_\ba_\bc_\bs_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b, _\bv_\bi_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\b-
+              _\bm_\ba_\bn_\bd, and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd;  _\be_\bm_\ba_\bc_\b is
+              equivalent  to  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.  The default value is _\be_\bm_\ba_\bc_\bs; the
               value of e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be also affects the default keymap.
+       e\bem\bma\bac\bcs\bs-\b-m\bmo\bod\bde\be-\b-s\bst\btr\bri\bin\bng\bg (\b(@\b@)\b)
+              This string is displayed immediately before the last line of the
+              primary  prompt when emacs editing mode is active.  The value is
+              expanded like a key binding, so the standard set  of  meta-  and
+              control  prefixes  and  backslash escape sequences is available.
+              Use the \1 and \2 escapes to begin and  end  sequences  of  non-
+              printing  characters, which can be used to embed a terminal con-
+              trol sequence into the mode string.
+       k\bke\bey\bys\bse\beq\bq-\b-t\bti\bim\bme\beo\bou\but\bt (\b(5\b50\b00\b0)\b)
+              Specifies the duration _\br_\be_\ba_\bd_\bl_\bi_\bn_\be will wait for a  character  when
+              reading  an ambiguous key sequence (one that can form a complete
+              key sequence using the input read so far, or can take additional
+              input  to  complete  a  longer  key  sequence).   If no input is
+              received within the timeout, _\br_\be_\ba_\bd_\bl_\bi_\bn_\be will use the  shorter  but
+              complete  key sequence.  The value is specified in milliseconds,
+              so a value of 1000 means that _\br_\be_\ba_\bd_\bl_\bi_\bn_\be will wait one second  for
+              additional  input.  If this variable is set to a value less than
+              or equal to zero, or to a non-numeric value, _\br_\be_\ba_\bd_\bl_\bi_\bn_\be will  wait
+              until  another  key  is  pressed to decide which key sequence to
+              complete.
        m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOn\bn)\b)
               If set to O\bOn\bn, completed directory names have a slash appended.
        m\bma\bar\brk\bk-\b-m\bmo\bod\bdi\bif\bfi\bie\bed\bd-\b-l\bli\bin\bne\bes\bs (\b(O\bOf\bff\bf)\b)
-              If  set  to  O\bOn\bn,  history lines that have been modified are dis-
+              If set to O\bOn\bn, history lines that have  been  modified  are  dis-
               played with a preceding asterisk (*\b*).
        m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOf\bff\bf)\b)
               If set to O\bOn\bn, completed names which are symbolic links to direc-
-              tories   have   a  slash  appended  (subject  to  the  value  of
+              tories  have  a  slash  appended  (subject  to  the   value   of
               m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs).
        m\bma\bat\btc\bch\bh-\b-h\bhi\bid\bdd\bde\ben\bn-\b-f\bfi\bil\ble\bes\bs (\b(O\bOn\bn)\b)
-              This variable, when set to O\bOn\bn, causes readline  to  match  files
-              whose  names  begin  with  a  `.' (hidden files) when performing
-              filename completion, unless the leading `.' is supplied  by  the
-              user in the filename to be completed.
+              This  variable,  when  set to O\bOn\bn, causes readline to match files
+              whose names begin with a  `.'  (hidden  files)  when  performing
+              filename  completion.   If  set  to O\bOf\bff\bf, the leading `.' must be
+              supplied by the user in the filename to be completed.
+       m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-p\bpr\bre\bef\bfi\bix\bx (\b(O\bOf\bff\bf)\b)
+              If set to O\bOn\bn, menu completion displays the common prefix of  the
+              list of possible completions (which may be empty) before cycling
+              through the list.
        o\bou\but\btp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
-              If  set  to O\bOn\bn, readline will display characters with the eighth
+              If set to O\bOn\bn, readline will display characters with  the  eighth
               bit set directly rather than as a meta-prefixed escape sequence.
        p\bpa\bag\bge\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(O\bOn\bn)\b)
               If  set to O\bOn\bn, readline uses an internal _\bm_\bo_\br_\be-like pager to dis-
@@ -2792,62 +3138,89 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               sorted  horizontally in alphabetical order, rather than down the
               screen.
        r\bre\bev\bve\ber\brt\bt-\b-a\bal\bll\bl-\b-a\bat\bt-\b-n\bne\bew\bwl\bli\bin\bne\be (\b(O\bOf\bff\bf)\b)
-              If set to o\bon\bn, readline will undo all changes  to  history  lines
+              If set to O\bOn\bn, readline will undo all changes  to  history  lines
               before returning when a\bac\bcc\bce\bep\bpt\bt-\b-l\bli\bin\bne\be is executed.  By default, his-
               tory lines may be modified  and  retain  individual  undo  lists
               across calls to r\bre\bea\bad\bdl\bli\bin\bne\be.
        s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs (\b(O\bOf\bff\bf)\b)
               This  alters  the  default behavior of the completion functions.
-              If set to o\bon\bn, words which have more than one possible completion
+              If set to O\bOn\bn, words which have more than one possible completion
               cause  the  matches  to be listed immediately instead of ringing
               the bell.
        s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-u\bun\bnm\bmo\bod\bdi\bif\bfi\bie\bed\bd (\b(O\bOf\bff\bf)\b)
               This alters the default behavior of the completion functions  in
-              a fashion similar to s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs.  If set to o\bon\bn, words
+              a fashion similar to s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs.  If set to O\bOn\bn, words
               which have more than one possible completion without any  possi-
               ble  partial  completion (the possible completions don't share a
               common prefix)  cause  the  matches  to  be  listed  immediately
               instead of ringing the bell.
+       s\bsh\bho\bow\bw-\b-m\bmo\bod\bde\be-\b-i\bin\bn-\b-p\bpr\bro\bom\bmp\bpt\bt (\b(O\bOf\bff\bf)\b)
+              If  set  to  O\bOn\bn,  add a character to the beginning of the prompt
+              indicating the editing mode: emacs (@), vi  command  (:)  or  vi
+              insertion (+).
+       s\bsk\bki\bip\bp-\b-c\bco\bom\bmp\bpl\ble\bet\bte\bed\bd-\b-t\bte\bex\bxt\bt (\b(O\bOf\bff\bf)\b)
+              If  set  to O\bOn\bn, this alters the default completion behavior when
+              inserting a single match into the line.  It's only  active  when
+              performing  completion  in  the  middle  of a word.  If enabled,
+              readline does not insert characters  from  the  completion  that
+              match  characters  after  point  in the word being completed, so
+              portions of the word following the cursor are not duplicated.
+       v\bvi\bi-\b-c\bcm\bmd\bd-\b-m\bmo\bod\bde\be-\b-s\bst\btr\bri\bin\bng\bg (\b((\b(c\bcm\bmd\bd)\b))\b)
+              This string is displayed immediately before the last line of the
+              primary  prompt  when  vi  editing mode is active and in command
+              mode.  The value is expanded like a key binding, so the standard
+              set of meta- and control prefixes and backslash escape sequences
+              is available.  Use the \1  and  \2  escapes  to  begin  and  end
+              sequences of non-printing characters, which can be used to embed
+              a terminal control sequence into the mode string.
+       v\bvi\bi-\b-i\bin\bns\bs-\b-m\bmo\bod\bde\be-\b-s\bst\btr\bri\bin\bng\bg (\b((\b(i\bin\bns\bs)\b))\b)
+              This string is displayed immediately before the last line of the
+              primary  prompt  when vi editing mode is active and in insertion
+              mode.  The value is expanded like a key binding, so the standard
+              set of meta- and control prefixes and backslash escape sequences
+              is available.  Use the \1  and  \2  escapes  to  begin  and  end
+              sequences of non-printing characters, which can be used to embed
+              a terminal control sequence into the mode string.
        v\bvi\bis\bsi\bib\bbl\ble\be-\b-s\bst\bta\bat\bts\bs (\b(O\bOf\bff\bf)\b)
-              If  set to O\bOn\bn, a character denoting a file's type as reported by
-              _\bs_\bt_\ba_\bt(2) is appended to the filename when listing  possible  com-
+              If set to O\bOn\bn, a character denoting a file's type as reported  by
+              _\bs_\bt_\ba_\bt(2)  is  appended to the filename when listing possible com-
               pletions.
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bon\bnd\bdi\bit\bti\bio\bon\bna\bal\bl C\bCo\bon\bns\bst\btr\bru\buc\bct\bts\bs
-       Readline  implements  a  facility  similar in spirit to the conditional
-       compilation features of the C preprocessor which  allows  key  bindings
-       and  variable  settings  to be performed as the result of tests.  There
+       Readline implements a facility similar in  spirit  to  the  conditional
+       compilation  features  of  the C preprocessor which allows key bindings
+       and variable settings to be performed as the result  of  tests.   There
        are four parser directives used.
 
-       $\b$i\bif\bf    The $\b$i\bif\bf construct allows bindings to be made based on the  edit-
-              ing  mode,  the  terminal  being  used, or the application using
-              readline.  The text of the test extends to the end of the  line;
+       $\b$i\bif\bf    The  $\b$i\bif\bf construct allows bindings to be made based on the edit-
+              ing mode, the terminal being  used,  or  the  application  using
+              readline.   The text of the test extends to the end of the line;
               no characters are required to isolate it.
 
-              m\bmo\bod\bde\be   The  m\bmo\bod\bde\be=\b=  form  of  the  $\b$i\bif\bf  directive is used to test
-                     whether readline is in emacs or vi  mode.   This  may  be
-                     used  in  conjunction  with  the  s\bse\bet\bt k\bke\bey\bym\bma\bap\bp command, for
-                     instance, to  set  bindings  in  the  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\b and
-                     _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\b keymaps  only  if readline is starting out in
+              m\bmo\bod\bde\be   The m\bmo\bod\bde\be=\b= form of the  $\b$i\bif\bf  directive  is  used  to  test
+                     whether  readline  is  in  emacs or vi mode.  This may be
+                     used in conjunction with  the  s\bse\bet\bt  k\bke\bey\bym\bma\bap\bp  command,  for
+                     instance,  to  set  bindings  in  the  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd and
+                     _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bkeymaps only if readline is  starting  out  in
                      emacs mode.
 
-              t\bte\ber\brm\bm   The t\bte\ber\brm\bm=\b= form may be used to  include  terminal-specific
+              t\bte\ber\brm\bm   The  t\bte\ber\brm\bm=\b=  form may be used to include terminal-specific
                      key bindings, perhaps to bind the key sequences output by
                      the terminal's function keys.  The word on the right side
-                     of the =\b= is tested against the both full name of the ter-
-                     minal and the portion of the  terminal  name  before  the
-                     first  -\b-.  This allows _\bs_\bu_\bn to match both _\bs_\bu_\bn and _\bs_\bu_\bn_\b-_\bc_\bm_\bd,
+                     of the =\b= is tested against both the full name of the ter-
+                     minal  and  the  portion  of the terminal name before the
+                     first -\b-.  This allows _\bs_\bu_\bn to match both _\bs_\bu_\bn and  _\bs_\bu_\bn_\b-_\bc_\bm_\bd,
                      for instance.
 
               a\bap\bpp\bpl\bli\bic\bca\bat\bti\bio\bon\bn
                      The a\bap\bpp\bpl\bli\bic\bca\bat\bti\bio\bon\bn construct is used to include application-
                      specific  settings.   Each  program  using  the  readline
-                     library sets the _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bn_\ba_\bm_\be, and an  initialization
+                     library  sets the _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bn_\ba_\bm_\be, and an initialization
                      file can test for a particular value.  This could be used
-                     to bind key sequences to functions useful for a  specific
-                     program.   For instance, the following command adds a key
-                     sequence that quotes the  current  or  previous  word  in
-                     Bash:
+                     to  bind key sequences to functions useful for a specific
+                     program.  For instance, the following command adds a  key
+                     sequence  that  quotes  the  current  or previous word in
+                     b\bba\bas\bsh\bh:
 
                      $\b$i\bif\bf Bash
                      # Quote the current or previous word
@@ -2861,51 +3234,51 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               test fails.
 
        $\b$i\bin\bnc\bcl\blu\bud\bde\be
-              This  directive takes a single filename as an argument and reads
-              commands and bindings from that file.  For example, the  follow-
+              This directive takes a single filename as an argument and  reads
+              commands  and bindings from that file.  For example, the follow-
               ing directive would read _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc:
 
               $\b$i\bin\bnc\bcl\blu\bud\bde\be  _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc
 
    S\bSe\bea\bar\brc\bch\bhi\bin\bng\bg
-       Readline  provides  commands  for searching through the command history
+       Readline provides commands for searching through  the  command  history
        (see H\bHI\bIS\bST\bTO\bOR\bRY\bY below) for lines containing a specified string.  There are
        two search modes: _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl and _\bn_\bo_\bn_\b-_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl.
 
-       Incremental  searches  begin  before  the  user has finished typing the
-       search string.  As each character of the search string is typed,  read-
+       Incremental searches begin before the  user  has  finished  typing  the
+       search  string.  As each character of the search string is typed, read-
        line displays the next entry from the history matching the string typed
-       so far.  An incremental search requires  only  as  many  characters  as
-       needed  to  find  the desired history entry.  The characters present in
-       the value of the i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs variable are used to terminate  an
+       so  far.   An  incremental  search  requires only as many characters as
+       needed to find the desired history entry.  The  characters  present  in
+       the  value of the i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs variable are used to terminate an
        incremental search.  If that variable has not been assigned a value the
-       Escape and Control-J characters will terminate an  incremental  search.
-       Control-G  will  abort  an  incremental search and restore the original
-       line.  When the search is terminated, the history entry containing  the
+       Escape  and  Control-J characters will terminate an incremental search.
+       Control-G will abort an incremental search  and  restore  the  original
+       line.   When the search is terminated, the history entry containing the
        search string becomes the current line.
 
-       To  find  other matching entries in the history list, type Control-S or
-       Control-R as appropriate.  This will search backward or forward in  the
-       history  for  the  next  entry matching the search string typed so far.
-       Any other key sequence bound to a readline command will  terminate  the
-       search  and  execute that command.  For instance, a _\bn_\be_\bw_\bl_\bi_\bn_\be will termi-
+       To find other matching entries in the history list, type  Control-S  or
+       Control-R  as appropriate.  This will search backward or forward in the
+       history for the next entry matching the search  string  typed  so  far.
+       Any  other  key sequence bound to a readline command will terminate the
+       search and execute that command.  For instance, a _\bn_\be_\bw_\bl_\bi_\bn_\be  will  termi-
        nate the search and accept the line, thereby executing the command from
        the history list.
 
        Readline remembers the last incremental search string.  If two Control-
-       Rs are typed without any intervening characters defining a  new  search
+       Rs  are  typed without any intervening characters defining a new search
        string, any remembered search string is used.
 
-       Non-incremental  searches read the entire search string before starting
-       to search for matching history lines.  The search string may  be  typed
+       Non-incremental searches read the entire search string before  starting
+       to  search  for matching history lines.  The search string may be typed
        by the user or be part of the contents of the current line.
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bom\bmm\bma\ban\bnd\bd N\bNa\bam\bme\bes\bs
-       The  following  is  a list of the names of the commands and the default
+       The following is a list of the names of the commands  and  the  default
        key sequences to which they are bound.  Command names without an accom-
        panying key sequence are unbound by default.  In the following descrip-
-       tions, _\bp_\bo_\bi_\bn_\bt refers to the current cursor position, and _\bm_\ba_\br_\bk refers  to
-       a  cursor position saved by the s\bse\bet\bt-\b-m\bma\bar\brk\bk command.  The text between the
+       tions,  _\bp_\bo_\bi_\bn_\bt refers to the current cursor position, and _\bm_\ba_\br_\bk refers to
+       a cursor position saved by the s\bse\bet\bt-\b-m\bma\bar\brk\bk command.  The text between  the
        point and mark is referred to as the _\br_\be_\bg_\bi_\bo_\bn.
 
    C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMo\bov\bvi\bin\bng\bg
@@ -2921,17 +3294,17 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               Move forward to the end of the next word.  Words are composed of
               alphanumeric characters (letters and digits).
        b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-b\bb)\b)
-              Move  back  to the start of the current or previous word.  Words
+              Move back to the start of the current or previous  word.   Words
               are composed of alphanumeric characters (letters and digits).
        s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
-              Move forward to the end of the next word.  Words  are  delimited
+              Move  forward  to the end of the next word.  Words are delimited
               by non-quoted shell metacharacters.
        s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
-              Move  back  to the start of the current or previous word.  Words
+              Move back to the start of the current or previous  word.   Words
               are delimited by non-quoted shell metacharacters.
        c\bcl\ble\bea\bar\br-\b-s\bsc\bcr\bre\bee\ben\bn (\b(C\bC-\b-l\bl)\b)
-              Clear the screen leaving the current line  at  the  top  of  the
-              screen.   With  an  argument,  refresh  the current line without
+              Clear  the  screen  leaving  the  current line at the top of the
+              screen.  With an argument,  refresh  the  current  line  without
               clearing the screen.
        r\bre\bed\bdr\bra\baw\bw-\b-c\bcu\bur\brr\bre\ben\bnt\bt-\b-l\bli\bin\bne\be
               Refresh the current line.
@@ -2939,63 +3312,67 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
    C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMa\ban\bni\bip\bpu\bul\bla\bat\bti\bin\bng\bg t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by
        a\bac\bcc\bce\bep\bpt\bt-\b-l\bli\bin\bne\be (\b(N\bNe\bew\bwl\bli\bin\bne\be,\b, R\bRe\bet\btu\bur\brn\bn)\b)
               Accept the line regardless of where the cursor is.  If this line
-              is  non-empty, add it to the history list according to the state
-              of the H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL variable.  If the line is a modified  history
+              is non-empty, add it to the history list according to the  state
+              of  the H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL variable.  If the line is a modified history
               line, then restore the history line to its original state.
        p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-p\bp)\b)
               Fetch the previous command from the history list, moving back in
               the list.
        n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-n\bn)\b)
-              Fetch the next command from the history list, moving forward  in
+              Fetch  the next command from the history list, moving forward in
               the list.
        b\bbe\beg\bgi\bin\bnn\bni\bin\bng\bg-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-<\b<)\b)
               Move to the first line in the history.
        e\ben\bnd\bd-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b->\b>)\b)
-              Move  to  the end of the input history, i.e., the line currently
+              Move to the end of the input history, i.e., the  line  currently
               being entered.
        r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-r\br)\b)
-              Search backward starting at the current  line  and  moving  `up'
-              through  the  history  as  necessary.   This  is  an incremental
+              Search  backward  starting  at  the current line and moving `up'
+              through the  history  as  necessary.   This  is  an  incremental
               search.
        f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-s\bs)\b)
-              Search forward starting at the current line  and  moving  `down'
-              through  the  history  as  necessary.   This  is  an incremental
+              Search  forward  starting  at the current line and moving `down'
+              through the  history  as  necessary.   This  is  an  incremental
               search.
        n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-p\bp)\b)
               Search backward through the history starting at the current line
-              using  a  non-incremental  search  for  a string supplied by the
+              using a non-incremental search for  a  string  supplied  by  the
               user.
        n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-n\bn)\b)
-              Search forward  through  the  history  using  a  non-incremental
+              Search  forward  through  the  history  using  a non-incremental
               search for a string supplied by the user.
        h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-f\bfo\bor\brw\bwa\bar\brd\bd
-              Search  forward through the history for the string of characters
-              between the start of the current line and the point.  This is  a
+              Search forward through the history for the string of  characters
+              between  the start of the current line and the point.  This is a
               non-incremental search.
        h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd
               Search backward through the history for the string of characters
-              between the start of the current line and the point.  This is  a
+              between  the start of the current line and the point.  This is a
               non-incremental search.
        y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg (\b(M\bM-\b-C\bC-\b-y\by)\b)
-              Insert  the  first argument to the previous command (usually the
+              Insert the first argument to the previous command  (usually  the
               second word on the previous line) at point.  With an argument _\bn,
-              insert  the _\bnth word from the previous command (the words in the
-              previous command  begin  with  word  0).   A  negative  argument
+              insert the _\bnth word from the previous command (the words in  the
+              previous  command  begin  with  word  0).   A  negative argument
               inserts the _\bnth word from the end of the previous command.  Once
-              the argument _\bn is computed, the argument is extracted as if  the
+              the  argument _\bn is computed, the argument is extracted as if the
               "!_\bn" history expansion had been specified.
        y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg (\b(M\bM-\b-.\b.,\b, M\bM-\b-_\b_)\b)
-              Insert  the last argument to the previous command (the last word
-              of the  previous  history  entry).   With  an  argument,  behave
-              exactly  like  y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg.   Successive calls to y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg
-              move back through the history list, inserting the last  argument
-              of each line in turn.  The history expansion facilities are used
-              to extract the last argument, as if the "!$"  history  expansion
-              had been specified.
+              Insert the last argument to the previous command (the last  word
+              of the previous history entry).  With a numeric argument, behave
+              exactly like y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg.  Successive  calls  to  y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg
+              move  back through the history list, inserting the last word (or
+              the word specified by the argument to the first  call)  of  each
+              line in turn.  Any numeric argument supplied to these successive
+              calls determines the direction to move through the  history.   A
+              negative  argument  switches  the  direction through the history
+              (back or forward).  The history expansion facilities are used to
+              extract the last word, as if the "!$" history expansion had been
+              specified.
        s\bsh\bhe\bel\bll\bl-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-C\bC-\b-e\be)\b)
               Expand the line as the shell does.  This performs alias and his-
               tory expansion as well as all of the shell word expansions.  See
-              H\bHI\bIS\bST\bTO\bOR\bRY\b E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
+              H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
        h\bhi\bis\bst\bto\bor\bry\by-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-^\b^)\b)
               Perform history expansion on  the  current  line.   See  H\bHI\bIS\bST\bTO\bOR\bRY\bY
               E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
@@ -3020,51 +3397,56 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               $\b$E\bED\bDI\bIT\bTO\bOR\bR, and _\be_\bm_\ba_\bc_\bs as the editor, in that order.
 
    C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br C\bCh\bha\ban\bng\bgi\bin\bng\bg T\bTe\bex\bxt\bt
+       _\be_\bn_\bd_\b-_\bo_\bf_\b-_\bf_\bi_\bl_\be (\b(u\bus\bsu\bua\bal\bll\bly\by C\bC-\b-d\bd)\b)
+              The character indicating end-of-file as  set,  for  example,  by
+              ``stty''.   If  this character is read when there are no charac-
+              ters on the line, and point is at the  beginning  of  the  line,
+              Readline interprets it as the end of input and returns E\bEO\bOF\bF.
        d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(C\bC-\b-d\bd)\b)
-              Delete the character at point.  If point is at the beginning  of
-              the  line,  there  are  no  characters in the line, and the last
-              character typed was not bound to d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br, then return E\bEO\bOF\bF.
+              Delete the character at point.  If this function is bound to the
+              same character as the tty E\bEO\bOF\bF character, as C\bC-\b-d\bd commonly is, see
+              above for the effects.
        b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(R\bRu\bub\bbo\bou\but\bt)\b)
-              Delete the character behind the cursor.  When  given  a  numeric
+              Delete  the  character  behind the cursor.  When given a numeric
               argument, save the deleted text on the kill ring.
        f\bfo\bor\brw\bwa\bar\brd\bd-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br
-              Delete  the  character under the cursor, unless the cursor is at
+              Delete the character under the cursor, unless the cursor  is  at
               the end of the line, in which case the character behind the cur-
               sor is deleted.
        q\bqu\buo\bot\bte\bed\bd-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-q\bq,\b, C\bC-\b-v\bv)\b)
-              Add  the next character typed to the line verbatim.  This is how
+              Add the next character typed to the line verbatim.  This is  how
               to insert characters like C\bC-\b-q\bq, for example.
        t\bta\bab\bb-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-v\bv T\bTA\bAB\bB)\b)
               Insert a tab character.
        s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt (\b(a\ba,\b, b\bb,\b, A\bA,\b, 1\b1,\b, !\b!,\b, .\b..\b..\b.)\b)
               Insert the character typed.
        t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-c\bch\bha\bar\brs\bs (\b(C\bC-\b-t\bt)\b)
-              Drag the character before point forward over  the  character  at
-              point,  moving point forward as well.  If point is at the end of
-              the line, then this transposes the two characters before  point.
+              Drag  the  character  before point forward over the character at
+              point, moving point forward as well.  If point is at the end  of
+              the  line, then this transposes the two characters before point.
               Negative arguments have no effect.
        t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-w\bwo\bor\brd\bds\bs (\b(M\bM-\b-t\bt)\b)
-              Drag  the  word  before  point past the word after point, moving
-              point over that word as well.  If point is at  the  end  of  the
+              Drag the word before point past the  word  after  point,  moving
+              point  over  that  word  as well.  If point is at the end of the
               line, this transposes the last two words on the line.
        u\bup\bpc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-u\bu)\b)
-              Uppercase  the  current  (or  following)  word.  With a negative
+              Uppercase the current (or  following)  word.   With  a  negative
               argument, uppercase the previous word, but do not move point.
        d\bdo\bow\bwn\bnc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-l\bl)\b)
-              Lowercase the current (or  following)  word.   With  a  negative
+              Lowercase  the  current  (or  following)  word.  With a negative
               argument, lowercase the previous word, but do not move point.
        c\bca\bap\bpi\bit\bta\bal\bli\biz\bze\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-c\bc)\b)
-              Capitalize  the  current  (or  following) word.  With a negative
+              Capitalize the current (or following)  word.   With  a  negative
               argument, capitalize the previous word, but do not move point.
        o\bov\bve\ber\brw\bwr\bri\bit\bte\be-\b-m\bmo\bod\bde\be
-              Toggle overwrite mode.  With an explicit positive numeric  argu-
+              Toggle  overwrite mode.  With an explicit positive numeric argu-
               ment, switches to overwrite mode.  With an explicit non-positive
               numeric argument, switches to insert mode.  This command affects
-              only  e\bem\bma\bac\bcs\bs mode; v\bvi\bi mode does overwrite differently.  Each call
+              only e\bem\bma\bac\bcs\bs mode; v\bvi\bi mode does overwrite differently.  Each  call
               to _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b(_\b) starts in insert mode.  In overwrite mode, charac-
-              ters  bound to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt replace the text at point rather than
-              pushing the text  to  the  right.   Characters  bound  to  b\bba\bac\bck\bk-\b-
-              w\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\b replace  the  character  before  point  with a
+              ters bound to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt replace the text at point rather  than
+              pushing  the  text  to  the  right.   Characters  bound to b\bba\bac\bck\bk-\b-
+              w\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\breplace  the  character  before  point  with  a
               space.  By default, this command is unbound.
 
    K\bKi\bil\bll\bli\bin\bng\bg a\ban\bnd\bd Y\bYa\ban\bnk\bki\bin\bng\bg
@@ -3073,31 +3455,31 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-l\bli\bin\bne\be (\b(C\bC-\b-x\bx R\bRu\bub\bbo\bou\but\bt)\b)
               Kill backward to the beginning of the line.
        u\bun\bni\bix\bx-\b-l\bli\bin\bne\be-\b-d\bdi\bis\bsc\bca\bar\brd\bd (\b(C\bC-\b-u\bu)\b)
-              Kill backward from point to the  beginning  of  the  line.   The
+              Kill  backward  from  point  to  the beginning of the line.  The
               killed text is saved on the kill-ring.
        k\bki\bil\bll\bl-\b-w\bwh\bho\bol\ble\be-\b-l\bli\bin\bne\be
-              Kill  all  characters on the current line, no matter where point
+              Kill all characters on the current line, no matter  where  point
               is.
        k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-d\bd)\b)
-              Kill from point to the end of the current word,  or  if  between
-              words,  to  the  end  of the next word.  Word boundaries are the
+              Kill  from  point  to the end of the current word, or if between
+              words, to the end of the next word.   Word  boundaries  are  the
               same as those used by f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
        b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-R\bRu\bub\bbo\bou\but\bt)\b)
-              Kill the word behind point.  Word boundaries  are  the  same  as
+              Kill  the  word  behind  point.  Word boundaries are the same as
               those used by b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
-       s\bsh\bhe\bel\bll\bl-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-d\bd)\b)
-              Kill  from  point  to the end of the current word, or if between
-              words, to the end of the next word.   Word  boundaries  are  the
+       s\bsh\bhe\bel\bll\bl-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd
+              Kill from point to the end of the current word,  or  if  between
+              words,  to  the  end  of the next word.  Word boundaries are the
               same as those used by s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
-       s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-R\bRu\bub\bbo\bou\but\bt)\b)
-              Kill  the  word  behind  point.  Word boundaries are the same as
+       s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd
+              Kill the word behind point.  Word boundaries  are  the  same  as
               those used by s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
        u\bun\bni\bix\bx-\b-w\bwo\bor\brd\bd-\b-r\bru\bub\bbo\bou\but\bt (\b(C\bC-\b-w\bw)\b)
-              Kill the word behind point, using white space as a  word  bound-
+              Kill  the  word behind point, using white space as a word bound-
               ary.  The killed text is saved on the kill-ring.
        u\bun\bni\bix\bx-\b-f\bfi\bil\ble\ben\bna\bam\bme\be-\b-r\bru\bub\bbo\bou\but\bt
-              Kill  the  word  behind  point,  using white space and the slash
-              character as the word boundaries.  The killed text is  saved  on
+              Kill the word behind point, using  white  space  and  the  slash
+              character  as  the word boundaries.  The killed text is saved on
               the kill-ring.
        d\bde\bel\ble\bet\bte\be-\b-h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsp\bpa\bac\bce\be (\b(M\bM-\b-\\b\)\b)
               Delete all spaces and tabs around point.
@@ -3106,61 +3488,65 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        c\bco\bop\bpy\by-\b-r\bre\beg\bgi\bio\bon\bn-\b-a\bas\bs-\b-k\bki\bil\bll\bl
               Copy the text in the region to the kill buffer.
        c\bco\bop\bpy\by-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
-              Copy  the word before point to the kill buffer.  The word bound-
+              Copy the word before point to the kill buffer.  The word  bound-
               aries are the same as b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
        c\bco\bop\bpy\by-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
-              Copy the word following point to  the  kill  buffer.   The  word
+              Copy  the  word  following  point  to the kill buffer.  The word
               boundaries are the same as f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
        y\bya\ban\bnk\bk (\b(C\bC-\b-y\by)\b)
               Yank the top of the kill ring into the buffer at point.
        y\bya\ban\bnk\bk-\b-p\bpo\bop\bp (\b(M\bM-\b-y\by)\b)
-              Rotate  the kill ring, and yank the new top.  Only works follow-
+              Rotate the kill ring, and yank the new top.  Only works  follow-
               ing y\bya\ban\bnk\bk or y\bya\ban\bnk\bk-\b-p\bpo\bop\bp.
 
    N\bNu\bum\bme\ber\bri\bic\bc A\bAr\brg\bgu\bum\bme\ben\bnt\bts\bs
        d\bdi\big\bgi\bit\bt-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt (\b(M\bM-\b-0\b0,\b, M\bM-\b-1\b1,\b, .\b..\b..\b.,\b, M\bM-\b--\b-)\b)
-              Add this digit to the argument already accumulating, or start  a
+              Add  this digit to the argument already accumulating, or start a
               new argument.  M-- starts a negative argument.
        u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt
-              This  is another way to specify an argument.  If this command is
-              followed by one or more digits, optionally with a leading  minus
-              sign,  those digits define the argument.  If the command is fol-
-              lowed by digits, executing  u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt  again  ends  the
-              numeric  argument, but is otherwise ignored.  As a special case,
-              if this command is immediately followed by a character  that  is
-              neither  a  digit or minus sign, the argument count for the next
-              command is multiplied by four.  The argument count is  initially
-              one,  so  executing this function the first time makes the argu-
+              This is another way to specify an argument.  If this command  is
+              followed  by one or more digits, optionally with a leading minus
+              sign, those digits define the argument.  If the command is  fol-
+              lowed  by  digits,  executing  u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt again ends the
+              numeric argument, but is otherwise ignored.  As a special  case,
+              if  this  command is immediately followed by a character that is
+              neither a digit nor minus sign, the argument count for the  next
+              command  is multiplied by four.  The argument count is initially
+              one, so executing this function the first time makes  the  argu-
               ment count four, a second time makes the argument count sixteen,
               and so on.
 
    C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg
        c\bco\bom\bmp\bpl\ble\bet\bte\be (\b(T\bTA\bAB\bB)\b)
-              Attempt  to  perform  completion on the text before point.  B\bBa\bas\bsh\bh
+              Attempt to perform completion on the text  before  point.   B\bBa\bas\bsh\bh
               attempts completion treating the text as a variable (if the text
-              begins  with  $\b$), username (if the text begins with ~\b~), hostname
-              (if the text begins with @\b@), or command (including  aliases  and
+              begins with $\b$), username (if the text begins with  ~\b~),  hostname
+              (if  the  text begins with @\b@), or command (including aliases and
               functions) in turn.  If none of these produces a match, filename
               completion is attempted.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-?\b?)\b)
               List the possible completions of the text before point.
        i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-*\b*)\b)
-              Insert all completions of the text before point that would  have
+              Insert  all completions of the text before point that would have
               been generated by p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs.
        m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be
-              Similar  to c\bco\bom\bmp\bpl\ble\bet\bte\be, but replaces the word to be completed with
-              a single match from the list of possible completions.   Repeated
-              execution  of  m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be  steps through the list of possible
-              completions, inserting each match in turn.  At the  end  of  the
+              Similar to c\bco\bom\bmp\bpl\ble\bet\bte\be, but replaces the word to be completed  with
+              a  single match from the list of possible completions.  Repeated
+              execution of m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be steps through the  list  of  possible
+              completions,  inserting  each  match in turn.  At the end of the
               list of completions, the bell is rung (subject to the setting of
               b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be) and the original text is restored.  An argument of _\bn
-              moves  _\bn  positions  forward  in the list of matches; a negative
-              argument may be used to move backward through  the  list.   This
-              command  is  intended  to  be  bound  to  T\bTA\bAB\bB, but is unbound by
+              moves _\bn positions forward in the list  of  matches;  a  negative
+              argument  may  be  used to move backward through the list.  This
+              command is intended to be  bound  to  T\bTA\bAB\bB,  but  is  unbound  by
               default.
+       m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd
+              Identical  to m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be, but moves backward through the list
+              of possible completions, as if m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be had  been  given  a
+              negative argument.  This command is unbound by default.
        d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br-\b-o\bor\br-\b-l\bli\bis\bst\bt
-              Deletes the character under the cursor if not at  the  beginning
-              or  end  of  the  line (like d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br).  If at the end of the
+              Deletes  the  character under the cursor if not at the beginning
+              or end of the line (like d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br).  If at  the  end  of  the
               line, behaves identically to p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs.  This command
               is unbound by default.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-f\bfi\bil\ble\ben\bna\bam\bme\be (\b(M\bM-\b-/\b/)\b)
@@ -3169,54 +3555,57 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               List the possible completions of the text before point, treating
               it as a filename.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be (\b(M\bM-\b-~\b~)\b)
-              Attempt completion on the text before point, treating  it  as  a
+              Attempt  completion  on  the text before point, treating it as a
               username.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx ~\b~)\b)
               List the possible completions of the text before point, treating
               it as a username.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be (\b(M\bM-\b-$\b$)\b)
-              Attempt completion on the text before point, treating  it  as  a
+              Attempt  completion  on  the text before point, treating it as a
               shell variable.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx $\b$)\b)
               List the possible completions of the text before point, treating
               it as a shell variable.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be (\b(M\bM-\b-@\b@)\b)
-              Attempt completion on the text before point, treating  it  as  a
+              Attempt  completion  on  the text before point, treating it as a
               hostname.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx @\b@)\b)
               List the possible completions of the text before point, treating
               it as a hostname.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(M\bM-\b-!\b!)\b)
-              Attempt completion on the text before point, treating  it  as  a
-              command  name.   Command  completion  attempts to match the text
-              against  aliases,  reserved  words,   shell   functions,   shell
+              Attempt  completion  on  the text before point, treating it as a
+              command name.  Command completion attempts  to  match  the  text
+              against   aliases,   reserved   words,  shell  functions,  shell
               builtins, and finally executable filenames, in that order.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx !\b!)\b)
               List the possible completions of the text before point, treating
               it as a command name.
        d\bdy\byn\bna\bam\bmi\bic\bc-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-T\bTA\bAB\bB)\b)
-              Attempt completion on the text before point, comparing the  text
-              against  lines  from  the  history  list for possible completion
+              Attempt  completion on the text before point, comparing the text
+              against lines from the  history  list  for  possible  completion
               matches.
        d\bda\bab\bbb\bbr\bre\bev\bv-\b-e\bex\bxp\bpa\ban\bnd\bd
-              Attempt menu completion on the text before point, comparing  the
+              Attempt  menu completion on the text before point, comparing the
               text against lines from the history list for possible completion
               matches.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-i\bin\bnt\bto\bo-\b-b\bbr\bra\bac\bce\bes\bs (\b(M\bM-\b-{\b{)\b)
               Perform filename completion and insert the list of possible com-
-              pletions  enclosed within braces so the list is available to the
+              pletions enclosed within braces so the list is available to  the
               shell (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
 
    K\bKe\bey\byb\bbo\boa\bar\brd\bd M\bMa\bac\bcr\bro\bos\bs
        s\bst\bta\bar\brt\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx (\b()\b)
-              Begin saving the characters  typed  into  the  current  keyboard
+              Begin  saving  the  characters  typed  into the current keyboard
               macro.
        e\ben\bnd\bd-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx )\b))\b)
               Stop saving the characters typed into the current keyboard macro
               and store the definition.
        c\bca\bal\bll\bl-\b-l\bla\bas\bst\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx e\be)\b)
-              Re-execute the last keyboard macro defined, by making the  char-
+              Re-execute  the last keyboard macro defined, by making the char-
               acters in the macro appear as if typed at the keyboard.
+       p\bpr\bri\bin\bnt\bt-\b-l\bla\bas\bst\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b()\b)
+              Print the last keyboard macro defined in a format  suitable  for
+              the _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
 
    M\bMi\bis\bsc\bce\bel\bll\bla\ban\bne\beo\bou\bus\bs
        r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be (\b(C\bC-\b-x\bx C\bC-\b-r\br)\b)
@@ -3233,83 +3622,95 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        u\bun\bnd\bdo\bo (\b(C\bC-\b-_\b_,\b, C\bC-\b-x\bx C\bC-\b-u\bu)\b)
               Incremental undo, separately remembered for each line.
        r\bre\bev\bve\ber\brt\bt-\b-l\bli\bin\bne\be (\b(M\bM-\b-r\br)\b)
-              Undo  all changes made to this line.  This is like executing the
-              u\bun\bnd\bdo\bcommand enough times to return  the  line  to  its  initial
+              Undo all changes made to this line.  This is like executing  the
+              u\bun\bnd\bdo\b command  enough  times  to  return the line to its initial
               state.
        t\bti\bil\bld\bde\be-\b-e\bex\bxp\bpa\ban\bnd\bd (\b(M\bM-\b-&\b&)\b)
               Perform tilde expansion on the current word.
        s\bse\bet\bt-\b-m\bma\bar\brk\bk (\b(C\bC-\b-@\b@,\b, M\bM-\b-<\b<s\bsp\bpa\bac\bce\be>\b>)\b)
-              Set  the  mark to the point.  If a numeric argument is supplied,
+              Set the mark to the point.  If a numeric argument  is  supplied,
               the mark is set to that position.
        e\bex\bxc\bch\bha\ban\bng\bge\be-\b-p\bpo\boi\bin\bnt\bt-\b-a\ban\bnd\bd-\b-m\bma\bar\brk\bk (\b(C\bC-\b-x\bx C\bC-\b-x\bx)\b)
-              Swap the point with the mark.  The current  cursor  position  is
-              set  to the saved position, and the old cursor position is saved
+              Swap  the  point  with the mark.  The current cursor position is
+              set to the saved position, and the old cursor position is  saved
               as the mark.
        c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh (\b(C\bC-\b-]\b])\b)
               A character is read and point is moved to the next occurrence of
-              that  character.   A negative count searches for previous occur-
+              that character.  A negative count searches for  previous  occur-
               rences.
        c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd (\b(M\bM-\b-C\bC-\b-]\b])\b)
-              A character is read and point is moved to  the  previous  occur-
-              rence  of  that character.  A negative count searches for subse-
+              A  character  is  read and point is moved to the previous occur-
+              rence of that character.  A negative count searches  for  subse-
               quent occurrences.
+       s\bsk\bki\bip\bp-\b-c\bcs\bsi\bi-\b-s\bse\beq\bqu\bue\ben\bnc\bce\be
+              Read  enough  characters to consume a multi-key sequence such as
+              those defined for keys like Home and End.  Such sequences  begin
+              with a Control Sequence Indicator (CSI), usually ESC-[.  If this
+              sequence is bound to "\[", keys producing  such  sequences  will
+              have  no  effect  unless explicitly bound to a readline command,
+              instead of inserting stray characters into the  editing  buffer.
+              This is unbound by default, but usually bound to ESC-[.
        i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt (\b(M\bM-\b-#\b#)\b)
-              Without a numeric argument,  the  value  of  the  readline  c\bco\bom\bm-\b-
-              m\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\b variable is inserted at the beginning of the current
+              Without  a  numeric  argument,  the  value  of the readline c\bco\bom\bm-\b-
+              m\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bvariable is inserted at the beginning of the  current
               line.  If a numeric argument is supplied, this command acts as a
-              toggle:   if  the characters at the beginning of the line do not
-              match the value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn, the value is inserted,  other-
+              toggle: if the characters at the beginning of the  line  do  not
+              match  the value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn, the value is inserted, other-
               wise the characters in c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn are deleted from the begin-
-              ning of the line.  In either case, the line is accepted as if  a
-              newline  had  been  typed.   The  default value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn
-              causes this command to make the current line  a  shell  comment.
-              If  a  numeric  argument  causes  the  comment  character  to be
+              ning  of the line.  In either case, the line is accepted as if a
+              newline had been typed.   The  default  value  of  c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn
+              causes  this  command  to make the current line a shell comment.
+              If a  numeric  argument  causes  the  comment  character  to  be
               removed, the line will be executed by the shell.
        g\bgl\blo\bob\bb-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-g\bg)\b)
-              The word before point is  treated  as  a  pattern  for  pathname
-              expansion,  with  an asterisk implicitly appended.  This pattern
-              is used to generate a list of matching file names  for  possible
+              The  word  before  point  is  treated  as a pattern for pathname
+              expansion, with an asterisk implicitly appended.   This  pattern
+              is  used  to  generate a list of matching filenames for possible
               completions.
        g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bd (\b(C\bC-\b-x\bx *\b*)\b)
-              The  word  before  point  is  treated  as a pattern for pathname
-              expansion, and the list of  matching  file  names  is  inserted,
-              replacing  the  word.   If  a  numeric  argument is supplied, an
+              The word before point is  treated  as  a  pattern  for  pathname
+              expansion,  and  the  list  of  matching  filenames is inserted,
+              replacing the word.  If  a  numeric  argument  is  supplied,  an
               asterisk is appended before pathname expansion.
        g\bgl\blo\bob\bb-\b-l\bli\bis\bst\bt-\b-e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bns\bs (\b(C\bC-\b-x\bx g\bg)\b)
-              The list  of  expansions  that  would  have  been  generated  by
-              g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\b is  displayed,  and the line is redrawn.  If a
-              numeric argument is supplied, an  asterisk  is  appended  before
+              The  list  of  expansions  that  would  have  been  generated by
+              g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bis displayed, and the line is  redrawn.   If  a
+              numeric  argument  is  supplied,  an asterisk is appended before
               pathname expansion.
        d\bdu\bum\bmp\bp-\b-f\bfu\bun\bnc\bct\bti\bio\bon\bns\bs
-              Print  all  of the functions and their key bindings to the read-
+              Print all of the functions and their key bindings to  the  read-
               line output stream.  If a numeric argument is supplied, the out-
-              put  is  formatted  in such a way that it can be made part of an
+              put is formatted in such a way that it can be made  part  of  an
               _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
        d\bdu\bum\bmp\bp-\b-v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
               Print all of the settable readline variables and their values to
-              the  readline output stream.  If a numeric argument is supplied,
-              the output is formatted in such a way that it can be  made  part
+              the readline output stream.  If a numeric argument is  supplied,
+              the  output  is formatted in such a way that it can be made part
               of an _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
        d\bdu\bum\bmp\bp-\b-m\bma\bac\bcr\bro\bos\bs
-              Print  all of the readline key sequences bound to macros and the
-              strings they output.  If a numeric  argument  is  supplied,  the
+              Print all of the readline key sequences bound to macros and  the
+              strings  they  output.   If  a numeric argument is supplied, the
               output is formatted in such a way that it can be made part of an
               _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
        d\bdi\bis\bsp\bpl\bla\bay\by-\b-s\bsh\bhe\bel\bll\bl-\b-v\bve\ber\brs\bsi\bio\bon\bn (\b(C\bC-\b-x\bx C\bC-\b-v\bv)\b)
-              Display version information about the current instance of  b\bba\bas\bsh\bh.
+              Display version information about the current instance of b\bba\bas\bsh\bh.
 
    P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
        When  word  completion  is  attempted  for an argument to a command for
        which a completion specification (a _\bc_\bo_\bm_\bp_\bs_\bp_\be_\bc) has  been  defined  using
-       the  c\bco\bom\bmp\bpl\ble\bet\bte\be  builtin  (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the pro-
-       grammable completion facilities are invoked.
-
-       First, the command name is identified.  If a compspec has been  defined
-       for that command, the compspec is used to generate the list of possible
-       completions for the word.  If the command word is a  full  pathname,  a
-       compspec  for  the full pathname is searched for first.  If no compspec
-       is found for the full pathname, an attempt is made to find  a  compspec
-       for the portion following the final slash.
+       the  c\bco\bom\bmp\bpl\ble\bet\bte\be  builtin (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the program-
+       mable completion facilities are invoked.
+
+       First, the command name is identified.  If  the  command  word  is  the
+       empty  string (completion attempted at the beginning of an empty line),
+       any compspec defined with the -\b-E\bE option to  c\bco\bom\bmp\bpl\ble\bet\bte\be  is  used.   If  a
+       compspec  has  been  defined  for that command, the compspec is used to
+       generate the list of possible completions for the word.  If the command
+       word  is  a full pathname, a compspec for the full pathname is searched
+       for first.  If no compspec is found for the full pathname,  an  attempt
+       is  made  to find a compspec for the portion following the final slash.
+       If those searches do not result in a  compspec,  any  compspec  defined
+       with the -\b-D\bD option to c\bco\bom\bmp\bpl\ble\bet\bte\be is used as the default.
 
        Once  a  compspec  has  been  found, it is used to generate the list of
        matching words.  If a compspec is not found, the default  b\bba\bas\bsh\bh  comple-
@@ -3320,7 +3721,7 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        -\b-f\bf  or -\b-d\bd option is used for filename or directory name completion, the
        shell variable F\bFI\bIG\bGN\bNO\bOR\bRE\bE is used to filter the matches.
 
-       Any completions specified by a filename expansion  pattern  to  the  -\b-G\bG
+       Any completions specified by a pathname expansion  pattern  to  the  -\b-G\bG
        option are generated next.  The words generated by the pattern need not
        match the word being completed.  The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable  is  not
        used to filter the matches, but the F\bFI\bIG\bGN\bNO\bOR\bRE\bE variable is used.
@@ -3341,17 +3742,17 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        variables are assigned values as described above under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs.
        If  a  shell  function  is being invoked, the C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS and C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD
        variables are also set.  When the function or command is  invoked,  the
-       first  argument  is  the  name of the command whose arguments are being
-       completed, the second argument is the word  being  completed,  and  the
-       third  argument  is  the word preceding the word being completed on the
-       current command  line.   No  filtering  of  the  generated  completions
-       against  the word being completed is performed; the function or command
-       has complete freedom in generating the matches.
+       first  argument  ($\b$1\b1)  is  the  name of the command whose arguments are
+       being completed, the second argument ($\b$2\b2) is the word being  completed,
+       and  the  third argument ($\b$3\b3) is the word preceding the word being com-
+       pleted on the current command line.  No filtering of the generated com-
+       pletions against the word being completed is performed; the function or
+       command has complete freedom in generating the matches.
 
        Any function specified with -\b-F\bF is invoked first.  The function may  use
        any  of  the  shell facilities, including the c\bco\bom\bmp\bpg\bge\ben\bn builtin described
        below, to generate the matches.  It must put the  possible  completions
-       in the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY array variable.
+       in the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY array variable, one per array element.
 
        Next,  any  command specified with the -\b-C\bC option is invoked in an envi-
        ronment equivalent to command substitution.  It should print a list  of
@@ -3365,7 +3766,9 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        with a backslash; the backslash is removed before attempting  a  match.
        Any  completion that matches the pattern will be removed from the list.
        A leading !\b! negates the pattern; in this case any completion not match-
-       ing the pattern will be removed.
+       ing  the  pattern  will be removed.  If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell option is
+       enabled, the match is performed without regard to the  case  of  alpha-
+       betic characters.
 
        Finally, any prefix and suffix specified with the -\b-P\bP and -\b-S\bS options are
        added to each member of the completion list, and the result is returned
@@ -3395,6 +3798,29 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        the value of the m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable, regardless of  the
        setting of the m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable.
 
+       There  is  some support for dynamically modifying completions.  This is
+       most useful when used in combination with a default  completion  speci-
+       fied  with  c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-D\bD.  It's possible for shell functions executed as
+       completion handlers to indicate that completion should  be  retried  by
+       returning  an exit status of 124.  If a shell function returns 124, and
+       changes the compspec associated with the command on which completion is
+       being  attempted  (supplied  as the first argument when the function is
+       executed), programmable completion restarts from the beginning, with an
+       attempt  to find a new compspec for that command.  This allows a set of
+       completions to be built dynamically as completion is attempted,  rather
+       than being loaded all at once.
+
+       For  instance, assuming that there is a library of compspecs, each kept
+       in a file corresponding to the  name  of  the  command,  the  following
+       default completion function would load completions dynamically:
+
+       _completion_loader()
+       {
+            . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
+       }
+       complete -D -F _completion_loader -o bashdefault -o default
+
+
 H\bHI\bIS\bST\bTO\bOR\bRY\bY
        When  the  -\b-o\bo  h\bhi\bis\bst\bto\bor\bry\by  option to the s\bse\bet\bt builtin is enabled, the shell
        provides access to the _\bc_\bo_\bm_\bm_\ba_\bn_\bd _\bh_\bi_\bs_\bt_\bo_\br_\by, the list of commands previously
@@ -3408,128 +3834,136 @@ H\bHI\bIS\bST\bTO\bOR\bRY\bY
        On startup, the history is initialized from the file named by the vari-
        able  H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE  (default _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by).  The file named by the value
        of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is truncated, if necessary, to contain  no  more  than  the
-       number  of lines specified by the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE.  When the his-
-       tory file is read, lines beginning with the history  comment  character
-       followed  immediately  by a digit are interpreted as timestamps for the
-       preceding history line.   These  timestamps  are  optionally  displayed
-       depending  on the value of the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable.  When an inter-
-       active shell exits, the last $\b$H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE lines are copied from  the  his-
-       tory list to $\b$H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE.  If the h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd shell option is enabled (see
-       the description of s\bsh\bho\bop\bpt\bt under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the lines
-       are  appended  to the history file, otherwise the history file is over-
-       written.  If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset, or if the history file  is  unwritable,
-       the  history  is  not  saved.   If the variable is set, time stamps are
-       written to the history file, marked with the history comment character,
-       so  they may be preserved across shell sessions.  This uses the history
-       comment character to distinguish timestamps from other  history  lines.
-       After  saving  the history, the history file is truncated to contain no
-       more than H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE lines.  If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE is not set,  no  trunca-
-       tion is performed.
-
-       The  builtin  command f\bfc\bc (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) may be used
+       number  of  lines specified by the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE.  If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE-\b-
+       S\bSI\bIZ\bZE\bE is unset, or set to null, a non-numeric value, or a numeric  value
+       less  than  zero,  the history file is not truncated.  When the history
+       file is read, lines beginning with the history comment  character  fol-
+       lowed immediately by a digit are interpreted as timestamps for the pre-
+       ceding history line.  These timestamps are optionally displayed depend-
+       ing  on  the  value  of the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable.  When a shell with
+       history enabled exits, the last $\b$H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE lines  are  copied  from  the
+       history  list  to $\b$H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE.  If the h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd shell option is enabled
+       (see the description of s\bsh\bho\bop\bpt\bt under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below),  the
+       lines  are  appended to the history file, otherwise the history file is
+       overwritten.   If  H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE  is  unset,  or  if  the  history  file  is
+       unwritable,  the  history is not saved.  If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable
+       is set, time stamps are written to the history file,  marked  with  the
+       history  comment  character, so they may be preserved across shell ses-
+       sions.  This uses the history comment character  to  distinguish  time-
+       stamps from other history lines.  After saving the history, the history
+       file is truncated to contain no more than H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE lines.  If H\bHI\bIS\bST\bT-\b-
+       F\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE  is  unset,  or set to null, a non-numeric value, or a numeric
+       value less than zero, the history file is not truncated.
+
+       The builtin command f\bfc\bc (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) may  be  used
        to list or edit and re-execute a portion of the history list.  The h\bhi\bis\bs-\b-
-       t\bto\bor\bry\b builtin  may  be  used  to display or modify the history list and
-       manipulate the history file.  When using command-line  editing,  search
-       commands  are available in each editing mode that provide access to the
+       t\bto\bor\bry\bbuiltin may be used to display or  modify  the  history  list  and
+       manipulate  the  history file.  When using command-line editing, search
+       commands are available in each editing mode that provide access to  the
        history list.
 
-       The shell allows control over which commands are saved on  the  history
+       The  shell  allows control over which commands are saved on the history
        list.  The H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL and H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE variables may be set to cause the
        shell to save only a subset of the commands entered.  The c\bcm\bmd\bdh\bhi\bis\bst\bt shell
-       option,  if enabled, causes the shell to attempt to save each line of a
-       multi-line command in the same history entry, adding  semicolons  where
-       necessary  to preserve syntactic correctness.  The l\bli\bit\bth\bhi\bis\bst\bt shell option
-       causes the shell to save the command with embedded newlines instead  of
+       option, if enabled, causes the shell to attempt to save each line of  a
+       multi-line  command  in the same history entry, adding semicolons where
+       necessary to preserve syntactic correctness.  The l\bli\bit\bth\bhi\bis\bst\bt shell  option
+       causes  the shell to save the command with embedded newlines instead of
        semicolons.  See the description of the s\bsh\bho\bop\bpt\bt builtin below under S\bSH\bHE\bEL\bLL\bL
        B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  for  information  on  setting  and  unsetting  shell
        options.
 
 H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
-       The  shell  supports a history expansion feature that is similar to the
-       history expansion in c\bcs\bsh\bh.\b.  This section describes what syntax  features
-       are  available.   This  feature  is  enabled by default for interactive
+       The shell supports a history expansion feature that is similar  to  the
+       history  expansion in c\bcs\bsh\bh.\b.  This section describes what syntax features
+       are available.  This feature is  enabled  by  default  for  interactive
        shells, and can be disabled using the +\b+H\bH option to the s\bse\bet\bt builtin com-
        mand (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  Non-interactive shells do not
        perform history expansion by default.
 
        History expansions introduce words from the history list into the input
-       stream,  making  it  easy to repeat commands, insert the arguments to a
+       stream, making it easy to repeat commands, insert the  arguments  to  a
        previous command into the current input line, or fix errors in previous
        commands quickly.
 
-       History  expansion  is  performed  immediately after a complete line is
-       read, before the shell breaks it into words.  It  takes  place  in  two
-       parts.   The  first is to determine which line from the history list to
+       History expansion is performed immediately after  a  complete  line  is
+       read,  before  the  shell  breaks it into words.  It takes place in two
+       parts.  The first is to determine which line from the history  list  to
        use during substitution.  The second is to select portions of that line
        for inclusion into the current one.  The line selected from the history
-       is the _\be_\bv_\be_\bn_\bt, and the portions of that line that  are  acted  upon  are
-       _\bw_\bo_\br_\bd_\bs.   Various  _\bm_\bo_\bd_\bi_\bf_\bi_\be_\br_\bs  are  available  to manipulate the selected
+       is  the  _\be_\bv_\be_\bn_\bt,  and  the portions of that line that are acted upon are
+       _\bw_\bo_\br_\bd_\bs.  Various _\bm_\bo_\bd_\bi_\bf_\bi_\be_\br_\bs are  available  to  manipulate  the  selected
        words.  The line is broken into words in the same fashion as when read-
-       ing  input, so that several _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br-separated words surrounded by
-       quotes are considered one word.  History expansions are  introduced  by
-       the  appearance  of  the  history  expansion  character,  which is !\b! by
-       default.  Only backslash (\\b\) and single quotes can  quote  the  history
-       expansion character.
-
-       Several  characters inhibit history expansion if found immediately fol-
-       lowing the history expansion character, even if it is unquoted:  space,
-       tab,  newline,  carriage return, and =\b=.  If the e\bex\bxt\btg\bgl\blo\bob\bb shell option is
+       ing input, so that several _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br-separated words surrounded  by
+       quotes  are  considered one word.  History expansions are introduced by
+       the appearance of the  history  expansion  character,  which  is  !\b!  by
+       default.   Only  backslash  (\\b\) and single quotes can quote the history
+       expansion character,  but  the  history  expansion  character  is  also
+       treated  as  quoted if it immediately precedes the closing double quote
+       in a double-quoted string.
+
+       Several characters inhibit history expansion if found immediately  fol-
+       lowing  the history expansion character, even if it is unquoted: space,
+       tab, newline, carriage return, and =\b=.  If the e\bex\bxt\btg\bgl\blo\bob\bb shell  option  is
        enabled, (\b( will also inhibit expansion.
 
-       Several shell options settable with the s\bsh\bho\bop\bpt\bt builtin may  be  used  to
-       tailor  the  behavior  of  history  expansion.  If the h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by shell
-       option is enabled (see the description of the s\bsh\bho\bop\bpt\bt builtin), and r\bre\bea\bad\bd-\b-
-       l\bli\bin\bne\be is being used, history substitutions are not immediately passed to
-       the shell parser.  Instead, the expanded  line  is  reloaded  into  the
-       r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer for further modification.  If r\bre\bea\bad\bdl\bli\bin\bne\be is being
-       used, and the h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt shell option is enabled, a failed history sub-
-       stitution will be reloaded into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer for correc-
-       tion.  The -\b-p\bp option to the h\bhi\bis\bst\bto\bor\bry\by builtin command may be used to  see
-       what a history expansion will do before using it.  The -\b-s\bs option to the
-       h\bhi\bis\bst\bto\bor\bry\by builtin may be used to add commands to the end of  the  history
-       list  without  actually  executing them, so that they are available for
-       subsequent recall.
-
-       The shell allows control of the various characters used by the  history
+       Several  shell  options  settable with the s\bsh\bho\bop\bpt\bt builtin may be used to
+       tailor the behavior of history  expansion.   If  the  h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\b shell
+       option is enabled (see the description of the s\bsh\bho\bop\bpt\bt builtin below), and
+       r\bre\bea\bad\bdl\bli\bin\bne\be is being  used,  history  substitutions  are  not  immediately
+       passed  to  the  shell  parser.  Instead, the expanded line is reloaded
+       into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer for further modification.  If r\bre\bea\bad\bdl\bli\bin\bne\be
+       is  being  used,  and  the h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt shell option is enabled, a failed
+       history substitution will be reloaded into the r\bre\bea\bad\bdl\bli\bin\bne\be editing  buffer
+       for  correction.   The  -\b-p\bp option to the h\bhi\bis\bst\bto\bor\bry\by builtin command may be
+       used to see what a history expansion will do before using it.   The  -\b-s\bs
+       option to the h\bhi\bis\bst\bto\bor\bry\by builtin may be used to add commands to the end of
+       the history list without actually executing  them,  so  that  they  are
+       available for subsequent recall.
+
+       The  shell allows control of the various characters used by the history
        expansion mechanism (see the description of h\bhi\bis\bst\btc\bch\bha\bar\brs\bs above under S\bSh\bhe\bel\bll\bl
-       V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs).  The shell uses the history comment character to mark  his-
+       V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs).   The shell uses the history comment character to mark his-
        tory timestamps when writing the history file.
 
    E\bEv\bve\ben\bnt\bt D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
-       An  event designator is a reference to a command line entry in the his-
-       tory list.
+       An event designator is a reference to a command line entry in the  his-
+       tory  list.   Unless  the reference is absolute, events are relative to
+       the current position in the history list.
 
        !\b!      Start a history substitution, except when followed by  a  b\bbl\bla\ban\bnk\bk,
               newline,  carriage return, = or ( (when the e\bex\bxt\btg\bgl\blo\bob\bb shell option
               is enabled using the s\bsh\bho\bop\bpt\bt builtin).
        !\b!_\bn     Refer to command line _\bn.
-       !\b!-\b-_\bn    Refer to the current command line minus _\bn.
+       !\b!-\b-_\bn    Refer to the current command minus _\bn.
        !\b!!\b!     Refer to the previous command.  This is a synonym for `!-1'.
        !\b!_\bs_\bt_\br_\bi_\bn_\bg
-              Refer to the most recent command starting with _\bs_\bt_\br_\bi_\bn_\bg.
+              Refer to the most recent command preceding the current  position
+              in the history list starting with _\bs_\bt_\br_\bi_\bn_\bg.
        !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]
-              Refer to the most recent command containing _\bs_\bt_\br_\bi_\bn_\bg.  The  trail-
-              ing ?\b? may be omitted if _\bs_\bt_\br_\bi_\bn_\bg is followed immediately by a new-
-              line.
+              Refer  to the most recent command preceding the current position
+              in the history list containing _\bs_\bt_\br_\bi_\bn_\bg.  The trailing  ?\b?  may  be
+              omitted if _\bs_\bt_\br_\bi_\bn_\bg is followed immediately by a newline.
        ^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b1^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b2^\b^
-              Quick substitution.  Repeat the last command, replacing  _\bs_\bt_\br_\bi_\bn_\bg_\b1
-              with _\bs_\bt_\br_\bi_\bn_\bg_\b2.  Equivalent to ``!!:s/_\bs_\bt_\br_\bi_\bn_\bg_\b1/_\bs_\bt_\br_\bi_\bn_\bg_\b2/'' (see M\bMo\bod\bd-\b-
-              i\bif\bfi\bie\ber\brs\bs below).
+              Quick  substitution.   Repeat  the  previous  command, replacing
+              _\bs_\bt_\br_\bi_\bn_\bg_\b1 with _\bs_\bt_\br_\bi_\bn_\bg_\b2.  Equivalent  to  ``!!:s/_\bs_\bt_\br_\bi_\bn_\bg_\b1/_\bs_\bt_\br_\bi_\bn_\bg_\b2/''
+              (see M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs below).
        !\b!#\b#     The entire command line typed so far.
 
    W\bWo\bor\brd\bd D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
-       Word designators are used to select desired words from the event.  A  :\b:
-       separates  the event specification from the word designator.  It may be
-       omitted if the word designator begins with a ^\b^, $\b$, *\b*, -\b-, or  %\b%.   Words
-       are  numbered from the beginning of the line, with the first word being
-       denoted by 0 (zero).  Words are inserted into the  current  line  sepa-
+       Word  designators are used to select desired words from the event.  A :\b:
+       separates the event specification from the word designator.  It may  be
+       omitted  if  the word designator begins with a ^\b^, $\b$, *\b*, -\b-, or %\b%.  Words
+       are numbered from the beginning of the line, with the first word  being
+       denoted  by  0  (zero).  Words are inserted into the current line sepa-
        rated by single spaces.
 
        0\b0 (\b(z\bze\ber\bro\bo)\b)
               The zeroth word.  For the shell, this is the command word.
        _\bn      The _\bnth word.
        ^\b^      The first argument.  That is, word 1.
-       $\b$      The last argument.
+       $\b$      The last word.  This is usually  the  last  argument,  but  will
+              expand to the zeroth word if there is only one word in the line.
        %\b%      The word matched by the most recent `?_\bs_\bt_\br_\bi_\bn_\bg?' search.
        _\bx-\b-_\by    A range of words; `-_\by' abbreviates `0-_\by'.
        *\b*      All  of  the words but the zeroth.  This is a synonym for `_\b1_\b-_\b$'.
@@ -3545,100 +3979,107 @@ H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        After the optional word designator, there may appear a sequence of  one
        or more of the following modifiers, each preceded by a `:'.
 
-       h\bh      Remove a trailing file name component, leaving only the head.
-       t\bt      Remove all leading file name components, leaving the tail.
+       h\bh      Remove a trailing filename component, leaving only the head.
+       t\bt      Remove all leading filename components, leaving the tail.
        r\br      Remove a trailing suffix of the form _\b._\bx_\bx_\bx, leaving the basename.
        e\be      Remove all but the trailing suffix.
        p\bp      Print the new command but do not execute it.
        q\bq      Quote the substituted words, escaping further substitutions.
-       x\bx      Quote the substituted words as with q\bq, but break into  words  at
+       x\bx      Quote  the  substituted words as with q\bq, but break into words at
               b\bbl\bla\ban\bnk\bks\bs and newlines.
        s\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/
-              Substitute  _\bn_\be_\bw  for  the  first  occurrence of _\bo_\bl_\bd in the event
-              line.  Any delimiter can be used  in  place  of  /.   The  final
-              delimiter  is  optional if it is the last character of the event
-              line.  The delimiter may be quoted in _\bo_\bl_\bd and _\bn_\be_\bw with a  single
-              backslash.   If & appears in _\bn_\be_\bw, it is replaced by _\bo_\bl_\bd.  A sin-
-              gle backslash will quote the &.  If _\bo_\bl_\bd is null, it  is  set  to
-              the  last  _\bo_\bl_\bd substituted, or, if no previous history substitu-
+              Substitute _\bn_\be_\bw for the first occurrence  of  _\bo_\bl_\bd  in  the  event
+              line.   Any  delimiter  can  be  used  in place of /.  The final
+              delimiter is optional if it is the last character of  the  event
+              line.   The delimiter may be quoted in _\bo_\bl_\bd and _\bn_\be_\bw with a single
+              backslash.  If & appears in _\bn_\be_\bw, it is replaced by _\bo_\bl_\bd.  A  sin-
+              gle  backslash  will  quote the &.  If _\bo_\bl_\bd is null, it is set to
+              the last _\bo_\bl_\bd substituted, or, if no previous  history  substitu-
               tions took place, the last _\bs_\bt_\br_\bi_\bn_\bg in a !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]  search.
        &\b&      Repeat the previous substitution.
        g\bg      Cause changes to be applied over the entire event line.  This is
-              used  in  conjunction  with `:\b:s\bs' (e.g., `:\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/') or `:\b:&\b&'.
-              If used with `:\b:s\bs', any delimiter can be used in place of /,  and
-              the  final  delimiter is optional if it is the last character of
+              used in conjunction with `:\b:s\bs' (e.g.,  `:\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/')  or  `:\b:&\b&'.
+              If  used with `:\b:s\bs', any delimiter can be used in place of /, and
+              the final delimiter is optional if it is the last  character  of
               the event line.  An a\ba may be used as a synonym for g\bg.
-       G\bG      Apply the following `s\bs' modifier once to each word in the  event
+       G\bG      Apply  the following `s\bs' modifier once to each word in the event
               line.
 
 S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
        Unless otherwise noted, each builtin command documented in this section
        as accepting options preceded by -\b- accepts -\b--\b- to signify the end of the
-       options.   The  :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not accept options
-       and do not treat -\b--\b- specially.  The e\bex\bxi\bit\bt, l\blo\bog\bgo\bou\but\bt, b\bbr\bre\bea\bak\bk, c\bco\bon\bnt\bti\bin\bnu\bue\be, l\ble\bet\bt,
-       and  s\bsh\bhi\bif\bft\bt builtins accept and process arguments beginning with -\b- with-
-       out requiring -\b--\b-.  Other builtins that accept  arguments  but  are  not
-       specified  as accepting options interpret arguments beginning with -\b- as
-       invalid options and require -\b--\b- to prevent this interpretation.
+       options.  The :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not  accept  options
+       and  do  not treat -\b--\b- specially.  The e\bex\bxi\bit\bt, l\blo\bog\bgo\bou\but\bt, r\bre\bet\btu\bur\brn\bn, b\bbr\bre\bea\bak\bk, c\bco\bon\bn-\b-
+       t\bti\bin\bnu\bue\be, l\ble\bet\bt, and s\bsh\bhi\bif\bft\bt builtins accept and process  arguments  beginning
+       with  -\b- without requiring -\b--\b-.  Other builtins that accept arguments but
+       are not specified as accepting options  interpret  arguments  beginning
+       with  -\b-  as  invalid options and require -\b--\b- to prevent this interpreta-
+       tion.
        :\b: [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
               No effect; the command does nothing beyond  expanding  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
-              and  performing any specified redirections.  A zero exit code is
-              returned.
+              and performing any specified redirections.  The return status is
+              zero.
 
         .\b.  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
        s\bso\bou\bur\brc\bce\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
               Read and execute commands from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  in  the  current  shell
               environment  and return the exit status of the last command exe-
-              cuted from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\bdoes not contain a slash, file
-              names  in  P\bPA\bAT\bTH\bH  are used to find the directory containing _\bf_\bi_\bl_\be_\b-
-              _\bn_\ba_\bm_\be.  The file searched for in P\bPA\bAT\bTH\bH  need  not  be  executable.
+              cuted from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\b does  not  contain  a  slash,
+              filenames  in  P\bPA\bAT\bTH\bH  are  used  to find the directory containing
+              _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.  The file searched for in P\bPA\bAT\bTH\bH need not be executable.
               When  b\bba\bas\bsh\bh  is  not  in  _\bp_\bo_\bs_\bi_\bx  _\bm_\bo_\bd_\be,  the  current directory is
               searched if no file is found in P\bPA\bAT\bTH\bH.  If the s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh  option
               to  the  s\bsh\bho\bop\bpt\bt  builtin  command  is turned off, the P\bPA\bAT\bTH\bH is not
               searched.  If any _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs are supplied, they become the  posi-
               tional  parameters  when  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  is  executed.  Otherwise the
-              positional parameters are unchanged.  The return status  is  the
-              status  of  the  last  command exited within the script (0 if no
-              commands are executed), and false if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is  not  found  or
+              positional parameters  are  unchanged.   If  the  -\b-T\bT  option  is
+              enabled,  s\bso\bou\bur\brc\bce\be  inherits  any trap on D\bDE\bEB\bBU\bUG\bG; if it is not, any
+              D\bDE\bEB\bBU\bUG\bG trap string is saved  and  restored  around  the  call  to
+              s\bso\bou\bur\brc\bce\be,  and s\bso\bou\bur\brc\bce\be unsets the D\bDE\bEB\bBU\bUG\bG trap while it executes.  If
+              -\b-T\bT is not set, and the sourced file changes the D\bDE\bEB\bBU\bUG\bG trap,  the
+              new  value is retained when s\bso\bou\bur\brc\bce\be completes.  The return status
+              is the status of the last command exited within the script (0 if
+              no commands are executed), and false if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is not found or
               cannot be read.
 
        a\bal\bli\bia\bas\bs [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
               A\bAl\bli\bia\bas\bs with no arguments or with the -\b-p\bp option prints the list of
-              aliases in the form a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be on standard  output.   When
-              arguments  are supplied, an alias is defined for each _\bn_\ba_\bm_\be whose
-              _\bv_\ba_\bl_\bu_\bis given.  A trailing space in  _\bv_\ba_\bl_\bu_\be causes the next word
+              aliases  in  the form a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be on standard output.  When
+              arguments are supplied, an alias is defined for each _\bn_\ba_\bm_\b whose
+              _\bv_\ba_\bl_\bu_\b is given.  A trailing space in _\bv_\ba_\bl_\bu_\be causes the next word
               to be checked for alias substitution when the alias is expanded.
-              For each _\bn_\ba_\bm_\be in the argument list for which no  _\bv_\ba_\bl_\bu_\be  is  sup-
-              plied,  the  name  and  value  of  the  alias is printed.  A\bAl\bli\bia\bas\bs
-              returns true unless a _\bn_\ba_\bm_\be is given for which no alias has  been
+              For  each  _\bn_\ba_\bm_\be  in the argument list for which no _\bv_\ba_\bl_\bu_\be is sup-
+              plied, the name and  value  of  the  alias  is  printed.   A\bAl\bli\bia\bas\bs
+              returns  true unless a _\bn_\ba_\bm_\be is given for which no alias has been
               defined.
 
        b\bbg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
-              Resume  each  suspended  job _\bj_\bo_\bb_\bs_\bp_\be_\bc in the background, as if it
+              Resume each suspended job _\bj_\bo_\bb_\bs_\bp_\be_\bc in the background,  as  if  it
               had been started with &\b&.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's
-              notion  of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.  b\bbg\bg _\bj_\bo_\bb_\bs_\bp_\be_\bc returns 0 unless
-              run when job control is disabled or, when run with  job  control
-              enabled,  any  specified  _\bj_\bo_\bb_\bs_\bp_\be_\bc  was  not found or was started
+              notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.  b\bbg\bg _\bj_\bo_\bb_\bs_\bp_\be_\bc returns 0  unless
+              run  when  job control is disabled or, when run with job control
+              enabled, any specified _\bj_\bo_\bb_\bs_\bp_\be_\bc was  not  found  or  was  started
               without job control.
 
-       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-l\blp\bps\bsv\bvP\bPS\bSV\bV]
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-l\blp\bps\bsv\bvP\bPS\bSV\bVX\bX]
        b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-q\bq _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-u\bu _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-r\br _\bk_\be_\by_\bs_\be_\bq]
        b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
        b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-x\bx _\bk_\be_\by_\bs_\be_\bq:_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
        b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] _\bk_\be_\by_\bs_\be_\bq:_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
-       b\bbi\bin\bnd\bd _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
-              Display current r\bre\bea\bad\bdl\bli\bin\bne\be key and function bindings, bind  a  key
-              sequence  to  a  r\bre\bea\bad\bdl\bli\bin\bne\be  function  or macro, or set a r\bre\bea\bad\bdl\bli\bin\bne\be
-              variable.  Each non-option argument is a  command  as  it  would
-              appear  in  _\b._\bi_\bn_\bp_\bu_\bt_\br_\bc, but each binding or command must be passed
-              as a separate argument; e.g.,  '"\C-x\C-r":  re-read-init-file'.
+       b\bbi\bin\bnd\b[-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] _\bk_\be_\by_\bs_\be_\bq:_\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
+              Display  current  r\bre\bea\bad\bdl\bli\bin\bne\be key and function bindings, bind a key
+              sequence to a r\bre\bea\bad\bdl\bli\bin\bne\be function or  macro,  or  set  a  r\bre\bea\bad\bdl\bli\bin\bne\be
+              variable.   Each  non-option  argument  is a command as it would
+              appear in _\b._\bi_\bn_\bp_\bu_\bt_\br_\bc, but each binding or command must  be  passed
+              as  a  separate argument; e.g., '"\C-x\C-r": re-read-init-file'.
               Options, if supplied, have the following meanings:
               -\b-m\bm _\bk_\be_\by_\bm_\ba_\bp
                      Use _\bk_\be_\by_\bm_\ba_\bp as the keymap to be affected by the subsequent
                      bindings.  Acceptable _\bk_\be_\by_\bm_\ba_\bp names are _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\b-
-                     _\bd_\ba_\br_\bd_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b,  _\bv_\bi_\b, _\bv_\bi_\b-_\bm_\bo_\bv_\be_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd,
-                     and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs  is
-                     equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.
+                     _\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b,  _\bv_\bi_\b,  _\bv_\bi_\b-_\bm_\bo_\bv_\be_\b,  _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd,
+                     and  _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.   _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd (_\bv_\bi_\b-_\bm_\bo_\bv_\be
+                     is also a synonym); _\be_\bm_\ba_\bc_\bs is  equivalent  to  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\b-
+                     _\bd_\ba_\br_\bd.
               -\b-l\bl     List the names of all r\bre\bea\bad\bdl\bli\bin\bne\be functions.
               -\b-p\bp     Display  r\bre\bea\bad\bdl\bli\bin\bne\be  function  names and bindings in such a
                      way that they can be re-read.
@@ -3668,6 +4109,9 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      command  changes  the  value  of  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE  or R\bRE\bEA\bAD\bD-\b-
                      L\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT, those new values will  be  reflected  in  the
                      editing state.
+              -\b-X\bX     List  all  key  sequences bound to shell commands and the
+                     associated commands in a format that  can  be  reused  as
+                     input.
 
               The  return value is 0 unless an unrecognized option is given or
               an error occurred.
@@ -3689,7 +4133,7 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
        c\bca\bal\bll\ble\ber\br [_\be_\bx_\bp_\br]
               Returns the context of any active subroutine call (a shell func-
-              tion or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins  With-
+              tion or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins).  With-
               out _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number and source filename of
               the current subroutine call.  If a non-negative integer is  sup-
               plied as _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number, subroutine name,
@@ -3700,31 +4144,43 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               routine call or _\be_\bx_\bp_\br does not correspond to a valid position  in
               the call stack.
 
-       c\bcd\bd [-\b-L\bL|\b|-\b-P\bP] [_\bd_\bi_\br]
-              Change  the  current directory to _\bd_\bi_\br.  The variable H\bHO\bOM\bME\bE is the
-              default _\bd_\bi_\br.  The variable C\bCD\bDP\bPA\bAT\bTH\bH defines the  search  path  for
-              the  directory  containing  _\bd_\bi_\br.  Alternative directory names in
-              C\bCD\bDP\bPA\bAT\bTH\bH are separated by a colon (:).  A null directory  name  in
-              C\bCD\bDP\bPA\bAT\bTH\bH  is  the  same as the current directory, i.e., ``.\b.''.  If
-              _\bd_\bi_\br begins with a slash (/), then C\bCD\bDP\bPA\bAT\bTH\bH is  not  used.  The  -\b-P\bP
-              option  says  to use the physical directory structure instead of
-              following symbolic links (see also the  -\b-P\bP  option  to  the  s\bse\bet\bt
-              builtin command); the -\b-L\bL option forces symbolic links to be fol-
-              lowed.  An argument of -\b- is equivalent to $\b$O\bOL\bLD\bDP\bPW\bWD\bD.   If  a  non-
-              empty  directory  name from C\bCD\bDP\bPA\bAT\bTH\bH is used, or if -\b- is the first
-              argument, and the directory change is successful,  the  absolute
-              pathname of the new working directory is written to the standard
-              output.  The return value is true if the directory was  success-
-              fully changed; false otherwise.
+       c\bcd\bd [-\b-L\bL|[-\b-P\bP [-\b-e\be]] [-@]] [_\bd_\bi_\br]
+              Change  the  current  directory to _\bd_\bi_\br.  if _\bd_\bi_\br is not supplied,
+              the value of the H\bHO\bOM\bME\bE shell variable is the default.  Any  addi-
+              tional arguments following _\bd_\bi_\br are ignored.  The variable C\bCD\bDP\bPA\bAT\bTH\bH
+              defines the search path for the directory containing  _\bd_\bi_\br:  each
+              directory  name  in  C\bCD\bDP\bPA\bAT\bTH\bH  is  searched  for _\bd_\bi_\br.  Alternative
+              directory names in C\bCD\bDP\bPA\bAT\bTH\bH are separated by a colon (:).  A  null
+              directory  name  in C\bCD\bDP\bPA\bAT\bTH\bH is the same as the current directory,
+              i.e., ``.\b.''.  If _\bd_\bi_\br begins with a slash (/), then C\bCD\bDP\bPA\bAT\bTH\bH is not
+              used.   The  -\b-P\bP  option  causes c\bcd\bd to use the physical directory
+              structure by resolving symbolic links while traversing  _\bd_\bi_\br  and
+              before processing instances of _\b._\b. in _\bd_\bi_\br (see also the -\b-P\bP option
+              to the s\bse\bet\bt builtin command); the -\b-L\bL option forces symbolic links
+              to  be followed by resolving the link after processing instances
+              of _\b._\b. in _\bd_\bi_\br.  If _\b._\b. appears in _\bd_\bi_\br, it is processed by removing
+              the  immediately previous pathname component from _\bd_\bi_\br, back to a
+              slash or the beginning of _\bd_\bi_\br.  If the  -\b-e\be  option  is  supplied
+              with  -\b-P\bP,  and  the current working directory cannot be success-
+              fully determined after a successful directory  change,  c\bcd\bd  will
+              return  an unsuccessful status.  On systems that support it, the
+              -\b-@\b@ option presents the extended  attributes  associated  with  a
+              file  as  a directory.  An argument of -\b- is converted to $\b$O\bOL\bLD\bDP\bPW\bWD\bD
+              before the directory change is attempted.  If a non-empty direc-
+              tory  name  from  C\bCD\bDP\bPA\bAT\bTH\bH is used, or if -\b- is the first argument,
+              and the directory change is successful, the absolute pathname of
+              the  new  working  directory  is written to the standard output.
+              The return value is  true  if  the  directory  was  successfully
+              changed; false otherwise.
 
        c\bco\bom\bmm\bma\ban\bnd\bd [-\b-p\bpV\bVv\bv] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg ...]
               Run  _\bc_\bo_\bm_\bm_\ba_\bn_\bd  with  _\ba_\br_\bg_\bs  suppressing  the normal shell function
-              lookup. Only builtin commands or commands found in the P\bPA\bAT\bTH\b are
+              lookup.  Only builtin commands or commands found in the P\bPA\bAT\bTH\bH are
               executed.   If the -\b-p\bp option is given, the search for _\bc_\bo_\bm_\bm_\ba_\bn_\bd is
               performed using a default value for P\bPA\bAT\bTH\bH that is  guaranteed  to
               find  all  of  the  standard  utilities.  If either the -\b-V\bV or -\b-v\bv
               option is supplied, a description of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is printed.  The -\b-v\bv
-              option  causes a single word indicating the command or file name
+              option  causes  a single word indicating the command or filename
               used to invoke _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be displayed; the -\b-V\bV option produces a
               more  verbose  description.  If the -\b-V\bV or -\b-v\bv option is supplied,
               the exit status is 0 if _\bc_\bo_\bm_\bm_\ba_\bn_\bd was found, and  1  if  not.   If
@@ -3740,54 +4196,63 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               various  shell  variables  set  by  the  programmable completion
               facilities, while available, will not have useful values.
 
-              The matches will be generated in the same way  as  if  the  pro-
-              grammable  completion  code  had  generated them directly from a
-              completion specification with the same flags.  If _\bw_\bo_\br_\bd is speci-
-              fied, only those completions matching _\bw_\bo_\br_\bd will be displayed.
+              The matches will be generated in the same way as if the program-
+              mable completion code had generated them directly from a comple-
+              tion specification with the same flags.  If _\bw_\bo_\br_\bd  is  specified,
+              only those completions matching _\bw_\bo_\br_\bd will be displayed.
 
               The  return  value is true unless an invalid option is supplied,
               or no matches were generated.
 
-       c\bco\bom\bmp\bpl\ble\bet\bte\be [-\b-a\bab\bbc\bcd\bde\bef\bfg\bgj\bjk\bks\bsu\buv\bv] [-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn] [-\b-E\bE] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt]
-       [-\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt] [-\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd]
+       c\bco\bom\bmp\bpl\ble\bet\bte\be [-\b-a\bab\bbc\bcd\bde\bef\bfg\bgj\bjk\bks\bsu\buv\bv] [-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bE] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn]  [-\b-G\bG  _\bg_\bl_\bo_\bb_\b-
+       _\bp_\ba_\bt] [-\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt] [-\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd]
               [-\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt] [-\b-P\bP _\bp_\br_\be_\bf_\bi_\bx] [-\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be _\b._\b._\b.]
-       c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-p\bpr\br [-\b-E\bE] [_\bn_\ba_\bm_\be ...]
-              Specify how arguments to each _\bn_\ba_\bm_\be should be completed.  If  the
-              -\b-p\b option  is supplied, or if no options are supplied, existing
-              completion specifications are printed in a way that allows  them
+       c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-p\bpr\br [-\b-D\bDE\bE] [_\bn_\ba_\bm_\be ...]
+              Specify  how arguments to each _\bn_\ba_\bm_\be should be completed.  If the
+              -\b-p\boption is supplied, or if no options are  supplied,  existing
+              completion  specifications are printed in a way that allows them
               to be reused as input.  The -\b-r\br option removes a completion spec-
-              ification for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all  com-
-              pletion  specifications.   The  -\b-E\bE  option  indicates  that  the
-              remaining options and actions should apply to ``empty''  command
-              completion; that is, completion attempted on a blank line.
-
-              The  process  of  applying  these completion specifications when
-              word completion is  attempted  is  described  above  under  P\bPr\bro\bo-\b-
-              g\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn.
-
-              Other  options,  if specified, have the following meanings.  The
-              arguments to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary,  the
-              -\b-P\bP  and -\b-S\bS options) should be quoted to protect them from expan-
+              ification  for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all com-
+              pletion  specifications.   The  -\b-D\bD  option  indicates  that  the
+              remaining  options  and  actions should apply to the ``default''
+              command completion; that is, completion attempted on  a  command
+              for  which  no  completion  has previously been defined.  The -\b-E\bE
+              option indicates that the remaining options and  actions  should
+              apply  to  ``empty''  command  completion;  that  is, completion
+              attempted on a blank line.
+
+              The process of applying  these  completion  specifications  when
+              word  completion  is attempted is described above under P\bPr\bro\bog\bgr\bra\bam\bm-\b-
+              m\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn.
+
+              Other options, if specified, have the following  meanings.   The
+              arguments  to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary, the
+              -\b-P\bP and -\b-S\bS options) should be quoted to protect them from  expan-
               sion before the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin is invoked.
               -\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn
-                      The _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn controls several aspects  of  the  comp-
-                      spec's  behavior beyond the simple generation of comple-
+                      The  _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn  controls  several aspects of the comp-
+                      spec's behavior beyond the simple generation of  comple-
                       tions.  _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn may be one of:
                       b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt
                               Perform the rest of the default b\bba\bas\bsh\bh completions
                               if the compspec generates no matches.
-                      d\bde\bef\bfa\bau\bul\blt\bt Use  readline's  default  filename completion if
+                      d\bde\bef\bfa\bau\bul\blt\bt Use readline's default  filename  completion  if
                               the compspec generates no matches.
                       d\bdi\bir\brn\bna\bam\bme\bes\bs
-                              Perform directory name completion if  the  comp-
+                              Perform  directory  name completion if the comp-
                               spec generates no matches.
                       f\bfi\bil\ble\ben\bna\bam\bme\bes\bs
-                              Tell  readline that the compspec generates file-
-                              names, so it can perform  any  filename-specific
-                              processing  (like  adding  a  slash to directory
-                              names, quoting special characters, or  suppress-
-                              ing  trailing spaces).  Intended to be used with
+                              Tell readline that the compspec generates  file-
+                              names,  so  it can perform any filename-specific
+                              processing (like adding  a  slash  to  directory
+                              names,  quoting special characters, or suppress-
+                              ing trailing spaces).  Intended to be used  with
                               shell functions.
+                      n\bno\boq\bqu\buo\bot\bte\be Tell  readline  not to quote the completed words
+                              if they are filenames (quoting filenames is  the
+                              default).
+                      n\bno\bos\bso\bor\brt\bt  Tell  readline  not to sort the list of possible
+                              completions alphabetically.
                       n\bno\bos\bsp\bpa\bac\bce\be Tell  readline  not  to  append  a  space   (the
                               default)  to  words  completed at the end of the
                               line.
@@ -3828,9 +4293,9 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               -\b-k\bk.
                       r\bru\bun\bnn\bni\bin\bng\bg Names of running jobs, if job control is active.
                       s\bse\ber\brv\bvi\bic\bce\be Service names.  May also be specified as -\b-s\bs.
-                      s\bse\bet\bto\bop\bpt\bt  Valid arguments for the -\b-o\bo  option  to  the  s\bse\bet\bt
+                      s\bse\bet\bto\bop\bpt\bt  Valid  arguments  for  the  -\b-o\bo option to the s\bse\bet\bt
                               builtin.
-                      s\bsh\bho\bop\bpt\bt   Shell  option  names  as  accepted  by the s\bsh\bho\bop\bpt\bt
+                      s\bsh\bho\bop\bpt\bt   Shell option names  as  accepted  by  the  s\bsh\bho\bop\bpt\bt
                               builtin.
                       s\bsi\big\bgn\bna\bal\bl  Signal names.
                       s\bst\bto\bop\bpp\bpe\bed\bd Names of stopped jobs, if job control is active.
@@ -3838,36 +4303,41 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       v\bva\bar\bri\bia\bab\bbl\ble\be
                               Names of all shell variables.  May also be spec-
                               ified as -\b-v\bv.
-              -\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt
-                      The filename expansion pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt  is  expanded  to
-                      generate the possible completions.
-              -\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
-                      The  _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt  is  split using the characters in the I\bIF\bFS\bS
-                      special variable as delimiters, and each resultant  word
-                      is  expanded.   The possible completions are the members
-                      of the resultant list which match the  word  being  com-
-                      pleted.
               -\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd
-                      _\bc_\bo_\bm_\bm_\ba_\bn_\b is  executed in a subshell environment, and its
+                      _\bc_\bo_\bm_\bm_\ba_\bn_\bis executed in a subshell environment,  and  its
                       output is used as the possible completions.
               -\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
-                      The shell function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in  the  current
-                      shell  environment.  When it finishes, the possible com-
-                      pletions are retrieved from the value of  the  C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
-                      array variable.
-              -\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt
-                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt  is  a pattern as used for filename expansion.
-                      It is applied to the list of possible completions gener-
-                      ated  by  the  preceding options and arguments, and each
-                      completion matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed from the  list.
-                      A  leading  !\b!  in _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt negates the pattern; in this
-                      case, any completion not matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is  removed.
+                      The  shell  function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in the current
+                      shell environment.  When the function is  executed,  the
+                      first  argument  ($\b$1\b1)  is  the name of the command whose
+                      arguments are being completed, the second argument  ($\b$2\b2)
+                      is the word being completed, and the third argument ($\b$3\b3)
+                      is the word preceding the word being  completed  on  the
+                      current  command  line.   When it finishes, the possible
+                      completions are retrieved from the value of the  C\bCO\bOM\bMP\bPR\bRE\bE-\b-
+                      P\bPL\bLY\bY array variable.
+              -\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt
+                      The  pathname  expansion  pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt is expanded to
+                      generate the possible completions.
               -\b-P\bP _\bp_\br_\be_\bf_\bi_\bx
-                      _\bp_\br_\be_\bf_\bi_\b is  added at the beginning of each possible com-
+                      _\bp_\br_\be_\bf_\bi_\bis added at the beginning of each  possible  com-
                       pletion after all other options have been applied.
               -\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx
                       _\bs_\bu_\bf_\bf_\bi_\bx is appended to each possible completion after all
                       other options have been applied.
+              -\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                      The _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is split using the characters  in  the  I\bIF\bFS\bS
+                      special  variable as delimiters, and each resultant word
+                      is expanded.  The possible completions are  the  members
+                      of  the  resultant  list which match the word being com-
+                      pleted.
+              -\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt
+                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is a pattern as used for  pathname  expansion.
+                      It is applied to the list of possible completions gener-
+                      ated by the preceding options and  arguments,  and  each
+                      completion  matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed from the list.
+                      A leading !\b! in _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt negates the  pattern;  in  this
+                      case, any completion not matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed.
 
               The  return  value is true unless an invalid option is supplied,
               an option other than -\b-p\bp or -\b-r\br is supplied without a  _\bn_\ba_\bm_\be  argu-
@@ -3875,43 +4345,51 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               for a _\bn_\ba_\bm_\be for which no specification exists, or an error occurs
               adding a completion specification.
 
-       c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
+       c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bE] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
               Modify  completion  options  for  each  _\bn_\ba_\bm_\be  according  to  the
-              _\bo_\bp_\bt_\bi_\bo_\bns, or for the currently-execution completion if  no  _\bn_\ba_\bm_\bes
+              _\bo_\bp_\bt_\bi_\bo_\bns, or for the currently-executing completion if  no  _\bn_\ba_\bm_\bes
               are  supplied.   If no _\bo_\bp_\bt_\bi_\bo_\bns are given, display the completion
               options for each _\bn_\ba_\bm_\be or the current completion.   The  possible
               values  of  _\bo_\bp_\bt_\bi_\bo_\bn  are  those  valid  for  the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin
-              described above.
+              described above.  The -\b-D\bD option  indicates  that  the  remaining
+              options should apply to the ``default'' command completion; that
+              is, completion attempted on a command for  which  no  completion
+              has  previously  been defined.  The -\b-E\bE option indicates that the
+              remaining options should apply to ``empty'' command  completion;
+              that is, completion attempted on a blank line.
 
-       The return value is true unless  an  invalid  option  is  supplied,  an
-       attempt  is  made to modify the options for a _\bn_\ba_\bm_\be for which no comple-
-       tion specification exists, or an output error occurs.
+              The  return  value is true unless an invalid option is supplied,
+              an attempt is made to modify the options for a _\bn_\ba_\bm_\be for which no
+              completion specification exists, or an output error occurs.
 
        c\bco\bon\bnt\bti\bin\bnu\bue\be [_\bn]
               Resume the next iteration of the enclosing f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or
-              s\bse\bel\ble\bec\bct\b loop.   If  _\bn  is specified, resume at the _\bnth enclosing
-              loop.  _\bn must be >= 1.  If _\bn  is  greater  than  the  number  of
-              enclosing  loops,  the  last  enclosing  loop (the ``top-level''
+              s\bse\bel\ble\bec\bct\bloop.  If _\bn is specified, resume  at  the  _\bnth  enclosing
+              loop.   _\bn  must  be  >=  1.   If _\bn is greater than the number of
+              enclosing loops, the  last  enclosing  loop  (the  ``top-level''
               loop) is resumed.  The return value is 0 unless _\bn is not greater
               than or equal to 1.
 
-       d\bde\bec\bcl\bla\bar\bre\be [-\b-a\baA\bAf\bfF\bFi\bil\blr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
-       t\bty\byp\bpe\bes\bse\bet\bt [-\b-a\baA\bAf\bfF\bFi\bil\blr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
-              Declare  variables and/or give them attributes.  If no _\bn_\ba_\bm_\bes are
-              given then display the values of variables.  The -\b-p\bp option  will
+       d\bde\bec\bcl\bla\bar\bre\be [-\b-a\baA\bAf\bfF\bFg\bgi\bil\bln\bnr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+       t\bty\byp\bpe\bes\bse\bet\bt [-\b-a\baA\bAf\bfF\bFg\bgi\bil\bln\bnr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+              Declare variables and/or give them attributes.  If no _\bn_\ba_\bm_\bes  are
+              given  then display the values of variables.  The -\b-p\bp option will
               display the attributes and values of each _\bn_\ba_\bm_\be.  When -\b-p\bp is used
-              with _\bn_\ba_\bm_\be arguments, additional options are ignored.  When -\b-p\bp is
-              supplied  without _\bn_\ba_\bm_\be arguments, it will display the attributes
-              and values of all variables having the attributes  specified  by
-              the  additional  options.  If no other options are supplied with
-              -\b-p\bp, d\bde\bec\bcl\bla\bar\bre\be will display the attributes and values of all  shell
-              variables.   The  -\b-f\bf  option  will restrict the display to shell
-              functions.  The -\b-F\bF option inhibits the display of function defi-
-              nitions;  only the function name and attributes are printed.  If
-              the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled  using  s\bsh\bho\bop\bpt\bt,  the  source
-              file name and line number where the function is defined are dis-
-              played as well.   The  -\b-F\bF  option  implies  -\b-f\bf.   The  following
-              options  can  be  used  to restrict output to variables with the
+              with  _\bn_\ba_\bm_\be  arguments, additional options, other than -\b-f\bf and -\b-F\bF,
+              are ignored.  When -\b-p\bp is supplied  without  _\bn_\ba_\bm_\be  arguments,  it
+              will  display  the attributes and values of all variables having
+              the attributes specified by the additional options.  If no other
+              options   are   supplied  with  -\b-p\bp,  d\bde\bec\bcl\bla\bar\bre\be  will  display  the
+              attributes and values of all shell  variables.   The  -\b-f\bf  option
+              will  restrict  the  display  to shell functions.  The -\b-F\bF option
+              inhibits the display of function definitions; only the  function
+              name  and  attributes are printed.  If the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option
+              is enabled using s\bsh\bho\bop\bpt\bt, the source file  name  and  line  number
+              where each _\bn_\ba_\bm_\be is defined are displayed as well.  The -\b-F\bF option
+              implies -\b-f\bf.  The -\b-g\bg option forces variables  to  be  created  or
+              modified at the global scope, even when d\bde\bec\bcl\bla\bar\bre\be is executed in a
+              shell function.  It is ignored in all other cases.  The  follow-
+              ing options can be used to restrict output to variables with the
               specified attribute or to give variables attributes:
               -\b-a\ba     Each _\bn_\ba_\bm_\be  is  an  indexed  array  variable  (see  A\bAr\brr\bra\bay\bys\bs
                      above).
@@ -3919,11 +4397,18 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      above).
               -\b-f\bf     Use function names only.
               -\b-i\bi     The variable is treated as an integer; arithmetic evalua-
-                     tion  (see  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN )\b) is performed when the
-                     variable is assigned a value.
+                     tion  (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above) is performed when
+                     the variable is assigned a value.
               -\b-l\bl     When the variable is assigned  a  value,  all  upper-case
                      characters  are  converted to lower-case.  The upper-case
                      attribute is disabled.
+              -\b-n\bn     Give each _\bn_\ba_\bm_\be the _\bn_\ba_\bm_\be_\br_\be_\bf attribute, making  it  a  name
+                     reference  to  another  variable.  That other variable is
+                     defined by the value of _\bn_\ba_\bm_\be.   All  references,  assign-
+                     ments,  and  attribute  modifications to _\bn_\ba_\bm_\be, except for
+                     changing the -\b-n\bn attribute itself, are  performed  on  the
+                     variable   referenced   by  _\bn_\ba_\bm_\be's  value.   The  nameref
+                     attribute cannot be applied to array variables.
               -\b-r\br     Make _\bn_\ba_\bm_\bes readonly.  These names cannot then be assigned
                      values by subsequent assignment statements or unset.
               -\b-t\bt     Give  each  _\bn_\ba_\bm_\be  the  _\bt_\br_\ba_\bc_\be attribute.  Traced functions
@@ -3938,123 +4423,132 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
               Using  `+'  instead of `-' turns off the attribute instead, with
               the exceptions that +\b+a\ba may not be used to destroy an array vari-
-              able  and  +\b+r\br w\bwi\bil\bll\bl n\bno\bot\bt r\bre\bem\bmo\bov\bve\be t\bth\bhe\be r\bre\bea\bad\bdo\bon\bnl\bly\by a\bat\btt\btr\bri\bib\bbu\but\bte\be.\b.  W\bWh\bhe\ben\bn u\bus\bse\bed\bd
-              i\bin\bn a\ba f\bfu\bun\bnc\bct\bti\bio\bon\bn,\b, m\bma\bak\bke\bes\bs e\bea\bac\bch\bh _\bn_\ba_\bm_\be l\blo\boc\bca\bal\bl,\b, a\bas\bs w\bwi\bit\bth\bh t\bth\bhe\be l\blo\boc\bca\bal\bl command.
-              If a variable name is followed by =_\bv_\ba_\bl_\bu_\be, the value of the vari-
-              able is set to _\bv_\ba_\bl_\bu_\be.  The return value is 0 unless  an  invalid
-              option  is  encountered, an attempt is made to define a function
-              using ``-f foo=bar'', an attempt is made to assign a value to  a
-              readonly  variable,  an  attempt is made to assign a value to an
-              array variable without using the compound assignment syntax (see
-              A\bAr\brr\bra\bay\bys\bs  above),  one  of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable
-              name, an attempt is made to turn off readonly status for a read-
-              only  variable,  an attempt is made to turn off array status for
-              an array variable, or an attempt is made to display a  non-exis-
-              tent function with -\b-f\bf.
-
-       d\bdi\bir\brs\bs [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b] [\b[-\b-c\bcp\bpl\blv\bv]\b]
-              Without  options,  displays  the  list  of  currently remembered
-              directories.  The default display  is  on  a  single  line  with
-              directory  names  separated by spaces.  Directories are added to
-              the list with  the  p\bpu\bus\bsh\bhd\bd  command;  the  p\bpo\bop\bpd\bd  command  removes
-              entries from the list.
-              +\b+_\bn     Displays the _\bnth entry counting from the left of the list
-                     shown by d\bdi\bir\brs\bs when invoked without options, starting with
-                     zero.
-              -\b-_\bn     Displays  the  _\bnth  entry  counting from the right of the
-                     list shown by d\bdi\bir\brs\bs when invoked without options, starting
-                     with zero.
+              able  and  +\b+r\br will not remove the readonly attribute.  When used
+              in a function, d\bde\bec\bcl\bla\bar\bre\be and t\bty\byp\bpe\bes\bse\bet\bt make each _\bn_\ba_\bm_\be local, as with
+              the l\blo\boc\bca\bal\bl command, unless the -\b-g\bg option is supplied.  If a vari-
+              able name is followed by =_\bv_\ba_\bl_\bu_\be, the value of  the  variable  is
+              set  to  _\bv_\ba_\bl_\bu_\be.  When using -\b-a\ba or -\b-A\bA and the compound assignment
+              syntax to create array variables, additional attributes  do  not
+              take effect until subsequent assignments.  The return value is 0
+              unless an invalid option is encountered, an attempt is  made  to
+              define  a  function  using ``-f foo=bar'', an attempt is made to
+              assign a value to a readonly variable, an  attempt  is  made  to
+              assign  a  value to an array variable without using the compound
+              assignment syntax (see A\bAr\brr\bra\bay\bys\bs above), one of the _\bn_\ba_\bm_\be_\bs is not  a
+              valid  shell variable name, an attempt is made to turn off read-
+              only status for a readonly variable, an attempt is made to  turn
+              off array status for an array variable, or an attempt is made to
+              display a non-existent function with -\b-f\bf.
+
+       d\bdi\bir\brs\bs [\b[-\b-c\bcl\blp\bpv\bv]\b] [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b]
+              Without options,  displays  the  list  of  currently  remembered
+              directories.   The  default  display  is  on  a single line with
+              directory names separated by spaces.  Directories are  added  to
+              the  list  with  the  p\bpu\bus\bsh\bhd\bd  command;  the  p\bpo\bop\bpd\bd command removes
+              entries from the list.  The  current  directory  is  always  the
+              first directory in the stack.
               -\b-c\bc     Clears  the  directory  stack  by  deleting  all  of  the
                      entries.
-              -\b-l\bl     Produces a longer listing;  the  default  listing  format
-                     uses a tilde to denote the home directory.
+              -\b-l\bl     Produces a listing  using  full  pathnames;  the  default
+                     listing format uses a tilde to denote the home directory.
               -\b-p\bp     Print the directory stack with one entry per line.
               -\b-v\bv     Print  the  directory stack with one entry per line, pre-
                      fixing each entry with its index in the stack.
+              +\b+_\bn     Displays the _\bnth entry counting from the left of the list
+                     shown by d\bdi\bir\brs\bs when invoked without options, starting with
+                     zero.
+              -\b-_\bn     Displays the _\bnth entry counting from  the  right  of  the
+                     list shown by d\bdi\bir\brs\bs when invoked without options, starting
+                     with zero.
 
               The return value is 0 unless an invalid option is supplied or  _\bn
               indexes beyond the end of the directory stack.
 
-       d\bdi\bis\bso\bow\bwn\bn [-\b-a\bar\br] [-\b-h\bh] [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
-              Without  options,  each  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is  removed  from the table of
-              active jobs.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, and neither -\b-a\ba  n\bno\bor\br  -\b-r\br
-              i\bis\bs  s\bsu\bup\bpp\bpl\bli\bie\bed\bd,\b, t\bth\bhe\be s\bsh\bhe\bel\bll\bl'\b's\bs n\bno\bot\bti\bio\bon\bn o\bof\bf t\bth\bhe\be _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb i\bis\bs u\bus\bse\bed\bd.\b.  I\bIf\bf
-              t\bth\bhe\be -\b-h\bh o\bop\bpt\bti\bio\bon\bn i\bis\bs g\bgi\biv\bve\ben\bn,\b, e\bea\bac\bch\bh _\bj_\bo_\bb_\bs_\bp_\be_\bc is not removed from the ta-
-              ble,  but is marked so that S\bSI\bIG\bGH\bHU\bUP\bP is not sent to the job if the
-              shell receives a S\bSI\bIG\bGH\bHU\bUP\bP.  If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is present, and  neither
-              the  -\b-a\ba  nor the -\b-r\br option is supplied, the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.
-              If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, the -\b-a\ba option means to remove or mark
-              all  jobs;  the  -\b-r\br  option without a _\bj_\bo_\bb_\bs_\bp_\be_\bc argument restricts
-              operation to running jobs.  The return value is 0 unless a  _\bj_\bo_\bb_\b-
-              _\bs_\bp_\be_\bc does not specify a valid job.
+       d\bdi\bis\bso\bow\bwn\bn [-\b-a\bar\br] [-\b-h\bh] [_\bj_\bo_\bb_\bs_\bp_\be_\bc ... | _\bp_\bi_\bd ... ]
+              Without  options,  remove  each _\bj_\bo_\bb_\bs_\bp_\be_\bc from the table of active
+              jobs.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, and neither the -\b-a\ba nor the  -\b-r\br
+              option  is  supplied, the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.  If the -\b-h\bh option
+              is given, each _\bj_\bo_\bb_\bs_\bp_\be_\bc is not removed from  the  table,  but  is
+              marked  so  that  S\bSI\bIG\bGH\bHU\bUP\bP  is  not  sent  to the job if the shell
+              receives a S\bSI\bIG\bGH\bHU\bUP\bP.  If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is  supplied,  the  -\b-a\ba  option
+              means  to  remove or mark all jobs; the -\b-r\br option without a _\bj_\bo_\bb_\b-
+              _\bs_\bp_\be_\bc argument restricts operation to running jobs.   The  return
+              value is 0 unless a _\bj_\bo_\bb_\bs_\bp_\be_\bc does not specify a valid job.
 
        e\bec\bch\bho\bo [-\b-n\bne\beE\bE] [_\ba_\br_\bg ...]
               Output  the  _\ba_\br_\bgs,  separated  by spaces, followed by a newline.
-              The return status is always 0.  If -\b-n\bn is specified, the trailing
-              newline  is  suppressed.  If the -\b-e\be option is given, interpreta-
-              tion of the following backslash-escaped characters  is  enabled.
-              The  -\b-E\bE option disables the interpretation of these escape char-
-              acters, even on systems where they are interpreted  by  default.
-              The  x\bxp\bpg\bg_\b_e\bec\bch\bho\bo  shell option may be used to dynamically determine
-              whether or not e\bec\bch\bho\bo expands these escape characters by  default.
-              e\bec\bch\bho\bo  does  not  interpret  -\b--\b- to mean the end of options.  e\bec\bch\bho\bo
-              interprets the following escape sequences:
+              The return status is 0 unless a write error occurs.   If  -\b-n\bn  is
+              specified, the trailing newline is suppressed.  If the -\b-e\be option
+              is given,  interpretation  of  the  following  backslash-escaped
+              characters  is  enabled.  The -\b-E\bE option disables the interpreta-
+              tion of these escape characters, even on systems where they  are
+              interpreted  by  default.  The x\bxp\bpg\bg_\b_e\bec\bch\bho\bo shell option may be used
+              to dynamically determine  whether  or  not  e\bec\bch\bho\bo  expands  these
+              escape  characters  by  default.   e\bec\bch\bho\bo does not interpret -\b--\b- to
+              mean the end of options.  e\bec\bch\bho\bo interprets the  following  escape
+              sequences:
               \\b\a\ba     alert (bell)
               \\b\b\bb     backspace
               \\b\c\bc     suppress further output
-              \\b\e\be     an escape character
+              \\b\e\be
+              \\b\E\bE     an escape character
               \\b\f\bf     form feed
               \\b\n\bn     new line
               \\b\r\br     carriage return
               \\b\t\bt     horizontal tab
               \\b\v\bv     vertical tab
               \\b\\\b\     backslash
-              \\b\0\b0_\bn_\bn_\bn  the eight-bit character whose value is  the  octal  value
+              \\b\0\b0_\bn_\bn_\bn  the  eight-bit  character  whose value is the octal value
                      _\bn_\bn_\bn (zero to three octal digits)
-              \\b\x\bx_\bH_\bH   the  eight-bit  character  whose value is the hexadecimal
+              \\b\x\bx_\bH_\bH   the eight-bit character whose value  is  the  hexadecimal
                      value _\bH_\bH (one or two hex digits)
+              \\b\u\bu_\bH_\bH_\bH_\bH the  Unicode (ISO/IEC 10646) character whose value is the
+                     hexadecimal value _\bH_\bH_\bH_\bH (one to four hex digits)
+              \\b\U\bU_\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH
+                     the Unicode (ISO/IEC 10646) character whose value is  the
+                     hexadecimal value _\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH (one to eight hex digits)
 
        e\ben\bna\bab\bbl\ble\be [-\b-a\ba] [-\b-d\bdn\bnp\bps\bs] [-\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [_\bn_\ba_\bm_\be ...]
-              Enable and disable builtin shell commands.  Disabling a  builtin
+              Enable  and disable builtin shell commands.  Disabling a builtin
               allows a disk command which has the same name as a shell builtin
-              to be executed without specifying a full pathname,  even  though
-              the  shell  normally searches for builtins before disk commands.
-              If -\b-n\bn is used, each  _\bn_\ba_\bm_\be  is  disabled;  otherwise,  _\bn_\ba_\bm_\be_\b are
+              to  be  executed without specifying a full pathname, even though
+              the shell normally searches for builtins before  disk  commands.
+              If  -\b-n\bn  is  used,  each  _\bn_\ba_\bm_\be  is disabled; otherwise, _\bn_\ba_\bm_\be_\bs are
               enabled.  For example, to use the t\bte\bes\bst\bt binary found via the P\bPA\bAT\bTH\bH
-              instead of the shell builtin version, run  ``enable  -n  test''.
-              The  -\b-f\bf  option  means to load the new builtin command _\bn_\ba_\bm_\be from
+              instead  of  the  shell builtin version, run ``enable -n test''.
+              The -\b-f\bf option means to load the new builtin  command  _\bn_\ba_\bm_\b from
               shared object _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, on systems that support dynamic loading.
-              The  -\b-d\bd  option will delete a builtin previously loaded with -\b-f\bf.
+              The -\b-d\bd option will delete a builtin previously loaded  with  -\b-f\bf.
               If no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied,
               a list of shell builtins is printed.  With no other option argu-
-              ments, the list consists of all enabled shell builtins.   If  -\b-n\bn
-              is  supplied, only disabled builtins are printed.  If -\b-a\ba is sup-
-              plied, the list printed includes all builtins, with  an  indica-
-              tion  of whether or not each is enabled.  If -\b-s\bs is supplied, the
-              output is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins.  The  return
-              value  is  0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there is an
+              ments,  the  list consists of all enabled shell builtins.  If -\b-n\bn
+              is supplied, only disabled builtins are printed.  If -\b-a\ba is  sup-
+              plied,  the  list printed includes all builtins, with an indica-
+              tion of whether or not each is enabled.  If -\b-s\bs is supplied,  the
+              output  is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins.  The return
+              value is 0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there  is  an
               error loading a new builtin from a shared object.
 
        e\bev\bva\bal\bl [_\ba_\br_\bg ...]
-              The _\ba_\br_\bgs are read and concatenated together into a  single  com-
-              mand.   This command is then read and executed by the shell, and
-              its exit status is returned as the value of e\bev\bva\bal\bl.  If there  are
+              The  _\ba_\br_\bgs  are read and concatenated together into a single com-
+              mand.  This command is then read and executed by the shell,  and
+              its  exit status is returned as the value of e\bev\bva\bal\bl.  If there are
               no _\ba_\br_\bg_\bs, or only null arguments, e\bev\bva\bal\bl returns 0.
 
        e\bex\bxe\bec\bc [-\b-c\bcl\bl] [-\b-a\ba _\bn_\ba_\bm_\be] [_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]]
-              If  _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell.  No new process
-              is created.  The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   If
+              If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell.  No new  process
+              is  created.  The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  If
               the -\b-l\bl option is supplied, the shell places a dash at the begin-
-              ning of the zeroth argument passed to  _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   This  is  what
+              ning  of  the  zeroth  argument passed to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  This is what
               _\bl_\bo_\bg_\bi_\bn(1) does.  The -\b-c\bc option causes _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be executed with
-              an empty environment.  If -\b-a\ba is supplied, the shell passes  _\bn_\ba_\bm_\be
+              an  empty environment.  If -\b-a\ba is supplied, the shell passes _\bn_\ba_\bm_\be
               as the zeroth argument to the executed command.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd can-
-              not be executed for some reason, a non-interactive shell  exits,
-              unless  the  shell  option e\bex\bxe\bec\bcf\bfa\bai\bil\bl is enabled, in which case it
-              returns failure.  An interactive shell returns  failure  if  the
+              not  be executed for some reason, a non-interactive shell exits,
+              unless the e\bex\bxe\bec\bcf\bfa\bai\bil\bl shell option is enabled.  In that  case,  it
+              returns  failure.   An  interactive shell returns failure if the
               file cannot be executed.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redi-
               rections take effect in the current shell, and the return status
-              is  0.  If there is a redirection error, the return status is 1.
+              is 0.  If there is a redirection error, the return status is 1.
 
        e\bex\bxi\bit\bt [_\bn]
               Cause the shell to exit with a status of _\bn.  If  _\bn  is  omitted,
@@ -4066,90 +4560,89 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               The supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the  envi-
               ronment  of subsequently executed commands.  If the -\b-f\bf option is
               given, the _\bn_\ba_\bm_\be_\bs refer to functions.  If no _\bn_\ba_\bm_\be_\bs are given,  or
-              if  the  -\b-p\bp  option  is  supplied,  a list of all names that are
-              exported in this shell is printed.  The  -\b-n\bn  option  causes  the
-              export  property  to  be  removed from each _\bn_\ba_\bm_\be.  If a variable
-              name is followed by =_\bw_\bo_\br_\bd, the value of the variable is  set  to
-              _\bw_\bo_\br_\bd.   e\bex\bxp\bpo\bor\brt\bt  returns  an  exit  status of 0 unless an invalid
-              option is encountered, one of the _\bn_\ba_\bm_\be_\bs is  not  a  valid  shell
-              variable name, or -\b-f\bf is supplied with a _\bn_\ba_\bm_\be that is not a func-
-              tion.
+              if  the  -\b-p\bp  option is supplied, a list of names of all exported
+              variables is printed.  The -\b-n\bn option causes the export  property
+              to be removed from each _\bn_\ba_\bm_\be.  If a variable name is followed by
+              =_\bw_\bo_\br_\bd, the value of the variable is set to _\bw_\bo_\br_\bd.  e\bex\bxp\bpo\bor\brt\bt returns
+              an exit status of 0 unless an invalid option is encountered, one
+              of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, or -\b-f\bf  is  sup-
+              plied with a _\bn_\ba_\bm_\be that is not a function.
 
        f\bfc\bc [-\b-e\be _\be_\bn_\ba_\bm_\be] [-\b-l\bln\bnr\br] [_\bf_\bi_\br_\bs_\bt] [_\bl_\ba_\bs_\bt]
        f\bfc\bc -\b-s\bs [_\bp_\ba_\bt=_\br_\be_\bp] [_\bc_\bm_\bd]
-              Fix Command.  In the first form, a range of commands from  _\bf_\bi_\br_\bs_\bt
-              to  _\bl_\ba_\bs_\bt  is selected from the history list.  _\bF_\bi_\br_\bs_\bt and _\bl_\ba_\bs_\bt may
-              be specified as a string (to locate the last  command  beginning
-              with  that  string)  or  as  a number (an index into the history
-              list, where a negative number is used as an offset from the cur-
-              rent command number).  If _\bl_\ba_\bs_\bt is not specified it is set to the
-              current command for listing (so that ``fc -l  -10''  prints  the
-              last 10 commands) and to _\bf_\bi_\br_\bs_\bt otherwise.  If _\bf_\bi_\br_\bs_\bt is not spec-
-              ified it is set to the previous command for editing and -16  for
-              listing.
-
-              The  -\b-n\bn option suppresses the command numbers when listing.  The
-              -\b-r\boption reverses the order of the commands.  If the -\b-l\b option
-              is  given,  the  commands are listed on standard output.  Other-
-              wise, the editor given by _\be_\bn_\ba_\bm_\be is invoked on a file  containing
-              those  commands.  If _\be_\bn_\ba_\bm_\be is not given, the value of the F\bFC\bCE\bED\bDI\bIT\bT
-              variable is used, and the value of E\bED\bDI\bIT\bTO\bOR\bR if F\bFC\bCE\bED\bDI\bIT\bT is not  set.
-              If  neither  variable  is set, _\bv_\bi is used.  When editing is com-
+              The  first  form  selects a range of commands from _\bf_\bi_\br_\bs_\bt to _\bl_\ba_\bs_\bt
+              from the history list and  displays  or  edits  and  re-executes
+              them.   _\bF_\bi_\br_\bs_\bt  and  _\bl_\ba_\bs_\bt may be specified as a string (to locate
+              the last command beginning with that string) or as a number  (an
+              index  into the history list, where a negative number is used as
+              an offset from the current command  number).   If  _\bl_\ba_\bs_\bt  is  not
+              specified  it is set to the current command for listing (so that
+              ``fc -l -10'' prints the last 10 commands) and to  _\bf_\bi_\br_\bs_\bt  other-
+              wise.   If _\bf_\bi_\br_\bs_\bt is not specified it is set to the previous com-
+              mand for editing and -16 for listing.
+
+              The -\b-n\bn option suppresses the command numbers when listing.   The
+              -\b-r\b option reverses the order of the commands.  If the -\b-l\bl option
+              is given, the commands are listed on  standard  output.   Other-
+              wise,  the editor given by _\be_\bn_\ba_\bm_\be is invoked on a file containing
+              those commands.  If _\be_\bn_\ba_\bm_\be is not given, the value of the  F\bFC\bCE\bED\bDI\bIT\bT
+              variable  is used, and the value of E\bED\bDI\bIT\bTO\bOR\bR if F\bFC\bCE\bED\bDI\bIT\bT is not set.
+              If neither variable is set, _\bv_\bi is used.  When  editing  is  com-
               plete, the edited commands are echoed and executed.
 
-              In the second form, _\bc_\bo_\bm_\bm_\ba_\bn_\bd is re-executed after  each  instance
-              of  _\bp_\ba_\bt  is replaced by _\br_\be_\bp.  A useful alias to use with this is
-              ``r="fc -s"'', so that typing ``r cc''  runs  the  last  command
-              beginning with ``cc'' and typing ``r'' re-executes the last com-
-              mand.
+              In  the  second form, _\bc_\bo_\bm_\bm_\ba_\bn_\bd is re-executed after each instance
+              of _\bp_\ba_\bt is replaced by _\br_\be_\bp.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is intepreted  the  same  as
+              _\bf_\bi_\br_\bs_\bt  above.  A useful alias to use with this is ``r="fc -s"'',
+              so that typing ``r cc'' runs the  last  command  beginning  with
+              ``cc'' and typing ``r'' re-executes the last command.
 
-              If the first form is used, the  return  value  is  0  unless  an
-              invalid  option  is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt specify history
-              lines out of range.  If the -\b-e\be option is  supplied,  the  return
+              If  the  first  form  is  used,  the return value is 0 unless an
+              invalid option is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt  specify  history
+              lines  out  of  range.  If the -\b-e\be option is supplied, the return
               value is the value of the last command executed or failure if an
               error occurs with the temporary file of commands.  If the second
-              form  is  used, the return status is that of the command re-exe-
-              cuted, unless _\bc_\bm_\bd does not specify  a  valid  history  line,  in
+              form is used, the return status is that of the  command  re-exe-
+              cuted,  unless  _\bc_\bm_\bd  does  not  specify a valid history line, in
               which case f\bfc\bc returns failure.
 
        f\bfg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc]
-              Resume  _\bj_\bo_\bb_\bs_\bp_\be_\bc  in the foreground, and make it the current job.
+              Resume _\bj_\bo_\bb_\bs_\bp_\be_\bc in the foreground, and make it the  current  job.
               If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb
-              is  used.   The  return value is that of the command placed into
-              the foreground, or failure if run when job control  is  disabled
+              is used.  The return value is that of the  command  placed  into
+              the  foreground,  or failure if run when job control is disabled
               or, when run with job control enabled, if _\bj_\bo_\bb_\bs_\bp_\be_\bc does not spec-
-              ify a valid job or _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies  a  job  that  was  started
+              ify  a  valid  job  or  _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies a job that was started
               without job control.
 
        g\bge\bet\bto\bop\bpt\bts\bs _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg _\bn_\ba_\bm_\be [_\ba_\br_\bg_\bs]
-              g\bge\bet\bto\bop\bpt\bts\b is used by shell procedures to parse positional parame-
-              ters.  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg contains the option  characters  to  be  recog-
-              nized;  if  a  character  is  followed by a colon, the option is
-              expected to have an argument, which should be separated from  it
-              by  white space.  The colon and question mark characters may not
-              be used as option characters.  Each time it is invoked,  g\bge\bet\bto\bop\bpt\bts\bs
-              places  the next option in the shell variable _\bn_\ba_\bm_\be, initializing
+              g\bge\bet\bto\bop\bpt\bts\bis used by shell procedures to parse positional  parame-
+              ters.   _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg  contains  the  option characters to be recog-
+              nized; if a character is followed by  a  colon,  the  option  is
+              expected  to have an argument, which should be separated from it
+              by white space.  The colon and question mark characters may  not
+              be  used as option characters.  Each time it is invoked, g\bge\bet\bto\bop\bpt\bts\bs
+              places the next option in the shell variable _\bn_\ba_\bm_\be,  initializing
               _\bn_\ba_\bm_\be if it does not exist, and the index of the next argument to
               be processed into the variable O\bOP\bPT\bTI\bIN\bND\bD.  O\bOP\bPT\bTI\bIN\bND\bD is initialized to
-              1 each time the shell or a shell script  is  invoked.   When  an
-              option  requires  an argument, g\bge\bet\bto\bop\bpt\bts\bs places that argument into
-              the variable O\bOP\bPT\bTA\bAR\bRG\bG.  The shell does not reset O\bOP\bPT\bTI\bIN\bND\b automati-
-              cally;  it  must  be  manually  reset  between multiple calls to
+              1  each  time  the  shell or a shell script is invoked.  When an
+              option requires an argument, g\bge\bet\bto\bop\bpt\bts\bs places that  argument  into
+              the  variable O\bOP\bPT\bTA\bAR\bRG\bG.  The shell does not reset O\bOP\bPT\bTI\bIN\bND\bD automati-
+              cally; it must be  manually  reset  between  multiple  calls  to
               g\bge\bet\bto\bop\bpt\bts\bs within the same shell invocation if a new set of parame-
               ters is to be used.
 
-              When  the  end  of  options is encountered, g\bge\bet\bto\bop\bpt\bts\bs exits with a
-              return value greater than zero.  O\bOP\bPT\bTI\bIN\bND\bD is set to the  index  of
-              the first non-option argument, and n\bna\bam\bme\be is set to ?.
+              When the end of options is encountered,  g\bge\bet\bto\bop\bpt\bts\bs  exits  with  a
+              return  value  greater than zero.  O\bOP\bPT\bTI\bIN\bND\bD is set to the index of
+              the first non-option argument, and _\bn_\ba_\bm_\be is set to ?.
 
-              g\bge\bet\bto\bop\bpt\bts\b normally  parses the positional parameters, but if more
+              g\bge\bet\bto\bop\bpt\bts\bnormally parses the positional parameters, but  if  more
               arguments are given in _\ba_\br_\bg_\bs, g\bge\bet\bto\bop\bpt\bts\bs parses those instead.
 
-              g\bge\bet\bto\bop\bpt\bts\bcan report errors in two ways.  If the  first  character
-              of  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg  is  a  colon, _\bs_\bi_\bl_\be_\bn_\bt error reporting is used.  In
-              normal operation diagnostic messages are  printed  when  invalid
-              options  or  missing  option  arguments are encountered.  If the
-              variable O\bOP\bPT\bTE\bER\bRR\bR is set to 0, no  error  messages  will  be  dis-
+              g\bge\bet\bto\bop\bpt\bts\b can  report errors in two ways.  If the first character
+              of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is a colon, _\bs_\bi_\bl_\be_\bn_\bt error  reporting  is  used.   In
+              normal  operation,  diagnostic messages are printed when invalid
+              options or missing option arguments  are  encountered.   If  the
+              variable  O\bOP\bPT\bTE\bER\bRR\bR  is  set  to  0, no error messages will be dis-
               played, even if the first character of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is not a colon.
 
               If an invalid option is seen, g\bge\bet\bto\bop\bpt\bts\bs places ? into _\bn_\ba_\bm_\be and, if
@@ -4168,31 +4661,33 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               an error occurs.
 
        h\bha\bas\bsh\bh [-\b-l\blr\br] [-\b-p\bp _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [-\b-d\bdt\bt] [_\bn_\ba_\bm_\be]
-              For  each  _\bn_\ba_\bm_\be, the full file name of the command is determined
-              by searching the directories in $\b$P\bPA\bAT\bTH\bH and remembered.  If the -\b-p\bp
-              option is supplied, no path search is performed, and _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is
-              used as the full file name of the command.  The -\b-r\br option causes
-              the  shell  to  forget  all remembered locations.  The -\b-d\bd option
-              causes the shell to forget the remembered location of each _\bn_\ba_\bm_\be.
-              If  the  -\b-t\bt  option is supplied, the full pathname to which each
-              _\bn_\ba_\bm_\be corresponds is printed.  If  multiple  _\bn_\ba_\bm_\be  arguments  are
-              supplied  with  -\b-t\bt,  the  _\bn_\ba_\bm_\be is printed before the hashed full
-              pathname.  The -\b-l\bl option causes output to be displayed in a for-
-              mat  that may be reused as input.  If no arguments are given, or
-              if only -\b-l\bl is supplied, information about remembered commands is
-              printed.   The  return status is true unless a _\bn_\ba_\bm_\be is not found
-              or an invalid option is supplied.
+              Each time h\bha\bas\bsh\bh is invoked, the full pathname of the command _\bn_\ba_\bm_\be
+              is determined by searching the directories in $\b$P\bPA\bAT\bTH\bH  and  remem-
+              bered.  Any previously-remembered pathname is discarded.  If the
+              -\b-p\bp option is supplied, no path search is performed, and _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+              is  used  as  the  full  filename of the command.  The -\b-r\br option
+              causes the shell to forget all  remembered  locations.   The  -\b-d\bd
+              option  causes  the  shell  to forget the remembered location of
+              each _\bn_\ba_\bm_\be.  If the -\b-t\bt option is supplied, the full  pathname  to
+              which  each _\bn_\ba_\bm_\be corresponds is printed.  If multiple _\bn_\ba_\bm_\be argu-
+              ments are supplied with -\b-t\bt,  the  _\bn_\ba_\bm_\be  is  printed  before  the
+              hashed  full  pathname.   The -\b-l\bl option causes output to be dis-
+              played in a format that may be reused as input.  If no arguments
+              are  given,  or if only -\b-l\bl is supplied, information about remem-
+              bered commands is printed.  The return status is true  unless  a
+              _\bn_\ba_\bm_\be is not found or an invalid option is supplied.
 
        h\bhe\bel\blp\bp [-\b-d\bdm\bms\bs] [_\bp_\ba_\bt_\bt_\be_\br_\bn]
-              Display helpful information about builtin commands.  If  _\bp_\ba_\bt_\bt_\be_\br_\bn
-              is  specified, h\bhe\bel\blp\bp gives detailed help on all commands matching
-              _\bp_\ba_\bt_\bt_\be_\br_\bn; otherwise help for all the builtins and  shell  control
+              Display  helpful information about builtin commands.  If _\bp_\ba_\bt_\bt_\be_\br_\bn
+              is specified, h\bhe\bel\blp\bp gives detailed help on all commands  matching
+              _\bp_\ba_\bt_\bt_\be_\br_\bn;  otherwise  help for all the builtins and shell control
               structures is printed.
               -\b-d\bd     Display a short description of each _\bp_\ba_\bt_\bt_\be_\br_\bn
               -\b-m\bm     Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
                      format
               -\b-s\bs     Display only a short usage synopsis for each _\bp_\ba_\bt_\bt_\be_\br_\bn
-       The return status is 0 unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
+
+              The return status is 0 unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
 
        h\bhi\bis\bst\bto\bor\bry\by [\b[_\bn]\b]
        h\bhi\bis\bst\bto\bor\bry\by -\b-c\bc
@@ -4202,28 +4697,29 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
        h\bhi\bis\bst\bto\bor\bry\by -\b-s\bs _\ba_\br_\bg [_\ba_\br_\bg _\b._\b._\b.]
               With no options, display the command history list with line num-
               bers.  Lines listed with a *\b* have been modified.  An argument of
-              _\blists only the last _\bn lines.  If the shell variable  H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
-              F\bFO\bOR\bRM\bMA\bAT\b is  set  and not null, it is used as a format string for
-              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to display the time stamp associated with each  dis-
-              played  history  entry.  No intervening blank is printed between
-              the formatted time stamp and the history line.  If  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\b is
-              supplied,  it  is  used as the name of the history file; if not,
-              the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is used.  Options, if supplied,  have  the
+              _\b lists only the last _\bn lines.  If the shell variable H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
+              F\bFO\bOR\bRM\bMA\bAT\bis set and not null, it is used as a  format  string  for
+              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3)  to display the time stamp associated with each dis-
+              played history entry.  No intervening blank is  printed  between
+              the  formatted  time stamp and the history line.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is
+              supplied, it is used as the name of the history  file;  if  not,
+              the  value  of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is used.  Options, if supplied, have the
               following meanings:
               -\b-c\bc     Clear the history list by deleting all the entries.
               -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
                      Delete the history entry at position _\bo_\bf_\bf_\bs_\be_\bt.
-              -\b-a\ba     Append  the  ``new'' history lines (history lines entered
-                     since the beginning of the current b\bba\bas\bsh\bh session)  to  the
+              -\b-a\ba     Append the ``new'' history lines  to  the  history  file.
+                     These  are  history  lines entered since the beginning of
+                     the current b\bba\bas\bsh\bh session, but not already appended to the
                      history file.
               -\b-n\bn     Read  the history lines not already read from the history
                      file into the current  history  list.   These  are  lines
                      appended  to  the history file since the beginning of the
                      current b\bba\bas\bsh\bh session.
-              -\b-r\br     Read the contents of the history file and use them as the
-                     current history.
-              -\b-w\bw     Write  the current history to the history file, overwrit-
-                     ing the history file's contents.
+              -\b-r\br     Read the contents of the history file and append them  to
+                     the current history list.
+              -\b-w\bw     Write the current history list to the history file, over-
+                     writing the history file's contents.
               -\b-p\bp     Perform history substitution on the  following  _\ba_\br_\bg_\bs  and
                      display  the  result  on  the  standard output.  Does not
                      store the results in the history list.  Each _\ba_\br_\bg must  be
@@ -4232,84 +4728,92 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      The last command in the history list  is  removed  before
                      the _\ba_\br_\bg_\bs are added.
 
-              If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT is set, the time stamp information associ-
-              ated with each history entry is written  to  the  history  file,
-              marked  with  the  history  comment character.  When the history
-              file is read, lines beginning with the history comment character
-              followed  immediately  by  a digit are interpreted as timestamps
-              for the previous history line.  The return value is 0 unless  an
-              invalid  option is encountered, an error occurs while reading or
-              writing the history file, an invalid _\bo_\bf_\bf_\bs_\be_\bt is  supplied  as  an
-              argument to -\b-d\bd, or the history expansion supplied as an argument
-              to -\b-p\bp fails.
+              If  the  H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, the time stamp informa-
+              tion associated with each history entry is written to  the  his-
+              tory  file, marked with the history comment character.  When the
+              history file is read, lines beginning with the  history  comment
+              character  followed  immediately  by  a digit are interpreted as
+              timestamps for the following history entry.  The return value is
+              0 unless an invalid option is encountered, an error occurs while
+              reading or writing the history file, an invalid _\bo_\bf_\bf_\bs_\be_\bt  is  sup-
+              plied as an argument to -\b-d\bd, or the history expansion supplied as
+              an argument to -\b-p\bp fails.
 
        j\bjo\bob\bbs\bs [-\b-l\bln\bnp\bpr\brs\bs] [ _\bj_\bo_\bb_\bs_\bp_\be_\bc ... ]
        j\bjo\bob\bbs\bs -\b-x\bx _\bc_\bo_\bm_\bm_\ba_\bn_\bd [ _\ba_\br_\bg_\bs ... ]
               The first form lists the active jobs.  The options have the fol-
               lowing meanings:
               -\b-l\bl     List process IDs in addition to the normal information.
-              -\b-p\bp     List  only  the  process  ID  of  the job's process group
+              -\b-n\bn     Display  information  only  about  jobs that have changed
+                     status since the user was last notified of their status.
+              -\b-p\bp     List only the process  ID  of  the  job's  process  group
                      leader.
-              -\b-n\bn     Display information only about  jobs  that  have  changed
-                     status  since the user was last notified of their status.
-              -\b-r\br     Restrict output to running jobs.
-              -\b-s\bs     Restrict output to stopped jobs.
+              -\b-r\br     Display only running jobs.
+              -\b-s\bs     Display only stopped jobs.
 
-              If _\bj_\bo_\bb_\bs_\bp_\be_\bc is given, output is restricted to  information  about
-              that  job.   The  return status is 0 unless an invalid option is
+              If  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is given, output is restricted to information about
+              that job.  The return status is 0 unless an  invalid  option  is
               encountered or an invalid _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied.
 
               If the -\b-x\bx option is supplied, j\bjo\bob\bbs\bs replaces any _\bj_\bo_\bb_\bs_\bp_\be_\bc found in
-              _\bc_\bo_\bm_\bm_\ba_\bn_\b or  _\ba_\br_\bg_\bs  with  the corresponding process group ID, and
+              _\bc_\bo_\bm_\bm_\ba_\bn_\bor _\ba_\br_\bg_\bs with the corresponding  process  group  ID,  and
               executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd passing it _\ba_\br_\bg_\bs, returning its exit status.
 
        k\bki\bil\bll\bl [-\b-s\bs _\bs_\bi_\bg_\bs_\bp_\be_\bc | -\b-n\bn _\bs_\bi_\bg_\bn_\bu_\bm | -\b-_\bs_\bi_\bg_\bs_\bp_\be_\bc] [_\bp_\bi_\bd | _\bj_\bo_\bb_\bs_\bp_\be_\bc] ...
-       k\bki\bil\bll\bl -\b-l\bl [_\bs_\bi_\bg_\bs_\bp_\be_\bc | _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
-              Send the signal named by _\bs_\bi_\bg_\bs_\bp_\be_\bc  or  _\bs_\bi_\bg_\bn_\bu_\bm  to  the  processes
-              named  by  _\bp_\bi_\bd or _\bj_\bo_\bb_\bs_\bp_\be_\bc.  _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a case-insensitive
-              signal name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix)  or
-              a  signal  number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number.  If _\bs_\bi_\bg_\bs_\bp_\be_\bc is not
-              present, then S\bSI\bIG\bGT\bTE\bER\bRM\bM is assumed.  An argument of -\b-l\bl  lists  the
-              signal  names.   If any arguments are supplied when -\b-l\bl is given,
-              the names of the signals  corresponding  to  the  arguments  are
+       k\bki\bil\bll\bl -\b-l\bl|-\b-L\bL [_\bs_\bi_\bg_\bs_\bp_\be_\bc | _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
+              Send  the  signal  named  by  _\bs_\bi_\bg_\bs_\bp_\be_\bc or _\bs_\bi_\bg_\bn_\bu_\bm to the processes
+              named by _\bp_\bi_\bd or _\bj_\bo_\bb_\bs_\bp_\be_\bc.  _\bs_\bi_\bg_\bs_\bp_\be_\bc is either  a  case-insensitive
+              signal  name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix) or
+              a signal number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number.  If _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  not
+              present,  then  S\bSI\bIG\bGT\bTE\bER\bRM\bM is assumed.  An argument of -\b-l\bl lists the
+              signal names.  If any arguments are supplied when -\b-l\bl  is  given,
+              the  names  of  the  signals  corresponding to the arguments are
               listed, and the return status is 0.  The _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs argument to
-              -\b-l\bl is a number specifying either a signal  number  or  the  exit
-              status  of  a process terminated by a signal.  k\bki\bil\bll\bl returns true
-              if at least one signal was successfully sent,  or  false  if  an
-              error occurs or an invalid option is encountered.
+              -\b-l\bl  is  a  number  specifying either a signal number or the exit
+              status of a process terminated by a signal.  The  -\b-L\bL  option  is
+              equivalent  to -\b-l\bl.  k\bki\bil\bll\bl returns true if at least one signal was
+              successfully sent, or false if an error  occurs  or  an  invalid
+              option is encountered.
 
        l\ble\bet\bt _\ba_\br_\bg [_\ba_\br_\bg ...]
               Each _\ba_\br_\bg is an arithmetic expression to be evaluated (see A\bAR\bRI\bIT\bTH\bH-\b-
-              M\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN).  If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\bt  returns
-              1; 0 is returned otherwise.
+              M\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above).  If the last _\ba_\br_\bg evaluates  to  0,  l\ble\bet\bt
+              returns 1; 0 is returned otherwise.
 
-       l\blo\boc\bca\bal\bl [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+       l\blo\boc\bca\bal\bl [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ... | - ]
               For  each  argument, a local variable named _\bn_\ba_\bm_\be is created, and
               assigned _\bv_\ba_\bl_\bu_\be.  The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the  options  accepted
               by d\bde\bec\bcl\bla\bar\bre\be.  When l\blo\boc\bca\bal\bl is used within a function, it causes the
               variable _\bn_\ba_\bm_\be to have a visible scope restricted to  that  func-
-              tion and its children.  With no operands, l\blo\boc\bca\bal\bl writes a list of
-              local variables to the standard output.  It is an error  to  use
-              l\blo\boc\bca\bal\bl when not within a function.  The return status is 0 unless
-              l\blo\boc\bca\bal\bl is used outside a function, an invalid _\bn_\ba_\bm_\be  is  supplied,
-              or _\bn_\ba_\bm_\be is a readonly variable.
+              tion  and  its children.  If _\bn_\ba_\bm_\be is -, the set of shell options
+              is made local to the function in which l\blo\boc\bca\bal\bl is  invoked:  shell
+              options  changed  using  the s\bse\bet\bt builtin inside the function are
+              restored to their original values  when  the  function  returns.
+              With  no operands, l\blo\boc\bca\bal\bl writes a list of local variables to the
+              standard output.  It is an error to use l\blo\boc\bca\bal\bl when not within  a
+              function.  The return status is 0 unless l\blo\boc\bca\bal\bl is used outside a
+              function, an invalid _\bn_\ba_\bm_\be is supplied, or  _\bn_\ba_\bm_\be  is  a  readonly
+              variable.
 
        l\blo\bog\bgo\bou\but\bt Exit a login shell.
 
-       m\bma\bap\bpf\bfi\bil\ble\be  [-\b-n\bn  _\bc_\bo_\bu_\bn_\bt]  [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
-       [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
-       r\bre\bea\bad\bda\bar\brr\bra\bay\by  [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
-       [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
-              Read lines from the standard input into array variable _\ba_\br_\br_\ba_\by, or
-              from file descriptor _\bf_\bd if the -\b-u\bu option is supplied.  The vari-
-              able  M\bMA\bAP\bPF\bFI\bIL\bLE\bE  is the default _\ba_\br_\br_\ba_\by.  Options, if supplied, have
-              the following meanings:
-              -\b-n\bn     Copy at most _\bc_\bo_\bu_\bn_\bt lines.  If _\bc_\bo_\bu_\bn_\bt is 0, all  lines  are
+       m\bma\bap\bpf\bfi\bil\ble\be  [-\b-d\bd  _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
+       _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
+       r\bre\bea\bad\bda\bar\brr\bra\bay\by [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
+       _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
+              Read  lines from the standard input into the indexed array vari-
+              able _\ba_\br_\br_\ba_\by, or from file descriptor _\bf_\bd if the -\b-u\bu option is  sup-
+              plied.   The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by.  Options, if
+              supplied, have the following meanings:
+              -\b-d\bd     The first character of _\bd_\be_\bl_\bi_\bm is used  to  terminate  each
+                     input line, rather than newline.
+              -\b-n\bn     Copy  at  most _\bc_\bo_\bu_\bn_\bt lines.  If _\bc_\bo_\bu_\bn_\bt is 0, all lines are
                      copied.
-              -\b-O\bO     Begin  assigning  to  _\ba_\br_\br_\ba_\by at index _\bo_\br_\bi_\bg_\bi_\bn.  The default
+              -\b-O\bO     Begin assigning to _\ba_\br_\br_\ba_\by at index  _\bo_\br_\bi_\bg_\bi_\bn.   The  default
                      index is 0.
               -\b-s\bs     Discard the first _\bc_\bo_\bu_\bn_\bt lines read.
-              -\b-t\bt     Remove a trailing line from each line read.
+              -\b-t\bt     Remove  a trailing _\bd_\be_\bl_\bi_\bm (default newline) from each line
+                     read.
               -\b-u\bu     Read lines from file descriptor _\bf_\bd instead of  the  stan-
                      dard input.
               -\b-C\bC     Evaluate  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read.  The
@@ -4319,26 +4823,27 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
               If  -\b-C\bC  is  specified  without  -\b-c\bc, the default quantum is 5000.
               When _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated, it is supplied the index of the next
-              array  element  to be assigned as an additional argument.  _\bc_\ba_\bl_\bl_\b-
-              _\bb_\ba_\bc_\bk is evaluated after the line is read but  before  the  array
-              element is assigned.
+              array element to be assigned and the line to be assigned to that
+              element as additional arguments.  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk  is  evaluated  after
+              the line is read but before the array element is assigned.
 
               If  not  supplied  with  an  explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear
               _\ba_\br_\br_\ba_\by before assigning to it.
 
               m\bma\bap\bpf\bfi\bil\ble\be returns successfully unless an invalid option or  option
-              argument is supplied, or _\ba_\br_\br_\ba_\by is invalid or unassignable.
+              argument  is  supplied,  _\ba_\br_\br_\ba_\by is invalid or unassignable, or if
+              _\ba_\br_\br_\ba_\by is not an indexed array.
 
        p\bpo\bop\bpd\bd [-n\bn] [+_\bn] [-_\bn]
-              Removes  entries  from  the directory stack.  With no arguments,
-              removes the top directory from the stack, and performs a  c\bcd\b to
+              Removes entries from the directory stack.   With  no  arguments,
+              removes  the  top directory from the stack, and performs a c\bcd\bd to
               the new top directory.  Arguments, if supplied, have the follow-
               ing meanings:
-              -\b-n\bn     Suppresses the normal change of directory  when  removing
-                     directories  from  the  stack,  so that only the stack is
+              -\b-n\bn     Suppresses  the  normal change of directory when removing
+                     directories from the stack, so that  only  the  stack  is
                      manipulated.
-              +\b+_\bn     Removes the _\bnth entry counting from the left of the  list
-                     shown  by  d\bdi\bir\brs\bs, starting with zero.  For example: ``popd
+              +\b+_\bn     Removes  the _\bnth entry counting from the left of the list
+                     shown by d\bdi\bir\brs\bs, starting with zero.  For  example:  ``popd
                      +0'' removes the first directory, ``popd +1'' the second.
               -\b-_\bn     Removes the _\bnth entry counting from the right of the list
                      shown by d\bdi\bir\brs\bs, starting with zero.  For  example:  ``popd
@@ -4353,46 +4858,62 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
        p\bpr\bri\bin\bnt\btf\bf [-\b-v\bv _\bv_\ba_\br] _\bf_\bo_\br_\bm_\ba_\bt [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
               Write the formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output  under  the
-              control  of  the _\bf_\bo_\br_\bm_\ba_\bt.  The _\bf_\bo_\br_\bm_\ba_\bt is a character string which
-              contains three types of objects:  plain  characters,  which  are
-              simply  copied  to  standard output, character escape sequences,
-              which are converted and copied to the standard output, and  for-
-              mat  specifications,  each  of which causes printing of the next
-              successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.  In addition to the standard _\bp_\br_\bi_\bn_\bt_\bf(1) for-
-              mats,  %\b%b\bb  causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape sequences in
-              the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt (except that  \\b\c\bc  terminates  output,
-              backslashes in \\b\'\b', \\b\"\b", and \\b\?\b? are not removed, and octal escapes
-              beginning with \\b\0\b0 may contain up to four digits), and %\b%q\bq  causes
-              p\bpr\bri\bin\bnt\btf\bf to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in a format that can
-              be reused as shell input.
-
-              The -\b-v\bv option causes the output to be assigned to  the  variable
-              _\bv_\ba_\br rather than being printed to the standard output.
-
-              The  _\bf_\bo_\br_\bm_\ba_\bt  is  reused as necessary to consume all of the _\ba_\br_\bg_\bu_\b-
+              control  of  the  _\bf_\bo_\br_\bm_\ba_\bt.  The -\b-v\bv option causes the output to be
+              assigned to the variable _\bv_\ba_\br rather than being  printed  to  the
+              standard output.
+
+              The  _\bf_\bo_\br_\bm_\ba_\bt  is a character string which contains three types of
+              objects: plain characters, which are simply copied  to  standard
+              output,  character  escape  sequences,  which  are converted and
+              copied to the standard output, and format  specifications,  each
+              of  which  causes  printing of the next successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.  In
+              addition to the standard _\bp_\br_\bi_\bn_\bt_\bf(1) format specifications, p\bpr\bri\bin\bnt\btf\bf
+              interprets the following extensions:
+              %\b%b\bb     causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape sequences in the
+                     corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in the same way as e\bec\bch\bho\bo -\b-e\be.
+              %\b%q\bq     causes p\bpr\bri\bin\bnt\btf\bf to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt  in  a
+                     format that can be reused as shell input.
+              %\b%(\b(_\bd_\ba_\bt_\be_\bf_\bm_\bt)\b)T\bT
+                     causes  p\bpr\bri\bin\bnt\btf\bf  to  output the date-time string resulting
+                     from using _\bd_\ba_\bt_\be_\bf_\bm_\bt as a format  string  for  _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
+                     The corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt is an integer representing the
+                     number of seconds since the epoch.  Two special  argument
+                     values  may  be used: -1 represents the current time, and
+                     -2 represents the time the  shell  was  invoked.   If  no
+                     argument  is  specified,  conversion behaves as if -1 had
+                     been given.  This is an exception  to  the  usual  p\bpr\bri\bin\bnt\btf\bf
+                     behavior.
+
+              Arguments  to non-string format specifiers are treated as C con-
+              stants, except that a leading plus or minus sign is allowed, and
+              if  the leading character is a single or double quote, the value
+              is the ASCII value of the following character.
+
+              The _\bf_\bo_\br_\bm_\ba_\bt is reused as necessary to consume all  of  the  _\ba_\br_\bg_\bu_\b-
               _\bm_\be_\bn_\bt_\bs.  If the _\bf_\bo_\br_\bm_\ba_\bt requires more _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs than are supplied,
-              the  extra  format  specifications  behave as if a zero value or
-              null string, as appropriate,  had  been  supplied.   The  return
+              the extra format specifications behave as if  a  zero  value  or
+              null  string,  as  appropriate,  had  been supplied.  The return
               value is zero on success, non-zero on failure.
 
        p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [+_\bn] [-_\bn]
        p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [_\bd_\bi_\br]
-              Adds  a  directory to the top of the directory stack, or rotates
-              the stack, making the new top of the stack the  current  working
-              directory.  With no arguments, exchanges the top two directories
-              and returns 0, unless the directory stack is empty.   Arguments,
-              if supplied, have the following meanings:
-              -\b-n\bn     Suppresses  the  normal  change  of directory when adding
-                     directories to the stack,  so  that  only  the  stack  is
-                     manipulated.
-              +\b+_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
-                     from the left of the list shown by  d\bdi\bir\brs\bs,  starting  with
+              Adds a directory to the top of the directory stack,  or  rotates
+              the  stack,  making the new top of the stack the current working
+              directory.  With no  arguments,  p\bpu\bus\bsh\bhd\bd  exchanges  the  top  two
+              directories  and returns 0, unless the directory stack is empty.
+              Arguments, if supplied, have the following meanings:
+              -\b-n\bn     Suppresses the normal change of directory  when  rotating
+                     or  adding  directories  to  the  stack, so that only the
+                     stack is manipulated.
+              +\b+_\bn     Rotates the stack so that  the  _\bnth  directory  (counting
+                     from  the  left  of the list shown by d\bdi\bir\brs\bs, starting with
                      zero) is at the top.
-              -\b-_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
-                     from the right of the list shown by d\bdi\bir\brs\bs,  starting  with
+              -\b-_\bn     Rotates the stack so that  the  _\bnth  directory  (counting
+                     from  the  right of the list shown by d\bdi\bir\brs\bs, starting with
                      zero) is at the top.
               _\bd_\bi_\br    Adds _\bd_\bi_\br to the directory stack at the top, making it the
-                     new current working directory.
+                     new  current working directory as if it had been supplied
+                     as the argument to the c\bcd\bd builtin.
 
               If the p\bpu\bus\bsh\bhd\bd command is successful, a d\bdi\bir\brs\bs is performed as well.
               If  the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to _\bd_\bi_\br
@@ -4410,19 +4931,22 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               occurs while reading the name of the  current  directory  or  an
               invalid option is supplied.
 
-       r\bre\bea\bad\bd [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-i\bi _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt
-       _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
-              One  line  is  read  from  the  standard input, or from the file
-              descriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, and  the
+       r\bre\bea\bad\bd [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-i\bi _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp
+       _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
+              One line is read from the  standard  input,  or  from  the  file
+              descriptor  _\bf_\bd  supplied  as an argument to the -\b-u\bu option, split
+              into words as described above  under  W\bWo\bor\brd\bd  S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg,  and  the
               first word is assigned to the first _\bn_\ba_\bm_\be, the second word to the
-              second _\bn_\ba_\bm_\be, and so on, with leftover words and their  interven-
-              ing  separators  assigned  to the last _\bn_\ba_\bm_\be.  If there are fewer
-              words read from the input stream than names, the remaining names
-              are  assigned  empty  values.  The characters in I\bIF\bFS\bS are used to
-              split the line into words.  The backslash character (\\b\)  may  be
-              used  to  remove any special meaning for the next character read
-              and for line continuation.  Options, if supplied, have the  fol-
-              lowing meanings:
+              second _\bn_\ba_\bm_\be, and so on.  If there are more words than names, the
+              remaining words and their intervening delimiters are assigned to
+              the last _\bn_\ba_\bm_\be.  If there are fewer words  read  from  the  input
+              stream  than  names, the remaining names are assigned empty val-
+              ues.  The characters in I\bIF\bFS\bS are used  to  split  the  line  into
+              words  using  the  same  rules  the  shell  uses  for  expansion
+              (described above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg).  The backslash character
+              (\\b\) may be used to remove any special meaning for the next char-
+              acter read and for line  continuation.   Options,  if  supplied,
+              have the following meanings:
               -\b-a\ba _\ba_\bn_\ba_\bm_\be
                      The words are assigned to sequential indices of the array
                      variable _\ba_\bn_\ba_\bm_\be, starting at 0.  _\ba_\bn_\ba_\bm_\be is unset before any
@@ -4440,7 +4964,19 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      placed into the editing buffer before editing begins.
               -\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs
                      r\bre\bea\bad\bd  returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather than
-                     waiting for a complete line of input.
+                     waiting for a complete line of input, but honors a delim-
+                     iter  if fewer than _\bn_\bc_\bh_\ba_\br_\bs characters are read before the
+                     delimiter.
+              -\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs
+                     r\bre\bea\bad\bd returns  after  reading  exactly  _\bn_\bc_\bh_\ba_\br_\bs  characters
+                     rather  than waiting for a complete line of input, unless
+                     EOF is encountered or r\bre\bea\bad\bd times out.  Delimiter  charac-
+                     ters  encountered  in the input are not treated specially
+                     and do not cause r\bre\bea\bad\bd to return until  _\bn_\bc_\bh_\ba_\br_\bs  characters
+                     are  read.   The result is not split on the characters in
+                     I\bIF\bFS\bS; the intent is that the variable is assigned  exactly
+                     the characters read (with the exception of backslash; see
+                     the -\b-r\br option below).
               -\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
                      Display _\bp_\br_\bo_\bm_\bp_\bt on standard error, without a trailing new-
                      line, before attempting to read any input.  The prompt is
@@ -4453,85 +4989,110 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      ters are not echoed.
               -\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt
                      Cause r\bre\bea\bad\bd to time out and return failure if  a  complete
-                     line  of input is not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\b-
-                     _\bo_\bu_\bt may be a decimal number  with  a  fractional  portion
-                     following  the decimal point.  This option is only effec-
-                     tive if r\bre\bea\bad\bd is reading input from a terminal,  pipe,  or
-                     other  special  file;  it has no effect when reading from
-                     regular files.  If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0, r\bre\bea\bad\bd returns success  if
-                     input  is  available  on  the  specified file descriptor,
-                     failure otherwise.  The exit status is greater  than  128
-                     if the timeout is exceeded.
+                     line  of  input  (or a specified number of characters) is
+                     not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\bo_\bu_\bt may be a  deci-
+                     mal  number with a fractional portion following the deci-
+                     mal point.  This option is  only  effective  if  r\bre\bea\bad\bd  is
+                     reading  input  from  a  terminal, pipe, or other special
+                     file; it has no effect when reading from  regular  files.
+                     If r\bre\bea\bad\bd times out, r\bre\bea\bad\bd saves any partial input read into
+                     the specified variable  _\bn_\ba_\bm_\be.   If  _\bt_\bi_\bm_\be_\bo_\bu_\bt  is  0,  r\bre\bea\bad\bd
+                     returns  immediately,  without  trying  to read any data.
+                     The exit status is 0 if input is available on the  speci-
+                     fied  file descriptor, non-zero otherwise.  The exit sta-
+                     tus is greater than 128 if the timeout is exceeded.
               -\b-u\bu _\bf_\bd  Read input from file descriptor _\bf_\bd.
 
               If no _\bn_\ba_\bm_\be_\bs are supplied, the line read is assigned to the vari-
-              able R\bRE\bEP\bPL\bLY\bY.  The return code  is  zero,  unless  end-of-file  is
-              encountered,  r\bre\bea\bad\bd  times  out (in which case the return code is
-              greater than 128), or an invalid file descriptor is supplied  as
-              the argument to -\b-u\bu.
+              able  R\bRE\bEP\bPL\bLY\bY.   The  exit  status  is zero, unless end-of-file is
+              encountered, r\bre\bea\bad\bd times out (in which case the status is greater
+              than  128),  a variable assignment error (such as assigning to a
+              readonly variable) occurs, or an invalid file descriptor is sup-
+              plied as the argument to -\b-u\bu.
 
-       r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\baA\bAp\bpf\bf] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd] ...]
+       r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\baA\bAf\bf] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd] ...]
               The  given  _\bn_\ba_\bm_\be_\bs are marked readonly; the values of these _\bn_\ba_\bm_\be_\bs
               may not be changed by subsequent assignment.  If the  -\b-f\bf  option
               is  supplied,  the  functions  corresponding to the _\bn_\ba_\bm_\be_\bs are so
               marked.  The  -\b-a\ba  option  restricts  the  variables  to  indexed
               arrays;  the  -\b-A\bA  option  restricts the variables to associative
-              arrays.  If no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option  is
-              supplied,  a  list  of  all  readonly  names is printed.  The -\b-p\bp
-              option causes output to be displayed in a  format  that  may  be
-              reused  as  input.  If a variable name is followed by =_\bw_\bo_\br_\bd, the
-              value of the variable is set to _\bw_\bo_\br_\bd.  The return  status  is  0
-              unless an invalid option is encountered, one of the _\bn_\ba_\bm_\be_\bs is not
-              a valid shell variable name, or -\b-f\bf is supplied with a _\bn_\ba_\bm_\be  that
-              is not a function.
+              arrays.  If both options are supplied, -\b-A\bA takes precedence.   If
+              no  _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied, a
+              list of all readonly names is printed.  The other options may be
+              used  to  restrict the output to a subset of the set of readonly
+              names.  The -\b-p\bp option causes output to be displayed in a  format
+              that  may be reused as input.  If a variable name is followed by
+              =_\bw_\bo_\br_\bd, the value of the variable is set  to  _\bw_\bo_\br_\bd.   The  return
+              status  is 0 unless an invalid option is encountered, one of the
+              _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, or -\b-f\bf is supplied with
+              a _\bn_\ba_\bm_\be that is not a function.
 
        r\bre\bet\btu\bur\brn\bn [_\bn]
-              Causes  a function to exit with the return value specified by _\bn.
-              If _\bn is omitted, the return status is that of the  last  command
-              executed  in the function body.  If used outside a function, but
-              during execution of a script by  the  .\b.   (s\bso\bou\bur\brc\bce\be)  command,  it
-              causes the shell to stop executing that script and return either
-              _\bn or the exit status of the last  command  executed  within  the
-              script  as  the  exit  status  of the script.  If used outside a
-              function and not during execution of a script by .\b.,  the  return
-              status is false.  Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is
-              executed before execution resumes after the function or  script.
-
-       s\bse\bet\bt [-\b--\b-a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\ba_\br_\bg ...]
-       s\bse\bet\bt [+\b+a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\ba_\br_\bg ...]
-              Without  options,  the name and value of each shell variable are
+              Causes  a function to stop executing and return the value speci-
+              fied by _\bn to its caller.  If _\bn is omitted, the return status  is
+              that  of  the  last  command  executed in the function body.  If
+              r\bre\bet\btu\bur\brn\bn is executed by a trap handler, the last command  used  to
+              determine  the  status  is  the last command executed before the
+              trap handler.  if r\bre\bet\btu\bur\brn\bn is executed during a  D\bDE\bEB\bBU\bUG\bG  trap,  the
+              last  command  used  to determine the status is the last command
+              executed by the trap handler  before  r\bre\bet\btu\bur\brn\bn  was  invoked.   If
+              r\bre\bet\btu\bur\brn\bn  is  used  outside  a function, but during execution of a
+              script by the .\b.  (s\bso\bou\bur\brc\bce\be) command, it causes the shell  to  stop
+              executing  that script and return either _\bn or the exit status of
+              the last command executed within the script as the  exit  status
+              of  the script.  If _\bn is supplied, the return value is its least
+              significant 8 bits.  The return status is non-zero if r\bre\bet\btu\bur\brn\bn  is
+              supplied  a  non-numeric argument, or is used outside a function
+              and not during execution of a script by .\b. or s\bso\bou\bur\brc\bce\be.   Any  com-
+              mand  associated  with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed before execu-
+              tion resumes after the function or script.
+
+       s\bse\bet\bt [-\b--\b-a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [_\ba_\br_\bg ...]
+       s\bse\bet\bt [+\b+a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [_\ba_\br_\bg ...]
+              Without options, the name and value of each shell  variable  are
               displayed in a format that can be reused as input for setting or
               resetting the currently-set variables.  Read-only variables can-
-              not be reset.  In _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, only shell variables  are  listed.
-              The  output  is  sorted  according  to the current locale.  When
-              options are specified, they set or unset shell attributes.   Any
-              arguments  remaining after option processing are treated as val-
+              not  be  reset.  In _\bp_\bo_\bs_\bi_\bx mode, only shell variables are listed.
+              The output is sorted according  to  the  current  locale.   When
+              options  are specified, they set or unset shell attributes.  Any
+              arguments remaining after option processing are treated as  val-
               ues for the positional parameters and are assigned, in order, to
-              $\b$1\b1,  $\b$2\b2,  .\b..\b..\b.   $\b$_\bn.   Options,  if specified, have the following
+              $\b$1\b1, $\b$2\b2, .\b..\b..\b.  $\b$_\bn.  Options,  if  specified,  have  the  following
               meanings:
-              -\b-a\ba      Automatically mark variables  and  functions  which  are
-                      modified  or  created  for  export to the environment of
-                      subsequent commands.
-              -\b-b\bb      Report the status of terminated background jobs  immedi-
+              -\b-a\ba      Each variable or function that is created or modified is
+                      given the export attribute and marked for export to  the
+                      environment of subsequent commands.
+              -\b-b\bb      Report  the status of terminated background jobs immedi-
                       ately, rather than before the next primary prompt.  This
                       is effective only when job control is enabled.
-              -\b-e\be      Exit immediately if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist  of  a
-                      single  _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd),  a _\bs_\bu_\bb_\bs_\bh_\be_\bl_\bl command enclosed in
-                      parentheses, or one of the commands executed as part  of
-                      a  command  list  enclosed  by braces (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
-                      above) exits with a non-zero status.  The shell does not
-                      exit  if  the  command that fails is part of the command
-                      list immediately following a  w\bwh\bhi\bil\ble\be  or  u\bun\bnt\bti\bil\bl  keyword,
-                      part  of  the  test  following  the  i\bif\bf or e\bel\bli\bif\bf reserved
-                      words, part of any command executed in a &\b&&\b& or  |\b||\b|  list
-                      except  the  command  following  the final &\b&&\b& or |\b||\b|, any
-                      command in a pipeline but the last, or if the  command's
-                      return  value  is being inverted with !\b!.  A trap on E\bER\bRR\bR,
-                      if set, is executed before the shell exits.  This option
+              -\b-e\be      Exit  immediately  if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist of a
+                      single _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd), a _\bl_\bi_\bs_\bt, or  a  _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd  _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                      (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above), exits with a non-zero status.
+                      The shell does not exit if the  command  that  fails  is
+                      part  of  the command list immediately following a w\bwh\bhi\bil\ble\be
+                      or u\bun\bnt\bti\bil\bl keyword, part of the test following the  i\bif\bf  or
+                      e\bel\bli\bif\bf  reserved  words, part of any command executed in a
+                      &\b&&\b& or |\b||\b| list except the command following the final  &\b&&\b&
+                      or |\b||\b|, any command in a pipeline but the last, or if the
+                      command's return value is being inverted with !\b!.   If  a
+                      compound  command  other  than a subshell returns a non-
+                      zero status because a command failed while -\b-e\be was  being
+                      ignored,  the  shell  does  not exit.  A trap on E\bER\bRR\bR, if
+                      set, is executed before the shell  exits.   This  option
                       applies to the shell environment and each subshell envi-
                       ronment separately (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD  E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN  E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
                       above), and may cause subshells to exit before executing
                       all the commands in the subshell.
+
+                      If a compound command or shell function  executes  in  a
+                      context  where -\b-e\be is being ignored, none of the commands
+                      executed within the compound command  or  function  body
+                      will  be  affected  by the -\b-e\be setting, even if -\b-e\be is set
+                      and a command returns a failure status.  If  a  compound
+                      command  or  shell function sets -\b-e\be while executing in a
+                      context where -\b-e\be is ignored, that setting will not  have
+                      any  effect  until  the  compound command or the command
+                      containing the function call completes.
               -\b-f\bf      Disable pathname expansion.
               -\b-h\bh      Remember the location of commands as they are looked  up
                       for execution.  This is enabled by default.
@@ -4540,10 +5101,10 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       that precede the command name.
               -\b-m\bm      Monitor  mode.   Job control is enabled.  This option is
                       on by default for interactive  shells  on  systems  that
-                      support  it  (see  J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL above).  Background pro-
-                      cesses run in a separate process group and a  line  con-
-                      taining  their exit status is printed upon their comple-
-                      tion.
+                      support  it  (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above).  All processes run
+                      in a separate process group.  When a background job com-
+                      pletes, the shell prints a line containing its exit sta-
+                      tus.
               -\b-n\bn      Read commands but do not execute them.  This may be used
                       to  check  a  shell  script  for syntax errors.  This is
                       ignored by interactive shells.
@@ -4558,11 +5119,11 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               is interactive, unless the shell is started with
                               the  -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg  option.  This also affects the
                               editing interface used for r\bre\bea\bad\bd -\b-e\be.
+                      e\ber\brr\bre\bex\bxi\bit\bt Same as -\b-e\be.
                       e\ber\brr\brt\btr\bra\bac\bce\be
                               Same as -\b-E\bE.
                       f\bfu\bun\bnc\bct\btr\bra\bac\bce\be
                               Same as -\b-T\bT.
-                      e\ber\brr\bre\bex\bxi\bit\bt Same as -\b-e\be.
                       h\bha\bas\bsh\bha\bal\bll\bl Same as -\b-h\bh.
                       h\bhi\bis\bst\bte\bex\bxp\bpa\ban\bnd\bd
                               Same as -\b-H\bH.
@@ -4593,7 +5154,9 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               is disabled by default.
                       p\bpo\bos\bsi\bix\bx   Change the behavior of b\bba\bas\bsh\bh  where  the  default
                               operation  differs  from  the  POSIX standard to
-                              match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
+                              match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).  See  S\bSE\bEE\bE  A\bAL\bLS\bSO\bO
+                              below for a reference to a document that details
+                              how posix mode affects bash's behavior.
                       p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
                               Same as -\b-p\bp.
                       v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
@@ -4609,20 +5172,22 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-p\bp      Turn on _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode.  In this  mode,  the  $\b$E\bEN\bNV\bV  and
                       $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV  files  are not processed, shell functions are
                       not inherited from the environment, and  the  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
-                      C\bCD\bDP\bPA\bAT\bTH\bH,  and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they appear in the
-                      environment, are ignored.  If the shell is started  with
-                      the effective user (group) id not equal to the real user
-                      (group) id, and the -\b-p\bp option  is  not  supplied,  these
-                      actions  are  taken  and the effective user id is set to
-                      the real user id.  If  the  -\b-p\bp  option  is  supplied  at
-                      startup,  the  effective  user id is not reset.  Turning
-                      this option off causes the effective user and group  ids
-                      to be set to the real user and group ids.
+                      B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS,  C\bCD\bDP\bPA\bAT\bTH\bH,  and  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  variables,  if they
+                      appear in the environment, are ignored.  If the shell is
+                      started  with the effective user (group) id not equal to
+                      the real user (group) id, and the -\b-p\bp option is not  sup-
+                      plied, these actions are taken and the effective user id
+                      is set to the real user id.  If the -\b-p\bp  option  is  sup-
+                      plied  at  startup,  the effective user id is not reset.
+                      Turning this option off causes the  effective  user  and
+                      group ids to be set to the real user and group ids.
               -\b-t\bt      Exit after reading and executing one command.
-              -\b-u\bu      Treat unset variables as an error when performing param-
-                      eter expansion.  If expansion is attempted on  an  unset
-                      variable, the shell prints an error message, and, if not
-                      interactive, exits with a non-zero status.
+              -\b-u\bu      Treat unset variables and parameters other than the spe-
+                      cial parameters "@" and "*" as an error when  performing
+                      parameter  expansion.   If  expansion is attempted on an
+                      unset variable or parameter, the shell prints  an  error
+                      message,  and, if not interactive, exits with a non-zero
+                      status.
               -\b-v\bv      Print shell input lines as they are read.
               -\b-x\bx      After expanding each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br  command,  c\bca\bas\bse\be
                       command, s\bse\bel\ble\bec\bct\bt command, or arithmetic f\bfo\bor\br command, dis-
@@ -4640,7 +5205,7 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       ited in such cases.
               -\b-H\bH      Enable !\b!  style history substitution.  This option is on
                       by default when the shell is interactive.
-              -\b-P\bP      If  set,  the  shell does not follow symbolic links when
+              -\b-P\bP      If  set,  the shell does not resolve symbolic links when
                       executing commands such as c\bcd\bd that  change  the  current
                       working  directory.   It  uses  the  physical  directory
                       structure instead.  By default, b\bba\bas\bsh\bh follows the logical
@@ -4676,12 +5241,14 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               zero if _\bn is greater than $\b$#\b# or less than zero; otherwise 0.
 
        s\bsh\bho\bop\bpt\bt [-\b-p\bpq\bqs\bsu\bu] [-\b-o\bo] [_\bo_\bp_\bt_\bn_\ba_\bm_\be ...]
-              Toggle the values of variables controlling optional shell behav-
-              ior.  With no options, or with the -\b-p\bp option, a list of all set-
-              table options is displayed, with an indication of whether or not
-              each  is  set.  The -\b-p\bp option causes output to be displayed in a
-              form that may be reused as input.  Other options have  the  fol-
-              lowing meanings:
+              Toggle the values of settings controlling optional shell  behav-
+              ior.   The settings can be either those listed below, or, if the
+              -\b-o\bo option is used, those available with the -\b-o\bo option to the s\bse\bet\bt
+              builtin command.  With no options, or with the -\b-p\bp option, a list
+              of all settable options is  displayed,  with  an  indication  of
+              whether  or  not each is set.  The -\b-p\bp option causes output to be
+              displayed in a form that may be reused as input.  Other  options
+              have the following meanings:
               -\b-s\bs     Enable (set) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
               -\b-u\bu     Disable (unset) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
               -\b-q\bq     Suppresses  normal output (quiet mode); the return status
@@ -4692,10 +5259,10 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-o\bo     Restricts  the  values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those defined for
                      the -\b-o\bo option to the s\bse\bet\bt builtin.
 
-              If either -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments,  the  dis-
-              play is limited to those options which are set or unset, respec-
-              tively.  Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are  disabled
-              (unset) by default.
+              If either -\b-s\bs or -\b-u\bu is used  with  no  _\bo_\bp_\bt_\bn_\ba_\bm_\be  arguments,  s\bsh\bho\bop\bpt\bt
+              shows  only  those options which are set or unset, respectively.
+              Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are  disabled  (unset)
+              by default.
 
               The  return  status when listing options is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
               are enabled, non-zero  otherwise.   When  setting  or  unsetting
@@ -4715,7 +5282,7 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       ponent  in  a  c\bcd\bd command will be corrected.  The errors
                       checked for are transposed characters, a missing charac-
                       ter,  and  one  character  too many.  If a correction is
-                      found, the corrected file name is printed, and the  com-
+                      found, the corrected filename is printed, and  the  com-
                       mand  proceeds.  This option is only used by interactive
                       shells.
               c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
@@ -4739,95 +5306,175 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       easy re-editing of multi-line commands.
               c\bco\bom\bmp\bpa\bat\bt3\b31\b1
                       If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.1
-                      with respect to quoted arguments to the conditional com-
-                      mand's =~ operator.
+                      with  respect  to quoted arguments to the [\b[[\b[ conditional
+                      command's =\b=~\b~ operator and locale-specific string compar-
+                      ison  when  using  the  [\b[[\b[ conditional command's <\b< and >\b>
+                      operators.  Bash versions prior to  bash-4.1  use  ASCII
+                      collation and _\bs_\bt_\br_\bc_\bm_\bp(3); bash-4.1 and later use the cur-
+                      rent locale's collation sequence and _\bs_\bt_\br_\bc_\bo_\bl_\bl(3).
+              c\bco\bom\bmp\bpa\bat\bt3\b32\b2
+                      If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.2
+                      with  respect  to locale-specific string comparison when
+                      using the [\b[[\b[ conditional command's  <\b<  and  >\b>  operators
+                      (see  previous  item)  and  the effect of interrupting a
+                      command list.  Bash versions 3.2  and  earlier  continue
+                      with  the  next command in the list after one terminates
+                      due to an interrupt.
+              c\bco\bom\bmp\bpa\bat\bt4\b40\b0
+                      If set, b\bba\bas\bsh\bh changes its behavior to that of version 4.0
+                      with  respect  to locale-specific string comparison when
+                      using the [\b[[\b[ conditional command's  <\b<  and  >\b>  operators
+                      (see  description  of c\bco\bom\bmp\bpa\bat\bt3\b31\b1) and the effect of inter-
+                      rupting a command list.  Bash  versions  4.0  and  later
+                      interrupt  the  list as if the shell received the inter-
+                      rupt; previous versions continue with the  next  command
+                      in the list.
+              c\bco\bom\bmp\bpa\bat\bt4\b41\b1
+                      If  set, b\bba\bas\bsh\bh, when in _\bp_\bo_\bs_\bi_\bx mode, treats a single quote
+                      in a double-quoted  parameter  expansion  as  a  special
+                      character.   The  single quotes must match (an even num-
+                      ber) and the characters between the  single  quotes  are
+                      considered  quoted.   This is the behavior of posix mode
+                      through version 4.1.  The default bash behavior  remains
+                      as in previous versions.
+              c\bco\bom\bmp\bpa\bat\bt4\b42\b2
+                      If  set, b\bba\bas\bsh\bh does not process the replacement string in
+                      the pattern  substitution  word  expansion  using  quote
+                      removal.
+              c\bco\bom\bmp\bpa\bat\bt4\b43\b3
+                      If  set,  b\bba\bas\bsh\bh  does  not  print a warning message if an
+                      attempt is made to use a quoted compound  array  assign-
+                      ment  as  an  argument  to d\bde\bec\bcl\bla\bar\bre\be, makes word expansion
+                      errors non-fatal errors that cause the  current  command
+                      to  fail  (the  default  behavior  is to make them fatal
+                      errors that cause the shell to exit), and does not reset
+                      the  loop  state when a shell function is executed (this
+                      allows b\bbr\bre\bea\bak\bk or c\bco\bon\bnt\bti\bin\bnu\bue\be in a shell function  to  affect
+                      loops in the caller's context).
+              c\bco\bom\bmp\bpl\ble\bet\bte\be_\b_f\bfu\bul\bll\blq\bqu\buo\bot\bte\be
+                      If  set,  b\bba\bas\bsh\bh  quotes all shell metacharacters in file-
+                      names and directory names  when  performing  completion.
+                      If not set, b\bba\bas\bsh\bh removes metacharacters such as the dol-
+                      lar sign from the set of characters that will be  quoted
+                      in  completed filenames when these metacharacters appear
+                      in shell variable references in words to  be  completed.
+                      This  means  that  dollar  signs  in variable names that
+                      expand to directories will not be quoted;  however,  any
+                      dollar  signs appearing in filenames will not be quoted,
+                      either.  This is active only when bash  is  using  back-
+                      slashes  to quote completed filenames.  This variable is
+                      set by default, which is the default  bash  behavior  in
+                      versions through 4.2.
+              d\bdi\bir\bre\bex\bxp\bpa\ban\bnd\bd
+                      If  set,  b\bba\bas\bsh\bh replaces directory names with the results
+                      of word expansion when performing  filename  completion.
+                      This  changes  the contents of the readline editing buf-
+                      fer.  If not set, b\bba\bas\bsh\bh attempts  to  preserve  what  the
+                      user typed.
               d\bdi\bir\brs\bsp\bpe\bel\bll\bl
-                      If set, b\bba\bas\bsh\bh attempts spelling correction  on  directory
-                      names  during word completion if the directory name ini-
+                      If  set,  b\bba\bas\bsh\bh attempts spelling correction on directory
+                      names during word completion if the directory name  ini-
                       tially supplied does not exist.
-              d\bdo\bot\btg\bgl\blo\bob\bb If set, b\bba\bas\bsh\bh includes filenames beginning with a `.'  in
+              d\bdo\bot\btg\bgl\blo\bob\bb If  set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
                       the results of pathname expansion.
               e\bex\bxe\bec\bcf\bfa\bai\bil\bl
                       If set, a non-interactive shell will not exit if it can-
-                      not execute the file specified as  an  argument  to  the
-                      e\bex\bxe\bec\b builtin  command.   An  interactive shell does not
+                      not  execute  the  file  specified as an argument to the
+                      e\bex\bxe\bec\bbuiltin command.  An  interactive  shell  does  not
                       exit if e\bex\bxe\bec\bc fails.
               e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
-                      If set, aliases are expanded as  described  above  under
+                      If  set,  aliases  are expanded as described above under
                       A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for interac-
                       tive shells.
               e\bex\bxt\btd\bde\beb\bbu\bug\bg
-                      If set,  behavior  intended  for  use  by  debuggers  is
+                      If  set,  behavior  intended  for  use  by  debuggers is
                       enabled:
                       1\b1.\b.     The -\b-F\bF option to the d\bde\bec\bcl\bla\bar\bre\be builtin displays the
                              source file name and line number corresponding to
                              each function name supplied as an argument.
-                      2\b2.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG trap returns a
-                             non-zero value, the next command is  skipped  and
+                      2\b2.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
+                             non-zero  value,  the next command is skipped and
                              not executed.
-                      3\b3.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG trap returns a
-                             value of 2, and the shell is executing in a  sub-
-                             routine  (a shell function or a shell script exe-
-                             cuted by the .\b. or s\bso\bou\bur\brc\bce\be  builtins),  a  call  to
-                             r\bre\bet\btu\bur\brn\bn is simulated.
-                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\b and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as described
+                      3\b3.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
+                             value  of 2, and the shell is executing in a sub-
+                             routine (a shell function or a shell script  exe-
+                             cuted  by  the  .\b.  or s\bso\bou\bur\brc\bce\be builtins), the shell
+                             simulates a call to r\bre\bet\btu\bur\brn\bn.
+                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\band B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as  described
                              in their descriptions above.
-                      5\b5.\b.     Function tracing is enabled:   command  substitu-
+                      5\b5.\b.     Function  tracing  is  enabled: command substitu-
                              tion, shell functions, and subshells invoked with
                              (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
-                      6\b6.\b.     Error tracing is enabled:  command  substitution,
-                             shell  functions,  and  subshells  invoked with (\b(
-                             _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bRO\bOR\bR trap.
+                      6\b6.\b.     Error  tracing  is enabled: command substitution,
+                             shell functions, and  subshells  invoked  with  (\b(
+                             _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bR trap.
               e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
                       above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
               e\bex\bxt\btq\bqu\buo\bot\bte\be
-                      If  set,  $\b$'_\bs_\bt_\br_\bi_\bn_\bg'  and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
-                      within  $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}  expansions  enclosed   in   double
+                      If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg"  quoting  is  performed
+                      within   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
                       quotes.  This option is enabled by default.
               f\bfa\bai\bil\blg\bgl\blo\bob\bb
-                      If  set,  patterns  which fail to match filenames during
+                      If set, patterns which fail to  match  filenames  during
                       pathname expansion result in an expansion error.
               f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
-                      If set, the suffixes  specified  by  the  F\bFI\bIG\bGN\bNO\bOR\bRE\b shell
-                      variable  cause words to be ignored when performing word
+                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
+                      variable cause words to be ignored when performing  word
                       completion even if the ignored words are the only possi-
                       ble  completions.   See  S\bSH\bHE\bEL\bLL\bL  V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS  above  for  a
-                      description of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled  by
+                      description  of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled by
                       default.
+              g\bgl\blo\bob\bba\bas\bsc\bci\bii\bir\bra\ban\bng\bge\bes\bs
+                      If set,  range  expressions  used  in  pattern  matching
+                      bracket  expressions (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg above) behave
+                      as if in the traditional C locale when  performing  com-
+                      parisons.   That  is,  the  current  locale's  collating
+                      sequence is not taken into account, so b\bb will  not  col-
+                      late  between  A\bA  and  B\bB,  and upper-case and lower-case
+                      ASCII characters will collate together.
               g\bgl\blo\bob\bbs\bst\bta\bar\br
-                      If set, the pattern *\b**\b* used in a filename expansion con-
-                      text will match a files and zero or more directories and
-                      subdirectories.  If the pattern is followed by a /\b/, only
-                      directories and subdirectories match.
+                      If set, the pattern *\b**\b* used in a pathname expansion con-
+                      text  will  match all files and zero or more directories
+                      and subdirectories.  If the pattern is followed by a  /\b/,
+                      only directories and subdirectories match.
               g\bgn\bnu\bu_\b_e\ber\brr\brf\bfm\bmt\bt
                       If set, shell error messages are written in the standard
                       GNU error message format.
               h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd
-                      If  set,  the history list is appended to the file named
-                      by the value of the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE  variable  when  the  shell
+                      If set, the history list is appended to the  file  named
+                      by  the  value  of  the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable when the shell
                       exits, rather than overwriting the file.
               h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt
-                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given the
+                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given  the
                       opportunity to re-edit a failed history substitution.
               h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by
-                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of  his-
-                      tory  substitution  are  not  immediately  passed to the
-                      shell parser.  Instead, the  resulting  line  is  loaded
+                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of his-
+                      tory substitution are  not  immediately  passed  to  the
+                      shell  parser.   Instead,  the  resulting line is loaded
                       into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer, allowing further modi-
                       fication.
               h\bho\bos\bst\btc\bco\bom\bmp\bpl\ble\bet\bte\be
                       If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will attempt to
-                      perform  hostname  completion when a word containing a @\b@
-                      is  being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under   R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
+                      perform hostname completion when a word containing  a  @\b@
+                      is   being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
                       above).  This is enabled by default.
               h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
                       If set, b\bba\bas\bsh\bh will send S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an inter-
                       active login shell exits.
+              i\bin\bnh\bhe\ber\bri\bit\bt_\b_e\ber\brr\bre\bex\bxi\bit\bt
+                      If  set,  command substitution inherits the value of the
+                      e\ber\brr\bre\bex\bxi\bit\bt option, instead of unsetting it in the  subshell
+                      environment.   This option is enabled when _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be is
+                      enabled.
               i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs
                       If set, allow a word beginning with #\b# to cause that word
                       and  all remaining characters on that line to be ignored
                       in an interactive  shell  (see  C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS  above).   This
                       option is enabled by default.
+              l\bla\bas\bst\btp\bpi\bip\bpe\be
+                      If  set,  and  job control is not active, the shell runs
+                      the last command of a pipeline not executed in the back-
+                      ground in the current shell environment.
               l\bli\bit\bth\bhi\bis\bst\bt If  set,  and  the c\bcm\bmd\bdh\bhi\bis\bst\bt option is enabled, multi-line
                       commands are saved to the history with embedded newlines
                       rather than using semicolon separators where possible.
@@ -4851,7 +5498,9 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
                       If set, b\bba\bas\bsh\bh  matches  patterns  in  a  case-insensitive
                       fashion when performing matching while executing c\bca\bas\bse\be or
-                      [\b[[\b[ conditional commands.
+                      [\b[[\b[ conditional commands, when performing pattern substi-
+                      tution  word expansions, or when filtering possible com-
+                      pletions as part of programmable completion.
               n\bnu\bul\bll\blg\bgl\blo\bob\bb
                       If set, b\bba\bas\bsh\bh allows patterns which match no  files  (see
                       P\bPa\bat\bth\bhn\bna\bam\bme\be  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn  above)  to expand to a null string,
@@ -4882,27 +5531,30 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
                       If   set,  the  e\bec\bch\bho\bo  builtin  expands  backslash-escape
                       sequences by default.
+
        s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
               Suspend the execution of this shell until it receives a  S\bSI\bIG\bGC\bCO\bON\bNT\bT
               signal.  A login shell cannot be suspended; the -\b-f\bf option can be
               used to override this and force the suspension.  The return sta-
               tus  is  0  unless the shell is a login shell and -\b-f\bf is not sup-
               plied, or if job control is not enabled.
+
        t\bte\bes\bst\bt _\be_\bx_\bp_\br
        [\b[ _\be_\bx_\bp_\br ]\b]
-              Return a status of 0 or 1 depending on  the  evaluation  of  the
-              conditional  expression _\be_\bx_\bp_\br.  Each operator and operand must be
-              a separate argument.  Expressions are composed of the  primaries
-              described  above  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.  t\bte\bes\bst\bt does not
-              accept any options, nor does it accept and ignore an argument of
-              -\b--\b- as signifying the end of options.
+              Return a status of 0 (true) or 1 (false) depending on the evalu-
+              ation of the conditional expression _\be_\bx_\bp_\br.  Each operator and op-
+              erand must be a separate argument.  Expressions are composed  of
+              the  primaries  described  above  under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
+              t\bte\bes\bst\bt does not accept any options, nor does it accept and  ignore
+              an argument of -\b--\b- as signifying the end of options.
 
               Expressions  may  be  combined  using  the  following operators,
               listed  in  decreasing  order  of  precedence.   The  evaluation
-              depends on the number of arguments; see below.
+              depends  on the number of arguments; see below.  Operator prece-
+              dence is used when there are five or more arguments.
               !\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
               (\b( _\be_\bx_\bp_\br )\b)
-                     Returns  the value of _\be_\bx_\bp_\br.  This may be used to override
+                     Returns the value of _\be_\bx_\bp_\br.  This may be used to  override
                      the normal precedence of operators.
               _\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
                      True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
@@ -4919,13 +5571,14 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      null.
               2 arguments
                      If the first argument is !\b!, the expression is true if and
-                     only  if the second argument is null.  If the first argu-
-                     ment is one of the  unary  conditional  operators  listed
-                     above  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL  E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
+                     only if the second argument is null.  If the first  argu-
+                     ment  is  one  of  the unary conditional operators listed
+                     above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS,  the  expression  is
                      true if the unary test is true.  If the first argument is
                      not a valid unary conditional operator, the expression is
                      false.
               3 arguments
+                     The following conditions are applied in the order listed.
                      If the second argument is one of the  binary  conditional
                      operators listed above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
                      result of the expression is the result of the binary test
@@ -4947,80 +5600,91 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      The expression  is  parsed  and  evaluated  according  to
                      precedence using the rules listed above.
 
-       t\bti\bim\bme\bes\bs  Print  the  accumulated  user and system times for the shell and
+              When  used  with  t\bte\bes\bst\bt  or [\b[, the <\b< and >\b> operators sort lexico-
+              graphically using ASCII ordering.
+
+       t\bti\bim\bme\bes\bs  Print the accumulated user and system times for  the  shell  and
               for processes run from the shell.  The return status is 0.
 
        t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
-              The command _\ba_\br_\bg is to  be  read  and  executed  when  the  shell
-              receives  signal(s)  _\bs_\bi_\bg_\bs_\bp_\be_\bc.   If _\ba_\br_\bg is absent (and there is a
-              single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified  signal  is  reset  to  its
-              original  disposition  (the  value  it  had upon entrance to the
-              shell).  If _\ba_\br_\bg is the null string the signal specified by  each
-              _\bs_\bi_\bg_\bs_\bp_\be_\bc  is ignored by the shell and by the commands it invokes.
-              If _\ba_\br_\bg is not present and -\b-p\bp has been supplied,  then  the  trap
-              commands  associated  with  each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are displayed.  If no
-              arguments are supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp  prints  the
-              list  of  commands  associated  with each signal.  The -\b-l\bl option
-              causes the shell to print a list of signal names and their  cor-
-              responding  numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal name
-              defined in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal  number.   Signal  names  are
-              case  insensitive  and the SIG prefix is optional.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc
-              is E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit from the  shell.
-              If  a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is executed before every
-              _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command, _\bs_\be_\bl_\be_\bc_\bt command, every
-              arithmetic _\bf_\bo_\br command, and before the first command executes in
-              a shell function  (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR  above).   Refer  to  the
-              description  of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg  option  to the s\bsh\bho\bop\bpt\bt builtin for
-              details of its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  E\bER\bRR\bR,
-              the  command  _\ba_\br_\bg  is  executed  whenever a simple command has a
-              non-zero exit status, subject to the following conditions.   The
-              E\bER\bRR\bR  trap  is  not executed if the failed command is part of the
-              command list immediately following a  w\bwh\bhi\bil\ble\be  or  u\bun\bnt\bti\bil\bl  keyword,
-              part  of the test in an _\bi_\bf statement, part of a command executed
-              in a &\b&&\b& or |\b||\b| list, or if the command's return  value  is  being
-              inverted  via  !\b!.   These  are the same conditions obeyed by the
-              e\ber\brr\bre\bex\bxi\bit\bt option.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is exe-
-              cuted each time a shell function or a script executed with the .\b.
-              or s\bso\bou\bur\brc\bce\be builtins finishes  executing.   Signals  ignored  upon
-              entry  to the shell cannot be trapped or reset.  Trapped signals
-              that are not being ignored are reset to their original values in
-              a  child process when it is created.  The return status is false
-              if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is invalid; otherwise t\btr\bra\bap\bp returns true.
+              The  command  _\ba_\br_\bg  is  to  be  read  and executed when the shell
+              receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc.  If _\ba_\br_\bg is absent (and  there  is  a
+              single  _\bs_\bi_\bg_\bs_\bp_\be_\bc)  or  -\b-,  each  specified signal is reset to its
+              original disposition (the value it  had  upon  entrance  to  the
+              shell).   If _\ba_\br_\bg is the null string the signal specified by each
+              _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored by the shell and by the commands it  invokes.
+              If  _\ba_\br_\bg  is  not present and -\b-p\bp has been supplied, then the trap
+              commands associated with each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are  displayed.   If  no
+              arguments  are  supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
+              list of commands associated with each  signal.   The  -\b-l\bl  option
+              causes  the shell to print a list of signal names and their cor-
+              responding numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal  name
+              defined  in  <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>,  or  a signal number.  Signal names are
+              case insensitive and the S\bSI\bIG\bG prefix is optional.
+
+              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg  is  executed  on  exit
+              from  the shell.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is exe-
+              cuted before every _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br  command,  _\bc_\ba_\bs_\be  command,
+              _\bs_\be_\bl_\be_\bc_\bt  command,  every  arithmetic  _\bf_\bo_\br command, and before the
+              first command executes in a shell function  (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR
+              above).   Refer to the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the
+              s\bsh\bho\bop\bpt\bt builtin for details of its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a
+              _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is executed each time a shell
+              function or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins fin-
+              ishes executing.
+
+              If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  E\bER\bRR\bR,  the command _\ba_\br_\bg is executed whenever a
+              pipeline (which may consist of a single simple command), a list,
+              or a compound command returns a non-zero exit status, subject to
+              the following conditions.  The E\bER\bRR\bR trap is not executed  if  the
+              failed command is part of the command list immediately following
+              a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword, part of the test in an  _\bi_\bf  statement,
+              part of a command executed in a &\b&&\b& or |\b||\b| list except the command
+              following the final &\b&&\b& or |\b||\b|, any command in a pipeline but  the
+              last,  or  if the command's return value is being inverted using
+              !\b!.  These are the same conditions obeyed  by  the  e\ber\brr\bre\bex\bxi\bit\bt  (-\b-e\be)
+              option.
+
+              Signals  ignored  upon  entry  to the shell cannot be trapped or
+              reset.  Trapped signals that are not being ignored are reset  to
+              their original values in a subshell or subshell environment when
+              one is created.  The return status is false if  any  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is
+              invalid; otherwise t\btr\bra\bap\bp returns true.
 
        t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
-              With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted  if
+              With  no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
               used as a command name.  If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
-              string which is one of _\ba_\bl_\bi_\ba_\bs,  _\bk_\be_\by_\bw_\bo_\br_\bd,  _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn,  _\bb_\bu_\bi_\bl_\bt_\bi_\bn,  or
-              _\bf_\bi_\bl_\b if  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word, function,
-              builtin, or disk file, respectively.  If the _\bn_\ba_\bm_\be is not  found,
-              then  nothing  is  printed,  and  an  exit  status  of  false is
-              returned.  If the -\b-p\bp option is used,  t\bty\byp\bpe\be  either  returns  the
+              string  which  is  one  of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
+              _\bf_\bi_\bl_\bif  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word,  function,
+              builtin,  or disk file, respectively.  If the _\bn_\ba_\bm_\be is not found,
+              then nothing  is  printed,  and  an  exit  status  of  false  is
+              returned.   If  the  -\b-p\bp  option is used, t\bty\byp\bpe\be either returns the
               name of the disk file that would be executed if _\bn_\ba_\bm_\be were speci-
               fied as a command name, or nothing if ``type -t name'' would not
-              return  _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be,
+              return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each  _\bn_\ba_\bm_\be,
               even if ``type -t name'' would not return _\bf_\bi_\bl_\be.  If a command is
-              hashed,  -\b-p\bp  and  -\b-P\bP print the hashed value, not necessarily the
-              file that appears first in P\bPA\bAT\bTH\bH.  If the -\b-a\ba option is used, t\bty\byp\bpe\be
-              prints  all of the places that contain an executable named _\bn_\ba_\bm_\be.
-              This includes aliases and functions,  if  and  only  if  the  -\b-p\bp
-              option  is  not  also used.  The table of hashed commands is not
-              consulted when using -\b-a\ba.  The -\b-f\bf option suppresses  shell  func-
-              tion  lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true if
-              all of the arguments are found, false if any are not found.
-
-       u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bST\bTa\bab\bbc\bcd\bde\bef\bfi\bil\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bx [_\bl_\bi_\bm_\bi_\bt]]
-              Provides control over the resources available to the  shell  and
-              to  processes started by it, on systems that allow such control.
+              hashed, -\b-p\bp and -\b-P\bP print the hashed value, which is not necessar-
+              ily  the  file  that appears first in P\bPA\bAT\bTH\bH.  If the -\b-a\ba option is
+              used, t\bty\byp\bpe\be prints all of the places that contain  an  executable
+              named _\bn_\ba_\bm_\be.  This includes aliases and functions, if and only if
+              the -\b-p\bp option is not also used.  The table of hashed commands is
+              not  consulted  when  using  -\b-a\ba.  The -\b-f\bf option suppresses shell
+              function lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true
+              if all of the arguments are found, false if any are not found.
+
+       u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bSa\bab\bbc\bcd\bde\bef\bfi\bik\bkl\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bxP\bPT\bT [_\bl_\bi_\bm_\bi_\bt]]
+              Provides  control  over the resources available to the shell and
+              to processes started by it, on systems that allow such  control.
               The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
-              for  the  given resource.  A hard limit cannot be increased by a
-              non-root user once it is set; a soft limit may be  increased  up
-              to  the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is speci-
+              for the given resource.  A hard limit cannot be increased  by  a
+              non-root  user  once it is set; a soft limit may be increased up
+              to the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is  speci-
               fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
               can be a number in the unit specified for the resource or one of
               the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
-              current  hard  limit,  the  current  soft  limit,  and no limit,
-              respectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, the  current  value  of  the
-              soft  limit  of the resource is printed, unless the -\b-H\bH option is
+              current hard limit,  the  current  soft  limit,  and  no  limit,
+              respectively.   If  _\bl_\bi_\bm_\bi_\bt  is  omitted, the current value of the
+              soft limit of the resource is printed, unless the -\b-H\bH  option  is
               given.  When more than one resource is specified, the limit name
               and unit are printed before the value.  Other options are inter-
               preted as follows:
@@ -5029,11 +5693,12 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-c\bc     The maximum size of core files created
               -\b-d\bd     The maximum size of a process's data segment
               -\b-e\be     The maximum scheduling priority ("nice")
-              -\b-f\bf     The maximum size of files written by the  shell  and  its
+              -\b-f\bf     The  maximum  size  of files written by the shell and its
                      children
               -\b-i\bi     The maximum number of pending signals
+              -\b-k\bk     The maximum number of kqueues that may be allocated
               -\b-l\bl     The maximum size that may be locked into memory
-              -\b-m\bm     The  maximum resident set size (many systems do not honor
+              -\b-m\bm     The maximum resident set size (many systems do not  honor
                      this limit)
               -\b-n\bn     The maximum number of open file descriptors (most systems
                      do not allow this value to be set)
@@ -5042,20 +5707,22 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-r\br     The maximum real-time scheduling priority
               -\b-s\bs     The maximum stack size
               -\b-t\bt     The maximum amount of cpu time in seconds
-              -\b-u\bu     The  maximum  number  of  processes available to a single
+              -\b-u\bu     The maximum number of processes  available  to  a  single
                      user
-              -\b-v\bv     The maximum amount of virtual  memory  available  to  the
-                     shell
+              -\b-v\bv     The  maximum  amount  of  virtual memory available to the
+                     shell and, on some systems, to its children
               -\b-x\bx     The maximum number of file locks
+              -\b-P\bP     The maximum number of pseudoterminals
               -\b-T\bT     The maximum number of threads
 
-              If _\bl_\bi_\bm_\bi_\bt is given, it is the new value of the specified resource
-              (the -\b-a\ba option is display only).  If no option is given, then -\b-f\bf
-              is  assumed.  Values are in 1024-byte increments, except for -\b-t\bt,
-              which is in seconds, -\b-p\bp, which is in units of  512-byte  blocks,
-              and  -\b-T\bT,  -\b-b\bb, -\b-n\bn, and -\b-u\bu, which are unscaled values.  The return
-              status is 0 unless an invalid option or argument is supplied, or
-              an error occurs while setting a new limit.
+              If _\bl_\bi_\bm_\bi_\bt is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt  is  the
+              new  value  of  the  specified resource.  If no option is given,
+              then -\b-f\bf is assumed.  Values are in 1024-byte increments,  except
+              for  -\b-t\bt,  which is in seconds; -\b-p\bp, which is in units of 512-byte
+              blocks; -\b-P\bP, -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are  unscaled  values;
+              and, when in Posix mode, -\b-c\bc and -\b-f\bf, which are in 512-byte incre-
+              ments.  The return status is 0 unless an invalid option or argu-
+              ment is supplied, or an error occurs while setting a new limit.
 
        u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
               The user file-creation mask is set to _\bm_\bo_\bd_\be.  If _\bm_\bo_\bd_\be begins with
@@ -5074,33 +5741,40 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               supplied,  all  alias definitions are removed.  The return value
               is true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
 
-       u\bun\bns\bse\bet\bt [-f\bfv\bv] [_\bn_\ba_\bm_\be ...]
+       u\bun\bns\bse\bet\bt [-f\bfv\bv] [-n\bn] [_\bn_\ba_\bm_\be ...]
               For each _\bn_\ba_\bm_\be, remove the corresponding  variable  or  function.
-              If no options are supplied, or the -\b-v\bv option is given, each _\bn_\ba_\bm_\be
-              refers to a shell variable.   Read-only  variables  may  not  be
+              If the -\b-v\bv option is given, each _\bn_\ba_\bm_\be refers to a shell variable,
+              and that variable is removed.  Read-only variables  may  not  be
               unset.   If  -\b-f\bf  is specified, each _\bn_\ba_\bm_\be refers to a shell func-
-              tion, and the function definition is removed.  Each unset  vari-
-              able  or function is removed from the environment passed to sub-
-              sequent commands.  If any of R\bRA\bAN\bND\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS,  L\bLI\bIN\bNE\bEN\bNO\bO,  H\bHI\bIS\bST\bTC\bCM\bMD\bD,
-              F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, or D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK are unset, they lose their special
-              properties, even if they are subsequently reset.  The exit  sta-
-              tus is true unless a _\bn_\ba_\bm_\be is readonly.
-
-       w\bwa\bai\bit\bt [_\bn _\b._\b._\b.]
-              Wait  for each specified process and return its termination sta-
-              tus.  Each _\bn may be a process ID or a job  specification;  if  a
+              tion, and the function definition is removed.  If the -\b-n\bn  option
+              is  supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\bf attribute,
+              _\bn_\ba_\bm_\be will be unset rather than the variable it  references.   -\b-n\bn
+              has  no  effect if the -\b-f\bf option is supplied.  If no options are
+              supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is  no  vari-
+              able  by  that name, any function with that name is unset.  Each
+              unset variable or  function  is  removed  from  the  environment
+              passed  to subsequent commands.  If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, R\bRA\bAN\bN-\b-
+              D\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS, L\bLI\bIN\bNE\bEN\bNO\bO, H\bHI\bIS\bST\bTC\bCM\bMD\bD, F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, or D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK are
+              unset, they lose their special properties, even if they are sub-
+              sequently reset.  The exit status is true unless a _\bn_\ba_\bm_\be is read-
+              only.
+
+       w\bwa\bai\bit\bt [-\b-n\bn] [_\bn _\b._\b._\b.]
+              Wait for each specified child process and return its termination
+              status.  Each _\bn may be a process ID or a job specification; if a
               job  spec  is  given,  all  processes in that job's pipeline are
               waited for.  If _\bn is not given, all currently active child  pro-
-              cesses  are  waited  for,  and  the return status is zero.  If _\bn
-              specifies a non-existent process or job, the  return  status  is
-              127.   Otherwise,  the  return  status is the exit status of the
-              last process or job waited for.
+              cesses are waited for, and the return status is zero.  If the -\b-n\bn
+              option is supplied, w\bwa\bai\bit\bt waits for  any  job  to  terminate  and
+              returns  its exit status.  If _\bn specifies a non-existent process
+              or job, the return status is 127.  Otherwise, the return  status
+              is the exit status of the last process or job waited for.
 
 R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
-       invocation,  the  shell becomes restricted.  A restricted shell is used
-       to set up an environment more controlled than the standard  shell.   It
-       behaves  identically  to b\bba\bas\bsh\bh with the exception that the following are
+       invocation, the shell becomes restricted.  A restricted shell  is  used
+       to  set  up an environment more controlled than the standard shell.  It
+       behaves identically to b\bba\bas\bsh\bh with the exception that the  following  are
        disallowed or not performed:
 
        +\bo      changing directories with c\bcd\bd
@@ -5109,10 +5783,10 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
 
        +\bo      specifying command names containing /\b/
 
-       +\bo      specifying  a  file  name containing a /\b/ as an argument to the .\b.
+       +\bo      specifying  a  filename  containing  a /\b/ as an argument to the .\b.
               builtin command
 
-       +\bo      Specifying a filename containing a slash as an argument  to  the
+       +\bo      specifying a filename containing a slash as an argument  to  the
               -\b-p\bp option to the h\bha\bas\bsh\bh builtin command
 
        +\bo      importing  function  definitions  from  the shell environment at
@@ -5130,7 +5804,7 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        +\bo      adding  or  deleting builtin commands with the -\b-f\bf and -\b-d\bd options
               to the e\ben\bna\bab\bbl\ble\be builtin command
 
-       +\bo      Using the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled  shell
+       +\bo      using the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled  shell
               builtins
 
        +\bo      specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command
@@ -5148,7 +5822,9 @@ S\bSE\bEE\bE A\bAL\bLS\bSO\bO
        _\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
        _\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
        _\bP_\bo_\br_\bt_\ba_\bb_\bl_\be  _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg  _\bS_\by_\bs_\bt_\be_\bm  _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
-       _\bt_\bi_\be_\bs, IEEE
+       _\bt_\bi_\be_\bs, IEEE --
+              http://pubs.opengroup.org/onlinepubs/9699919799/
+       http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
        _\bs_\bh(1), _\bk_\bs_\bh(1), _\bc_\bs_\bh(1)
        _\be_\bm_\ba_\bc_\bs(1), _\bv_\bi(1)
        _\br_\be_\ba_\bd_\bl_\bi_\bn_\be(3)
@@ -5163,7 +5839,7 @@ F\bFI\bIL\bLE\bES\bS
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc
               The individual per-interactive-shell startup file
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt
-              The  individual  login shell cleanup file, executed when a login
+              The individual login shell cleanup file, executed when  a  login
               shell exits
        _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc
               Individual _\br_\be_\ba_\bd_\bl_\bi_\bn_\be initialization file
@@ -5177,14 +5853,14 @@ A\bAU\bUT\bTH\bHO\bOR\bRS\bS
 
 B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        If you find a bug in b\bba\bas\bsh\bh,\b, you should report it.  But first, you should
-       make  sure  that  it really is a bug, and that it appears in the latest
-       version  of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available   from
-       _\bf_\bt_\bp_\b:_\b/_\b/_\bf_\bt_\bp_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bp_\bu_\bb_\b/_\bb_\ba_\bs_\bh_\b/.
-
-       Once  you  have  determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
-       command to submit a bug report.  If you have a fix, you are  encouraged
-       to  mail that as well!  Suggestions and `philosophical' bug reports may
-       be mailed  to  _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg  or  posted  to  the  Usenet  newsgroup
+       make sure that it really is a bug, and that it appears  in  the  latest
+       version   of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available  from
+       _\bf_\bt_\bp_\b:_\b/_\b/_\bf_\bt_\bp_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bp_\bu_\bb_\b/_\bg_\bn_\bu_\b/_\bb_\ba_\bs_\bh_\b/.
+
+       Once you have determined that a bug actually exists,  use  the  _\bb_\ba_\bs_\bh_\bb_\bu_\bg
+       command  to submit a bug report.  If you have a fix, you are encouraged
+       to mail that as well!  Suggestions and `philosophical' bug reports  may
+       be  mailed  to  _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg  or  posted  to  the  Usenet newsgroup
        g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
 
        ALL bug reports should include:
@@ -5195,11 +5871,11 @@ B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        A description of the bug behaviour
        A short script or `recipe' which exercises the bug
 
-       _\bb_\ba_\bs_\bh_\bb_\bu_\b inserts  the first three items automatically into the template
+       _\bb_\ba_\bs_\bh_\bb_\bu_\binserts the first three items automatically into  the  template
        it provides for filing a bug report.
 
        Comments and bug reports concerning this manual page should be directed
-       to _\bc_\bh_\be_\bt_\b@_\bp_\bo_\b._\bc_\bw_\br_\bu_\b._\be_\bd_\bu.
+       to _\bc_\bh_\be_\bt_\b._\br_\ba_\bm_\be_\by_\b@_\bc_\ba_\bs_\be_\b._\be_\bd_\bu.
 
 B\bBU\bUG\bGS\bS
        It's too big and too slow.
@@ -5212,10 +5888,10 @@ B\bBU\bUG\bGS\bS
        Shell builtin commands and functions are not stoppable/restartable.
 
        Compound commands and command sequences of the form `a ; b ; c' are not
-       handled  gracefully  when  process  suspension  is  attempted.   When a
-       process is stopped, the shell immediately executes the next command  in
-       the  sequence.   It  suffices to place the sequence of commands between
-       parentheses to force it into a subshell, which  may  be  stopped  as  a
+       handled gracefully  when  process  suspension  is  attempted.   When  a
+       process  is stopped, the shell immediately executes the next command in
+       the sequence.  It suffices to place the sequence  of  commands  between
+       parentheses  to  force  it  into  a subshell, which may be stopped as a
        unit.
 
        Array variables may not (yet) be exported.
@@ -5224,4 +5900,4 @@ B\bBU\bUG\bGS\bS
 
 
 
-GNU Bash-4.0                    2009 February 7                        BASH(1)
+GNU Bash 4.4                    2016 February 8                        BASH(1)