]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
readline changes to use xfree; bumped version to bash-5.2-beta
authorChet Ramey <chet.ramey@case.edu>
Fri, 8 Apr 2022 15:03:02 +0000 (11:03 -0400)
committerChet Ramey <chet.ramey@case.edu>
Fri, 8 Apr 2022 15:03:02 +0000 (11:03 -0400)
20 files changed:
CHANGES
CHANGES-5.2
CWRU/CWRU.chlog
NEWS
NEWS-5.2
configure
configure.ac
doc/bash.0
doc/bash.1
doc/bashref.info
doc/bashref.texi
lib/readline/complete.c
lib/readline/display.c
lib/readline/histfile.c
lib/readline/histsearch.c
lib/readline/isearch.c
lib/readline/misc.c
lib/readline/readline.c
lib/readline/search.c
lib/readline/terminal.c

diff --git a/CHANGES b/CHANGES
index 5f51c42903a6df332f31829ee35743bb2714b6b2..ed85618298106b99d7d632ee5fb4382deaf8a341 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,78 @@
+This document details the changes between this version, bash-5.2-beta, and
+the previous version, bash-5.2-alpha.
+
+1. Changes to Bash
+
+a. Fixed a problem with command-oriented history and multi-line commands that
+   caused embedded blank lines to be run together.
+
+b. Changed the way `&' is quoted when performing pattern substitution and
+   `patsub_replacement' is enabled.
+
+c. Fixed some integer overflows when expanding strings or reading the output
+   of command substitution larger than 2GB.
+
+d. `wait -p' without the `-n' option now does something useful if there are no
+   jobs.
+
+e. Fixed an issue with read timeouts in posix mode.
+
+f. Changed here-document processing to process $'...' and $"..." only when they
+   appear in the WORD portion of ${PARAM OP WORD} in the here-document body
+   and the body is being expanded.
+
+g. Changed alias expansion in command substitution to be posix-conformant
+   (performed while initially parsing the command substitution) when in posix
+   mode.
+
+h. Bash optimizes away more forks in subshells.
+
+i. Here-document construction now performs quote removal on the here-document
+   delimiter only if it's marked as quoted, which prevents quote characters in
+   command substitutions from being removed.
+
+j. Prompt string expansion now gives invisible characters in the expansion of
+   the \w, \W, and \s escape sequences a visible representation to avoid
+   problems with redisplay.
+
+k. Fixed a problem with SIGINT during the execution of a command bound with
+   `bind -x' affecting the saved terminal settings.
+
+l. Fixed an inconsistency with how $@ expands in a construct like ${@:+set}
+   or ${array[@]:+set} in the presence of null positional parameters or
+   array elements.
+
+2. Changes to Readline
+
+a. Prevent some display problems when running a command as the result of a
+   trap or one bound using `bind -x' and the command generates output.
+
+b. Fixed an issue with multi-line prompt strings that have one or more
+   invisible characters at the end of a physical line.
+
+c. Fixed an issue that caused a history line's undo list to be cleared when
+   it should not have been.
+
+3. New Features in Bash
+
+a. There is a new bindable readline command name: `vi-edit-and-execute-command'.
+
+4. New Features in Readline
+
+a. Two new bindable string variables: active-region-start-color and
+   active-region-end-color. The first sets the color used to display the
+   active region; the second turns it off. If set, these are used in place
+   of terminal standout mode.
+
+b. New readline state (RL_STATE_EOF) and application-visible variable
+   (rl_eof_found) to allow applications to detect when readline reads EOF
+   before calling the deprep-terminal hook.
+
+c. There is a new configuration option: --with-shared-termcap-library, which
+   forces linking the shared readline library with the shared termcap (or
+   curses/ncurses/termlib) library so applications don't have to do it.
+
+------------------------------------------------------------------------------
 This document details the changes between this version, bash-5.2-alpha, and
 the previous version, bash-5.1-release.
 
index 752552af362dc93e6fc78c0d5c74cb8ffc340309..e14f3b0f40c754a5815ebca1c6444d0d0cfac935 100644 (file)
@@ -1,3 +1,78 @@
+This document details the changes between this version, bash-5.2-beta, and
+the previous version, bash-5.2-alpha.
+
+1. Changes to Bash
+
+a. Fixed a problem with command-oriented history and multi-line commands that
+   caused embedded blank lines to be run together.
+
+b. Changed the way `&' is quoted when performing pattern substitution and
+   `patsub_replacement' is enabled.
+
+c. Fixed some integer overflows when expanding strings or reading the output
+   of command substitution larger than 2GB.
+
+d. `wait -p' without the `-n' option now does something useful if there are no
+   jobs.
+
+e. Fixed an issue with read timeouts in posix mode.
+
+f. Changed here-document processing to process $'...' and $"..." only when they
+   appear in the WORD portion of ${PARAM OP WORD} in the here-document body
+   and the body is being expanded.
+
+g. Changed alias expansion in command substitution to be posix-conformant
+   (performed while initially parsing the command substitution) when in posix
+   mode.
+
+h. Bash optimizes away more forks in subshells.
+
+i. Here-document construction now performs quote removal on the here-document
+   delimiter only if it's marked as quoted, which prevents quote characters in
+   command substitutions from being removed.
+
+j. Prompt string expansion now gives invisible characters in the expansion of
+   the \w, \W, and \s escape sequences a visible representation to avoid
+   problems with redisplay.
+
+k. Fixed a problem with SIGINT during the execution of a command bound with
+   `bind -x' affecting the saved terminal settings.
+
+l. Fixed an inconsistency with how $@ expands in a construct like ${@:+set}
+   or ${array[@]:+set} in the presence of null positional parameters or
+   array elements.
+
+2. Changes to Readline
+
+a. Prevent some display problems when running a command as the result of a
+   trap or one bound using `bind -x' and the command generates output.
+
+b. Fixed an issue with multi-line prompt strings that have one or more
+   invisible characters at the end of a physical line.
+
+c. Fixed an issue that caused a history line's undo list to be cleared when
+   it should not have been.
+
+3. New Features in Bash
+
+a. There is a new bindable readline command name: `vi-edit-and-execute-command'.
+
+4. New Features in Readline
+
+a. Two new bindable string variables: active-region-start-color and
+   active-region-end-color. The first sets the color used to display the
+   active region; the second turns it off. If set, these are used in place
+   of terminal standout mode.
+
+b. New readline state (RL_STATE_EOF) and application-visible variable
+   (rl_eof_found) to allow applications to detect when readline reads EOF
+   before calling the deprep-terminal hook.
+
+c. There is a new configuration option: --with-shared-termcap-library, which
+   forces linking the shared readline library with the shared termcap (or
+   curses/ncurses/termlib) library so applications don't have to do it.
+
+------------------------------------------------------------------------------
 This document details the changes between this version, bash-5.2-alpha, and
 the previous version, bash-5.1-release.
 
index 5372efdc2a0611365fd4e8f56d63a7d8b6963a23..66d3cd6b43b1f4da78eb6eed911f083a75e5f232 100644 (file)
@@ -3407,34 +3407,45 @@ lib/readline/search.c
                                   ----
 subst.c
        - parameter_brace_expand_word: if we have double-quoted ${*} or ${@},
-         make sure we are setting W_HASQUOTEDNULL in the flags we return to the
-         caller if we are returning QUOTED_NULL(word)
-       - parameter_brace_expand_word: if we have a double-quoted associative array
-         reference using `*' or `@', make sure we are setting W_HASQUOTEDNULL in the flags
-         we return to the caller if we are returning QUOTED_NULL(word)
-       - parameter_brace_expand: if we're using the `[:]+' word expansion operator,
-         we need to note a quoted null string and pass the W_QUOTEDNULL flag
-         back to the caller
-       - expand_word_internal: make sure to return a QUOTED_NULL (word[0] == CTLNUL)
-         back to the caller if HAD_QUOTED_NULL is set, regardless of whether or
-         not we see a quoted dollar at. Fix for bug reported by
-         Andreas Luik <andreas.luik@innovative-navigation.de>
+         make sure we are setting W_HASQUOTEDNULL in the flags we return to
+         the caller if we are returning QUOTED_NULL(word)
+       - parameter_brace_expand_word: if we have a double-quoted associative
+         array reference using `*' or `@', make sure we are setting
+         W_HASQUOTEDNULL in the flags we return to the caller if we are
+         returning QUOTED_NULL(word)
+       - parameter_brace_expand: if we're using the `[:]+' word expansion
+         operator, we need to note a quoted null string and pass the
+         W_QUOTEDNULL flag back to the caller
+       - expand_word_internal: make sure to return a QUOTED_NULL
+         (word[0] == CTLNUL) back to the caller if HAD_QUOTED_NULL is set,
+         regardless of whether or not we see a quoted dollar at. Fix for bug
+         reported by Andreas Luik <andreas.luik@innovative-navigation.de>
 
 arrayfunc.c
-       - array_value_internal: fix typo and set estatep->type to ARRAY_INDEXED for
-         indexed arrays
+       - array_value_internal: fix typo and set estatep->type to ARRAY_INDEXED
+         for indexed arrays
 
                                   3/31
                                   ----
 lib/readline/{history.c,histlib.h}
-       - _hs_at_end_of_history: convenience function to tell whether or not the
-         current history position is at the end of the history list
+       - _hs_at_end_of_history: convenience function to tell whether or not
+         the current history position is at the end of the history list
 
                                    4/1
                                    ---
 lib/readline/search.c
        - make_history_line_current: don't free rl_undo_list if it is equal to
-         _rl_saved_line_for_history->data, since we will need to restore it later
-        if we got it from a history entry. Fixes issue dating back to 7/2021 and
-        changes to _rl_free_saved_line_for_history, current issue reported by
-        Andreas Schwab <schwab@linux-m68k.org>
+         _rl_saved_line_for_history->data, since we will need to restore it
+        later if we got it from a history entry. Fixes issue dating back to
+        7/2021 and changes to _rl_free_saved_line_for_history, current issue
+        reported by Andreas Schwab <schwab@linux-m68k.org>
+
+                                   4/5
+                                   ---
+lib/readline/{complete,histfile,histsearch,isearch,terminal}.c
+       - xfree: use instead of free
+
+                                   4/7
+                                   ---
+configure.ac
+       - bumped version to bash-5.2-beta
diff --git a/NEWS b/NEWS
index 94ec973434cfbcf9396332b136efcc89d88c05b4..d742247b1dd7375c5471ee2fd9914dcd63a31b56 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -97,6 +97,9 @@ bb. Array references using `@' and `*' that are the value of nameref variables
     (declare -n ref='v[@]' ; echo $ref) no longer cause the shell to exit if
     set -u is enabled and the array (v) is unset.
 
+cc. There is a new bindable readline command name:
+    `vi-edit-and-execute-command'.
+
 2. New Features in Readline
 
 a. There is now an HS_HISTORY_VERSION containing the version number of the
@@ -133,6 +136,19 @@ i. Readline looks in $LS_COLORS for a custom filename extension
    (*.readline-colored-completion-prefix) and uses that as the default color
    for the common prefix displayed when `colored-completion-prefix' is set.
 
+j. Two new bindable string variables: active-region-start-color and
+   active-region-end-color. The first sets the color used to display the
+   active region; the second turns it off. If set, these are used in place
+   of terminal standout mode.
+
+k. New readline state (RL_STATE_EOF) and application-visible variable
+   (rl_eof_found) to allow applications to detect when readline reads EOF
+   before calling the deprep-terminal hook.
+
+l. There is a new configuration option: --with-shared-termcap-library, which
+   forces linking the shared readline library with the shared termcap (or
+   curses/ncurses/termlib) library so applications don't have to do it.
+
 -------------------------------------------------------------------------------
 This is a terse description of the new features added to bash-5.1 since
 the release of bash-5.0.  As always, the manual page (doc/bash.1) is
index 3822368782f7797e280fba17cc68f7f88c9fd09e..9c72b571d6a255c7325bef001b93d8abdd31f6df 100644 (file)
--- a/NEWS-5.2
+++ b/NEWS-5.2
@@ -97,6 +97,9 @@ bb. Array references using `@' and `*' that are the value of nameref variables
     (declare -n ref='v[@]' ; echo $ref) no longer cause the shell to exit if
     set -u is enabled and the array (v) is unset.
 
+cc. There is a new bindable readline command name:
+    `vi-edit-and-execute-command'.
+
 2. New Features in Readline
 
 a. There is now an HS_HISTORY_VERSION containing the version number of the
@@ -132,3 +135,16 @@ h. rl_completer_word_break_characters is now `const char *' like
 i. Readline looks in $LS_COLORS for a custom filename extension
    (*.readline-colored-completion-prefix) and uses that as the default color
    for the common prefix displayed when `colored-completion-prefix' is set.
+
+j. Two new bindable string variables: active-region-start-color and
+   active-region-end-color. The first sets the color used to display the
+   active region; the second turns it off. If set, these are used in place
+   of terminal standout mode.
+
+k. New readline state (RL_STATE_EOF) and application-visible variable
+   (rl_eof_found) to allow applications to detect when readline reads EOF
+   before calling the deprep-terminal hook.
+
+l. There is a new configuration option: --with-shared-termcap-library, which
+   forces linking the shared readline library with the shared termcap (or
+   curses/ncurses/termlib) library so applications don't have to do it.
index 2cdf0596a6ceb210f2db876a163e63c35b67acbf..0835ffa43cb6b1507c14963a905289d5fb8a2a0a 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.ac for Bash 5.2, version 5.039.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for bash 5.2-alpha.
+# Generated by GNU Autoconf 2.71 for bash 5.2-beta.
 #
 # Report bugs to <bug-bash@gnu.org>.
 #
@@ -612,8 +612,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='bash'
 PACKAGE_TARNAME='bash'
-PACKAGE_VERSION='5.2-alpha'
-PACKAGE_STRING='bash 5.2-alpha'
+PACKAGE_VERSION='5.2-beta'
+PACKAGE_STRING='bash 5.2-beta'
 PACKAGE_BUGREPORT='bug-bash@gnu.org'
 PACKAGE_URL=''
 
@@ -1467,7 +1467,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures bash 5.2-alpha to adapt to many kinds of systems.
+\`configure' configures bash 5.2-beta to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1533,7 +1533,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of bash 5.2-alpha:";;
+     short | recursive ) echo "Configuration of bash 5.2-beta:";;
    esac
   cat <<\_ACEOF
 
@@ -1740,7 +1740,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-bash configure 5.2-alpha
+bash configure 5.2-beta
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2397,7 +2397,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by bash $as_me 5.2-alpha, which was
+It was created by bash $as_me 5.2-beta, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3176,7 +3176,7 @@ ac_config_headers="$ac_config_headers config.h"
 
 
 BASHVERS=5.2
-RELSTATUS=alpha
+RELSTATUS=beta
 
 case "$RELSTATUS" in
 alp*|bet*|dev*|rc*|releng*|maint*)     DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -22332,7 +22332,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by bash $as_me 5.2-alpha, which was
+This file was extended by bash $as_me 5.2-beta, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -22400,7 +22400,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-bash config.status 5.2-alpha
+bash config.status 5.2-beta
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
index ee44f4462ea32359d46468d14bec25c5f383e4b6..2cae05e34d443fce9a0016ca5d61490d84d4bf04 100644 (file)
@@ -24,7 +24,7 @@ dnl Process this file with autoconf to produce a configure script.
 AC_REVISION([for Bash 5.2, version 5.039])dnl
 
 define(bashvers, 5.2)
-define(relstatus, alpha)
+define(relstatus, beta)
 
 AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
 
index b7368e6d9ed88050ee09d3157006f642c5c7f8eb..d39ecf87b973b63040e342bac064226a7e281485 100644 (file)
@@ -1494,126 +1494,129 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        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 += operator will append to an array variable when  assigning  using
+       the compound assignment syntax; see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS above.
+
+       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
-       _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bis @\b@ or *\b*, the word expands to all members  of  _\bn_\ba_\bm_\be.   These
-       subscripts  differ only when the word appears within double quotes.  If
+       _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\b is  @\b@  or *\b*, the word expands to all members of _\bn_\ba_\bm_\be.  These
+       subscripts differ only when the word appears within double quotes.   If
        the word is double-quoted, ${_\bn_\ba_\bm_\be[*]} expands to a single word with the
-       value  of each array member separated by the first character of the I\bIF\bFS\bS
+       value of each array member separated by the first character of the  I\bIF\bFS\bS
        special variable, and ${_\bn_\ba_\bm_\be[@]} expands each element of _\bn_\ba_\bm_\be to a sep-
-       arate  word.   When  there  are no array members, ${_\bn_\ba_\bm_\be[@]} expands to
-       nothing.  If the double-quoted expansion occurs within a word, the  ex-
+       arate word.  When there are no array  members,  ${_\bn_\ba_\bm_\be[@]}  expands  to
+       nothing.   If the double-quoted expansion occurs within a word, the ex-
        pansion of the first parameter is joined with the beginning part of the
-       original word, and the expansion of the last parameter is  joined  with
+       original  word,  and the expansion of the last parameter is joined with
        the last part of the original word.  This is analogous to the 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\b 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_\bs_\bc_\br_\bi_\bp_\bt]}.  If
+       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_\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 elements in the ar-
        ray.  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 interpreted as relative  to
-       one  greater  than  the maximum index of the array, so negative indices
+       evaluates  to a number less than zero, it is interpreted 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
+       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
+       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
+       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] de-
        stroys the array element at index _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt, for both indexed and asso-
-       ciative arrays.  Negative subscripts to indexed arrays are  interpreted
-       as  described  above.   Unsetting the last element of an array variable
-       does not unset the variable.  u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be, where _\bn_\ba_\bm_\be is an  array,  re-
+       ciative  arrays.  Negative subscripts to indexed arrays are interpreted
+       as described above.  Unsetting the last element of  an  array  variable
+       does  not  unset the variable.  u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be, where _\bn_\ba_\bm_\be is an array, re-
        moves the entire array.  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@, behaves differently depending on whether _\bn_\ba_\bm_\be is an indexed or asso-
-       ciative  array.   If _\bn_\ba_\bm_\be is an associative array, this unsets the ele-
+       ciative array.  If _\bn_\ba_\bm_\be is an associative array, this unsets  the  ele-
        ment with subscript *\b* or @\b@.  If _\bn_\ba_\bm_\be is an indexed array, unset removes
        all of the elements but does not remove the array itself.
 
-       When  using  a  variable name with a subscript as an argument to a com-
-       mand, such as with u\bun\bns\bse\bet\bt, without using the word expansion  syntax  de-
+       When using a variable name with a subscript as an argument  to  a  com-
+       mand,  such  as with u\bun\bns\bse\bet\bt, without using the word expansion syntax de-
        scribed above, the argument is subject to pathname expansion.  If path-
        name expansion is not desired, the argument should be quoted.
 
-       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 ar-
-       ray.  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
+       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  ar-
+       ray.   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_\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-
+       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-
        _\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, parameter
-       and  variable expansion, arithmetic expansion, and command substitution
-       (done in a left-to-right fashion); word splitting; and pathname  expan-
+       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.  This is performed  at  the  same  time  as
-       tilde,  parameter,  variable, and arithmetic expansion and command sub-
+       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.
 
-       After these expansions are performed, quote characters present  in  the
-       original  word  are  removed  unless  they  have been quoted themselves
+       After  these  expansions are performed, quote characters present in the
+       original word are removed  unless  they  have  been  quoted  themselves
        (_\bq_\bu_\bo_\bt_\be _\br_\be_\bm_\bo_\bv_\ba_\bl).
 
-       Only brace expansion, word splitting, and pathname  expansion  can  in-
-       crease  the number of words of the expansion; other expansions expand a
-       single word to a single word.  The only exceptions to this are the  ex-
+       Only  brace  expansion,  word splitting, and pathname expansion can in-
+       crease the number of words of the expansion; other expansions expand  a
+       single  word to a single word.  The only exceptions to this are the ex-
        pansions  of  "$\b$@\b@"  and  "$\b${\b{_\bn_\ba_\bm_\be[\b[@\b@]\b]}\b}",  and,  in  most  cases,  $\b$*\b*  and
        $\b${\b{_\bn_\ba_\bm_\be[\b[*\b*]\b]}\b} as explained above (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS).
 
    B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
        _\bB_\br_\ba_\bc_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn is a mechanism by which arbitrary strings may be gener-
-       ated.   This  mechanism is similar to _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, but the file-
+       ated.  This mechanism is similar to _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, but  the  file-
        names generated need not exist.  Patterns to be brace expanded take the
        form of an optional _\bp_\br_\be_\ba_\bm_\bb_\bl_\be, followed by either a series of comma-sep-
-       arated strings or a sequence expression between a pair of braces,  fol-
-       lowed  by  an  optional  _\bp_\bo_\bs_\bt_\bs_\bc_\br_\bi_\bp_\bt.   The preamble is prefixed to each
+       arated  strings or a sequence expression between a pair of braces, fol-
+       lowed by an optional _\bp_\bo_\bs_\bt_\bs_\bc_\br_\bi_\bp_\bt.  The  preamble  is  prefixed  to  each
        string contained within the braces, and the postscript is then appended
        to each resulting string, expanding left to right.
 
-       Brace  expansions  may  be nested.  The results of each expanded string
-       are not sorted;  left  to  right  order  is  preserved.   For  example,
+       Brace expansions may be nested.  The results of  each  expanded  string
+       are  not  sorted;  left  to  right  order  is  preserved.  For example,
        a{\b{d,c,b}\b}e expands into `ade ace abe'.
 
-       A  sequence expression takes the form {\b{_\bx.\b..\b._\by[\b[.\b..\b._\bi_\bn_\bc_\br]\b]}\b}, where _\bx and _\by are
-       either integers or single letters, and _\bi_\bn_\bc_\br, an optional increment,  is
+       A sequence expression takes the form {\b{_\bx.\b..\b._\by[\b[.\b..\b._\bi_\bn_\bc_\br]\b]}\b}, where _\bx and _\b are
+       either  integers or single letters, and _\bi_\bn_\bc_\br, an optional increment, is
        an integer.  When integers are supplied, the expression expands to each
-       number between _\bx and _\by, inclusive.  Supplied integers may  be  prefixed
-       with  _\b0  to force each term to have the same width.  When either _\bx or _\by
-       begins with a zero, the shell attempts to force all generated terms  to
-       contain  the same number of digits, zero-padding where necessary.  When
-       letters are supplied, the expression expands to each character  lexico-
-       graphically  between  _\bx  and  _\by, inclusive, using the default C locale.
-       Note that both _\bx and _\by must be of the same type  (integer  or  letter).
-       When  the  increment  is supplied, it is used as the difference between
+       number  between  _\bx and _\by, inclusive.  Supplied integers may be prefixed
+       with _\b0 to force each term to have the same width.  When either _\bx  or  _\by
+       begins  with a zero, the shell attempts to force all generated terms to
+       contain the same number of digits, zero-padding where necessary.   When
+       letters  are supplied, the expression expands to each character lexico-
+       graphically between _\bx and _\by, inclusive, using  the  default  C  locale.
+       Note  that  both  _\bx and _\by must be of the same type (integer or letter).
+       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
-       strictly textual.  B\bBa\bas\bsh\bh does not apply any syntactic interpretation  to
+       acters special to other expansions are preserved in the result.  It  is
+       strictly  textual.  B\bBa\bas\bsh\bh does not apply any syntactic interpretation to
        the context of the expansion or the text between the braces.
 
-       A  correctly-formed  brace  expansion must contain unquoted opening and
+       A correctly-formed brace expansion must contain  unquoted  opening  and
        closing braces, and at least one unquoted comma or a valid sequence ex-
        pression.  Any incorrectly formed brace expansion is left unchanged.  A
-       {\bor ,\b, may be quoted with a backslash to prevent its  being  considered
-       part  of  a brace expression.  To avoid conflicts with parameter expan-
+       {\b or  ,\b, may be quoted with a backslash to prevent its being considered
+       part of a brace expression.  To avoid conflicts with  parameter  expan-
        sion, the string $\b${\b{ is not considered eligible for brace expansion, and
        inhibits brace expansion until the closing }\b}.
 
@@ -1624,36 +1627,36 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        or
               chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
 
-       Brace expansion introduces a  slight  incompatibility  with  historical
-       versions  of s\bsh\bh.  s\bsh\bh does not treat opening or closing braces specially
-       when they appear as part of a word, and preserves them in  the  output.
-       B\bBa\bas\bsh\b removes  braces  from  words as a consequence of brace expansion.
-       For example, a word entered to s\bsh\bh as _\bf_\bi_\bl_\be_\b{_\b1_\b,_\b2_\b} appears  identically  in
-       the  output.  The same word is output as _\bf_\bi_\bl_\be_\b1 _\bf_\bi_\bl_\be_\b2 after expansion by
-       b\bba\bas\bsh\bh.  If strict compatibility with s\bsh\bh is desired, start b\bba\bas\bsh\bh with  the
+       Brace  expansion  introduces  a  slight incompatibility with historical
+       versions of s\bsh\bh.  s\bsh\bh does not treat opening or closing braces  specially
+       when  they  appear as part of a word, and preserves them in the output.
+       B\bBa\bas\bsh\bremoves braces from words as a  consequence  of  brace  expansion.
+       For  example,  a word entered to s\bsh\bh as _\bf_\bi_\bl_\be_\b{_\b1_\b,_\b2_\b} appears identically in
+       the output.  The same word is output as _\bf_\bi_\bl_\be_\b1 _\bf_\bi_\bl_\be_\b2 after expansion  by
+       b\bba\bas\bsh\bh.   If strict compatibility with s\bsh\bh is desired, start b\bba\bas\bsh\bh with the
        +\b+B\bB option or disable brace expansion with the +\b+B\bB option to the s\bse\bet\bt 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).
 
    T\bTi\bil\bld\bde\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
-       If a word begins with an unquoted tilde character  (`~\b~'),  all  of  the
-       characters  preceding  the  first unquoted slash (or all characters, if
-       there is no unquoted slash) are considered a _\bt_\bi_\bl_\bd_\be_\b-_\bp_\br_\be_\bf_\bi_\bx.  If none  of
-       the  characters  in  the tilde-prefix are quoted, the characters in the
-       tilde-prefix following the tilde are treated as a possible _\bl_\bo_\bg_\bi_\b _\bn_\ba_\bm_\be.
-       If  this  login name is the null string, the tilde is replaced with the
-       value of the shell parameter H\bHO\bOM\bME\bE.  If H\bHO\bOM\bME\bE is unset, the  home  direc-
-       tory  of  the  user executing the shell is substituted instead.  Other-
-       wise, the tilde-prefix is replaced with the home  directory  associated
+       If  a  word  begins  with an unquoted tilde character (`~\b~'), all of the
+       characters preceding the first unquoted slash (or  all  characters,  if
+       there  is no unquoted slash) are considered a _\bt_\bi_\bl_\bd_\be_\b-_\bp_\br_\be_\bf_\bi_\bx.  If none of
+       the characters in the tilde-prefix are quoted, the  characters  in  the
+       tilde-prefix  following the tilde are treated as a possible _\bl_\bo_\bg_\bi_\bn _\bn_\ba_\bm_\be.
+       If this login name is the null string, the tilde is replaced  with  the
+       value  of  the shell parameter H\bHO\bOM\bME\bE.  If H\bHO\bOM\bME\bE is unset, the home direc-
+       tory of the user executing the shell is  substituted  instead.   Other-
+       wise,  the  tilde-prefix is replaced with the home directory associated
        with the specified login name.
 
-       If  the tilde-prefix is a `~+', the value of the shell variable P\bPW\bWD\bD re-
-       places the tilde-prefix.  If the tilde-prefix is a `~-', the  value  of
-       the  shell variable O\bOL\bLD\bDP\bPW\bWD\bD, if it is set, is substituted.  If the char-
-       acters following the tilde in the tilde-prefix consist of a  number  _\bN,
-       optionally  prefixed  by  a  `+' or a `-', the tilde-prefix is replaced
+       If the tilde-prefix is a `~+', the value of the shell variable P\bPW\bWD\b re-
+       places  the  tilde-prefix.  If the tilde-prefix is a `~-', the value of
+       the shell variable O\bOL\bLD\bDP\bPW\bWD\bD, if it is set, is substituted.  If the  char-
+       acters  following  the tilde in the tilde-prefix consist of a number _\bN,
+       optionally prefixed by a `+' or a `-',  the  tilde-prefix  is  replaced
        with the corresponding element from the directory stack, as it would be
        displayed by the d\bdi\bir\brs\bs builtin invoked with the tilde-prefix as an argu-
-       ment.  If the characters following the tilde in the  tilde-prefix  con-
+       ment.   If  the characters following the tilde in the tilde-prefix con-
        sist of a number without a leading `+' or `-', `+' is assumed.
 
        If the login name is invalid, or the tilde expansion fails, the word is
@@ -1662,99 +1665,100 @@ 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 filenames with tildes in as-
-       signments  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 ex-
+       signments 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  ex-
        panded value.
 
-       Bash also performs tilde expansion on words satisfying  the  conditions
+       Bash  also  performs tilde expansion on words satisfying the conditions
        of variable assignments (as described above under P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS) when they
-       appear as arguments to simple commands.  Bash does not do this,  except
+       appear  as arguments to simple commands.  Bash does not do this, except
        for the _\bd_\be_\bc_\bl_\ba_\br_\ba_\bt_\bi_\bo_\bn commands listed above, when in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be.
 
    P\bPa\bar\bra\bam\bme\bet\bte\ber\br E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
        The `$\b$' character introduces parameter expansion, command substitution,
-       or arithmetic expansion.  The parameter name or symbol to  be  expanded
-       may  be enclosed in braces, which are optional but serve to protect the
-       variable to be expanded from characters immediately following it  which
+       or  arithmetic  expansion.  The parameter name or symbol to be expanded
+       may be enclosed in braces, which are optional but serve to protect  the
+       variable  to be expanded from characters immediately following it which
        could be interpreted as part of the name.
 
-       When  braces  are  used, the matching ending brace is the first `}\b}' not
+       When braces are used, the matching ending brace is the  first  `}\b}'  not
        escaped by a backslash or within a quoted string, and not within an em-
-       bedded  arithmetic expansion, command substitution, or parameter expan-
+       bedded arithmetic expansion, command substitution, or parameter  expan-
        sion.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}
-              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
+              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.  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
+              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
+       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 indirection.  B\bBa\bas\bsh\bh
        uses the value formed by expanding the rest of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as the new _\bp_\ba_\b-
-       _\br_\ba_\bm_\be_\bt_\be_\br; this is then expanded and that value is used in  the  rest  of
-       the  expansion,  rather  than  the expansion of the original _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.
+       _\br_\ba_\bm_\be_\bt_\be_\br;  this  is  then expanded and that value is used in the rest of
+       the expansion, rather than the expansion  of  the  original  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.
        This is known as _\bi_\bn_\bd_\bi_\br_\be_\bc_\bt _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn.  The value is subject to tilde ex-
-       pansion,  parameter expansion, command substitution, and arithmetic ex-
-       pansion.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a nameref, this expands to the  name  of  the
-       parameter  referenced  by  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br instead of performing the complete
-       indirect expansion.  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  indirec-
+       pansion, parameter expansion, command substitution, and arithmetic  ex-
+       pansion.   If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is a nameref, this expands to the name of the
+       parameter referenced by _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br instead of  performing  the  complete
+       indirect  expansion.   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 indirec-
        tion.
 
        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 be-
-       low  (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  un-
+       low (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 un-
        set.
 
        ${_\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 ex-
-              pansion 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_\be_\b-
-              _\bt_\be_\b is then substituted.  Positional parameters and special pa-
+              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  ex-
+              pansion  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_\be_\b-
+              _\bt_\be_\bis then substituted.  Positional parameters and special  pa-
               rameters 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\b 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
+              S\bSu\bub\bbs\bst\btr\bri\bin\bng\bE\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@ or *\b*, an indexed array subscripted by  @\b@
+              or  *\b*,  or  an associative array name, the results differ as de-
+              scribed 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 in characters from the end of the value of _\bp_\ba_\b-
-              _\br_\ba_\bm_\be_\bt_\be_\br.  If _\bl_\be_\bn_\bg_\bt_\bh evaluates to a number less than zero, it  is
+              _\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  expan-
-              sion  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
+              of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br rather than a number of characters, and the expan-
+              sion 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- expansion.
 
-              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 @\b@ or *\b*, the result is _\bl_\be_\bn_\bg_\bt_\bh positional  parame-
+              ters  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 expansion 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_\b-
@@ -2470,15 +2474,23 @@ F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
        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.  If a variable is declared  l\blo\boc\bca\bal\bl,  the  vari-
-       able's  visible  scope  is restricted to that function and its children
-       (including the functions it calls).  Local variables "shadow" variables
-       with  the same name declared at previous scopes.  For instance, a local
-       variable declared in a function hides a global  variable  of  the  same
-       name:  references  and assignments refer to the local variable, leaving
-       the global variable unmodified.  When the function returns, the  global
-       variable is once again visible.
+       command  (_\bl_\bo_\bc_\ba_\bl _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be_\bs).  Ordinarily, variables and their values are
+       shared between the function and its caller.  If a variable is  declared
+       l\blo\boc\bca\bal\bl,  the variable's visible scope is restricted to that function and
+       its children (including the functions it calls).
+
+       In the following description, the _\bc_\bu_\br_\br_\be_\bn_\bt _\bs_\bc_\bo_\bp_\be is a currently- execut-
+       ing function.  Previous scopes consist of that function's caller and so
+       on, back to the "global" scope, where the shell is  not  executing  any
+       shell function.  Consequently, a local variable at the current scope is
+       a variable declared using the l\blo\boc\bca\bal\bl or d\bde\bec\bcl\bla\bar\bre\be builtins in the function
+       that is currently executing.
+
+       Local  variables "shadow" variables with the same name declared at pre-
+       vious scopes.  For instance, a local variable declared  in  a  function
+       hides  a  global  variable of the same name: references and assignments
+       refer to the local variable, leaving the  global  variable  unmodified.
+       When the function returns, the global variable is once again visible.
 
        The  shell  uses  _\bd_\by_\bn_\ba_\bm_\bi_\bc  _\bs_\bc_\bo_\bp_\bi_\bn_\bg  to  control a variable's visibility
        within functions.  With dynamic scoping, visible  variables  and  their
@@ -2498,44 +2510,45 @@ F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
        is local to the current scope, u\bun\bns\bse\bet\bt will unset it; otherwise the unset
        will  refer  to  the  variable  found in any calling scope as described
        above.  If a variable at the current local scope is unset, it will  re-
-       main  so until it is reset in that scope or until the function returns.
-       Once the function returns, any instance of the variable at  a  previous
-       scope will become visible.  If the unset acts on a variable at a previ-
-       ous scope, any instance of a variable with  that  name  that  had  been
-       shadowed will become visible.
-
-       The  F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT  variable,  if set to a numeric value greater than 0, de-
-       fines a maximum function nesting level.  Function invocations that  ex-
+       main  so  (appearing as unset) until it is reset in that scope or until
+       the function returns.  Once the function returns, any instance  of  the
+       variable at a previous scope will become visible.  If the unset acts on
+       a variable at a previous scope, any instance of a  variable  with  that
+       name  that had been shadowed will become visible (see below how the l\blo\bo-\b-
+       c\bca\bal\blv\bva\bar\br_\b_u\bun\bns\bse\bet\bt shell option changes this behavior).
+
+       The F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT variable, if set to a numeric value greater  than  0,  de-
+       fines  a maximum function nesting level.  Function invocations that ex-
        ceed 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-
+       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 be-
-       fore execution resumes.  When a function completes, the values  of  the
-       positional  parameters  and the special parameter #\b# are restored to the
+       fore  execution  resumes.  When a function completes, the values of the
+       positional parameters and the special parameter #\b# are restored  to  the
        values they had prior to the function's execution.
 
-       Function names and definitions may be listed with the -\b-f\bf option to  the
+       Function  names and definitions may be listed with the -\b-f\bf option to the
        d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\bes\bse\bet\bt builtin commands.  The -\b-F\bF option to d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\be-\b-
-       s\bse\bet\bwill list the function names only (and optionally the  source  file
-       and  line  number, if the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled).  Functions
-       may be exported so that child shell processes (those created when  exe-
-       cuting  a  separate  shell  invocation) automatically have them defined
+       s\bse\bet\b will  list the function names only (and optionally the source file
+       and line number, if the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is  enabled).   Functions
+       may  be exported so that child shell processes (those created when exe-
+       cuting a separate shell invocation)  automatically  have  them  defined
        with the -\b-f\bf option to the e\bex\bxp\bpo\bor\brt\bt builtin.  A function definition may be
        deleted using the -\b-f\bf option to the u\bun\bns\bse\bet\bt builtin.
 
        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-
+       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 re-
        cursive calls.
 
 A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN
-       The shell allows arithmetic expressions to be evaluated, under  certain
-       circumstances  (see  the  l\ble\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtin commands, the (\b((\b( com-
+       The  shell allows arithmetic expressions to be evaluated, under certain
+       circumstances (see the l\ble\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtin commands,  the  (\b((\b com-
        pound command, and A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn).  Evaluation is done in fixed-
-       width  integers  with  no  check  for overflow, though division by 0 is
-       trapped and flagged as an error.  The operators and  their  precedence,
-       associativity,  and values are the same as in the C language.  The fol-
+       width integers with no check for overflow,  though  division  by  0  is
+       trapped  and  flagged as an error.  The operators and their precedence,
+       associativity, and values are the same as in the C language.  The  fol-
        lowing list of operators is grouped into levels of equal-precedence op-
        erators.  The levels are listed in order of decreasing precedence.
 
@@ -2564,55 +2577,55 @@ A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN
        _\be_\bx_\bp_\br_\b1 ,\b, _\be_\bx_\bp_\br_\b2
               comma
 
-       Shell  variables  are  allowed as operands; parameter expansion is per-
+       Shell variables are allowed as operands; parameter  expansion  is  per-
        formed before the expression is evaluated.  Within an expression, shell
-       variables  may  also  be referenced by name without using the parameter
-       expansion syntax.  A shell variable that is null or unset evaluates  to
+       variables may also be referenced by name without  using  the  parameter
+       expansion  syntax.  A shell variable that is null or unset evaluates to
        0 when referenced by name without using the parameter expansion syntax.
-       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
+       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 _\bi_\bn_\bt_\be_\bg_\be_\br 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.
 
        Integer constants follow the C language definition, without suffixes or
        character constants.  Constants with a leading 0 are interpreted as oc-
-       tal numbers.  A leading 0x or 0X denotes hexadecimal.  Otherwise,  num-
-       bers  take the form [_\bb_\ba_\bs_\be_\b#]n, where the optional _\bb_\ba_\bs_\be is a decimal num-
-       ber between 2 and 64 representing the arithmetic base, and _\bn is a  num-
-       ber  in  that  base.   If _\bb_\ba_\bs_\be_\b# is omitted, then base 10 is used.  When
+       tal  numbers.  A leading 0x or 0X denotes hexadecimal.  Otherwise, num-
+       bers take the form [_\bb_\ba_\bs_\be_\b#]n, where the optional _\bb_\ba_\bs_\be is a decimal  num-
+       ber  between 2 and 64 representing the arithmetic base, and _\bn is a num-
+       ber in that base.  If _\bb_\ba_\bs_\be_\b# is omitted, then base  10  is  used.   When
        specifying _\bn, if a non-digit is required, 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  up-
-       percase  letters  may  be used interchangeably to represent numbers be-
+       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 up-
+       percase letters may be used interchangeably to  represent  numbers  be-
        tween 10 and 35.
 
-       Operators are evaluated in order  of  precedence.   Sub-expressions  in
-       parentheses  are  evaluated first and may override the precedence rules
+       Operators  are  evaluated  in  order of precedence.  Sub-expressions in
+       parentheses are evaluated first and may override the  precedence  rules
        above.
 
 C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
-       Conditional expressions are used by the [\b[[\b[  compound  command  and  the
-       t\bte\bes\bst\b and [\b[ builtin commands to test file attributes and perform string
-       and arithmetic comparisons.  The t\bte\bes\bst\bt and [\b[  commands  determine  their
-       behavior  based  on  the  number  of arguments; see the descriptions of
+       Conditional  expressions  are  used  by the [\b[[\b[ compound command and the
+       t\bte\bes\bst\band [\b[ builtin commands to test file attributes and perform  string
+       and  arithmetic  comparisons.   The t\bte\bes\bst\bt and [\b[ commands determine their
+       behavior based on the number of  arguments;  see  the  descriptions  of
        those commands for any other command-specific actions.
 
-       Expressions are formed from the following unary  or  binary  primaries.
-       B\bBa\bas\bsh\b handles several filenames specially when they are used in expres-
+       Expressions  are  formed  from the following unary or binary primaries.
+       B\bBa\bas\bsh\bhandles several filenames specially when they are used in  expres-
        sions.  If the operating system on which b\bba\bas\bsh\bh is running provides these
-       special  files,  bash will use them; otherwise it will emulate them in-
-       ternally with this behavior: If any _\bf_\bi_\bl_\be argument to one  of  the  pri-
+       special files, bash will use them; otherwise it will emulate  them  in-
+       ternally  with  this  behavior: If any _\bf_\bi_\bl_\be argument to one of the pri-
        maries is of the form _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\bn, then file descriptor _\bn is checked.  If
-       the _\bf_\bi_\bl_\be argument to  one  of  the  primaries  is  one  of  _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn,
-       _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt,  or _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br, file descriptor 0, 1, or 2, respectively,
+       the  _\bf_\bi_\bl_\be  argument  to  one  of  the  primaries  is one of _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn,
+       _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt, or _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br, file descriptor 0, 1, or 2,  respectively,
        is checked.
 
        Unless otherwise specified, primaries that operate on files follow sym-
        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
+       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
@@ -2651,30 +2664,30 @@ C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
        -\b-L\bL _\bf_\bi_\bl_\be
               True if _\bf_\bi_\bl_\be exists and is a symbolic link.
        -\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-
+              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
+              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
+              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.
        -\b-o\bo _\bo_\bp_\bt_\bn_\ba_\bm_\be
-              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
+              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
+              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-
+              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.
@@ -2684,8 +2697,8 @@ C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
 
        _\bs_\bt_\br_\bi_\bn_\bg_\b1 =\b==\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
        _\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,
+              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).
 
@@ -2699,113 +2712,113 @@ 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 _\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\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.  When used with the [\b[[\b[ command,  _\bA_\br_\bg_\b and
-              _\bA_\br_\bg_\b are  evaluated  as  arithmetic expressions (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC
+              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
+              or  negative  integers.  When used with the [\b[[\b[ command, _\bA_\br_\bg_\b1 and
+              _\bA_\br_\bg_\bare evaluated as  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 above).
 
 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 ex-
-       pansions,  assignments,  and  redirections,  from left to right, in the
+       pansions, assignments, and redirections, from left  to  right,  in  the
        following order.
 
-       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.
 
        4.     The text after the =\b= in each variable assignment undergoes tilde
               expansion, parameter expansion, command substitution, arithmetic
-              expansion,  and quote removal before being assigned to the vari-
+              expansion, and quote removal before being assigned to the  vari-
               able.
 
        If no command name results, the variable assignments affect the current
-       shell  environment.   In  the case of such a command (one that consists
-       only of assignment statements and redirections), assignment  statements
-       are  performed before redirections.  Otherwise, the variables are added
-       to the environment of the executed command and do not affect  the  cur-
+       shell environment.  In the case of such a command  (one  that  consists
+       only  of assignment statements and redirections), assignment statements
+       are performed before redirections.  Otherwise, the variables are  added
+       to  the  environment of the executed command and do not affect the cur-
        rent shell environment.  If any of the assignments attempts to assign a
-       value to a readonly variable, an error occurs, and  the  command  exits
+       value  to  a  readonly variable, an error occurs, and the command exits
        with a non-zero status.
 
-       If  no command name results, redirections are performed, but do not af-
-       fect the current shell environment.  A  redirection  error  causes  the
+       If no command name results, redirections are performed, but do not  af-
+       fect  the  current  shell  environment.  A redirection error causes the
        command to exit with a non-zero status.
 
-       If  there is a command name left after expansion, execution proceeds as
-       described below.  Otherwise, the command exits.  If one of  the  expan-
-       sions  contained a command substitution, the exit status of the command
-       is the exit status of the  last  command  substitution  performed.   If
+       If there is a command name left after expansion, execution proceeds  as
+       described  below.   Otherwise, the command exits.  If one of the expan-
+       sions contained a command substitution, the exit status of the  command
+       is  the  exit  status  of  the last command substitution performed.  If
        there were no command substitutions, the command exits with a status of
        zero.
 
 C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN
-       After a command has been split into words, if it results  in  a  simple
-       command  and  an  optional list of arguments, the following actions are
+       After  a  command  has been split into words, if it results in a simple
+       command and an optional list of arguments, the  following  actions  are
        taken.
 
-       If the command name contains no slashes, the shell attempts  to  locate
-       it.   If  there  exists a shell function by that name, that function is
-       invoked as described above in F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS.  If the name does not match  a
-       function,  the shell searches for it in the list of shell builtins.  If
+       If  the  command name contains no slashes, the shell attempts to locate
+       it.  If there exists a shell function by that name,  that  function  is
+       invoked  as described above in F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS.  If the name does not match a
+       function, the shell searches for it in the list of shell builtins.   If
        a match is found, that builtin is invoked.
 
-       If the name is neither a shell function nor a builtin, and contains  no
-       slashes,  b\bba\bas\bsh\bh  searches  each element of the P\bPA\bAT\bTH\bH for a directory con-
+       If  the name is neither a shell function nor a builtin, and contains no
+       slashes, b\bba\bas\bsh\bh searches each element of the P\bPA\bAT\bTH\bH for  a  directory  con-
        taining an executable file by that name.  B\bBa\bas\bsh\bh uses a hash table to re-
-       member  the  full  pathnames  of executable files (see h\bha\bas\bsh\bh under S\bSH\bHE\bEL\bLL\bL
-       B\bBU\bUI\bIL\bLT\bTI\bIN\bC\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  A full search of the directories in  P\bPA\bAT\bTH\b is
-       performed  only  if the command is not found in the hash table.  If the
+       member the full pathnames of executable files  (see  h\bha\bas\bsh\bh  under  S\bSH\bHE\bEL\bLL\bL
+       B\bBU\bUI\bIL\bLT\bTI\bIN\b C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below).  A full search of the directories in P\bPA\bAT\bTH\bH is
+       performed only if the command is not found in the hash table.   If  the
        search is unsuccessful, the shell searches for a defined shell function
        named c\bco\bom\bmm\bma\ban\bnd\bd_\b_n\bno\bot\bt_\b_f\bfo\bou\bun\bnd\bd_\b_h\bha\ban\bnd\bdl\ble\be.  If that function exists, it is invoked
-       in a separate execution environment with the original command  and  the
-       original  command's arguments as its arguments, and the function's exit
-       status becomes the exit status of that subshell.  If that  function  is
+       in  a  separate execution environment with the original command and the
+       original command's arguments as its arguments, and the function's  exit
+       status  becomes  the exit status of that subshell.  If that function is
        not defined, the shell prints an error message and returns an exit sta-
        tus of 127.
 
-       If the search is successful, or if the command  name  contains  one  or
+       If  the  search  is  successful, or if the command name contains one or
        more slashes, the shell executes the named program in a separate execu-
        tion environment.  Argument 0 is set to the name given, and the remain-
        ing arguments to the command are set to the arguments given, if any.
 
-       If  this  execution fails because the file is not in executable format,
-       and the file is not a directory, it is assumed to be a _\bs_\bh_\be_\bl_\bl _\bs_\bc_\br_\bi_\bp_\bt,  a
+       If this execution fails because the file is not in  executable  format,
+       and  the file is not a directory, it is assumed to be a _\bs_\bh_\be_\bl_\bl _\bs_\bc_\br_\bi_\bp_\bt, a
        file containing shell commands, and the shell creates a new instance of
-       itself to execute it.  This subshell reinitializes itself, so that  the
+       itself  to execute it.  This subshell reinitializes itself, so that the
        effect is as if a new shell had been invoked to handle the script, with
-       the exception that the locations of commands remembered by  the  parent
-       (see  h\bha\bas\bsh\bh  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) are retained by the
+       the  exception  that the locations of commands remembered by the parent
+       (see h\bha\bas\bsh\bh 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)  are  retained  by  the
        child.
 
-       If the program is a file beginning with #\b#!\b!, the remainder of the  first
-       line  specifies an interpreter for the program.  The shell executes the
+       If  the program is a file beginning with #\b#!\b!, the remainder of the first
+       line specifies an interpreter for the program.  The shell executes  the
        specified interpreter on operating systems that do not handle this exe-
        cutable format themselves.  The arguments to the interpreter consist of
-       a single optional argument following the interpreter name on the  first
-       line  of  the program, followed by the name of the program, followed by
+       a  single optional argument following the interpreter name on the first
+       line of the program, followed by the name of the program,  followed  by
        the command arguments, if any.
 
 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
-       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-
+       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
+       +\bo      open files inherited by the shell at invocation, as modified  by
               redirections supplied to the e\bex\bxe\bec\bc builtin
 
-       +\bo      the current working directory as set by c\bcd\bd, p\bpu\bus\bsh\bhd\bd, or  p\bpo\bop\bpd\bd,  or
+       +\bo      the  current  working directory as set by c\bcd\bd, p\bpu\bus\bsh\bhd\bd, or p\bpo\bop\bpd\bd, or
               inherited by the shell at invocation
 
-       +\bo      the  file  creation  mode mask as set by u\bum\bma\bas\bsk\bk or inherited from
+       +\bo      the file creation mode mask as set by u\bum\bma\bas\bsk\bk  or  inherited  from
               the shell's parent
 
        +\bo      current traps set by t\btr\bra\bap\bp
@@ -2813,282 +2826,282 @@ 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 parameters that are set by variable assignment or with s\bse\bet\bt
               or inherited from the shell's parent in the environment
 
-       +\bo      shell  functions  defined during execution or inherited from the
+       +\bo      shell functions defined during execution or inherited  from  the
               shell's parent in the environment
 
-       +\bo      options enabled at invocation (either by default  or  with  com-
+       +\bo      options  enabled  at  invocation (either by default or with com-
               mand-line arguments) or by s\bse\bet\bt
 
        +\bo      options enabled by s\bsh\bho\bop\bpt\bt
 
        +\bo      shell aliases defined with a\bal\bli\bia\bas\bs
 
-       +\bo      various  process  IDs,  including  those of background jobs, the
+       +\bo      various process IDs, including those  of  background  jobs,  the
               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-
-       sists of the following.  Unless otherwise noted, the values are  inher-
+       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-
+       sists  of the following.  Unless otherwise noted, the values are inher-
        ited from the shell.
 
 
-       +\bo      the  shell's  open  files,  plus any modifications and additions
+       +\bo      the shell's open files, plus  any  modifications  and  additions
               specified by redirections to the command
 
        +\bo      the current working directory
 
        +\bo      the file creation mode mask
 
-       +\bo      shell variables and functions  marked  for  export,  along  with
+       +\bo      shell  variables  and  functions  marked  for export, along with
               variables exported for the command, passed in the environment
 
        +\bo      traps caught by the shell are reset to the values inherited from
               the shell's parent, and traps ignored by the shell are ignored
 
-       A command invoked  in  this  separate  environment  cannot  affect  the
+       A  command  invoked  in  this  separate  environment  cannot affect the
        shell's execution environment.
 
        A _\bs_\bu_\bb_\bs_\bh_\be_\bl_\bl is a copy of the shell process.
 
-       Command  substitution, commands grouped with parentheses, and asynchro-
+       Command substitution, commands grouped with parentheses, and  asynchro-
        nous commands are invoked in a subshell environment that is a duplicate
        of the shell environment, except that traps caught by the shell are re-
-       set to the values that the shell inherited from its parent  at  invoca-
+       set  to  the values that the shell inherited from its parent at invoca-
        tion.  Builtin commands that are invoked as part of a pipeline are also
        executed in a subshell environment.  Changes made to the subshell envi-
        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  _\bp_\bo_\bs_\bi_\bx  _\bm_\bo_\bd_\be,  b\bba\bas\bsh\bh
+       the  -\b-e\be  option  from  the  parent shell.  When not in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, 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 de-
+       If a command is followed by a &\b& and job control is not active, the  de-
        fault standard input for the command is the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl.  Oth-
-       erwise,  the invoked command inherits the file descriptors of the call-
+       erwise, the invoked command inherits the file descriptors of the  call-
        ing shell as modified by redirections.
 
 E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
-       When a program is invoked it is given an array of  strings  called  the
+       When  a  program  is invoked it is given an array of strings called the
        _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt.   This  is  a  list  of  _\bn_\ba_\bm_\be-_\bv_\ba_\bl_\bu_\be  pairs,  of  the  form
        _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be.
 
-       The shell provides several ways to manipulate the environment.  On  in-
-       vocation,  the  shell scans its own environment and creates a parameter
-       for each name found, automatically marking it for _\be_\bx_\bp_\bo_\br_\bt to child  pro-
+       The  shell provides several ways to manipulate the environment.  On in-
+       vocation, the shell scans its own environment and creates  a  parameter
+       for  each name found, automatically marking it for _\be_\bx_\bp_\bo_\br_\bt to child pro-
        cesses.  Executed commands inherit the environment.  The e\bex\bxp\bpo\bor\brt\bt and d\bde\be-\b-
-       c\bcl\bla\bar\bre\b-\b-x\bx commands allow parameters and functions to  be  added  to  and
+       c\bcl\bla\bar\bre\b -\b-x\bx  commands  allow  parameters and functions to be added to and
        deleted from the environment.  If the value of a parameter in the envi-
        ronment is modified, the new value becomes part of the environment, re-
-       placing  the  old.   The  environment inherited by any executed command
-       consists of the shell's initial environment, whose values may be  modi-
-       fied  in  the  shell, less any pairs removed by the u\bun\bns\bse\bet\bt command, plus
+       placing the old.  The environment inherited  by  any  executed  command
+       consists  of the shell's initial environment, whose values may be modi-
+       fied in the shell, less any pairs removed by the  u\bun\bns\bse\bet\bt  command,  plus
        any additions via the e\bex\bxp\bpo\bor\brt\bt and d\bde\bec\bcl\bla\bar\bre\be -\b-x\bx commands.
 
-       The environment for any _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or  function  may  be  augmented
-       temporarily  by  prefixing  it with parameter assignments, as described
+       The  environment  for  any  _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or function may be augmented
+       temporarily by prefixing it with parameter  assignments,  as  described
        above in P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS.  These assignment statements affect only the envi-
        ronment seen by that command.
 
-       If  the  -\b-k\bk option is set (see the s\bse\bet\bt builtin command below), then _\ba_\bl_\bl
-       parameter assignments are placed in the environment for a command,  not
+       If the -\b-k\bk option is set (see the s\bse\bet\bt builtin command below),  then  _\ba_\bl_\bl
+       parameter  assignments are placed in the environment for a command, not
        just those that precede the command name.
 
-       When  b\bba\bas\bsh\bh  invokes  an  external command, the variable _\b_ is set to the
+       When b\bba\bas\bsh\bh invokes an external command, the variable _\b_  is  set  to  the
        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
+       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
+       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
        will use special values to indicate specific failure modes.
 
        For the shell's purposes, a command which exits with a zero exit status
-       has  succeeded.   An exit status of zero indicates success.  A non-zero
-       exit status indicates failure.  When a command terminates  on  a  fatal
+       has succeeded.  An exit status of zero indicates success.   A  non-zero
+       exit  status  indicates  failure.  When a command terminates on a fatal
        signal _\bN, b\bba\bas\bsh\bh uses the value of 128+_\bN as the exit status.
 
-       If  a command is not found, the child process created to execute it re-
-       turns a status of 127.  If a command is found but  is  not  executable,
+       If a command is not found, the child process created to execute it  re-
+       turns  a  status  of 127.  If a command is found but is not executable,
        the return status is 126.
 
        If a command fails because of an error during expansion or redirection,
        the exit status is greater than zero.
 
-       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,  generally  in-
+       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, generally in-
        valid options or missing arguments.
 
        The exit status of the last command is available in the special parame-
        ter $?.
 
-       B\bBa\bas\bsh\bitself returns the exit status of the last command  executed,  un-
-       less  a  syntax  error  occurs,  in which case it exits with a non-zero
+       B\bBa\bas\bsh\b itself  returns the exit status of the last command executed, un-
+       less 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
+       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 ig-
        nores 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 ef-
-       fect, 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-
+       fect,  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\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\b us-
+       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 us-
        ing 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.
 
-       When  job  control is not enabled, and b\bba\bas\bsh\bh is waiting for a foreground
+       When job control is not enabled, and b\bba\bas\bsh\bh is waiting for  a  foreground
        command to complete, the shell receives keyboard-generated signals such
-       as  S\bSI\bIG\bGI\bIN\bNT\bT (usually generated by ^\b^C\bC) that users commonly intend to send
+       as S\bSI\bIG\bGI\bIN\bNT\bT (usually generated by ^\b^C\bC) that users commonly intend to  send
        to that command.  This happens because the shell and the command are in
        the same process group as the terminal, and ^\b^C\bC sends S\bSI\bIG\bGI\bIN\bNT\bT to all pro-
        cesses in that process group.
 
-       When b\bba\bas\bsh\bh is running without job control enabled  and  receives  S\bSI\bIG\bGI\bIN\bNT\bT
-       while  waiting for a foreground command, it waits until that foreground
+       When  b\bba\bas\bsh\bh  is  running without job control enabled and receives S\bSI\bIG\bGI\bIN\bNT\bT
+       while waiting for a foreground command, it waits until that  foreground
        command terminates and then decides what to do about the S\bSI\bIG\bGI\bIN\bNT\bT:
 
        1.     If the command terminates due to the S\bSI\bIG\bGI\bIN\bNT\bT, b\bba\bas\bsh\bh concludes that
-              the  user meant to end the entire script, and acts on the S\bSI\bIG\bGI\bIN\bNT\bT
+              the user meant to end the entire script, and acts on the  S\bSI\bIG\bGI\bIN\bNT\bT
               (e.g., by running a S\bSI\bIG\bGI\bIN\bNT\bT trap or exiting itself);
 
-       2.     If the command does not terminate due  to  S\bSI\bIG\bGI\bIN\bNT\bT,  the  program
-              handled  the  S\bSI\bIG\bGI\bIN\bNT\bT itself and did not treat it as a fatal sig-
-              nal.  In that case, b\bba\bas\bsh\bh does not treat S\bSI\bIG\bGI\bIN\bNT\bT as a  fatal  sig-
-              nal,  either,  instead assuming that the S\bSI\bIG\bGI\bIN\bNT\bT was used as part
-              of the program's normal operation (e.g., emacs uses it to  abort
+       2.     If  the  command  does  not terminate due to S\bSI\bIG\bGI\bIN\bNT\bT, the program
+              handled the S\bSI\bIG\bGI\bIN\bNT\bT itself and did not treat it as a  fatal  sig-
+              nal.   In  that case, b\bba\bas\bsh\bh does not treat S\bSI\bIG\bGI\bIN\bNT\bT as a fatal sig-
+              nal, either, instead assuming that the S\bSI\bIG\bGI\bIN\bNT\bT was used  as  part
+              of  the program's normal operation (e.g., emacs uses it to abort
               editing commands) or deliberately discarded.  However, b\bba\bas\bsh\bh will
-              run any trap set on S\bSI\bIG\bGI\bIN\bNT\bT, as it does with  any  other  trapped
-              signal  it  receives while it is waiting for the foreground com-
+              run  any  trap  set on S\bSI\bIG\bGI\bIN\bNT\bT, as it does with any other trapped
+              signal it receives while it is waiting for the  foreground  com-
               mand to complete, for compatibility.
 
 J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL
        _\bJ_\bo_\bb _\bc_\bo_\bn_\bt_\br_\bo_\bl refers to the ability to selectively stop (_\bs_\bu_\bs_\bp_\be_\bn_\bd) the ex-
-       ecution  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  in-
-       terface  supplied  jointly  by  the  operating system kernel's terminal
+       ecution 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 in-
+       terface 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.
-       When b\bba\bas\bsh\bh starts a job asynchronously (in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd), it prints  a
+       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\b command.
+       When  b\bba\bas\bsh\bh starts a job asynchronously (in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd), it prints a
        line that looks like:
 
               [1] 25647
 
        indicating that this job is job number 1 and that the process ID of the
        last process in the pipeline associated with this job is 25647.  All of
-       the  processes  in a single pipeline are members of the same job.  B\bBa\bas\bsh\bh
+       the processes in a single pipeline are members of the same  job.   B\bBa\bas\bsh\bh
        uses the _\bj_\bo_\bb abstraction as the basis for job control.
 
-       To facilitate the implementation of the user interface to job  control,
+       To  facilitate the implementation of the user interface to job control,
        the operating system maintains the notion of a _\bc_\bu_\br_\br_\be_\bn_\bt _\bt_\be_\br_\bm_\bi_\bn_\ba_\bl _\bp_\br_\bo_\bc_\be_\bs_\bs
        _\bg_\br_\bo_\bu_\bp _\bI_\bD.  Members of this process group (processes whose process group
        ID is equal to the current terminal process group ID) receive keyboard-
-       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
+       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,
-       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
+       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,
+       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-
        ically ^\b^Z\bZ, Control-Z) while a process is running causes that process to
-       be  stopped  and  returns  control to b\bba\bas\bsh\bh.  Typing the _\bd_\be_\bl_\ba_\by_\be_\bd _\bs_\bu_\bs_\bp_\be_\bn_\bd
-       character (typically ^\b^Y\bY, Control-Y) causes the process  to  be  stopped
+       be stopped and returns control to b\bba\bas\bsh\bh.   Typing  the  _\bd_\be_\bl_\ba_\by_\be_\b _\bs_\bu_\bs_\bp_\be_\bn_\bd
+       character  (typically  ^\b^Y\bY,  Control-Y) causes the process to be stopped
        when it attempts to read input from the terminal, and control to be re-
-       turned to b\bba\bas\bsh\bh.  The user may then manipulate the state  of  this  job,
-       using  the  b\bbg\bg command to continue it in the background, the f\bfg\bg command
+       turned  to  b\bba\bas\bsh\bh.   The user may then manipulate the state of this job,
+       using the b\bbg\bg command to continue it in the background, the  f\bfg\b command
        to continue it in the foreground, or the k\bki\bil\bll\bl command to kill it.  A ^\b^Z\bZ
        takes effect immediately, and has the additional side effect of causing
        pending output and typeahead to be discarded.
 
        There are a number of ways to refer to a job in the shell.  The charac-
-       ter  %\b%  introduces  a job specification (_\bj_\bo_\bb_\bs_\bp_\be_\bc).  Job number _\bn may be
+       ter %\b% introduces a job specification (_\bj_\bo_\bb_\bs_\bp_\be_\bc).  Job number  _\bn  may  be
        referred to as %\b%n\bn.  A job may also be referred to using a prefix of the
        name used to start it, or using a substring that appears in its command
-       line.  For example, %\b%c\bce\be refers to a stopped job whose command name  be-
-       gins  with  c\bce\be.  If a prefix matches more than one job, b\bba\bas\bsh\bh reports an
+       line.   For example, %\b%c\bce\be refers to a stopped job whose command name be-
+       gins with c\bce\be.  If a prefix matches more than one job, b\bba\bas\bsh\bh  reports  an
        error.  Using %\b%?\b?c\bce\be, on the other hand, refers to any job containing the
-       string  c\bce\be in its command line.  If the substring matches more than one
+       string c\bce\be in its command line.  If the substring matches more than  one
        job, b\bba\bas\bsh\bh reports an error.  The symbols %\b%%\b% and %\b%+\b+ refer to the shell's
-       notion  of  the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb, which is the last job stopped while it was
-       in the foreground or started in the background.  The _\bp_\br_\be_\bv_\bi_\bo_\bu_\bs  _\bj_\bo_\b may
-       be  referenced  using %\b%-\b-.  If there is only a single job, %\b%+\b+ and %\b%-\b- can
+       notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb, which is the last job stopped while  it  was
+       in  the  foreground or started in the background.  The _\bp_\br_\be_\bv_\bi_\bo_\bu_\bs _\bj_\bo_\bb may
+       be referenced using %\b%-\b-.  If there is only a single job, %\b%+\b+ and  %\b%-\b can
        both be used to refer to that job.  In output pertaining to jobs (e.g.,
        the output of the j\bjo\bob\bbs\bs command), the current job is always flagged with
-       a +\b+, and the previous job with a -\b-.  A single % (with  no  accompanying
+       a  +\b+,  and the previous job with a -\b-.  A single % (with no accompanying
        job specification) also refers to the current job.
 
-       Simply  naming a job can be used to bring it into the foreground: %\b%1\b1 is
-       a synonym for `\b``\b`f\bfg\bg %\b%1\b1'\b''\b', bringing job 1 from the  background  into  the
-       foreground.   Similarly,  `\b``\b`%\b%1\b1  &\b&'\b''\b'  resumes  job  1 in the background,
+       Simply naming a job can be used to bring it into the foreground: %\b%1\b is
+       a  synonym  for  `\b``\b`f\bfg\bg %\b%1\b1'\b''\b', bringing job 1 from the background into the
+       foreground.  Similarly, `\b``\b`%\b%1\b1 &\b&'\b''\b'  resumes  job  1  in  the  background,
        equivalent to `\b``\b`b\bbg\bg %\b%1\b1'\b''\b'.
 
-       The shell learns immediately whenever a job changes  state.   Normally,
+       The  shell  learns immediately whenever a job changes state.  Normally,
        b\bba\bas\bsh\bh waits until it is about to print a prompt before reporting changes
-       in a job's status so as to not interrupt any other output.  If  the  -\b-b\bb
+       in  a  job's status so as to not interrupt any other output.  If the -\b-b\bb
        option to the s\bse\bet\bt builtin command is enabled, b\bba\bas\bsh\bh reports such changes
-       immediately.  Any trap on S\bSI\bIG\bGC\bCH\bHL\bLD\bD is executed for each child  that  ex-
+       immediately.   Any  trap on S\bSI\bIG\bGC\bCH\bHL\bLD\bD is executed for each child that ex-
        its.
 
-       If  an  attempt to exit b\bba\bas\bsh\bh is made while jobs are stopped (or, if the
-       c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bshell option has been enabled using the s\bsh\bho\bop\bpt\bt  builtin,  run-
+       If an attempt to exit b\bba\bas\bsh\bh is made while jobs are stopped (or,  if  the
+       c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\b shell  option has been enabled using the s\bsh\bho\bop\bpt\bt builtin, run-
        ning), the shell prints a warning message, and, if the c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs option
-       is enabled, lists the jobs and their statuses.  The  j\bjo\bob\bbs\bs  command  may
-       then  be  used to inspect their status.  If a second attempt to exit is
-       made without an intervening command, the shell does not  print  another
+       is  enabled,  lists  the jobs and their statuses.  The j\bjo\bob\bbs\bs command may
+       then be used to inspect their status.  If a second attempt to  exit  is
+       made  without  an intervening command, the shell does not print another
        warning, and any stopped jobs are terminated.
 
-       When  the shell is waiting for a job or process using the w\bwa\bai\bit\bt builtin,
-       and job control is enabled, w\bwa\bai\bit\bt  will  return  when  the  job  changes
-       state.  The -\b-f\bf option causes w\bwa\bai\bit\bt to wait until the job or process ter-
+       When the shell is waiting for a job or process using the w\bwa\bai\bit\b builtin,
+       and  job  control  is  enabled,  w\bwa\bai\bit\bt  will return when the job changes
+       state. The -\b-f\bf option causes w\bwa\bai\bit\bt to wait until the job or process  ter-
        minates before returning.
 
 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  displays  P\bPS\bS0\b0  after  it
-       reads  a  command  but  before  executing it.  B\bBa\bas\bsh\bh displays P\bPS\bS4\b4 as de-
-       scribed above before tracing each command when the  -\b-x\bx  option  is  en-
-       abled.   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
+       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 displays P\bPS\bS0\b0 after it
+       reads a command but before executing it.   B\bBa\bas\bsh\bh  displays  P\bPS\bS4\b4  as  de-
+       scribed  above  before  tracing  each command when the -\b-x\bx option is en-
+       abled.  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 in-
                      serted into the prompt string; an empty _\bf_\bo_\br_\bm_\ba_\bt results in
-                     a locale-specific time representation.   The  braces  are
+                     a  locale-specific  time  representation.  The braces are
                      required
               \\b\e\be     an ASCII escape character (033)
               \\b\h\bh     the hostname up to the first `.'
@@ -3097,7 +3110,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
@@ -3106,8 +3119,8 @@ P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
               \\b\u\bu     the username of the current user
               \\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 value of the P\bPW\bWD\bD shell variable  ($\b$P\bPW\bWD\bD),  with  $\b$H\bHO\bOM\bME\bE
-                     abbreviated   with   a  tilde  (uses  the  value  of  the
+              \\b\w\bw     the  value  of  the P\bPW\bWD\bD shell variable ($\b$P\bPW\bWD\bD), with $\b$H\bHO\bOM\bME\bE
+                     abbreviated  with  a  tilde  (uses  the  value   of   the
                      P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM variable)
               \\b\W\bW     the basename of $\b$P\bPW\bWD\bD, with $\b$H\bHO\bOM\bME\bE abbreviated with a tilde
               \\b\!\b!     the history number of this command
@@ -3115,70 +3128,70 @@ 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\b be-
-       low),  while the command number is the position in the sequence of com-
-       mands executed during the current shell session.  After the  string  is
-       decoded,  it is expanded via parameter expansion, command substitution,
-       arithmetic expansion, and quote removal, subject to the  value  of  the
+       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 be-
+       low), while the command number is the position in the sequence of  com-
+       mands  executed  during the current shell session.  After the string is
+       decoded, it is expanded via parameter expansion, command  substitution,
+       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 under
-       S\bSH\bHE\bEL\bLL\bB\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  This can have unwanted side effects  if
-       escaped  portions  of  the string appear within command substitution or
+       S\bSH\bHE\bEL\bLL\b B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  This can have unwanted side effects if
+       escaped portions of the string appear within  command  substitution  or
        contain characters special to word expansion.
 
 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
        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
+       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
+       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_\b-
-       _\bp_\bu_\bt_\br_\bc.  If that file  does not exist or cannot be  read,  the  ultimate
-       default  is  _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc.   When a program which uses the readline li-
-       brary 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  #\b#  are comments.  Lines beginning with a $\b$ indicate
-       conditional constructs.  Other lines denote key bindings  and  variable
+       _\bp_\bu_\bt_\br_\bc.   If  that  file  does not exist or cannot be read, the ultimate
+       default is _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc.  When a program which uses  the  readline  li-
+       brary  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 #\b# are comments.  Lines beginning  with  a  $\b indicate
+       conditional  constructs.   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
@@ -3186,18 +3199,18 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               M-Control-u: universal-argument
        or
               C-Meta-u: universal-argument
-       into the _\bi_\bn_\bp_\bu_\bt_\br_\bc would make M-C-u execute the readline command  _\bu_\bn_\bi_\bv_\be_\br_\b-
+       into  the _\bi_\bn_\bp_\bu_\bt_\br_\bc would make M-C-u execute the readline command _\bu_\bn_\bi_\bv_\be_\br_\b-
        _\bs_\ba_\bl_\b-_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.
 
-       The  following  symbolic  character  names are recognized: _\bR_\bU_\bB_\bO_\bU_\bT, _\bD_\bE_\bL,
+       The following symbolic character names  are  recognized:  _\bR_\bU_\bB_\bO_\bU_\bT,  _\bD_\bE_\bL,
        _\bE_\bS_\bC, _\bL_\bF_\bD, _\bN_\bE_\bW_\bL_\bI_\bN_\bE, _\bR_\bE_\bT, _\bR_\bE_\bT_\bU_\bR_\bN, _\bS_\bP_\bC, _\bS_\bP_\bA_\bC_\bE, and _\bT_\bA_\bB.
 
-       In addition to command names, readline allows keys to  be  bound  to  a
+       In  addition  to  command  names, readline allows keys to be bound to a
        string that is inserted when the key is pressed (a _\bm_\ba_\bc_\br_\bo).
 
    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
+       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-
        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.
@@ -3209,15 +3222,15 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               Meta-Rubout: backward-kill-word
               Control-o: "> output"
 
-       In the above example, _\bC_\b-_\bu is bound to the function  u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt,
-       _\bM_\b-_\bD_\bE_\b is bound to the function b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd, and _\bC_\b-_\bo is bound to
-       run the macro expressed on the right hand side (that is, to insert  the
+       In  the above example, _\bC_\b-_\bu is bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt,
+       _\bM_\b-_\bD_\bE_\bis bound to the function b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd, and _\bC_\b-_\bo is bound  to
+       run  the macro expressed on the right hand side (that is, to insert the
        text ``> output'' into the line).
 
-       In  the  second  form,  "\b"k\bke\bey\bys\bse\beq\bq"\b":_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be or _\bm_\ba_\bc_\br_\bo, k\bke\bey\bys\bse\beq\bq differs
-       from k\bke\bey\byn\bna\bam\bme\be above in that strings denoting an entire key sequence  may
-       be  specified  by  placing the sequence within double quotes.  Some GNU
-       Emacs style key escapes can be used, as in the following  example,  but
+       In the second form, "\b"k\bke\bey\bys\bse\beq\bq"\b":_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be  or  _\bm_\ba_\bc_\br_\bo,  k\bke\bey\bys\bse\beq\b differs
+       from  k\bke\bey\byn\bna\bam\bme\be above in that strings denoting an entire key sequence may
+       be specified by placing the sequence within double  quotes.   Some  GNU
+       Emacs  style  key escapes can be used, as in the following example, but
        the symbolic character names are not recognized.
 
               "\C-u": universal-argument
@@ -3225,7 +3238,7 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               "\e[11~": "Function Key 1"
 
        In this example, _\bC_\b-_\bu is again bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt.
-       _\bC_\b-_\b_\bC_\b-_\br is bound to the function r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be, and _\bE_\bS_\bC _\b[ _\b1 _\b1 _\b is
+       _\bC_\b-_\b _\bC_\b-_\br is bound to the function r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be, and _\bE_\bS_\bC _\b[ _\b1 _\b1 _\b~ is
        bound to insert the text ``Function Key 1''.
 
        The full set of GNU Emacs style escape sequences is
@@ -3236,7 +3249,7 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               \\b\"\b"     literal "
               \\b\'\b'     literal '
 
-       In  addition  to  the GNU Emacs style escape sequences, a second set of
+       In addition to the GNU Emacs style escape sequences, a  second  set  of
        backslash escapes is available:
               \\b\a\ba     alert (bell)
               \\b\b\bb     backspace
@@ -3246,20 +3259,20 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               \\b\r\br     carriage return
               \\b\t\bt     horizontal tab
               \\b\v\bv     vertical tab
-              \\b\_\bn_\bn_\bn   the eight-bit character whose value is  the  octal  value
+              \\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
+              \\b\x\bx_\bH_\bH   the eight-bit character whose value  is  the  hexadecimal
                      value _\bH_\bH (one or two hex digits)
 
        When entering the text of a macro, single or double quotes must be used
        to indicate a macro definition.  Unquoted text is assumed to be a func-
-       tion name.  In the macro body, the backslash  escapes  described  above
-       are  expanded.   Backslash  will quote any other character in the macro
+       tion  name.   In  the macro body, the backslash escapes described above
+       are expanded.  Backslash will quote any other character  in  the  macro
        text, including " and '.
 
-       B\bBa\bas\bsh\ballows the current readline key bindings to be displayed or  modi-
-       fied  with  the b\bbi\bin\bnd\bd builtin command.  The editing mode may be switched
-       during interactive use by using the -\b-o\bo option to the s\bse\bet\bt  builtin  com-
+       B\bBa\bas\bsh\b allows the current readline key bindings to be displayed or modi-
+       fied with the b\bbi\bin\bnd\bd builtin command.  The editing mode may  be  switched
+       during  interactive  use by using the -\b-o\bo 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).
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
@@ -3270,104 +3283,104 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               s\bse\bet\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be_\b-_\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
        or using the b\bbi\bin\bnd\bd 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).
 
-       Except  where  noted,  readline variables can take the values O\bOn\bn or O\bOf\bff\bf
-       (without regard to case).  Unrecognized  variable  names  are  ignored.
-       When  a variable value is read, empty or null values, "on" (case-insen-
+       Except where noted, readline variables can take the values  O\bOn\bn  or  O\bOf\bff\bf
+       (without  regard  to  case).   Unrecognized variable names are ignored.
+       When a variable value is read, empty or null values, "on"  (case-insen-
        sitive), and "1" are equivalent to O\bOn\bn.  All other values are equivalent
        to O\bOf\bff\bf.  The variables and their default values are:
 
        a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\br
-              A  string  variable  that controls the text color and background
-              when displaying the text in the active region (see the  descrip-
-              tion  of e\ben\bna\bab\bbl\ble\be-\b-a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn below).  This string must not take
+              A string variable that controls the text  color  and  background
+              when  displaying the text in the active region (see the descrip-
+              tion of e\ben\bna\bab\bbl\ble\be-\b-a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn below).  This string must not  take
               up any physical character positions on the display, so it should
-              consist  only of terminal escape sequences.  It is output to the
-              terminal before displaying the text in the active region.   This
-              variable  is  reset  to  the default value whenever the terminal
-              type changes.  The default value is the  string  that  puts  the
-              terminal  in standout mode, as obtained from the terminal's ter-
+              consist only of terminal escape sequences.  It is output to  the
+              terminal  before displaying the text in the active region.  This
+              variable is reset to the default  value  whenever  the  terminal
+              type  changes.   The  default  value is the string that puts the
+              terminal in standout mode, as obtained from the terminal's  ter-
               minfo description.  A sample value might be "\e[01;33m".
        a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn-\b-e\ben\bnd\bd-\b-c\bco\bol\blo\bor\br
-              A string  variable  that  "undoes"  the  effects  of  a\bac\bct\bti\biv\bve\be-\b-r\bre\be-\b-
-              g\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\b and restores "normal" terminal display appear-
-              ance after displaying text in the active  region.   This  string
-              must  not  take  up any physical character positions on the dis-
-              play, so it should consist only of  terminal  escape  sequences.
-              It  is  output  to the terminal after displaying the text in the
-              active region.  This variable is  reset  to  the  default  value
-              whenever  the  terminal  type changes.  The default value is the
-              string that restores the terminal from  standout  mode,  as  ob-
+              A  string  variable  that  "undoes"  the  effects  of a\bac\bct\bti\biv\bve\be-\b-r\bre\be-\b-
+              g\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\band restores "normal" terminal display  appear-
+              ance  after  displaying  text in the active region.  This string
+              must not take up any physical character positions  on  the  dis-
+              play,  so  it  should consist only of terminal escape sequences.
+              It is output to the terminal after displaying the  text  in  the
+              active  region.   This  variable  is  reset to the default value
+              whenever the terminal type changes.  The default  value  is  the
+              string  that  restores  the  terminal from standout mode, as ob-
               tained from the terminal's terminfo description.  A sample value
               might be "\e[0m".
        b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be (\b(a\bau\bud\bdi\bib\bbl\ble\be)\b)
-              Controls what happens when readline wants to ring  the  terminal
+              Controls  what  happens when readline wants to ring the terminal
               bell.  If set to n\bno\bon\bne\be, readline never rings the bell.  If set to
-              v\bvi\bis\bsi\bib\bbl\ble\be, readline uses a visible bell if one is  available.   If
+              v\bvi\bis\bsi\bib\bbl\ble\be,  readline  uses a visible bell if one is available.  If
               set to a\bau\bud\bdi\bib\bbl\ble\be, readline attempts to ring the terminal's bell.
        b\bbi\bin\bnd\bd-\b-t\btt\bty\by-\b-s\bsp\bpe\bec\bci\bia\bal\bl-\b-c\bch\bha\bar\brs\bs (\b(O\bOn\bn)\b)
-              If  set  to O\bOn\bn, readline attempts to bind the control characters
+              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.
        b\bbl\bli\bin\bnk\bk-\b-m\bma\bat\btc\bch\bhi\bin\bng\bg-\b-p\bpa\bar\bre\ben\bn (\b(O\bOf\bff\bf)\b)
               If set to O\bOn\bn, readline attempts to briefly move the cursor to an
               opening parenthesis when a closing parenthesis is inserted.
        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
+              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
+              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.  If there is a color defini-
-              tion in $\b$L\bLS\bS_\b_C\bCO\bOL\bLO\bOR\bRS\bS for the custom suffix  "readline-colored-com-
-              pletion-prefix",  readline uses this color for the common prefix
+              tion  in $\b$L\bLS\bS_\b_C\bCO\bOL\bLO\bOR\bRS\bS for the custom suffix "readline-colored-com-
+              pletion-prefix", readline uses this color for the common  prefix
               instead of its default.
        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\b environment
+              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
+              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
               and to #\b# in vi command mode.
        c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-w\bwi\bid\bdt\bth\bh (\b(-\b-1\b1)\b)
-              The  number  of  screen columns used to display possible matches
-              when performing completion.  The value is ignored if it is  less
-              than  0 or greater than the terminal screen width.  A value of 0
-              will cause matches to be displayed one per  line.   The  default
+              The number of screen columns used to  display  possible  matches
+              when  performing completion.  The value is ignored if it is less
+              than 0 or greater than the terminal screen width.  A value of  0
+              will  cause  matches  to be displayed one per line.  The default
               value is -1.
        c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be (\b(O\bOf\bff\bf)\b)
               If set to O\bOn\bn, readline performs filename matching and completion
               in a case-insensitive fashion.
        c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-m\bma\bap\bp-\b-c\bca\bas\bse\be (\b(O\bOf\bff\bf)\b)
-              If set to O\bOn\bn, and c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be  is  enabled,  readline
-              treats  hyphens  (_\b-) and underscores (_\b_) as equivalent when per-
+              If  set  to  O\bOn\bn, and c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be is enabled, readline
+              treats hyphens (_\b-) and underscores (_\b_) as equivalent  when  per-
               forming case-insensitive filename matching and completion.
        c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-p\bpr\bre\bef\bfi\bix\bx-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-l\ble\ben\bng\bgt\bth\bh (\b(0\b0)\b)
-              The length in characters of the common prefix of a list of  pos-
-              sible  completions that is displayed without modification.  When
-              set to a value greater than zero, common  prefixes  longer  than
-              this  value are replaced with an ellipsis when displaying possi-
+              The  length in characters of the common prefix of a list of pos-
+              sible completions that is displayed without modification.   When
+              set  to  a  value greater than zero, common prefixes longer than
+              this value are replaced with an ellipsis when displaying  possi-
               ble completions.
        c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-q\bqu\bue\ber\bry\by-\b-i\bit\bte\bem\bms\bs (\b(1\b10\b00\b0)\b)
-              This determines when the user is queried about viewing the  num-
-              ber  of  possible  completions generated by the p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\be-\b-
-              t\bti\bio\bon\bns\bcommand.  It may be set to any integer value greater  than
-              or  equal  to  zero.   If  the number of possible completions is
-              greater than or equal to the value of  this  variable,  readline
-              will  ask whether or not the user wishes to view them; otherwise
-              they are simply listed on the  terminal.   A  zero  value  means
+              This  determines when the user is queried about viewing the num-
+              ber of possible completions generated  by  the  p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\be-\b-
+              t\bti\bio\bon\bns\b command.  It may be set to any integer value greater than
+              or equal to zero.  If the  number  of  possible  completions  is
+              greater  than  or  equal to the value of this variable, readline
+              will ask whether or not the user wishes to view them;  otherwise
+              they  are  simply  listed  on  the terminal.  A zero value means
               readline should never ask; negative values are treated as zero.
        c\bco\bon\bnv\bve\ber\brt\bt-\b-m\bme\bet\bta\ba (\b(O\bOn\bn)\b)
-              If  set  to O\bOn\bn, readline will convert characters with the eighth
+              If set to O\bOn\bn, readline will convert characters with  the  eighth
               bit set to an ASCII key sequence by stripping the eighth bit and
-              prefixing  an  escape  character (in effect, using escape as the
-              _\bm_\be_\bt_\b_\bp_\br_\be_\bf_\bi_\bx).  The default is _\bO_\bn, but readline will  set  it  to
+              prefixing an escape character (in effect, using  escape  as  the
+              _\bm_\be_\bt_\b _\bp_\br_\be_\bf_\bi_\bx).   The  default is _\bO_\bn, but readline will set it to
               _\bO_\bf_\bf if the locale contains eight-bit characters.
        d\bdi\bis\bsa\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn (\b(O\bOf\bff\bf)\b)
               If set to O\bOn\bn, readline will inhibit word completion.  Completion
-              characters will be inserted into the line as if  they  had  been
+              characters  will  be  inserted into the line as if they had been
               mapped to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt.
        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
+              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\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be (\b(e\bem\bma\bac\bcs\bs)\b)
@@ -3375,32 +3388,31 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               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\bem\bma\bac\bcs\bs-\b-m\bmo\bod\bde\be-\b-s\bst\btr\bri\bin\bng\bg (\b(@\b@)\b)
-              If  the  _\bs_\bh_\bo_\bw_\b-_\bm_\bo_\bd_\be_\b-_\bi_\bn_\b-_\bp_\br_\bo_\bm_\bp_\bt variable is enabled, this string is
+              If the _\bs_\bh_\bo_\bw_\b-_\bm_\bo_\bd_\be_\b-_\bi_\bn_\b-_\bp_\br_\bo_\bm_\bp_\bt variable is enabled, 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 control sequence into the
+              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.
        e\ben\bna\bab\bbl\ble\be-\b-a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn (\b(O\bOn\bn)\b)
-              The _\bp_\bo_\bi_\bn_\bt is the current cursor position, and _\bm_\ba_\br_\bk refers  to  a
-              saved  cursor  position.  The text between the point and mark is
-              referred to as the _\br_\be_\bg_\bi_\bo_\bn.  When this variable  is  set  to  _\bO_\bn,
-              readline  allows certain commands to designate the region as _\ba_\bc_\b-
-              _\bt_\bi_\bv_\be.  When the region is active, readline highlights  the  text
-              in  the region using the value of the a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\br,
-              which defaults to the string that enables the terminal's  stand-
-              out  mode.   The active region shows the text inserted by brack-
-              eted-paste and any matching text found by incremental  and  non-
+              The  _\bp_\bo_\bi_\bn_\bt  is the current cursor position, and _\bm_\ba_\br_\bk refers to a
+              saved cursor position.  The text between the point and  mark  is
+              referred  to  as  the  _\br_\be_\bg_\bi_\bo_\bn.  When this variable is set to _\bO_\bn,
+              readline allows certain commands to designate the region as  _\ba_\bc_\b-
+              _\bt_\bi_\bv_\be.   When  the region is active, readline highlights the text
+              in the region using the value of the  a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\br,
+              which  defaults to the string that enables the terminal's stand-
+              out mode.  The active region shows the text inserted  by  brack-
+              eted-paste  and  any matching text found by incremental and non-
               incremental history searches.
        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\bOn\bn)\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.
+              When set to O\bOn\bn, readline configures the terminal to insert  each
+              paste  into the editing buffer as a single string of characters,
+              instead of treating each character as if it had been  read  from
+              the keyboard.  This prevents readline from executing any editing
+              commands bound to key sequences appearing in the pasted text.
        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 ar-
@@ -6631,4 +6643,4 @@ B\bBU\bUG\bGS\bS
 
 
 
-GNU Bash 5.2                   2022 February 10                        BASH(1)
+GNU Bash 5.2                     2022 March 11                         BASH(1)
index 8804fd8092c2578e036c4db020f302b5498516d0..1026fac76445d47fe3cd37d800ed46a1c92eb0fd 100644 (file)
@@ -3176,7 +3176,7 @@ ${\fIparameter\fP\fB:\fP\fIoffset\fP\fB:\fP\fIlength\fP}
 \fBSubstring Expansion\fP.
 Expands to up to \fIlength\fP characters of the value of \fIparameter\fP
 starting at the character specified by \fIoffset\fP.
-If \fIparameter\fP is \fB@\fP, an indexed array subscripted by
+If \fIparameter\fP is \fB@\fP or \fB*\fP, an indexed array subscripted by
 \fB@\fP or \fB*\fP, or an associative array name, the results differ as
 described below.
 If \fIlength\fP is omitted, expands to the substring of the value of
@@ -3199,8 +3199,8 @@ a number of characters, and the expansion is the characters between
 Note that a negative offset must be separated from the colon by at least
 one space to avoid being confused with the \fB:-\fP expansion.
 .sp 1
-If \fIparameter\fP is \fB@\fP, the result is \fIlength\fP positional
-parameters beginning at \fIoffset\fP.
+If \fIparameter\fP is \fB@\fP or \fB*\fP, the result is \fIlength\fP
+positional parameters beginning at \fIoffset\fP.
 A negative \fIoffset\fP is taken relative to one greater than the greatest
 positional parameter, so an offset of \-1 evaluates to the last positional
 parameter.
index eecc087403b67a61dcad8f471f8d45d8bc55981f..4cbaf021e53cf1f1ddaa7fc3a0ec1c5293a67e58 100644 (file)
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.8 from
 bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.2, 5 February 2022).
+Bash shell (version 5.2, 24 February 2022).
 
-   This is Edition 5.2, last updated 5 February 2022, of 'The GNU Bash
+   This is Edition 5.2, last updated 24 February 2022, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Copyright (C) 1988-2022 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.2, 5 February 2022).  The Bash home page is
+Bash shell (version 5.2, 24 February 2022).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.2, last updated 5 February 2022, of 'The GNU Bash
+   This is Edition 5.2, last updated 24 February 2022, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Bash contains features that appear in other popular shells, and some
@@ -1368,9 +1368,17 @@ status; otherwise the function's return status is the exit status of the
 last command executed before the 'return'.
 
    Variables local to the function may be declared with the 'local'
-builtin.  These variables are visible only to the function and the
-commands it invokes.  This is particularly important when a shell
-function calls other functions.
+builtin ("local variables").  Ordinarily, variables and their values are
+shared between a function and its caller.  These variables are visible
+only to the function and the commands it invokes.  This is particularly
+important when a shell function calls other functions.
+
+   In the following description, the "current scope" is a currently-
+executing function.  Previous scopes consist of that function's caller
+and so on, back to the "global" scope, where the shell is not executing
+any shell function.  Consequently, a local variable at the current local
+scope is a variable declared using the 'local' or 'declare' builtins in
+the function that is currently executing.
 
    Local variables "shadow" variables with the same name declared at
 previous scopes.  For instance, a local variable declared in a function
@@ -1415,11 +1423,12 @@ script displays
 variable is local to the current scope, 'unset' will unset it; otherwise
 the unset will refer to the variable found in any calling scope as
 described above.  If a variable at the current local scope is unset, it
-will remain so until it is reset in that scope or until the function
-returns.  Once the function returns, any instance of the variable at a
-previous scope will become visible.  If the unset acts on a variable at
-a previous scope, any instance of a variable with that name that had
-been shadowed will become visible.
+will remain so (appearing as unset) until it is reset in that scope or
+until the function returns.  Once the function returns, any instance of
+the variable at a previous scope will become visible.  If the unset acts
+on a variable at a previous scope, any instance of a variable with that
+name that had been shadowed will become visible (see below how
+'localvar_unset'shell option changes this behavior).
 
    Function names and definitions may be listed with the '-f' option to
 the 'declare' ('typeset') builtin command (*note Bash Builtins::).  The
@@ -1868,11 +1877,11 @@ omitted, the operator tests only for existence.
 '${PARAMETER:OFFSET:LENGTH}'
      This is referred to as Substring Expansion.  It expands to up to
      LENGTH characters of the value of PARAMETER starting at the
-     character specified by OFFSET.  If PARAMETER is '@', an indexed
-     array subscripted by '@' or '*', or an associative array name, the
-     results differ as described below.  If LENGTH is omitted, it
-     expands to the substring of the value of PARAMETER starting at the
-     character specified by OFFSET and extending to the end of the
+     character specified by OFFSET.  If PARAMETER is '@' or '*', an
+     indexed array subscripted by '@' or '*', or an associative array
+     name, the results differ as described below.  If LENGTH is omitted,
+     it expands to the substring of the value of PARAMETER starting at
+     the character specified by OFFSET and extending to the end of the
      value.  LENGTH and OFFSET are arithmetic expressions (*note Shell
      Arithmetic::).
 
@@ -1940,11 +1949,11 @@ omitted, the operator tests only for existence.
      $ echo ${array[0]: -7:-2}
      bcdef
 
-     If PARAMETER is '@', the result is LENGTH positional parameters
-     beginning at OFFSET.  A negative OFFSET 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 expansion
-     error if LENGTH evaluates to a number less than zero.
+     If PARAMETER is '@' or '*', the result is LENGTH positional
+     parameters beginning at OFFSET.  A negative OFFSET 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 expansion error if LENGTH evaluates to a number less than zero.
 
      The following examples illustrate substring expansion using
      positional parameters:
@@ -6661,6 +6670,10 @@ negative number, that number is interpreted as relative to one greater
 than the maximum index of NAME, so negative indices count back from the
 end of the array, and an index of -1 references the last element.
 
+   The '+=' operator will append to an array variable when assigning
+using the compound assignment syntax; see *note Shell Parameters::
+above.
+
    Any element of an array may be referenced using '${NAME[SUBSCRIPT]}'.
 The braces are required to avoid conflicts with the shell's filename
 expansion operators.  If the SUBSCRIPT is '@' or '*', the word expands
@@ -8157,12 +8170,13 @@ Variable Settings
           non-incremental history searches.  The default is 'On'.
 
      'enable-bracketed-paste'
-          When set to 'On', 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 character as if it had been read from the keyboard.  This
-          can prevent pasted characters from being interpreted as
-          editing commands.  The default is 'On'.
+          When set to 'On', Readline configures the terminal to insert
+          each paste into the editing buffer as a single string of
+          characters, instead of treating each character as if it had
+          been read from the keyboard.  This is called putting the
+          terminal into "bracketed paste mode"; it prevents Readline
+          from executing any editing commands bound to key sequences
+          appearing in the pasted text.  The default is 'On'.
 
      'enable-keypad'
           When set to 'on', Readline will try to enable the application
@@ -11968,14 +11982,14 @@ D.3 Parameter and Variable Index
 * enable-bracketed-paste:                Readline Init File Syntax.
                                                               (line 185)
 * enable-keypad:                         Readline Init File Syntax.
-                                                              (line 193)
+                                                              (line 194)
 * ENV:                                   Bash Variables.      (line 279)
 * EPOCHREALTIME:                         Bash Variables.      (line 284)
 * EPOCHSECONDS:                          Bash Variables.      (line 292)
 * EUID:                                  Bash Variables.      (line 299)
 * EXECIGNORE:                            Bash Variables.      (line 303)
 * expand-tilde:                          Readline Init File Syntax.
-                                                              (line 204)
+                                                              (line 205)
 * FCEDIT:                                Bash Variables.      (line 316)
 * FIGNORE:                               Bash Variables.      (line 320)
 * FUNCNAME:                              Bash Variables.      (line 326)
@@ -11989,15 +12003,15 @@ D.3 Parameter and Variable Index
 * HISTFILESIZE:                          Bash Variables.      (line 402)
 * HISTIGNORE:                            Bash Variables.      (line 413)
 * history-preserve-point:                Readline Init File Syntax.
-                                                              (line 208)
+                                                              (line 209)
 * history-size:                          Readline Init File Syntax.
-                                                              (line 214)
+                                                              (line 215)
 * HISTSIZE:                              Bash Variables.      (line 433)
 * HISTTIMEFORMAT:                        Bash Variables.      (line 440)
 * HOME:                                  Bourne Shell Variables.
                                                               (line  13)
 * horizontal-scroll-mode:                Readline Init File Syntax.
-                                                              (line 223)
+                                                              (line 224)
 * HOSTFILE:                              Bash Variables.      (line 448)
 * HOSTNAME:                              Bash Variables.      (line 459)
 * HOSTTYPE:                              Bash Variables.      (line 462)
@@ -12005,13 +12019,13 @@ D.3 Parameter and Variable Index
                                                               (line  18)
 * IGNOREEOF:                             Bash Variables.      (line 465)
 * input-meta:                            Readline Init File Syntax.
-                                                              (line 232)
+                                                              (line 233)
 * INPUTRC:                               Bash Variables.      (line 475)
 * INSIDE_EMACS:                          Bash Variables.      (line 479)
 * isearch-terminators:                   Readline Init File Syntax.
-                                                              (line 240)
+                                                              (line 241)
 * keymap:                                Readline Init File Syntax.
-                                                              (line 247)
+                                                              (line 248)
 * LANG:                                  Creating Internationalized Scripts.
                                                               (line  51)
 * LANG <1>:                              Bash Variables.      (line 485)
@@ -12033,15 +12047,15 @@ D.3 Parameter and Variable Index
                                                               (line  27)
 * MAPFILE:                               Bash Variables.      (line 540)
 * mark-modified-lines:                   Readline Init File Syntax.
-                                                              (line 277)
+                                                              (line 278)
 * mark-symlinked-directories:            Readline Init File Syntax.
-                                                              (line 282)
+                                                              (line 283)
 * match-hidden-files:                    Readline Init File Syntax.
-                                                              (line 287)
+                                                              (line 288)
 * menu-complete-display-prefix:          Readline Init File Syntax.
-                                                              (line 294)
+                                                              (line 295)
 * meta-flag:                             Readline Init File Syntax.
-                                                              (line 232)
+                                                              (line 233)
 * OLDPWD:                                Bash Variables.      (line 544)
 * OPTARG:                                Bourne Shell Variables.
                                                               (line  34)
@@ -12050,9 +12064,9 @@ D.3 Parameter and Variable Index
                                                               (line  38)
 * OSTYPE:                                Bash Variables.      (line 551)
 * output-meta:                           Readline Init File Syntax.
-                                                              (line 299)
+                                                              (line 300)
 * page-completions:                      Readline Init File Syntax.
-                                                              (line 305)
+                                                              (line 306)
 * PATH:                                  Bourne Shell Variables.
                                                               (line  42)
 * PIPESTATUS:                            Bash Variables.      (line 554)
@@ -12075,19 +12089,19 @@ D.3 Parameter and Variable Index
 * READLINE_POINT:                        Bash Variables.      (line 626)
 * REPLY:                                 Bash Variables.      (line 630)
 * revert-all-at-newline:                 Readline Init File Syntax.
-                                                              (line 315)
+                                                              (line 316)
 * SECONDS:                               Bash Variables.      (line 633)
 * SHELL:                                 Bash Variables.      (line 642)
 * SHELLOPTS:                             Bash Variables.      (line 647)
 * SHLVL:                                 Bash Variables.      (line 656)
 * show-all-if-ambiguous:                 Readline Init File Syntax.
-                                                              (line 321)
+                                                              (line 322)
 * show-all-if-unmodified:                Readline Init File Syntax.
-                                                              (line 327)
+                                                              (line 328)
 * show-mode-in-prompt:                   Readline Init File Syntax.
-                                                              (line 336)
+                                                              (line 337)
 * skip-completed-text:                   Readline Init File Syntax.
-                                                              (line 342)
+                                                              (line 343)
 * SRANDOM:                               Bash Variables.      (line 661)
 * TEXTDOMAIN:                            Creating Internationalized Scripts.
                                                               (line  51)
@@ -12098,11 +12112,11 @@ D.3 Parameter and Variable Index
 * TMPDIR:                                Bash Variables.      (line 720)
 * UID:                                   Bash Variables.      (line 724)
 * vi-cmd-mode-string:                    Readline Init File Syntax.
-                                                              (line 355)
+                                                              (line 356)
 * vi-ins-mode-string:                    Readline Init File Syntax.
-                                                              (line 366)
+                                                              (line 367)
 * visible-stats:                         Readline Init File Syntax.
-                                                              (line 377)
+                                                              (line 378)
 
 \1f
 File: bashref.info,  Node: Function Index,  Next: Concept Index,  Prev: Variable Index,  Up: Indexes
@@ -12481,138 +12495,138 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f895
-Node: Introduction\7f2813
-Node: What is Bash?\7f3029
-Node: What is a shell?\7f4143
-Node: Definitions\7f6681
-Node: Basic Shell Features\7f9632
-Node: Shell Syntax\7f10851
-Node: Shell Operation\7f11877
-Node: Quoting\7f13170
-Node: Escape Character\7f14474
-Node: Single Quotes\7f14959
-Node: Double Quotes\7f15307
-Node: ANSI-C Quoting\7f16585
-Node: Locale Translation\7f17895
-Node: Creating Internationalized Scripts\7f19206
-Node: Comments\7f23323
-Node: Shell Commands\7f23941
-Node: Reserved Words\7f24879
-Node: Simple Commands\7f25635
-Node: Pipelines\7f26289
-Node: Lists\7f29248
-Node: Compound Commands\7f31043
-Node: Looping Constructs\7f32055
-Node: Conditional Constructs\7f34550
-Node: Command Grouping\7f48894
-Node: Coprocesses\7f50372
-Node: GNU Parallel\7f53035
-Node: Shell Functions\7f53952
-Node: Shell Parameters\7f61243
-Node: Positional Parameters\7f65631
-Node: Special Parameters\7f66533
-Node: Shell Expansions\7f69747
-Node: Brace Expansion\7f71874
-Node: Tilde Expansion\7f74608
-Node: Shell Parameter Expansion\7f77229
-Node: Command Substitution\7f95566
-Node: Arithmetic Expansion\7f96921
-Node: Process Substitution\7f97889
-Node: Word Splitting\7f99009
-Node: Filename Expansion\7f100953
-Node: Pattern Matching\7f103702
-Node: Quote Removal\7f108310
-Node: Redirections\7f108605
-Node: Executing Commands\7f118265
-Node: Simple Command Expansion\7f118935
-Node: Command Search and Execution\7f121045
-Node: Command Execution Environment\7f123423
-Node: Environment\7f126458
-Node: Exit Status\7f128121
-Node: Signals\7f129905
-Node: Shell Scripts\7f133354
-Node: Shell Builtin Commands\7f136381
-Node: Bourne Shell Builtins\7f138419
-Node: Bash Builtins\7f159880
-Node: Modifying Shell Behavior\7f190736
-Node: The Set Builtin\7f191081
-Node: The Shopt Builtin\7f201682
-Node: Special Builtins\7f217594
-Node: Shell Variables\7f218573
-Node: Bourne Shell Variables\7f219010
-Node: Bash Variables\7f221114
-Node: Bash Features\7f253930
-Node: Invoking Bash\7f254943
-Node: Bash Startup Files\7f260956
-Node: Interactive Shells\7f266059
-Node: What is an Interactive Shell?\7f266469
-Node: Is this Shell Interactive?\7f267118
-Node: Interactive Shell Behavior\7f267933
-Node: Bash Conditional Expressions\7f271562
-Node: Shell Arithmetic\7f276204
-Node: Aliases\7f279148
-Node: Arrays\7f281761
-Node: The Directory Stack\7f288008
-Node: Directory Stack Builtins\7f288792
-Node: Controlling the Prompt\7f293052
-Node: The Restricted Shell\7f296017
-Node: Bash POSIX Mode\7f298627
-Node: Shell Compatibility Mode\7f310277
-Node: Job Control\7f318306
-Node: Job Control Basics\7f318766
-Node: Job Control Builtins\7f323768
-Node: Job Control Variables\7f329168
-Node: Command Line Editing\7f330324
-Node: Introduction and Notation\7f331995
-Node: Readline Interaction\7f333618
-Node: Readline Bare Essentials\7f334809
-Node: Readline Movement Commands\7f336592
-Node: Readline Killing Commands\7f337552
-Node: Readline Arguments\7f339470
-Node: Searching\7f340514
-Node: Readline Init File\7f342700
-Node: Readline Init File Syntax\7f343961
-Node: Conditional Init Constructs\7f367087
-Node: Sample Init File\7f371283
-Node: Bindable Readline Commands\7f374407
-Node: Commands For Moving\7f375611
-Node: Commands For History\7f377662
-Node: Commands For Text\7f382656
-Node: Commands For Killing\7f386305
-Node: Numeric Arguments\7f389338
-Node: Commands For Completion\7f390477
-Node: Keyboard Macros\7f394668
-Node: Miscellaneous Commands\7f395355
-Node: Readline vi Mode\7f401294
-Node: Programmable Completion\7f402201
-Node: Programmable Completion Builtins\7f409981
-Node: A Programmable Completion Example\7f420676
-Node: Using History Interactively\7f425923
-Node: Bash History Facilities\7f426607
-Node: Bash History Builtins\7f429612
-Node: History Interaction\7f434620
-Node: Event Designators\7f438240
-Node: Word Designators\7f439594
-Node: Modifiers\7f441354
-Node: Installing Bash\7f443165
-Node: Basic Installation\7f444302
-Node: Compilers and Options\7f448024
-Node: Compiling For Multiple Architectures\7f448765
-Node: Installation Names\7f450458
-Node: Specifying the System Type\7f452567
-Node: Sharing Defaults\7f453283
-Node: Operation Controls\7f453956
-Node: Optional Features\7f454914
-Node: Reporting Bugs\7f466132
-Node: Major Differences From The Bourne Shell\7f467407
-Node: GNU Free Documentation License\7f484257
-Node: Indexes\7f509434
-Node: Builtin Index\7f509888
-Node: Reserved Word Index\7f516715
-Node: Variable Index\7f519163
-Node: Function Index\7f535937
-Node: Concept Index\7f549721
+Node: Top\7f897
+Node: Introduction\7f2817
+Node: What is Bash?\7f3033
+Node: What is a shell?\7f4147
+Node: Definitions\7f6685
+Node: Basic Shell Features\7f9636
+Node: Shell Syntax\7f10855
+Node: Shell Operation\7f11881
+Node: Quoting\7f13174
+Node: Escape Character\7f14478
+Node: Single Quotes\7f14963
+Node: Double Quotes\7f15311
+Node: ANSI-C Quoting\7f16589
+Node: Locale Translation\7f17899
+Node: Creating Internationalized Scripts\7f19210
+Node: Comments\7f23327
+Node: Shell Commands\7f23945
+Node: Reserved Words\7f24883
+Node: Simple Commands\7f25639
+Node: Pipelines\7f26293
+Node: Lists\7f29252
+Node: Compound Commands\7f31047
+Node: Looping Constructs\7f32059
+Node: Conditional Constructs\7f34554
+Node: Command Grouping\7f48898
+Node: Coprocesses\7f50376
+Node: GNU Parallel\7f53039
+Node: Shell Functions\7f53956
+Node: Shell Parameters\7f61841
+Node: Positional Parameters\7f66229
+Node: Special Parameters\7f67131
+Node: Shell Expansions\7f70345
+Node: Brace Expansion\7f72472
+Node: Tilde Expansion\7f75206
+Node: Shell Parameter Expansion\7f77827
+Node: Command Substitution\7f96178
+Node: Arithmetic Expansion\7f97533
+Node: Process Substitution\7f98501
+Node: Word Splitting\7f99621
+Node: Filename Expansion\7f101565
+Node: Pattern Matching\7f104314
+Node: Quote Removal\7f108922
+Node: Redirections\7f109217
+Node: Executing Commands\7f118877
+Node: Simple Command Expansion\7f119547
+Node: Command Search and Execution\7f121657
+Node: Command Execution Environment\7f124035
+Node: Environment\7f127070
+Node: Exit Status\7f128733
+Node: Signals\7f130517
+Node: Shell Scripts\7f133966
+Node: Shell Builtin Commands\7f136993
+Node: Bourne Shell Builtins\7f139031
+Node: Bash Builtins\7f160492
+Node: Modifying Shell Behavior\7f191348
+Node: The Set Builtin\7f191693
+Node: The Shopt Builtin\7f202294
+Node: Special Builtins\7f218206
+Node: Shell Variables\7f219185
+Node: Bourne Shell Variables\7f219622
+Node: Bash Variables\7f221726
+Node: Bash Features\7f254542
+Node: Invoking Bash\7f255555
+Node: Bash Startup Files\7f261568
+Node: Interactive Shells\7f266671
+Node: What is an Interactive Shell?\7f267081
+Node: Is this Shell Interactive?\7f267730
+Node: Interactive Shell Behavior\7f268545
+Node: Bash Conditional Expressions\7f272174
+Node: Shell Arithmetic\7f276816
+Node: Aliases\7f279760
+Node: Arrays\7f282373
+Node: The Directory Stack\7f288764
+Node: Directory Stack Builtins\7f289548
+Node: Controlling the Prompt\7f293808
+Node: The Restricted Shell\7f296773
+Node: Bash POSIX Mode\7f299383
+Node: Shell Compatibility Mode\7f311033
+Node: Job Control\7f319062
+Node: Job Control Basics\7f319522
+Node: Job Control Builtins\7f324524
+Node: Job Control Variables\7f329924
+Node: Command Line Editing\7f331080
+Node: Introduction and Notation\7f332751
+Node: Readline Interaction\7f334374
+Node: Readline Bare Essentials\7f335565
+Node: Readline Movement Commands\7f337348
+Node: Readline Killing Commands\7f338308
+Node: Readline Arguments\7f340226
+Node: Searching\7f341270
+Node: Readline Init File\7f343456
+Node: Readline Init File Syntax\7f344717
+Node: Conditional Init Constructs\7f367916
+Node: Sample Init File\7f372112
+Node: Bindable Readline Commands\7f375236
+Node: Commands For Moving\7f376440
+Node: Commands For History\7f378491
+Node: Commands For Text\7f383485
+Node: Commands For Killing\7f387134
+Node: Numeric Arguments\7f390167
+Node: Commands For Completion\7f391306
+Node: Keyboard Macros\7f395497
+Node: Miscellaneous Commands\7f396184
+Node: Readline vi Mode\7f402123
+Node: Programmable Completion\7f403030
+Node: Programmable Completion Builtins\7f410810
+Node: A Programmable Completion Example\7f421505
+Node: Using History Interactively\7f426752
+Node: Bash History Facilities\7f427436
+Node: Bash History Builtins\7f430441
+Node: History Interaction\7f435449
+Node: Event Designators\7f439069
+Node: Word Designators\7f440423
+Node: Modifiers\7f442183
+Node: Installing Bash\7f443994
+Node: Basic Installation\7f445131
+Node: Compilers and Options\7f448853
+Node: Compiling For Multiple Architectures\7f449594
+Node: Installation Names\7f451287
+Node: Specifying the System Type\7f453396
+Node: Sharing Defaults\7f454112
+Node: Operation Controls\7f454785
+Node: Optional Features\7f455743
+Node: Reporting Bugs\7f466961
+Node: Major Differences From The Bourne Shell\7f468236
+Node: GNU Free Documentation License\7f485086
+Node: Indexes\7f510263
+Node: Builtin Index\7f510717
+Node: Reserved Word Index\7f517544
+Node: Variable Index\7f519992
+Node: Function Index\7f536766
+Node: Concept Index\7f550550
 \1f
 End Tag Table
 
index 7e84f07233c4014015e434142c5294e74bdaa96f..c5e7e2b5ba7362747d87a82b1bbeb600eba9d140 100644 (file)
@@ -2221,7 +2221,7 @@ var is set and not null
 This is referred to as Substring Expansion.
 It expands to up to @var{length} characters of the value of @var{parameter}
 starting at the character specified by @var{offset}.
-If @var{parameter} is @samp{@@}, an indexed array subscripted by
+If @var{parameter} is @samp{@@} or @samp{*}, an indexed array subscripted by
 @samp{@@} or @samp{*}, or an associative array name, the results differ as
 described below.
 If @var{length} is omitted, it expands to the substring of the value of
@@ -2298,8 +2298,8 @@ $ echo ${array[0]: -7:-2}
 bcdef
 @end verbatim
 
-If @var{parameter} is @samp{@@}, the result is @var{length} positional
-parameters beginning at @var{offset}.
+If @var{parameter} is @samp{@@} or @samp{*}, the result is @var{length}
+positional parameters beginning at @var{offset}.
 A negative @var{offset} is taken relative to one greater than the greatest
 positional parameter, so an offset of -1 evaluates to the last positional
 parameter.
index 1e4dfa3b4702e302cd46e3739bc408322cb94a23..e5d224ed040e71b6405846e651d694bacffb9663 100644 (file)
@@ -1981,7 +1981,7 @@ compare_match (char *text, const char *match)
     {
       temp = (*rl_filename_dequoting_function) (text, rl_completion_quote_character);
       r = strcmp (temp, match);
-      free (temp);
+      xfree (temp);
       return r;
     }      
   return (strcmp (text, match));
index 3ac09c7c261c68dae8fddde757fea505cba6cc1c..c1135ec59294a394e8b852b37c2e4d420a3dca87 100644 (file)
@@ -536,7 +536,7 @@ expand_prompt (char *pmt, int flags, int *lp, int *lip, int *niflp, int *vlp)
     *vlp = physchars;
 
   if (nprompt != pmt)
-    free (nprompt);
+    xfree (nprompt);
 
   return ret;
 }
index edc903ef222a7cf880e88c19e90c44badb6edfe1..3bfec5500db515ebafc2310555019711bdd93f4a 100644 (file)
@@ -310,7 +310,7 @@ read_history_range (const char *filename, int from, int to)
 
   if (file_size == 0)
     {
-      free (input);
+      xfree (input);
       close (file);
       return 0;        /* don't waste time if we don't have to */
     }
index 9711b152c7a890211c3a13b8335eb52a37a5bc3a..b62c06b7bf066a32fcc4b24bc8b3aa8c8910488c 100644 (file)
@@ -248,7 +248,7 @@ _hs_history_patsearch (const char *string, int direction, int flags)
   ret = history_search_internal (pat, direction, flags|PATTERN_SEARCH);
 
   if (pat != string)
-    free (pat);
+    xfree (pat);
   return ret;
 }
        
index df23f15ab401749ea283f95976230c77007d3464..3e398a6ca7fbb8cb7277a762c3daa05114aa64f8 100644 (file)
@@ -679,7 +679,7 @@ opcode_dispatch:
       paste = _rl_bracketed_text (&pastelen);
       if (paste == 0 || *paste == 0)
        {
-         free (paste);
+         xfree (paste);
          break;
        }
       if (_rl_enable_active_region)
@@ -692,7 +692,7 @@ opcode_dispatch:
       memcpy (cxt->search_string + cxt->search_string_index, paste, pastelen);
       cxt->search_string_index += pastelen;
       cxt->search_string[cxt->search_string_index] = '\0';
-      free (paste);
+      xfree (paste);
       break;
 
     /* Add character to search string and continue search. */
index 2a75847d7473117e9e6ca6708107619613c8a56d..4bca9c586101954061d5ccae5ac2153ac6526186 100644 (file)
@@ -388,23 +388,12 @@ _rl_free_saved_history_line (void)
     {
       if (rl_undo_list && rl_undo_list == (UNDO_LIST *)_rl_saved_line_for_history->data)
        rl_undo_list = 0;
-
       /* Have to free this separately because _rl_free_history entry can't:
         it doesn't know whether or not this has application data. Only the
         callers that know this is _rl_saved_line_for_history can know that
         it's an undo list. */
-#if defined (HISTORY_SEARCH_SETS_HISTPOS)
-      if (_rl_saved_line_for_history->data)
-       {
-         orig = rl_undo_list;
-         rl_undo_list = (UNDO_LIST *)_rl_saved_line_for_history->data;
-         rl_free_undo_list ();
-         rl_undo_list = orig;
-       }
-#else
       if (_rl_saved_line_for_history->data)
        _rl_free_undo_list ((UNDO_LIST *)_rl_saved_line_for_history->data);
-#endif
       _rl_free_history_entry (_rl_saved_line_for_history);
       _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
     }
index 8fad893c187b2c652745593c8f96dce3b13eb040..999a23d46b55a704dd80dc593a2921cfba074689 100644 (file)
@@ -492,12 +492,8 @@ readline_internal_teardown (int eof)
   /* We don't want to do this if we executed functions that call
      history_set_pos to set the history offset to the line containing the
      non-incremental search string. */
-#if defined (HISTORY_SEARCH_SETS_HISTPOS)
-  if (entry && rl_undo_list && _rl_history_search_pos != where_history ())
-#else
   if (entry && rl_undo_list)
-#endif
-    {
+   {
       temp = savestring (the_line);
       rl_revert_line (1, 0);
       entry = replace_history_entry (where_history (), the_line, (histdata_t)NULL);
index ce278fd955d0e560d1117ed8a380e143cd3f1cd2..eea2301115ef6b9e757b50db93b98c20cab7215a 100644 (file)
@@ -84,14 +84,12 @@ static int _rl_nsearch_dispatch (_rl_search_cxt *, int);
 static void
 make_history_line_current (HIST_ENTRY *entry)
 {
-#if !defined (HISTORY_SEARCH_SETS_HISTPOS)
   UNDO_LIST *xlist;
 
   xlist = _rl_saved_line_for_history ? (UNDO_LIST *)_rl_saved_line_for_history->data : 0;
   /* At this point, rl_undo_list points to a private search string list. */
   if (rl_undo_list && rl_undo_list != (UNDO_LIST *)entry->data && rl_undo_list != xlist)
     rl_free_undo_list ();
-#endif
 
   /* Now we create a new undo list with a single insert for this text.
      WE DON'T CHANGE THE ORIGINAL HISTORY ENTRY UNDO LIST */
@@ -106,7 +104,6 @@ make_history_line_current (HIST_ENTRY *entry)
     rl_free_undo_list ();
 #endif
 
-#if !defined (HISTORY_SEARCH_SETS_HISTPOS)
   /* This will need to free the saved undo list associated with the original
      (pre-search) line buffer.
      XXX - look at _rl_free_saved_history_line and consider calling it if
@@ -115,7 +112,6 @@ make_history_line_current (HIST_ENTRY *entry)
   if (_rl_saved_line_for_history)
     _rl_free_history_entry (_rl_saved_line_for_history);
   _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
-#endif
 }
 
 /* Search the history list for STRING starting at absolute history position
@@ -204,10 +200,6 @@ noninc_dosearch (char *string, int dir, int flags)
     history_set_pos (oldpos);
 
   make_history_line_current (entry);
-#if !defined (HISTORY_SEARCH_SETS_HISTPOS)
-  /* make_history_line_current used to do this. */
-  _rl_free_saved_history_line ();
-#endif
 
   if (_rl_enable_active_region && ((flags & SF_PATTERN) == 0) && ind > 0 && ind < rl_end)
     {
@@ -538,20 +530,11 @@ rl_history_search_internal (int count, int dir)
 {
   HIST_ENTRY *temp;
   int ret, oldpos, newcol;
-  UNDO_LIST *origlist;
-  int had_saved_line, origpos;
+  int had_saved_line;
   char *t;
 
-#if defined (HISTORY_SEARCH_SETS_HISTPOS)
-  origpos = where_history ();
   had_saved_line = _rl_saved_line_for_history != 0;
   rl_maybe_save_line ();
-  /* This will either be restored from the saved line or set from the
-     found history line. */
-  rl_undo_list = 0;
-#else
-  rl_maybe_save_line ();
-#endif
   temp = (HIST_ENTRY *)NULL;
 
   /* Search COUNT times through the history for a line matching
@@ -606,28 +589,6 @@ rl_history_search_internal (int count, int dir)
   /* Copy the line we found into the current line buffer. */
   make_history_line_current (temp);
 
-  /* XXX - can't make this work the way I want it to yet. Too much assumes
-     that rl_undo_list corresponds to the current history entry's undo list,
-     especially the stuff in maybe_save_line and especially maybe_replace_line.
-     Leaving it commented out for now. */
-
-#if defined (HISTORY_SEARCH_SETS_HISTPOS)
-  /* Free the saved history line corresponding to the search string */
-  if (had_saved_line == 0)
-    _rl_free_saved_history_line ();
-
-  /* Make sure we set the current history position to the last line found so
-     we can do things like operate-and-get-next from here. This is similar to
-     how incremental search behaves. */
-  origlist = rl_undo_list;
-  rl_undo_list = 0;    /* XXX - was (UNDO_LIST *)temp->data */
-  if (_rl_history_search_pos < origpos)
-    rl_get_previous_history (origpos - _rl_history_search_pos, 0);
-  else
-    rl_get_next_history (_rl_history_search_pos - origpos, 0);
-  rl_undo_list = origlist;
-#endif
-
   /* decide where to put rl_point -- need to change this for pattern search */
   if (_rl_history_search_flags & ANCHORED_SEARCH)
     rl_point = _rl_history_search_len; /* easy case */
index bddf1ed42078e38e8a1ad7200ac423305dc8c296..9997161f818e934875d12fec50e7f1caccfd5ec0 100644 (file)
@@ -824,7 +824,7 @@ _rl_reset_region_color (int which, const char *value)
 
   if (which == 0)
     {
-      free (_rl_active_region_start_color);
+      xfree (_rl_active_region_start_color);
       if (value && *value)
        {
          _rl_active_region_start_color = (char *)xmalloc (2 * strlen (value) + 1);
@@ -836,7 +836,7 @@ _rl_reset_region_color (int which, const char *value)
     }
   else
     {
-      free (_rl_active_region_end_color);
+      xfree (_rl_active_region_end_color);
       if (value && *value)
        {
          _rl_active_region_end_color = (char *)xmalloc (2 * strlen (value) + 1);