]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
make buffered stream read errors sticky; handle EOF in comments explicitly; don't...
authorChet Ramey <chet.ramey@case.edu>
Wed, 8 Feb 2023 16:34:51 +0000 (11:34 -0500)
committerChet Ramey <chet.ramey@case.edu>
Wed, 8 Feb 2023 16:34:51 +0000 (11:34 -0500)
13 files changed:
CWRU/CWRU.chlog
bashline.c
builtins/fc.def
doc/bash.0
doc/bash.1
doc/bash.info
doc/bashref.info
doc/bashref.texi
doc/builtins.0
doc/version.texi
input.c
input.h
parse.y

index 76ba92e9abe943437d2bac62409dbd0c5dd45876..51dbb384b85084255d092e7ef6b9271bd489d134 100644 (file)
@@ -5267,3 +5267,34 @@ arrayfunc.c
          for the rhs of the assignment or the second word in the kvpair to
          be more consistent with how assignment statements behave (e.g.,
          tilde expansion). Fixes issue reported by maroloccio@gmail.com
+
+                                   2/7
+                                   ---
+parse.y
+       - discard_until: now returns the last character read. If we get an
+         EOF while processing a comment, return EOF
+       - shell_getc: if discard_until returns EOF, return yacc_EOF
+
+input.h
+       - bclearerror: new macro, clears the B_ERROR flag in the buffered
+         stream BP
+
+input.c
+       - b_fill_buffer: try making errors `sticky': if the B_ERROR flag is
+         set for the buffered stream, return EOF immediately. This is similar
+         to what stdio does
+
+builtins/fc.def
+       - fc_builtin: in posix mode, if there are extra arguments supplied to
+         -s (e.g. pat=rep first last), throw an error
+
+doc/{bash.1,bashref.texi}
+       - printf: document new altform for %q/%Q and %ls/%lc
+
+                                   2/8
+                                   ---
+bashline.c
+       - alias_expand_line: if alias_expand doesn't change rl_line_buffer,
+         just return right away without changing rl_point. Inspired by a
+         report from Addison Brendtro <addison.brendtro@gmail.com>
+       - history_expand_line: ditto
index 75a5ec69140e919b1f70a97151ff3c1fa172b08b..f46657593145f04dcb94e2010e8ff7e781e87d65 100644 (file)
@@ -2741,6 +2741,13 @@ alias_expand_line (int count, int ignore)
 
   new_line = alias_expand (rl_line_buffer);
 
+  /* If we didn't expand anything, don't change anything. */
+  if (new_line && STREQ (new_line, rl_line_buffer))
+    {
+      free (new_line);
+      return (0);
+    }
+
   if (new_line)
     {
       set_up_new_line (new_line);
@@ -2763,6 +2770,13 @@ history_expand_line (int count, int ignore)
 
   new_line = history_expand_line_internal (rl_line_buffer);
 
+  /* If we didn't expand anything, don't change anything. */
+  if (new_line && STREQ (new_line, rl_line_buffer))
+    {
+      free (new_line);
+      return (0);
+    }
+
   if (new_line)
     {
       set_up_new_line (new_line);
index e2b5b8ead8655aa8f0027ae190a1935d637bb1fe..06f0f610e2f3ef4d803d6c34000e86e783535b2a 100644 (file)
@@ -280,6 +280,15 @@ fc_builtin (WORD_LIST *list)
          return (EXECUTION_FAILURE);
        }
 
+      if (posixly_correct && list && list->next)
+       {
+         builtin_error (_("too many arguments"));
+         if (rlist)
+           FREE_RLIST ();
+
+         return (EXECUTION_FAILURE);
+       }
+
       if (rlist)
        {
          newcom = fc_dosubs (command, rlist);
index ee449e7692d0d7f63383e48f54f0027de0280d92..904ac377c809b41d814c16d3fcb57144e3286696 100644 (file)
@@ -5386,21 +5386,26 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               %\b%b\bb     causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape sequences in the
                      corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in the same way as e\bec\bch\bho\bo -\b-e\be.
               %\b%q\bq     causes  p\bpr\bri\bin\bnt\btf\bf  to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in a
-                     format that can be reused as shell input.
-              %\b%Q\bQ     like %\b%q\bq, but applies any supplied precision to the  _\ba_\br_\bg_\bu_\b-
+                     format that can be reused as shell input.  %\b%q\bq and %\b%Q\bQ  use
+                     the  $\b$'\b''\b'  quoting style if any characters in the argument
+                     string require it, and backslash quoting  otherwise.   If
+                     the  format  string uses the _\bp_\br_\bi_\bn_\bt_\bf alternate form, these
+                     two  formats  quote  the  argument  string  using  single
+                     quotes.
+              %\b%Q\bQ     like  %\b%q\bq, but applies any supplied precision to the _\ba_\br_\bg_\bu_\b-
                      _\bm_\be_\bn_\bt before quoting it.
               %\b%(\b(_\bd_\ba_\bt_\be_\bf_\bm_\bt)\b)T\bT
-                     causes  p\bpr\bri\bin\bnt\btf\bf  to  output the date-time string resulting
-                     from using _\bd_\ba_\bt_\be_\bf_\bm_\bt as a format  string  for  _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
+                     causes p\bpr\bri\bin\bnt\btf\bf to output the  date-time  string  resulting
+                     from  using  _\bd_\ba_\bt_\be_\bf_\bm_\bt  as a format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
                      The corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt is an integer representing the
-                     number of seconds since the epoch.  Two special  argument
-                     values  may  be used: -1 represents the current time, and
-                     -2 represents the time the shell was invoked.  If no  ar-
+                     number  of seconds since the epoch.  Two special argument
+                     values may be used: -1 represents the current  time,  and
+                     -2  represents the time the shell was invoked.  If no ar-
                      gument is specified, conversion behaves as if -1 had been
-                     given.  This is an exception to the usual  p\bpr\bri\bin\bnt\btf\b behav-
+                     given.   This  is an exception to the usual p\bpr\bri\bin\bnt\btf\bf behav-
                      ior.
 
-              The %b, %q, and %T directives all use the field width and preci-
+              The %b, %q, and %T specifiers all use the field width and preci-
               sion arguments from the format specification and write that many
               bytes from (or use that wide a field for) the expanded argument,
               which usually contains more characters than the original.
@@ -5408,6 +5413,11 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               The %n format specifier accepts a corresponding argument that is
               treated as a shell variable name.
 
+              The %s and %c format specifiers accept  an  l  (long)  modifier,
+              which forces them to convert the argument string to a wide-char-
+              acter string and apply any supplied field width and precision in
+              terms of characters, not bytes.
+
               Arguments  to non-string format specifiers are treated as C con-
               stants, except that a leading plus or minus sign is allowed, and
               if  the leading character is a single or double quote, the value
index ab6ef428b15928ed2d569f27c756153d17fa37fa..4efb67652ea11d3bf5a4ace0487bf62002fbdb74 100644 (file)
@@ -9460,6 +9460,10 @@ in the same way as \fBecho \-e\fP.
 .B %q
 causes \fBprintf\fP to output the corresponding
 \fIargument\fP in a format that can be reused as shell input.
+\fB%q\fP and \fB%Q\fP use the \fB$''\fP quoting style if any characters
+in the argument string require it, and backslash quoting otherwise.
+If the format string uses the \fIprintf\fP alternate form, these two
+formats quote the argument string using single quotes.
 .TP
 .B %Q
 like \fB%q\fP, but applies any supplied precision to the \fIargument\fP
@@ -9476,7 +9480,7 @@ If no argument is specified, conversion behaves as if \-1 had been given.
 This is an exception to the usual \fBprintf\fP behavior.
 .PD
 .PP
-The %b, %q, and %T directives all use the field width and precision
+The %b, %q, and %T format specifiers all use the field width and precision
 arguments from the format specification and write that many bytes from
 (or use that wide a field for) the expanded argument, which usually
 contains more characters than the original.
@@ -9484,6 +9488,10 @@ contains more characters than the original.
 The %n format specifier accepts a corresponding argument that is treated
 as a shell variable name.
 .PP
+The %s and %c format specifiers accept an l (long) modifier, which forces
+them to convert the argument string to a wide-character string and apply
+any supplied field width and precision in terms of characters, not bytes.
+.PP
 Arguments to non-string format specifiers are treated as C constants,
 except that a leading plus or minus sign is allowed, and if the leading
 character is a single or double quote, the value is the ASCII value of
index 02780a5a89ba3772c3a54ac5d8fd009dd4880758..fa9f9d70d3180c37148a5b689c245446fafa412c 100644 (file)
@@ -1,12 +1,12 @@
 This is bash.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, 27 December 2022).
+Bash shell (version 5.2, 7 February 2023).
 
-   This is Edition 5.2, last updated 27 December 2022, of 'The GNU Bash
+   This is Edition 5.2, last updated 7 February 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
-   Copyright (C) 1988-2022 Free Software Foundation, Inc.
+   Copyright (C) 1988-2023 Free Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
@@ -26,10 +26,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.2, 27 December 2022).  The Bash home page is
+Bash shell (version 5.2, 7 February 2023).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.2, last updated 27 December 2022, of 'The GNU Bash
+   This is Edition 5.2, last updated 7 February 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Bash contains features that appear in other popular shells, and some
@@ -2832,8 +2832,8 @@ File: bash.info,  Node: Command Search and Execution,  Next: Command Execution E
 ----------------------------------
 
 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.
+command and an optional list of arguments, the shell performs the
+following actions.
 
   1. If the command name contains no slashes, the shell attempts to
      locate it.  If there exists a shell function by that name, that
@@ -3564,7 +3564,7 @@ standard.
      children.  The return status is zero.
 
 'trap'
-          trap [-lp] [ACTION] [SIGSPEC ...]
+          trap [-Plp] [ACTION] [SIGSPEC ...]
 
      The ACTION is a command that is read and executed when the shell
      receives signal SIGSPEC.  If ACTION is absent (and there is a
@@ -3580,7 +3580,13 @@ standard.
      displays the trap commands associated with each SIGSPEC, or, if no
      SIGSPECs are supplied, for all trapped signals, as a set of 'trap'
      commands that can be reused as shell input to restore the current
-     signal dispositions.
+     signal dispositions.  The '-P' option behaves similarly, but
+     displays only the actions associated with each SIGSPEC argument.
+     '-P' requires at least one SIGSPEC argument.  The '-P' or '-p'
+     options to 'trap' may be used in a subshell environment (e.g.,
+     command substitution) and, as long as they are used before 'trap'
+     is used to change a signal's handling, will display the state of
+     its parent's traps.
 
      The '-l' option causes 'trap' to print a list of signal names and
      their corresponding numbers.  Each SIGSPEC is either a signal name
@@ -4112,7 +4118,13 @@ standard.
           Bash Builtins::).
      '%q'
           Causes 'printf' to output the corresponding ARGUMENT in a
-          format that can be reused as shell input.
+          format that can be reused as shell input.  '%q' and '%Q'P use
+          the ANSI-C quoting style (*note ANSI-C Quoting::) if any
+          characters in the argument string require it, and backslash
+          quoting otherwise.  If the format string uses the 'printf'
+          ALTERNATE FORM, these two formats quote the argument string
+          using single quotes.
+
      '%Q'
           like '%q', but applies any supplied precision to the ARGUMENT
           before quoting it.
@@ -4126,14 +4138,19 @@ standard.
           conversion behaves as if -1 had been given.  This is an
           exception to the usual 'printf' behavior.
 
-     The %b, %q, and %T directives all use the field width and precision
-     arguments from the format specification and write that many bytes
-     from (or use that wide a field for) the expanded argument, which
-     usually contains more characters than the original.
+     The %b, %q, and %T format specifiers all use the field width and
+     precision arguments from the format specification and write that
+     many bytes from (or use that wide a field for) the expanded
+     argument, which usually contains more characters than the original.
 
      The %n format specifier accepts a corresponding argument that is
      treated as a shell variable name.
 
+     The %s and %c format specifiers accept an l (long) modifier, which
+     forces them to convert the argument string to a wide-character
+     string and apply any supplied field width and precision in terms of
+     characters, not bytes.
+
      Arguments to non-string format specifiers are treated as C language
      constants, except that a leading plus or minus sign is allowed, and
      if the leading character is a single or double quote, the value is
@@ -4638,9 +4655,9 @@ parameters, or to display the names and values of shell variables.
      '-x'
           Print a trace of simple commands, 'for' commands, 'case'
           commands, 'select' commands, and arithmetic 'for' commands and
-          their arguments or associated word lists after they are
-          expanded and before they are executed.  The value of the 'PS4'
-          variable is expanded and the resultant value is printed before
+          their arguments or associated word lists to standard error
+          after they are expanded and before they are executed.  The
+          shell prints the expanded value of the 'PS4' variable before
           the command and its expanded arguments.
 
      '-B'
@@ -7107,50 +7124,54 @@ startup files.
   16. Function names may not be the same as one of the POSIX special
      builtins.
 
-  17. POSIX special builtins are found before shell functions during
+  17. Even if a shell function whose name contains a slash was defined
+     before entering POSIX mode, the shell will not execute a function
+     whose name contains one or more slashes.
+
+  18. POSIX special builtins are found before shell functions during
      command lookup.
 
-  18. When printing shell function definitions (e.g., by 'type'), Bash
+  19. When printing shell function definitions (e.g., by 'type'), Bash
      does not print the 'function' keyword.
 
-  19. Literal tildes that appear as the first character in elements of
+  20. Literal tildes that appear as the first character in elements of
      the 'PATH' variable are not expanded as described above under *note
      Tilde Expansion::.
 
-  20. The 'time' reserved word may be used by itself as a command.  When
+  21. The 'time' reserved word may be used by itself as a command.  When
      used in this way, it displays timing statistics for the shell and
      its completed children.  The 'TIMEFORMAT' variable controls the
      format of the timing information.
 
-  21. When parsing and expanding a ${...} expansion that appears within
+  22. When parsing and expanding a ${...} expansion that appears within
      double quotes, single quotes are no longer special and cannot be
      used to quote a closing brace or other special character, unless
      the operator is one of those defined to perform pattern removal.
      In this case, they do not have to appear as matched pairs.
 
-  22. The parser does not recognize 'time' as a reserved word if the
+  23. The parser does not recognize 'time' as a reserved word if the
      next token begins with a '-'.
 
-  23. The '!' character does not introduce history expansion within a
+  24. The '!' character does not introduce history expansion within a
      double-quoted string, even if the 'histexpand' option is enabled.
 
-  24. If a POSIX special builtin returns an error status, a
+  25. If a POSIX special builtin returns an error status, a
      non-interactive shell exits.  The fatal errors are those listed in
      the POSIX standard, and include things like passing incorrect
      options, redirection errors, variable assignment errors for
      assignments preceding the command name, and so on.
 
-  25. The 'unset' builtin with the '-v' option specified returns a fatal
+  26. The 'unset' builtin with the '-v' option specified returns a fatal
      error if it attempts to unset a 'readonly' or 'non-unsettable'
      variable, or encounters a variable name argument that is an invalid
      identifier, which causes a non-interactive shell to exit.
 
-  26. A non-interactive shell exits with an error status if a variable
+  27. A non-interactive shell exits with an error status if a variable
      assignment error occurs when no command name follows the assignment
      statements.  A variable assignment error occurs, for example, when
      trying to assign a value to a readonly variable.
 
-  27. A non-interactive shell exits with an error status if a variable
+  28. A non-interactive shell exits with an error status if a variable
      assignment error occurs in an assignment statement preceding a
      special builtin, but not with any other simple command.  For any
      other simple command, the shell aborts execution of that command,
@@ -7158,142 +7179,145 @@ startup files.
      perform any further processing of the command in which the error
      occurred").
 
-  28. A non-interactive shell exits with an error status if the
+  29. A non-interactive shell exits with an error status if the
      iteration variable in a 'for' statement or the selection variable
      in a 'select' statement is a readonly variable.
 
-  29. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
+  30. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
      found.
 
-  30. Non-interactive shells exit if a syntax error in an arithmetic
+  31. Non-interactive shells exit if a syntax error in an arithmetic
      expansion results in an invalid expression.
 
-  31. Non-interactive shells exit if a parameter expansion error occurs.
+  32. Non-interactive shells exit if a parameter expansion error occurs.
 
-  32. Non-interactive shells exit if there is a syntax error in a script
+  33. Non-interactive shells exit if there is a syntax error in a script
      read with the '.' or 'source' builtins, or in a string processed by
      the 'eval' builtin.
 
-  33. While variable indirection is available, it may not be applied to
+  34. While variable indirection is available, it may not be applied to
      the '#' and '?' special parameters.
 
-  34. Expanding the '*' special parameter in a pattern context where the
+  35. Expanding the '*' special parameter in a pattern context where the
      expansion is double-quoted does not treat the '$*' as if it were
      double-quoted.
 
-  35. Assignment statements preceding POSIX special builtins persist in
+  36. Assignment statements preceding POSIX special builtins persist in
      the shell environment after the builtin completes.
 
-  36. The 'command' builtin does not prevent builtins that take
+  37. The 'command' builtin does not prevent builtins that take
      assignment statements as arguments from expanding them as
      assignment statements; when not in POSIX mode, assignment builtins
      lose their assignment statement expansion properties when preceded
      by 'command'.
 
-  37. The 'bg' builtin uses the required format to describe each job
+  38. The 'bg' builtin uses the required format to describe each job
      placed in the background, which does not include an indication of
      whether the job is the current or previous job.
 
-  38. The output of 'kill -l' prints all the signal names on a single
+  39. The output of 'kill -l' prints all the signal names on a single
      line, separated by spaces, without the 'SIG' prefix.
 
-  39. The 'kill' builtin does not accept signal names with a 'SIG'
+  40. The 'kill' builtin does not accept signal names with a 'SIG'
      prefix.
 
-  40. The 'export' and 'readonly' builtin commands display their output
+  41. The 'export' and 'readonly' builtin commands display their output
      in the format required by POSIX.
 
-  41. The 'trap' builtin displays signal names without the leading
+  42. The 'trap' builtin displays signal names without the leading
      'SIG'.
 
-  42. The 'trap' builtin doesn't check the first argument for a possible
+  43. The 'trap' builtin doesn't check the first argument for a possible
      signal specification and revert the signal handling to the original
      disposition if it is, unless that argument consists solely of
      digits and is a valid signal number.  If users want to reset the
      handler for a given signal to the original disposition, they should
      use '-' as the first argument.
 
-  43. 'trap -p' without arguments displays signals whose dispositions
+  44. 'trap -p' without arguments displays signals whose dispositions
      are set to SIG_DFL and those that were ignored when the shell
      started, not just trapped signals.
 
-  44. The '.' and 'source' builtins do not search the current directory
+  45. The '.' and 'source' builtins do not search the current directory
      for the filename argument if it is not found by searching 'PATH'.
 
-  45. Enabling POSIX mode has the effect of setting the
+  46. Enabling POSIX mode has the effect of setting the
      'inherit_errexit' option, so subshells spawned to execute command
      substitutions inherit the value of the '-e' option from the parent
      shell.  When the 'inherit_errexit' option is not enabled, Bash
      clears the '-e' option in such subshells.
 
-  46. Enabling POSIX mode has the effect of setting the 'shift_verbose'
+  47. Enabling POSIX mode has the effect of setting the 'shift_verbose'
      option, so numeric arguments to 'shift' that exceed the number of
      positional parameters will result in an error message.
 
-  47. When the 'alias' builtin displays alias definitions, it does not
+  48. When the 'alias' builtin displays alias definitions, it does not
      display them with a leading 'alias ' unless the '-p' option is
      supplied.
 
-  48. When the 'set' builtin is invoked without options, it does not
+  49. When the 'set' builtin is invoked without options, it does not
      display shell function names and definitions.
 
-  49. When the 'set' builtin is invoked without options, it displays
+  50. When the 'set' builtin is invoked without options, it displays
      variable values without quotes, unless they contain shell
      metacharacters, even if the result contains nonprinting characters.
 
-  50. When the 'cd' builtin is invoked in logical mode, and the pathname
+  51. When the 'cd' builtin is invoked in logical mode, and the pathname
      constructed from '$PWD' and the directory name supplied as an
      argument does not refer to an existing directory, 'cd' will fail
      instead of falling back to physical mode.
 
-  51. When the 'cd' builtin cannot change a directory because the length
+  52. When the 'cd' builtin cannot change a directory because the length
      of the pathname constructed from '$PWD' and the directory name
      supplied as an argument exceeds 'PATH_MAX' when all symbolic links
      are expanded, 'cd' will fail instead of attempting to use only the
      supplied directory name.
 
-  52. The 'pwd' builtin verifies that the value it prints is the same as
+  53. The 'pwd' builtin verifies that the value it prints is the same as
      the current directory, even if it is not asked to check the file
      system with the '-P' option.
 
-  53. When listing the history, the 'fc' builtin does not include an
+  54. When listing the history, the 'fc' builtin does not include an
      indication of whether or not a history entry has been modified.
 
-  54. The default editor used by 'fc' is 'ed'.
+  55. The default editor used by 'fc' is 'ed'.
+
+  56. If there are too many arguments supplied to 'fc -s', 'fc' prints
+     an error message and returns failure.
 
-  55. The 'type' and 'command' builtins will not report a non-executable
+  57. The 'type' and 'command' builtins will not report a non-executable
      file as having been found, though the shell will attempt to execute
      such a file if it is the only so-named file found in '$PATH'.
 
-  56. The 'vi' editing mode will invoke the 'vi' editor directly when
+  58. The 'vi' editing mode will invoke the 'vi' editor directly when
      the 'v' command is run, instead of checking '$VISUAL' and
      '$EDITOR'.
 
-  57. When the 'xpg_echo' option is enabled, Bash does not attempt to
+  59. When the 'xpg_echo' option is enabled, Bash does not attempt to
      interpret any arguments to 'echo' as options.  Each argument is
      displayed, after escape characters are converted.
 
-  58. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
+  60. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
      and '-f' options.
 
-  59. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
+  61. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
      interrupt the 'wait' builtin and cause it to return immediately.
      The trap command is run once for each child that exits.
 
-  60. The 'read' builtin may be interrupted by a signal for which a trap
+  62. The 'read' builtin may be interrupted by a signal for which a trap
      has been set.  If Bash receives a trapped signal while executing
      'read', the trap handler executes and 'read' returns an exit status
      greater than 128.
 
-  61. The 'printf' builtin uses 'double' (via 'strtod') to convert
+  63. The 'printf' builtin uses 'double' (via 'strtod') to convert
      arguments corresponding to floating point conversion specifiers,
      instead of 'long double' if it's available.  The 'L' length
      modifier forces 'printf' to use 'long double' if it's available.
 
-  62. Bash removes an exited background process's status from the list
+  64. Bash removes an exited background process's status from the list
      of such statuses after the 'wait' builtin is used to obtain it.
 
-  63. A double quote character ('"') is treated specially when it
+  65. A double quote character ('"') is treated specially when it
      appears in a backquoted command substitution in the body of a
      here-document that undergoes expansion.  That means, for example,
      that a backslash preceding a double quote character will escape it
@@ -11875,8 +11899,8 @@ D.1 Index of Shell Builtin Commands
                                                               (line  69)
 * pwd:                                   Bourne Shell Builtins.
                                                               (line 212)
-* read:                                  Bash Builtins.       (line 492)
-* readarray:                             Bash Builtins.       (line 589)
+* read:                                  Bash Builtins.       (line 503)
+* readarray:                             Bash Builtins.       (line 600)
 * readonly:                              Bourne Shell Builtins.
                                                               (line 222)
 * return:                                Bourne Shell Builtins.
@@ -11885,7 +11909,7 @@ D.1 Index of Shell Builtin Commands
 * shift:                                 Bourne Shell Builtins.
                                                               (line 262)
 * shopt:                                 The Shopt Builtin.   (line   9)
-* source:                                Bash Builtins.       (line 598)
+* source:                                Bash Builtins.       (line 609)
 * suspend:                               Job Control Builtins.
                                                               (line 116)
 * test:                                  Bourne Shell Builtins.
@@ -11894,14 +11918,14 @@ D.1 Index of Shell Builtin Commands
                                                               (line 360)
 * trap:                                  Bourne Shell Builtins.
                                                               (line 366)
-* type:                                  Bash Builtins.       (line 603)
-* typeset:                               Bash Builtins.       (line 641)
-* ulimit:                                Bash Builtins.       (line 647)
+* type:                                  Bash Builtins.       (line 614)
+* typeset:                               Bash Builtins.       (line 652)
+* ulimit:                                Bash Builtins.       (line 658)
 * umask:                                 Bourne Shell Builtins.
-                                                              (line 422)
-* unalias:                               Bash Builtins.       (line 753)
+                                                              (line 428)
+* unalias:                               Bash Builtins.       (line 764)
 * unset:                                 Bourne Shell Builtins.
-                                                              (line 440)
+                                                              (line 446)
 * wait:                                  Job Control Builtins.
                                                               (line  76)
 
@@ -12565,138 +12589,138 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f894
-Node: Introduction\7f2811
-Node: What is Bash?\7f3024
-Node: What is a shell?\7f4135
-Node: Definitions\7f6670
-Node: Basic Shell Features\7f9618
-Node: Shell Syntax\7f10834
-Node: Shell Operation\7f11857
-Node: Quoting\7f13147
-Node: Escape Character\7f14448
-Node: Single Quotes\7f14930
-Node: Double Quotes\7f15275
-Node: ANSI-C Quoting\7f16550
-Node: Locale Translation\7f17857
-Node: Creating Internationalized Scripts\7f19165
-Node: Comments\7f23279
-Node: Shell Commands\7f23894
-Node: Reserved Words\7f24829
-Node: Simple Commands\7f25582
-Node: Pipelines\7f26233
-Node: Lists\7f29229
-Node: Compound Commands\7f31021
-Node: Looping Constructs\7f32030
-Node: Conditional Constructs\7f34522
-Node: Command Grouping\7f49007
-Node: Coprocesses\7f50482
-Node: GNU Parallel\7f53142
-Node: Shell Functions\7f54056
-Node: Shell Parameters\7f61938
-Node: Positional Parameters\7f66323
-Node: Special Parameters\7f67222
-Node: Shell Expansions\7f70433
-Node: Brace Expansion\7f72557
-Node: Tilde Expansion\7f75288
-Node: Shell Parameter Expansion\7f77906
-Node: Command Substitution\7f96305
-Node: Arithmetic Expansion\7f97657
-Node: Process Substitution\7f98622
-Node: Word Splitting\7f99739
-Node: Filename Expansion\7f101680
-Node: Pattern Matching\7f104426
-Node: Quote Removal\7f109425
-Node: Redirections\7f109717
-Node: Executing Commands\7f119374
-Node: Simple Command Expansion\7f120041
-Node: Command Search and Execution\7f122148
-Node: Command Execution Environment\7f124523
-Node: Environment\7f127555
-Node: Exit Status\7f129215
-Node: Signals\7f130996
-Node: Shell Scripts\7f134442
-Node: Shell Builtin Commands\7f137466
-Node: Bourne Shell Builtins\7f139501
-Node: Bash Builtins\7f161283
-Node: Modifying Shell Behavior\7f192671
-Node: The Set Builtin\7f193013
-Node: The Shopt Builtin\7f203611
-Node: Special Builtins\7f219520
-Node: Shell Variables\7f220496
-Node: Bourne Shell Variables\7f220930
-Node: Bash Variables\7f223031
-Node: Bash Features\7f255843
-Node: Invoking Bash\7f256853
-Node: Bash Startup Files\7f262863
-Node: Interactive Shells\7f267991
-Node: What is an Interactive Shell?\7f268399
-Node: Is this Shell Interactive?\7f269045
-Node: Interactive Shell Behavior\7f269857
-Node: Bash Conditional Expressions\7f273483
-Node: Shell Arithmetic\7f278122
-Node: Aliases\7f281063
-Node: Arrays\7f283673
-Node: The Directory Stack\7f290061
-Node: Directory Stack Builtins\7f290842
-Node: Controlling the Prompt\7f295099
-Node: The Restricted Shell\7f298061
-Node: Bash POSIX Mode\7f300668
-Node: Shell Compatibility Mode\7f313227
-Node: Job Control\7f321791
-Node: Job Control Basics\7f322248
-Node: Job Control Builtins\7f327247
-Node: Job Control Variables\7f333039
-Node: Command Line Editing\7f334192
-Node: Introduction and Notation\7f335860
-Node: Readline Interaction\7f337480
-Node: Readline Bare Essentials\7f338668
-Node: Readline Movement Commands\7f340454
-Node: Readline Killing Commands\7f341411
-Node: Readline Arguments\7f343329
-Node: Searching\7f344370
-Node: Readline Init File\7f346553
-Node: Readline Init File Syntax\7f347811
-Node: Conditional Init Constructs\7f371394
-Node: Sample Init File\7f375587
-Node: Bindable Readline Commands\7f378708
-Node: Commands For Moving\7f379909
-Node: Commands For History\7f381957
-Node: Commands For Text\7f386948
-Node: Commands For Killing\7f390594
-Node: Numeric Arguments\7f393624
-Node: Commands For Completion\7f394760
-Node: Keyboard Macros\7f398948
-Node: Miscellaneous Commands\7f399633
-Node: Readline vi Mode\7f405575
-Node: Programmable Completion\7f406479
-Node: Programmable Completion Builtins\7f414256
-Node: A Programmable Completion Example\7f425005
-Node: Using History Interactively\7f430250
-Node: Bash History Facilities\7f430931
-Node: Bash History Builtins\7f433933
-Node: History Interaction\7f438954
-Node: Event Designators\7f442571
-Node: Word Designators\7f443922
-Node: Modifiers\7f445679
-Node: Installing Bash\7f447484
-Node: Basic Installation\7f448618
-Node: Compilers and Options\7f452337
-Node: Compiling For Multiple Architectures\7f453075
-Node: Installation Names\7f454764
-Node: Specifying the System Type\7f456870
-Node: Sharing Defaults\7f457584
-Node: Operation Controls\7f458254
-Node: Optional Features\7f459209
-Node: Reporting Bugs\7f470425
-Node: Major Differences From The Bourne Shell\7f471766
-Node: GNU Free Documentation License\7f488612
-Node: Indexes\7f513786
-Node: Builtin Index\7f514237
-Node: Reserved Word Index\7f521061
-Node: Variable Index\7f523506
-Node: Function Index\7f540277
-Node: Concept Index\7f554058
+Node: Top\7f892
+Node: Introduction\7f2807
+Node: What is Bash?\7f3020
+Node: What is a shell?\7f4131
+Node: Definitions\7f6666
+Node: Basic Shell Features\7f9614
+Node: Shell Syntax\7f10830
+Node: Shell Operation\7f11853
+Node: Quoting\7f13143
+Node: Escape Character\7f14444
+Node: Single Quotes\7f14926
+Node: Double Quotes\7f15271
+Node: ANSI-C Quoting\7f16546
+Node: Locale Translation\7f17853
+Node: Creating Internationalized Scripts\7f19161
+Node: Comments\7f23275
+Node: Shell Commands\7f23890
+Node: Reserved Words\7f24825
+Node: Simple Commands\7f25578
+Node: Pipelines\7f26229
+Node: Lists\7f29225
+Node: Compound Commands\7f31017
+Node: Looping Constructs\7f32026
+Node: Conditional Constructs\7f34518
+Node: Command Grouping\7f49003
+Node: Coprocesses\7f50478
+Node: GNU Parallel\7f53138
+Node: Shell Functions\7f54052
+Node: Shell Parameters\7f61934
+Node: Positional Parameters\7f66319
+Node: Special Parameters\7f67218
+Node: Shell Expansions\7f70429
+Node: Brace Expansion\7f72553
+Node: Tilde Expansion\7f75284
+Node: Shell Parameter Expansion\7f77902
+Node: Command Substitution\7f96301
+Node: Arithmetic Expansion\7f97653
+Node: Process Substitution\7f98618
+Node: Word Splitting\7f99735
+Node: Filename Expansion\7f101676
+Node: Pattern Matching\7f104422
+Node: Quote Removal\7f109421
+Node: Redirections\7f109713
+Node: Executing Commands\7f119370
+Node: Simple Command Expansion\7f120037
+Node: Command Search and Execution\7f122144
+Node: Command Execution Environment\7f124528
+Node: Environment\7f127560
+Node: Exit Status\7f129220
+Node: Signals\7f131001
+Node: Shell Scripts\7f134447
+Node: Shell Builtin Commands\7f137471
+Node: Bourne Shell Builtins\7f139506
+Node: Bash Builtins\7f161701
+Node: Modifying Shell Behavior\7f193666
+Node: The Set Builtin\7f194008
+Node: The Shopt Builtin\7f204603
+Node: Special Builtins\7f220512
+Node: Shell Variables\7f221488
+Node: Bourne Shell Variables\7f221922
+Node: Bash Variables\7f224023
+Node: Bash Features\7f256835
+Node: Invoking Bash\7f257845
+Node: Bash Startup Files\7f263855
+Node: Interactive Shells\7f268983
+Node: What is an Interactive Shell?\7f269391
+Node: Is this Shell Interactive?\7f270037
+Node: Interactive Shell Behavior\7f270849
+Node: Bash Conditional Expressions\7f274475
+Node: Shell Arithmetic\7f279114
+Node: Aliases\7f282055
+Node: Arrays\7f284665
+Node: The Directory Stack\7f291053
+Node: Directory Stack Builtins\7f291834
+Node: Controlling the Prompt\7f296091
+Node: The Restricted Shell\7f299053
+Node: Bash POSIX Mode\7f301660
+Node: Shell Compatibility Mode\7f314523
+Node: Job Control\7f323087
+Node: Job Control Basics\7f323544
+Node: Job Control Builtins\7f328543
+Node: Job Control Variables\7f334335
+Node: Command Line Editing\7f335488
+Node: Introduction and Notation\7f337156
+Node: Readline Interaction\7f338776
+Node: Readline Bare Essentials\7f339964
+Node: Readline Movement Commands\7f341750
+Node: Readline Killing Commands\7f342707
+Node: Readline Arguments\7f344625
+Node: Searching\7f345666
+Node: Readline Init File\7f347849
+Node: Readline Init File Syntax\7f349107
+Node: Conditional Init Constructs\7f372690
+Node: Sample Init File\7f376883
+Node: Bindable Readline Commands\7f380004
+Node: Commands For Moving\7f381205
+Node: Commands For History\7f383253
+Node: Commands For Text\7f388244
+Node: Commands For Killing\7f391890
+Node: Numeric Arguments\7f394920
+Node: Commands For Completion\7f396056
+Node: Keyboard Macros\7f400244
+Node: Miscellaneous Commands\7f400929
+Node: Readline vi Mode\7f406871
+Node: Programmable Completion\7f407775
+Node: Programmable Completion Builtins\7f415552
+Node: A Programmable Completion Example\7f426301
+Node: Using History Interactively\7f431546
+Node: Bash History Facilities\7f432227
+Node: Bash History Builtins\7f435229
+Node: History Interaction\7f440250
+Node: Event Designators\7f443867
+Node: Word Designators\7f445218
+Node: Modifiers\7f446975
+Node: Installing Bash\7f448780
+Node: Basic Installation\7f449914
+Node: Compilers and Options\7f453633
+Node: Compiling For Multiple Architectures\7f454371
+Node: Installation Names\7f456060
+Node: Specifying the System Type\7f458166
+Node: Sharing Defaults\7f458880
+Node: Operation Controls\7f459550
+Node: Optional Features\7f460505
+Node: Reporting Bugs\7f471721
+Node: Major Differences From The Bourne Shell\7f473062
+Node: GNU Free Documentation License\7f489908
+Node: Indexes\7f515082
+Node: Builtin Index\7f515533
+Node: Reserved Word Index\7f522357
+Node: Variable Index\7f524802
+Node: Function Index\7f541573
+Node: Concept Index\7f555354
 \1f
 End Tag Table
 
index a0877b7351f142ea99fbc6b8c32ce9c2158678b1..084e46fb5473214092e1b8d6c5390a2969da37c7 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, 27 January 2023).
+Bash shell (version 5.2, 7 February 2023).
 
-   This is Edition 5.2, last updated 27 January 2023, of 'The GNU Bash
+   This is Edition 5.2, last updated 7 February 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Copyright (C) 1988-2023 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, 27 January 2023).  The Bash home page is
+Bash shell (version 5.2, 7 February 2023).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.2, last updated 27 January 2023, of 'The GNU Bash
+   This is Edition 5.2, last updated 7 February 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Bash contains features that appear in other popular shells, and some
@@ -4119,7 +4119,13 @@ standard.
           Bash Builtins::).
      '%q'
           Causes 'printf' to output the corresponding ARGUMENT in a
-          format that can be reused as shell input.
+          format that can be reused as shell input.  '%q' and '%Q'P use
+          the ANSI-C quoting style (*note ANSI-C Quoting::) if any
+          characters in the argument string require it, and backslash
+          quoting otherwise.  If the format string uses the 'printf'
+          ALTERNATE FORM, these two formats quote the argument string
+          using single quotes.
+
      '%Q'
           like '%q', but applies any supplied precision to the ARGUMENT
           before quoting it.
@@ -4133,14 +4139,19 @@ standard.
           conversion behaves as if -1 had been given.  This is an
           exception to the usual 'printf' behavior.
 
-     The %b, %q, and %T directives all use the field width and precision
-     arguments from the format specification and write that many bytes
-     from (or use that wide a field for) the expanded argument, which
-     usually contains more characters than the original.
+     The %b, %q, and %T format specifiers all use the field width and
+     precision arguments from the format specification and write that
+     many bytes from (or use that wide a field for) the expanded
+     argument, which usually contains more characters than the original.
 
      The %n format specifier accepts a corresponding argument that is
      treated as a shell variable name.
 
+     The %s and %c format specifiers accept an l (long) modifier, which
+     forces them to convert the argument string to a wide-character
+     string and apply any supplied field width and precision in terms of
+     characters, not bytes.
+
      Arguments to non-string format specifiers are treated as C language
      constants, except that a leading plus or minus sign is allowed, and
      if the leading character is a single or double quote, the value is
@@ -7114,50 +7125,54 @@ startup files.
   16. Function names may not be the same as one of the POSIX special
      builtins.
 
-  17. POSIX special builtins are found before shell functions during
+  17. Even if a shell function whose name contains a slash was defined
+     before entering POSIX mode, the shell will not execute a function
+     whose name contains one or more slashes.
+
+  18. POSIX special builtins are found before shell functions during
      command lookup.
 
-  18. When printing shell function definitions (e.g., by 'type'), Bash
+  19. When printing shell function definitions (e.g., by 'type'), Bash
      does not print the 'function' keyword.
 
-  19. Literal tildes that appear as the first character in elements of
+  20. Literal tildes that appear as the first character in elements of
      the 'PATH' variable are not expanded as described above under *note
      Tilde Expansion::.
 
-  20. The 'time' reserved word may be used by itself as a command.  When
+  21. The 'time' reserved word may be used by itself as a command.  When
      used in this way, it displays timing statistics for the shell and
      its completed children.  The 'TIMEFORMAT' variable controls the
      format of the timing information.
 
-  21. When parsing and expanding a ${...} expansion that appears within
+  22. When parsing and expanding a ${...} expansion that appears within
      double quotes, single quotes are no longer special and cannot be
      used to quote a closing brace or other special character, unless
      the operator is one of those defined to perform pattern removal.
      In this case, they do not have to appear as matched pairs.
 
-  22. The parser does not recognize 'time' as a reserved word if the
+  23. The parser does not recognize 'time' as a reserved word if the
      next token begins with a '-'.
 
-  23. The '!' character does not introduce history expansion within a
+  24. The '!' character does not introduce history expansion within a
      double-quoted string, even if the 'histexpand' option is enabled.
 
-  24. If a POSIX special builtin returns an error status, a
+  25. If a POSIX special builtin returns an error status, a
      non-interactive shell exits.  The fatal errors are those listed in
      the POSIX standard, and include things like passing incorrect
      options, redirection errors, variable assignment errors for
      assignments preceding the command name, and so on.
 
-  25. The 'unset' builtin with the '-v' option specified returns a fatal
+  26. The 'unset' builtin with the '-v' option specified returns a fatal
      error if it attempts to unset a 'readonly' or 'non-unsettable'
      variable, or encounters a variable name argument that is an invalid
      identifier, which causes a non-interactive shell to exit.
 
-  26. A non-interactive shell exits with an error status if a variable
+  27. A non-interactive shell exits with an error status if a variable
      assignment error occurs when no command name follows the assignment
      statements.  A variable assignment error occurs, for example, when
      trying to assign a value to a readonly variable.
 
-  27. A non-interactive shell exits with an error status if a variable
+  28. A non-interactive shell exits with an error status if a variable
      assignment error occurs in an assignment statement preceding a
      special builtin, but not with any other simple command.  For any
      other simple command, the shell aborts execution of that command,
@@ -7165,142 +7180,145 @@ startup files.
      perform any further processing of the command in which the error
      occurred").
 
-  28. A non-interactive shell exits with an error status if the
+  29. A non-interactive shell exits with an error status if the
      iteration variable in a 'for' statement or the selection variable
      in a 'select' statement is a readonly variable.
 
-  29. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
+  30. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
      found.
 
-  30. Non-interactive shells exit if a syntax error in an arithmetic
+  31. Non-interactive shells exit if a syntax error in an arithmetic
      expansion results in an invalid expression.
 
-  31. Non-interactive shells exit if a parameter expansion error occurs.
+  32. Non-interactive shells exit if a parameter expansion error occurs.
 
-  32. Non-interactive shells exit if there is a syntax error in a script
+  33. Non-interactive shells exit if there is a syntax error in a script
      read with the '.' or 'source' builtins, or in a string processed by
      the 'eval' builtin.
 
-  33. While variable indirection is available, it may not be applied to
+  34. While variable indirection is available, it may not be applied to
      the '#' and '?' special parameters.
 
-  34. Expanding the '*' special parameter in a pattern context where the
+  35. Expanding the '*' special parameter in a pattern context where the
      expansion is double-quoted does not treat the '$*' as if it were
      double-quoted.
 
-  35. Assignment statements preceding POSIX special builtins persist in
+  36. Assignment statements preceding POSIX special builtins persist in
      the shell environment after the builtin completes.
 
-  36. The 'command' builtin does not prevent builtins that take
+  37. The 'command' builtin does not prevent builtins that take
      assignment statements as arguments from expanding them as
      assignment statements; when not in POSIX mode, assignment builtins
      lose their assignment statement expansion properties when preceded
      by 'command'.
 
-  37. The 'bg' builtin uses the required format to describe each job
+  38. The 'bg' builtin uses the required format to describe each job
      placed in the background, which does not include an indication of
      whether the job is the current or previous job.
 
-  38. The output of 'kill -l' prints all the signal names on a single
+  39. The output of 'kill -l' prints all the signal names on a single
      line, separated by spaces, without the 'SIG' prefix.
 
-  39. The 'kill' builtin does not accept signal names with a 'SIG'
+  40. The 'kill' builtin does not accept signal names with a 'SIG'
      prefix.
 
-  40. The 'export' and 'readonly' builtin commands display their output
+  41. The 'export' and 'readonly' builtin commands display their output
      in the format required by POSIX.
 
-  41. The 'trap' builtin displays signal names without the leading
+  42. The 'trap' builtin displays signal names without the leading
      'SIG'.
 
-  42. The 'trap' builtin doesn't check the first argument for a possible
+  43. The 'trap' builtin doesn't check the first argument for a possible
      signal specification and revert the signal handling to the original
      disposition if it is, unless that argument consists solely of
      digits and is a valid signal number.  If users want to reset the
      handler for a given signal to the original disposition, they should
      use '-' as the first argument.
 
-  43. 'trap -p' without arguments displays signals whose dispositions
+  44. 'trap -p' without arguments displays signals whose dispositions
      are set to SIG_DFL and those that were ignored when the shell
      started, not just trapped signals.
 
-  44. The '.' and 'source' builtins do not search the current directory
+  45. The '.' and 'source' builtins do not search the current directory
      for the filename argument if it is not found by searching 'PATH'.
 
-  45. Enabling POSIX mode has the effect of setting the
+  46. Enabling POSIX mode has the effect of setting the
      'inherit_errexit' option, so subshells spawned to execute command
      substitutions inherit the value of the '-e' option from the parent
      shell.  When the 'inherit_errexit' option is not enabled, Bash
      clears the '-e' option in such subshells.
 
-  46. Enabling POSIX mode has the effect of setting the 'shift_verbose'
+  47. Enabling POSIX mode has the effect of setting the 'shift_verbose'
      option, so numeric arguments to 'shift' that exceed the number of
      positional parameters will result in an error message.
 
-  47. When the 'alias' builtin displays alias definitions, it does not
+  48. When the 'alias' builtin displays alias definitions, it does not
      display them with a leading 'alias ' unless the '-p' option is
      supplied.
 
-  48. When the 'set' builtin is invoked without options, it does not
+  49. When the 'set' builtin is invoked without options, it does not
      display shell function names and definitions.
 
-  49. When the 'set' builtin is invoked without options, it displays
+  50. When the 'set' builtin is invoked without options, it displays
      variable values without quotes, unless they contain shell
      metacharacters, even if the result contains nonprinting characters.
 
-  50. When the 'cd' builtin is invoked in logical mode, and the pathname
+  51. When the 'cd' builtin is invoked in logical mode, and the pathname
      constructed from '$PWD' and the directory name supplied as an
      argument does not refer to an existing directory, 'cd' will fail
      instead of falling back to physical mode.
 
-  51. When the 'cd' builtin cannot change a directory because the length
+  52. When the 'cd' builtin cannot change a directory because the length
      of the pathname constructed from '$PWD' and the directory name
      supplied as an argument exceeds 'PATH_MAX' when all symbolic links
      are expanded, 'cd' will fail instead of attempting to use only the
      supplied directory name.
 
-  52. The 'pwd' builtin verifies that the value it prints is the same as
+  53. The 'pwd' builtin verifies that the value it prints is the same as
      the current directory, even if it is not asked to check the file
      system with the '-P' option.
 
-  53. When listing the history, the 'fc' builtin does not include an
+  54. When listing the history, the 'fc' builtin does not include an
      indication of whether or not a history entry has been modified.
 
-  54. The default editor used by 'fc' is 'ed'.
+  55. The default editor used by 'fc' is 'ed'.
+
+  56. If there are too many arguments supplied to 'fc -s', 'fc' prints
+     an error message and returns failure.
 
-  55. The 'type' and 'command' builtins will not report a non-executable
+  57. The 'type' and 'command' builtins will not report a non-executable
      file as having been found, though the shell will attempt to execute
      such a file if it is the only so-named file found in '$PATH'.
 
-  56. The 'vi' editing mode will invoke the 'vi' editor directly when
+  58. The 'vi' editing mode will invoke the 'vi' editor directly when
      the 'v' command is run, instead of checking '$VISUAL' and
      '$EDITOR'.
 
-  57. When the 'xpg_echo' option is enabled, Bash does not attempt to
+  59. When the 'xpg_echo' option is enabled, Bash does not attempt to
      interpret any arguments to 'echo' as options.  Each argument is
      displayed, after escape characters are converted.
 
-  58. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
+  60. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
      and '-f' options.
 
-  59. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
+  61. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
      interrupt the 'wait' builtin and cause it to return immediately.
      The trap command is run once for each child that exits.
 
-  60. The 'read' builtin may be interrupted by a signal for which a trap
+  62. The 'read' builtin may be interrupted by a signal for which a trap
      has been set.  If Bash receives a trapped signal while executing
      'read', the trap handler executes and 'read' returns an exit status
      greater than 128.
 
-  61. The 'printf' builtin uses 'double' (via 'strtod') to convert
+  63. The 'printf' builtin uses 'double' (via 'strtod') to convert
      arguments corresponding to floating point conversion specifiers,
      instead of 'long double' if it's available.  The 'L' length
      modifier forces 'printf' to use 'long double' if it's available.
 
-  62. Bash removes an exited background process's status from the list
+  64. Bash removes an exited background process's status from the list
      of such statuses after the 'wait' builtin is used to obtain it.
 
-  63. A double quote character ('"') is treated specially when it
+  65. A double quote character ('"') is treated specially when it
      appears in a backquoted command substitution in the body of a
      here-document that undergoes expansion.  That means, for example,
      that a backslash preceding a double quote character will escape it
@@ -11882,8 +11900,8 @@ D.1 Index of Shell Builtin Commands
                                                               (line  69)
 * pwd:                                   Bourne Shell Builtins.
                                                               (line 212)
-* read:                                  Bash Builtins.       (line 492)
-* readarray:                             Bash Builtins.       (line 589)
+* read:                                  Bash Builtins.       (line 503)
+* readarray:                             Bash Builtins.       (line 600)
 * readonly:                              Bourne Shell Builtins.
                                                               (line 222)
 * return:                                Bourne Shell Builtins.
@@ -11892,7 +11910,7 @@ D.1 Index of Shell Builtin Commands
 * shift:                                 Bourne Shell Builtins.
                                                               (line 262)
 * shopt:                                 The Shopt Builtin.   (line   9)
-* source:                                Bash Builtins.       (line 598)
+* source:                                Bash Builtins.       (line 609)
 * suspend:                               Job Control Builtins.
                                                               (line 116)
 * test:                                  Bourne Shell Builtins.
@@ -11901,12 +11919,12 @@ D.1 Index of Shell Builtin Commands
                                                               (line 360)
 * trap:                                  Bourne Shell Builtins.
                                                               (line 366)
-* type:                                  Bash Builtins.       (line 603)
-* typeset:                               Bash Builtins.       (line 641)
-* ulimit:                                Bash Builtins.       (line 647)
+* type:                                  Bash Builtins.       (line 614)
+* typeset:                               Bash Builtins.       (line 652)
+* ulimit:                                Bash Builtins.       (line 658)
 * umask:                                 Bourne Shell Builtins.
                                                               (line 428)
-* unalias:                               Bash Builtins.       (line 753)
+* unalias:                               Bash Builtins.       (line 764)
 * unset:                                 Bourne Shell Builtins.
                                                               (line 446)
 * wait:                                  Job Control Builtins.
@@ -12626,84 +12644,84 @@ Node: Shell Scripts\7f134600
 Node: Shell Builtin Commands\7f137627
 Node: Bourne Shell Builtins\7f139665
 Node: Bash Builtins\7f161863
-Node: Modifying Shell Behavior\7f193254
-Node: The Set Builtin\7f193599
-Node: The Shopt Builtin\7f204197
-Node: Special Builtins\7f220109
-Node: Shell Variables\7f221088
-Node: Bourne Shell Variables\7f221525
-Node: Bash Variables\7f223629
-Node: Bash Features\7f256444
-Node: Invoking Bash\7f257457
-Node: Bash Startup Files\7f263470
-Node: Interactive Shells\7f268601
-Node: What is an Interactive Shell?\7f269012
-Node: Is this Shell Interactive?\7f269661
-Node: Interactive Shell Behavior\7f270476
-Node: Bash Conditional Expressions\7f274105
-Node: Shell Arithmetic\7f278747
-Node: Aliases\7f281691
-Node: Arrays\7f284304
-Node: The Directory Stack\7f290695
-Node: Directory Stack Builtins\7f291479
-Node: Controlling the Prompt\7f295739
-Node: The Restricted Shell\7f298704
-Node: Bash POSIX Mode\7f301314
-Node: Shell Compatibility Mode\7f313876
-Node: Job Control\7f322443
-Node: Job Control Basics\7f322903
-Node: Job Control Builtins\7f327905
-Node: Job Control Variables\7f333700
-Node: Command Line Editing\7f334856
-Node: Introduction and Notation\7f336527
-Node: Readline Interaction\7f338150
-Node: Readline Bare Essentials\7f339341
-Node: Readline Movement Commands\7f341130
-Node: Readline Killing Commands\7f342090
-Node: Readline Arguments\7f344011
-Node: Searching\7f345055
-Node: Readline Init File\7f347241
-Node: Readline Init File Syntax\7f348502
-Node: Conditional Init Constructs\7f372088
-Node: Sample Init File\7f376284
-Node: Bindable Readline Commands\7f379408
-Node: Commands For Moving\7f380612
-Node: Commands For History\7f382663
-Node: Commands For Text\7f387657
-Node: Commands For Killing\7f391306
-Node: Numeric Arguments\7f394339
-Node: Commands For Completion\7f395478
-Node: Keyboard Macros\7f399669
-Node: Miscellaneous Commands\7f400357
-Node: Readline vi Mode\7f406302
-Node: Programmable Completion\7f407209
-Node: Programmable Completion Builtins\7f414989
-Node: A Programmable Completion Example\7f425741
-Node: Using History Interactively\7f430989
-Node: Bash History Facilities\7f431673
-Node: Bash History Builtins\7f434678
-Node: History Interaction\7f439702
-Node: Event Designators\7f443322
-Node: Word Designators\7f444676
-Node: Modifiers\7f446436
-Node: Installing Bash\7f448244
-Node: Basic Installation\7f449381
-Node: Compilers and Options\7f453103
-Node: Compiling For Multiple Architectures\7f453844
-Node: Installation Names\7f455536
-Node: Specifying the System Type\7f457645
-Node: Sharing Defaults\7f458362
-Node: Operation Controls\7f459035
-Node: Optional Features\7f459993
-Node: Reporting Bugs\7f471212
-Node: Major Differences From The Bourne Shell\7f472556
-Node: GNU Free Documentation License\7f489405
-Node: Indexes\7f514582
-Node: Builtin Index\7f515036
-Node: Reserved Word Index\7f521863
-Node: Variable Index\7f524311
-Node: Function Index\7f541085
-Node: Concept Index\7f554869
+Node: Modifying Shell Behavior\7f193831
+Node: The Set Builtin\7f194176
+Node: The Shopt Builtin\7f204774
+Node: Special Builtins\7f220686
+Node: Shell Variables\7f221665
+Node: Bourne Shell Variables\7f222102
+Node: Bash Variables\7f224206
+Node: Bash Features\7f257021
+Node: Invoking Bash\7f258034
+Node: Bash Startup Files\7f264047
+Node: Interactive Shells\7f269178
+Node: What is an Interactive Shell?\7f269589
+Node: Is this Shell Interactive?\7f270238
+Node: Interactive Shell Behavior\7f271053
+Node: Bash Conditional Expressions\7f274682
+Node: Shell Arithmetic\7f279324
+Node: Aliases\7f282268
+Node: Arrays\7f284881
+Node: The Directory Stack\7f291272
+Node: Directory Stack Builtins\7f292056
+Node: Controlling the Prompt\7f296316
+Node: The Restricted Shell\7f299281
+Node: Bash POSIX Mode\7f301891
+Node: Shell Compatibility Mode\7f314757
+Node: Job Control\7f323324
+Node: Job Control Basics\7f323784
+Node: Job Control Builtins\7f328786
+Node: Job Control Variables\7f334581
+Node: Command Line Editing\7f335737
+Node: Introduction and Notation\7f337408
+Node: Readline Interaction\7f339031
+Node: Readline Bare Essentials\7f340222
+Node: Readline Movement Commands\7f342011
+Node: Readline Killing Commands\7f342971
+Node: Readline Arguments\7f344892
+Node: Searching\7f345936
+Node: Readline Init File\7f348122
+Node: Readline Init File Syntax\7f349383
+Node: Conditional Init Constructs\7f372969
+Node: Sample Init File\7f377165
+Node: Bindable Readline Commands\7f380289
+Node: Commands For Moving\7f381493
+Node: Commands For History\7f383544
+Node: Commands For Text\7f388538
+Node: Commands For Killing\7f392187
+Node: Numeric Arguments\7f395220
+Node: Commands For Completion\7f396359
+Node: Keyboard Macros\7f400550
+Node: Miscellaneous Commands\7f401238
+Node: Readline vi Mode\7f407183
+Node: Programmable Completion\7f408090
+Node: Programmable Completion Builtins\7f415870
+Node: A Programmable Completion Example\7f426622
+Node: Using History Interactively\7f431870
+Node: Bash History Facilities\7f432554
+Node: Bash History Builtins\7f435559
+Node: History Interaction\7f440583
+Node: Event Designators\7f444203
+Node: Word Designators\7f445557
+Node: Modifiers\7f447317
+Node: Installing Bash\7f449125
+Node: Basic Installation\7f450262
+Node: Compilers and Options\7f453984
+Node: Compiling For Multiple Architectures\7f454725
+Node: Installation Names\7f456417
+Node: Specifying the System Type\7f458526
+Node: Sharing Defaults\7f459243
+Node: Operation Controls\7f459916
+Node: Optional Features\7f460874
+Node: Reporting Bugs\7f472093
+Node: Major Differences From The Bourne Shell\7f473437
+Node: GNU Free Documentation License\7f490286
+Node: Indexes\7f515463
+Node: Builtin Index\7f515917
+Node: Reserved Word Index\7f522744
+Node: Variable Index\7f525192
+Node: Function Index\7f541966
+Node: Concept Index\7f555750
 \1f
 End Tag Table
 
index 2eff91ec2f658f15f3e1b725f1cf85db4e4ad767..5b44ce74e20bdbcfeba1924135ca6dc57ba5d912 100644 (file)
@@ -4885,6 +4885,12 @@ corresponding @var{argument} in the same way as @code{echo -e}
 @item %q
 Causes @code{printf} to output the
 corresponding @var{argument} in a format that can be reused as shell input.
+@code{%q} and @code{%Q}P use the ANSI-C quoting style (@pxref{ANSI-C Quoting})
+if any characters
+in the argument string require it, and backslash quoting otherwise.
+If the format string uses the @code{printf} @var{alternate form}, these two
+formats quote the argument string using single quotes.
+
 @item %Q
 like @code{%q}, but applies any supplied precision to the @var{argument}
 before quoting it.
@@ -4900,7 +4906,7 @@ This is an exception to the usual @code{printf} behavior.
 @end table
 
 @noindent
-The %b, %q, and %T directives all use the field width and precision
+The %b, %q, and %T format specifiers all use the field width and precision
 arguments from the format specification and write that many bytes from    
 (or use that wide a field for) the expanded argument, which usually
 contains more characters than the original.
@@ -4908,6 +4914,10 @@ contains more characters than the original.
 The %n format specifier accepts a corresponding argument that is treated
 as a shell variable name.
 
+The %s and %c format specifiers accept an l (long) modifier, which forces
+them to convert the argument string to a wide-character string and apply
+any supplied field width and precision in terms of characters, not bytes.
+
 Arguments to non-string format specifiers are treated as C language constants,
 except that a leading plus or minus sign is allowed, and if the leading
 character is a single or double quote, the value is the ASCII value of
@@ -8423,6 +8433,10 @@ indication of whether or not a history entry has been modified.
 @item
 The default editor used by @code{fc} is @code{ed}.
 
+@item
+If there are too many arguments supplied to @code{fc -s}, @code{fc} prints
+an error message and returns failure.
+
 @item
 The @code{type} and @code{command} builtins will not report a non-executable
 file as having been found, though the shell will attempt to execute such a
index d3e230f625c2aa6bfef497b4e7ccd34fd94cc834..940c93e7faf20214c47e7ce54390fe83280a4353 100644 (file)
@@ -938,127 +938,138 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               %\b%b\bb     causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape sequences in the
                      corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in the same way as e\bec\bch\bho\bo -\b-e\be.
               %\b%q\bq     causes  p\bpr\bri\bin\bnt\btf\bf  to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in a
-                     format that can be reused as shell input.
-              %\b%Q\bQ     like %\b%q\bq, but applies any supplied precision to the  _\ba_\br_\bg_\bu_\b-
+                     format that can be reused as shell input.  %\b%q\bq and %\b%Q\bQ  use
+                     the  $\b$'\b''\b'  quoting style if any characters in the argument
+                     string require it, and backslash quoting  otherwise.   If
+                     the  format  string uses the _\bp_\br_\bi_\bn_\bt_\bf alternate form, these
+                     two  formats  quote  the  argument  string  using  single
+                     quotes.
+              %\b%Q\bQ     like  %\b%q\bq, but applies any supplied precision to the _\ba_\br_\bg_\bu_\b-
                      _\bm_\be_\bn_\bt before quoting it.
               %\b%(\b(_\bd_\ba_\bt_\be_\bf_\bm_\bt)\b)T\bT
-                     causes  p\bpr\bri\bin\bnt\btf\bf  to  output the date-time string resulting
-                     from using _\bd_\ba_\bt_\be_\bf_\bm_\bt as a format  string  for  _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
+                     causes p\bpr\bri\bin\bnt\btf\bf to output the  date-time  string  resulting
+                     from  using  _\bd_\ba_\bt_\be_\bf_\bm_\bt  as a format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
                      The corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt is an integer representing the
-                     number of seconds since the epoch.  Two special  argument
-                     values  may  be used: -1 represents the current time, and
-                     -2 represents the time the shell was invoked.  If no  ar-
+                     number  of seconds since the epoch.  Two special argument
+                     values may be used: -1 represents the current  time,  and
+                     -2  represents the time the shell was invoked.  If no ar-
                      gument is specified, conversion behaves as if -1 had been
-                     given.  This is an exception to the usual  p\bpr\bri\bin\bnt\btf\b behav-
+                     given.   This  is an exception to the usual p\bpr\bri\bin\bnt\btf\bf behav-
                      ior.
 
-              The %b, %q, and %T directives all use the field width and preci-
-              sion arguments from the format specification and write that many
-              bytes from (or use that wide a field for) the expanded argument,
-              which usually contains more characters than the original.
+              The %b, %q, and %T format specifiers all use the field width and
+              precision arguments from the format specification and write that
+              many bytes from (or use that wide a field for) the expanded  ar-
+              gument,  which  usually contains more characters than the origi-
+              nal.
 
               The %n format specifier accepts a corresponding argument that is
               treated as a shell variable name.
 
-              Arguments  to non-string format specifiers are treated as C con-
+              The  %s  and  %c  format specifiers accept an l (long) modifier,
+              which forces them to convert the argument string to a wide-char-
+              acter string and apply any supplied field width and precision in
+              terms of characters, not bytes.
+
+              Arguments to non-string format specifiers are treated as C  con-
               stants, except that a leading plus or minus sign is allowed, and
-              if  the leading character is a single or double quote, the value
+              if the leading character is a single or double quote, the  value
               is the ASCII value of the following character.
 
-              The _\bf_\bo_\br_\bm_\ba_\bt is reused as necessary to consume all  of  the  _\ba_\br_\bg_\bu_\b-
+              The  _\bf_\bo_\br_\bm_\ba_\bt  is  reused as necessary to consume all of the _\ba_\br_\bg_\bu_\b-
               _\bm_\be_\bn_\bt_\bs.  If the _\bf_\bo_\br_\bm_\ba_\bt requires more _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs than are supplied,
-              the extra format specifications behave as if  a  zero  value  or
-              null  string,  as  appropriate,  had  been supplied.  The return
-              value is zero on success, non-zero if an invalid option is  sup-
+              the  extra  format  specifications  behave as if a zero value or
+              null string, as appropriate,  had  been  supplied.   The  return
+              value  is zero on success, non-zero if an invalid option is sup-
               plied or a write or assignment error occurs.
 
        p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [+_\bn] [-_\bn]
        p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [_\bd_\bi_\br]
-              Adds  a  directory to the top of the directory stack, or rotates
-              the stack, making the new top of the stack the  current  working
-              directory.   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two ele-
-              ments of the directory stack.  Arguments, if supplied, have  the
+              Adds a directory to the top of the directory stack,  or  rotates
+              the  stack,  making the new top of the stack the current working
+              directory.  With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two  ele-
+              ments  of the directory stack.  Arguments, if supplied, have the
               following meanings:
-              -\b-n\bn     Suppresses  the  normal change of directory when rotating
-                     or adding directories to the  stack,  so  that  only  the
+              -\b-n\bn     Suppresses the normal change of directory  when  rotating
+                     or  adding  directories  to  the  stack, so that only the
                      stack is manipulated.
-              +\b+_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
-                     from the left of the list shown by  d\bdi\bir\brs\bs,  starting  with
+              +\b+_\bn     Rotates the stack so that  the  _\bnth  directory  (counting
+                     from  the  left  of the list shown by d\bdi\bir\brs\bs, starting with
                      zero) is at the top.
-              -\b-_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
-                     from the right of the list shown by d\bdi\bir\brs\bs,  starting  with
+              -\b-_\bn     Rotates the stack so that  the  _\bnth  directory  (counting
+                     from  the  right of the list shown by d\bdi\bir\brs\bs, starting with
                      zero) is at the top.
               _\bd_\bi_\br    Adds _\bd_\bi_\br to the directory stack at the top
 
               After the stack has been modified, if the -\b-n\bn option was not sup-
-              plied, p\bpu\bus\bsh\bhd\bd uses the c\bcd\bd builtin to change to the  directory  at
+              plied,  p\bpu\bus\bsh\bhd\bd  uses the c\bcd\bd builtin to change to the directory at
               the top of the stack.  If the c\bcd\bd fails, p\bpu\bus\bsh\bhd\bd returns a non-zero
               value.
 
-              Otherwise, if no arguments are supplied, p\bpu\bus\bsh\bhd\bd returns 0  unless
-              the  directory  stack  is  empty.   When  rotating the directory
-              stack, p\bpu\bus\bsh\bhd\bd returns 0 unless the directory stack is empty or  a
+              Otherwise,  if no arguments are supplied, p\bpu\bus\bsh\bhd\bd returns 0 unless
+              the directory stack  is  empty.   When  rotating  the  directory
+              stack,  p\bpu\bus\bsh\bhd\bd returns 0 unless the directory stack is empty or a
               non-existent directory stack element is specified.
 
-              If  the  p\bpu\bus\bsh\bhd\bd command is successful, bash runs d\bdi\bir\brs\bs to show the
+              If the p\bpu\bus\bsh\bhd\bd command is successful, bash runs d\bdi\bir\brs\bs to  show  the
               final contents of the directory stack.
 
        p\bpw\bwd\bd [-\b-L\bLP\bP]
-              Print the absolute pathname of the  current  working  directory.
+              Print  the  absolute  pathname of the current working directory.
               The pathname printed contains no symbolic links if the -\b-P\bP option
               is supplied or the -\b-o\bo p\bph\bhy\bys\bsi\bic\bca\bal\bl option to the s\bse\bet\bt builtin command
-              is  enabled.  If the -\b-L\bL option is used, the pathname printed may
-              contain symbolic links.  The return status is 0 unless an  error
+              is enabled.  If the -\b-L\bL option is used, the pathname printed  may
+              contain  symbolic links.  The return status is 0 unless an error
               occurs while reading the name of the current directory or an in-
               valid option is supplied.
 
        r\bre\bea\bad\bd [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-i\bi _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp
        _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
-              One  line  is read from the standard input, or from the file de-
+              One line is read from the standard input, or from the  file  de-
               scriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, split into
-              words  as  described  in  _\bb_\ba_\bs_\bh_\b(_\b1_\b)  under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg, and the
+              words as described in _\bb_\ba_\bs_\bh_\b(_\b1_\b)  under  W\bWo\bor\brd\bd  S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg,  and  the
               first word is assigned to the first _\bn_\ba_\bm_\be, the second word to the
               second _\bn_\ba_\bm_\be, and so on.  If there are more words than names, the
               remaining words and their intervening delimiters are assigned to
-              the  last  _\bn_\ba_\bm_\be.   If  there are fewer words read from the input
-              stream than names, the remaining names are assigned  empty  val-
-              ues.   The  characters  in  I\bIF\bFS\bS  are used to split the line into
-              words using the same rules the shell  uses  for  expansion  (de-
+              the last _\bn_\ba_\bm_\be.  If there are fewer words  read  from  the  input
+              stream  than  names, the remaining names are assigned empty val-
+              ues.  The characters in I\bIF\bFS\bS are used  to  split  the  line  into
+              words  using  the  same  rules the shell uses for expansion (de-
               scribed in _\bb_\ba_\bs_\bh_\b(_\b1_\b) under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg).  The backslash charac-
-              ter (\\b\) may be used to remove any special meaning for  the  next
+              ter  (\\b\)  may be used to remove any special meaning for the next
               character read and for line continuation.  Options, if supplied,
               have the following meanings:
               -\b-a\ba _\ba_\bn_\ba_\bm_\be
                      The words are assigned to sequential indices of the array
                      variable _\ba_\bn_\ba_\bm_\be, starting at 0.  _\ba_\bn_\ba_\bm_\be is unset before any
-                     new values are assigned.  Other _\bn_\ba_\bm_\be  arguments  are  ig-
+                     new  values  are  assigned.  Other _\bn_\ba_\bm_\be arguments are ig-
                      nored.
               -\b-d\bd _\bd_\be_\bl_\bi_\bm
                      The first character of _\bd_\be_\bl_\bi_\bm is used to terminate the in-
-                     put line, rather than newline.  If  _\bd_\be_\bl_\bi_\bm  is  the  empty
-                     string,  r\bre\bea\bad\bd  will  terminate a line when it reads a NUL
+                     put  line,  rather  than  newline.  If _\bd_\be_\bl_\bi_\bm is the empty
+                     string, r\bre\bea\bad\bd will terminate a line when it  reads  a  NUL
                      character.
               -\b-e\be     If the standard input is coming from a terminal, r\bre\bea\bad\bdl\bli\bin\bne\be
-                     (see  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE  in  _\bb_\ba_\bs_\bh_\b(_\b1_\b))  is used to obtain the line.
-                     Readline uses the current (or default,  if  line  editing
-                     was  not  previously  active)  editing settings, but uses
+                     (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE in _\bb_\ba_\bs_\bh_\b(_\b1_\b)) is used  to  obtain  the  line.
+                     Readline  uses  the  current (or default, if line editing
+                     was not previously active)  editing  settings,  but  uses
                      readline's default filename completion.
               -\b-i\bi _\bt_\be_\bx_\bt
-                     If r\bre\bea\bad\bdl\bli\bin\bne\be is being used  to  read  the  line,  _\bt_\be_\bx_\b is
+                     If  r\bre\bea\bad\bdl\bli\bin\bne\be  is  being  used  to  read the line, _\bt_\be_\bx_\bt is
                      placed into the editing buffer before editing begins.
               -\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs
-                     r\bre\bea\bad\b returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather than
+                     r\bre\bea\bad\breturns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather  than
                      waiting for a complete line of input, but honors a delim-
-                     iter  if fewer than _\bn_\bc_\bh_\ba_\br_\bs characters are read before the
+                     iter if fewer than _\bn_\bc_\bh_\ba_\br_\bs characters are read before  the
                      delimiter.
               -\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs
-                     r\bre\bea\bad\breturns  after  reading  exactly  _\bn_\bc_\bh_\ba_\br_\b characters
-                     rather  than waiting for a complete line of input, unless
-                     EOF is encountered or r\bre\bea\bad\bd times out.  Delimiter  charac-
-                     ters  encountered  in the input are not treated specially
-                     and do not cause r\bre\bea\bad\bd to return until  _\bn_\bc_\bh_\ba_\br_\b characters
-                     are  read.   The result is not split on the characters in
-                     I\bIF\bFS\bS; the intent is that the variable is assigned  exactly
+                     r\bre\bea\bad\b returns  after  reading  exactly  _\bn_\bc_\bh_\ba_\br_\bs characters
+                     rather than waiting for a complete line of input,  unless
+                     EOF  is encountered or r\bre\bea\bad\bd times out.  Delimiter charac-
+                     ters encountered in the input are not  treated  specially
+                     and  do  not cause r\bre\bea\bad\bd to return until _\bn_\bc_\bh_\ba_\br_\bs characters
+                     are read.  The result is not split on the  characters  in
+                     I\bIF\bFS\bS;  the intent is that the variable is assigned exactly
                      the characters read (with the exception of backslash; see
                      the -\b-r\br option below).
               -\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
@@ -1066,133 +1077,133 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      line, before attempting to read any input.  The prompt is
                      displayed only if input is coming from a terminal.
               -\b-r\br     Backslash does not act as an escape character.  The back-
-                     slash  is considered to be part of the line.  In particu-
-                     lar, a backslash-newline pair may not then be used  as  a
+                     slash is considered to be part of the line.  In  particu-
+                     lar,  a  backslash-newline pair may not then be used as a
                      line continuation.
               -\b-s\bs     Silent mode.  If input is coming from a terminal, charac-
                      ters are not echoed.
               -\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt
-                     Cause r\bre\bea\bad\bd to time out and return failure if  a  complete
-                     line  of  input  (or a specified number of characters) is
-                     not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\bo_\bu_\bt may be a  deci-
-                     mal  number with a fractional portion following the deci-
-                     mal point.  This option is  only  effective  if  r\bre\bea\bad\b is
-                     reading  input  from  a  terminal, pipe, or other special
-                     file; it has no effect when reading from  regular  files.
+                     Cause  r\bre\bea\bad\bd  to time out and return failure if a complete
+                     line of input (or a specified number  of  characters)  is
+                     not  read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\bo_\bu_\bt may be a deci-
+                     mal number with a fractional portion following the  deci-
+                     mal  point.   This  option  is  only effective if r\bre\bea\bad\bd is
+                     reading input from a terminal,  pipe,  or  other  special
+                     file;  it  has no effect when reading from regular files.
                      If r\bre\bea\bad\bd times out, r\bre\bea\bad\bd saves any partial input read into
-                     the specified variable _\bn_\ba_\bm_\be.  If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0,  r\bre\bea\bad\b re-
-                     turns  immediately, without trying to read any data.  The
-                     exit status is 0 if input is available on  the  specified
-                     file  descriptor,  or  the read will return EOF, non-zero
-                     otherwise.  The exit status is greater than  128  if  the
+                     the  specified  variable _\bn_\ba_\bm_\be.  If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0, r\bre\bea\bad\bd re-
+                     turns immediately, without trying to read any data.   The
+                     exit  status  is 0 if input is available on the specified
+                     file descriptor, or the read will  return  EOF,  non-zero
+                     otherwise.   The  exit  status is greater than 128 if the
                      timeout is exceeded.
               -\b-u\bu _\bf_\bd  Read input from file descriptor _\bf_\bd.
 
-              If  no _\bn_\ba_\bm_\be_\bs are supplied, the line read, without the ending de-
-              limiter but otherwise unmodified, is assigned  to  the  variable
-              R\bRE\bEP\bPL\bLY\bY.   The  exit status is zero, unless end-of-file is encoun-
-              tered, r\bre\bea\bad\bd times out (in which case the status is greater  than
-              128),  a variable assignment error (such as assigning to a read-
+              If no _\bn_\ba_\bm_\be_\bs are supplied, the line read, without the ending  de-
+              limiter  but  otherwise  unmodified, is assigned to the variable
+              R\bRE\bEP\bPL\bLY\bY.  The exit status is zero, unless end-of-file  is  encoun-
+              tered,  r\bre\bea\bad\bd times out (in which case the status is greater than
+              128), a variable assignment error (such as assigning to a  read-
               only variable) occurs, or an invalid file descriptor is supplied
               as the argument to -\b-u\bu.
 
        r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\baA\bAf\bf] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd] ...]
-              The  given  _\bn_\ba_\bm_\be_\bs are marked readonly; the values of these _\bn_\ba_\bm_\be_\bs
-              may not be changed by subsequent assignment.  If the  -\b-f\b option
-              is  supplied,  the  functions  corresponding to the _\bn_\ba_\bm_\be_\bs are so
-              marked.  The -\b-a\ba option restricts the variables  to  indexed  ar-
-              rays;  the  -\b-A\bA option restricts the variables to associative ar-
+              The given _\bn_\ba_\bm_\be_\bs are marked readonly; the values of  these  _\bn_\ba_\bm_\be_\bs
+              may  not  be changed by subsequent assignment.  If the -\b-f\bf option
+              is supplied, the functions corresponding to  the  _\bn_\ba_\bm_\be_\bs  are  so
+              marked.   The  -\b-a\ba  option restricts the variables to indexed ar-
+              rays; the -\b-A\bA option restricts the variables to  associative  ar-
               rays.  If both options are supplied, -\b-A\bA takes precedence.  If no
-              _\bn_\ba_\bm_\b arguments  are  given,  or if the -\b-p\bp option is supplied, a
+              _\bn_\ba_\bm_\barguments are given, or if the -\b-p\bp  option  is  supplied,  a
               list of all readonly names is printed.  The other options may be
-              used  to  restrict the output to a subset of the set of readonly
-              names.  The -\b-p\bp option causes output to be displayed in a  format
-              that  may be reused as input.  If a variable name is followed by
-              =_\bw_\bo_\br_\bd, the value of the variable is set  to  _\bw_\bo_\br_\bd.   The  return
-              status  is 0 unless an invalid option is encountered, one of the
+              used to restrict the output to a subset of the set  of  readonly
+              names.   The -\b-p\bp option causes output to be displayed in a format
+              that may be reused as input.  If a variable name is followed  by
+              =_\bw_\bo_\br_\bd,  the  value  of  the variable is set to _\bw_\bo_\br_\bd.  The return
+              status is 0 unless an invalid option is encountered, one of  the
               _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, or -\b-f\bf is supplied with
               a _\bn_\ba_\bm_\be that is not a function.
 
        r\bre\bet\btu\bur\brn\bn [_\bn]
-              Causes  a function to stop executing and return the value speci-
-              fied by _\bn to its caller.  If _\bn is omitted, the return status  is
-              that  of the last command executed in the function body.  If r\bre\be-\b-
+              Causes a function to stop executing and return the value  speci-
+              fied  by _\bn to its caller.  If _\bn is omitted, the return status is
+              that of the last command executed in the function body.  If  r\bre\be-\b-
               t\btu\bur\brn\bn is executed by a trap handler, the last command used to de-
-              termine  the status is the last command executed before the trap
-              handler.  If r\bre\bet\btu\bur\brn\bn is executed during a D\bDE\bEB\bBU\bUG\bG  trap,  the  last
-              command  used  to  determine the status is the last command exe-
-              cuted by the trap handler before r\bre\bet\btu\bur\brn\bn was invoked.  If  r\bre\bet\btu\bur\brn\bn
-              is  used outside a function, but during execution of a script by
-              the .\b.  (s\bso\bou\bur\brc\bce\be) command, it causes the shell to  stop  executing
-              that  script  and return either _\bn or the exit status of the last
-              command executed within the script as the  exit  status  of  the
+              termine the status is the last command executed before the  trap
+              handler.   If  r\bre\bet\btu\bur\brn\bn  is executed during a D\bDE\bEB\bBU\bUG\bG trap, the last
+              command used to determine the status is the  last  command  exe-
+              cuted  by the trap handler before r\bre\bet\btu\bur\brn\bn was invoked.  If r\bre\bet\btu\bur\brn\bn
+              is used outside a function, but during execution of a script  by
+              the  .\b.   (s\bso\bou\bur\brc\bce\be) command, it causes the shell to stop executing
+              that script and return either _\bn or the exit status of  the  last
+              command  executed  within  the  script as the exit status of the
               script.  If _\bn is supplied, the return value is its least signif-
-              icant 8 bits.  The return status is non-zero if r\bre\bet\btu\bur\brn\bn  is  sup-
-              plied  a non-numeric argument, or is used outside a function and
-              not during execution of a script by .\b. or  s\bso\bou\bur\brc\bce\be.   Any  command
+              icant  8  bits.  The return status is non-zero if r\bre\bet\btu\bur\brn\bn is sup-
+              plied a non-numeric argument, or is used outside a function  and
+              not  during  execution  of a script by .\b. or s\bso\bou\bur\brc\bce\be.  Any command
               associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed before execution re-
               sumes after the function or script.
 
        s\bse\bet\bt [-\b-a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [-\b--\b-] [-\b-] [_\ba_\br_\bg ...]
        s\bse\bet\bt [+\b+a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [-\b--\b-] [-\b-] [_\ba_\br_\bg ...]
-              Without options, display the name and value of each shell  vari-
-              able  in a format that can be reused as input for setting or re-
+              Without  options, display the name and value of each shell vari-
+              able in a format that can be reused as input for setting or  re-
               setting the currently-set variables.  Read-only variables cannot
-              be  reset.  In _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, only shell variables are listed.  The
-              output is sorted according to the current locale.  When  options
-              are  specified,  they  set or unset shell attributes.  Any argu-
-              ments remaining after option processing are  treated  as  values
+              be reset.  In _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, only shell variables are listed.   The
+              output  is sorted according to the current locale.  When options
+              are specified, they set or unset shell  attributes.   Any  argu-
+              ments  remaining  after  option processing are treated as values
               for the positional parameters and are assigned, in order, to $\b$1\b1,
-              $\b$2\b2, .\b..\b..\b.  $\b$_\bn.  Options, if specified, have  the  following  mean-
+              $\b$2\b2,  .\b..\b..\b.   $\b$_\bn.   Options, if specified, have the following mean-
               ings:
               -\b-a\ba      Each variable or function that is created or modified is
-                      given the export attribute and marked for export to  the
+                      given  the export attribute and marked for export to the
                       environment of subsequent commands.
-              -\b-b\bb      Report  the status of terminated background jobs immedi-
+              -\b-b\bb      Report the status of terminated background jobs  immedi-
                       ately, rather than before the next primary prompt.  This
                       is effective only when job control is enabled.
-              -\b-e\be      Exit  immediately  if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist of a
-                      single _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd), a _\bl_\bi_\bs_\bt, or  a  _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\b _\bc_\bo_\bm_\bm_\ba_\bn_\bd
-                      (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR  in _\bb_\ba_\bs_\bh_\b(_\b1_\b)), exits with a non-zero
-                      status.  The shell does not exit  if  the  command  that
-                      fails  is part of the command list immediately following
+              -\b-e\be      Exit immediately if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist  of  a
+                      single  _\bs_\bi_\bm_\bp_\bl_\be  _\bc_\bo_\bm_\bm_\ba_\bn_\bd),  a _\bl_\bi_\bs_\bt, or a _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                      (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR in _\bb_\ba_\bs_\bh_\b(_\b1_\b)), exits  with  a  non-zero
+                      status.   The  shell  does  not exit if the command that
+                      fails is part of the command list immediately  following
                       a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword, part of the test following the
-                      i\bif\b or e\bel\bli\bif\bf reserved words, part of any command executed
-                      in a &\b&&\b& or |\b||\b| list except the command following the  fi-
+                      i\bif\bor e\bel\bli\bif\bf reserved words, part of any command  executed
+                      in  a &\b&&\b& or |\b||\b| list except the command following the fi-
                       nal &\b&&\b& or |\b||\b|, any command in a pipeline but the last, or
-                      if the command's return value is being inverted with  !\b!.
-                      If  a  compound  command other than a subshell returns a
-                      non-zero status because a command failed  while  -\b-e\b was
-                      being  ignored, the shell does not exit.  A trap on E\bER\bRR\bR,
+                      if  the command's return value is being inverted with !\b!.
+                      If a compound command other than a  subshell  returns  a
+                      non-zero  status  because  a command failed while -\b-e\be was
+                      being ignored, the shell does not exit.  A trap on  E\bER\bRR\bR,
                       if set, is executed before the shell exits.  This option
                       applies to the shell environment and each subshell envi-
                       ronment separately (see C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT in
                       _\bb_\ba_\bs_\bh_\b(_\b1_\b)), and may cause subshells to exit before execut-
                       ing all the commands in the subshell.
 
-                      If a compound command or shell function  executes  in  a
-                      context  where -\b-e\be is being ignored, none of the commands
-                      executed within the compound command  or  function  body
-                      will  be  affected  by the -\b-e\be setting, even if -\b-e\be is set
-                      and a command returns a failure status.  If  a  compound
-                      command  or  shell function sets -\b-e\be while executing in a
-                      context where -\b-e\be is ignored, that setting will not  have
-                      any  effect  until  the  compound command or the command
+                      If  a  compound  command or shell function executes in a
+                      context where -\b-e\be is being ignored, none of the  commands
+                      executed  within  the  compound command or function body
+                      will be affected by the -\b-e\be setting, even if  -\b-e\be  is  set
+                      and  a  command returns a failure status.  If a compound
+                      command or shell function sets -\b-e\be while executing  in  a
+                      context  where -\b-e\be is ignored, that setting will not have
+                      any effect until the compound  command  or  the  command
                       containing the function call completes.
               -\b-f\bf      Disable pathname expansion.
-              -\b-h\bh      Remember the location of commands as they are looked  up
+              -\b-h\bh      Remember  the location of commands as they are looked up
                       for execution.  This is enabled by default.
-              -\b-k\bk      All  arguments  in the form of assignment statements are
-                      placed in the environment for a command, not just  those
+              -\b-k\bk      All arguments in the form of assignment  statements  are
+                      placed  in the environment for a command, not just those
                       that precede the command name.
-              -\b-m\bm      Monitor  mode.   Job control is enabled.  This option is
-                      on by default for interactive  shells  on  systems  that
-                      support  it (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  All processes
-                      run in a separate process group.  When a background  job
-                      completes,  the  shell prints a line containing its exit
+              -\b-m\bm      Monitor mode.  Job control is enabled.  This  option  is
+                      on  by  default  for  interactive shells on systems that
+                      support it (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  All  processes
+                      run  in a separate process group.  When a background job
+                      completes, the shell prints a line containing  its  exit
                       status.
               -\b-n\bn      Read commands but do not execute them.  This may be used
-                      to  check a shell script for syntax errors.  This is ig-
+                      to check a shell script for syntax errors.  This is  ig-
                       nored by interactive shells.
               -\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
                       The _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be can be one of the following:
@@ -1200,10 +1211,10 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               Same as -\b-a\ba.
                       b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
                               Same as -\b-B\bB.
-                      e\bem\bma\bac\bcs\bs   Use an emacs-style command line  editing  inter-
+                      e\bem\bma\bac\bcs\bs   Use  an  emacs-style command line editing inter-
                               face.  This is enabled by default when the shell
                               is interactive, unless the shell is started with
-                              the  -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg  option.  This also affects the
+                              the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option.  This also  affects  the
                               editing interface used for r\bre\bea\bad\bd -\b-e\be.
                       e\ber\brr\bre\bex\bxi\bit\bt Same as -\b-e\be.
                       e\ber\brr\brt\btr\bra\bac\bce\be
@@ -1213,12 +1224,12 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       h\bha\bas\bsh\bha\bal\bll\bl Same as -\b-h\bh.
                       h\bhi\bis\bst\bte\bex\bxp\bpa\ban\bnd\bd
                               Same as -\b-H\bH.
-                      h\bhi\bis\bst\bto\bor\bry\by Enable command history, as described in  _\bb_\ba_\bs_\bh_\b(_\b1_\b)
-                              under  H\bHI\bIS\bST\bTO\bOR\bRY\bY.  This option is on by default in
+                      h\bhi\bis\bst\bto\bor\bry\by Enable  command history, as described in _\bb_\ba_\bs_\bh_\b(_\b1_\b)
+                              under H\bHI\bIS\bST\bTO\bOR\bRY\bY.  This option is on by default  in
                               interactive shells.
                       i\big\bgn\bno\bor\bre\bee\beo\bof\bf
-                              The effect is as  if  the  shell  command  ``IG-
-                              NOREEOF=10''  had been executed (see S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bi-\b-
+                              The  effect  is  as  if  the shell command ``IG-
+                              NOREEOF=10'' had been executed (see S\bSh\bhe\bel\bll\b V\bVa\bar\bri\bi-\b-
                               a\bab\bbl\ble\bes\bs in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).
                       k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
                       m\bmo\bon\bni\bit\bto\bor\br Same as -\b-m\bm.
@@ -1233,177 +1244,177 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       p\bph\bhy\bys\bsi\bic\bca\bal\bl
                               Same as -\b-P\bP.
                       p\bpi\bip\bpe\bef\bfa\bai\bil\bl
-                              If set, the return value of a  pipeline  is  the
-                              value  of  the  last (rightmost) command to exit
-                              with a non-zero status, or zero if all  commands
-                              in  the pipeline exit successfully.  This option
+                              If  set,  the  return value of a pipeline is the
+                              value of the last (rightmost)  command  to  exit
+                              with  a non-zero status, or zero if all commands
+                              in the pipeline exit successfully.  This  option
                               is disabled by default.
-                      p\bpo\bos\bsi\bix\bx   Change the behavior of b\bba\bas\bsh\bh  where  the  default
-                              operation  differs  from  the  POSIX standard to
-                              match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).  See  S\bSE\bEE\b A\bAL\bLS\bSO\bO
-                              in  _\bb_\ba_\bs_\bh_\b(_\b1_\b)  for  a reference to a document that
+                      p\bpo\bos\bsi\bix\bx   Change  the  behavior  of b\bba\bas\bsh\bh where the default
+                              operation differs from  the  POSIX  standard  to
+                              match  the  standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).  See S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+                              in _\bb_\ba_\bs_\bh_\b(_\b1_\b) for a reference to  a  document  that
                               details how posix mode affects bash's behavior.
                       p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
                               Same as -\b-p\bp.
                       v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
-                      v\bvi\bi      Use a vi-style command line  editing  interface.
+                      v\bvi\bi      Use  a  vi-style command line editing interface.
                               This also affects the editing interface used for
                               r\bre\bea\bad\bd -\b-e\be.
                       x\bxt\btr\bra\bac\bce\be  Same as -\b-x\bx.
                       If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, the values of the
-                      current  options are printed.  If +\b+o\bo is supplied with no
-                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, a series of s\bse\bet\bt commands  to  recreate  the
-                      current  option  settings  is  displayed on the standard
+                      current options are printed.  If +\b+o\bo is supplied with  no
+                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be,  a  series  of s\bse\bet\bt commands to recreate the
+                      current option settings is  displayed  on  the  standard
                       output.
-              -\b-p\bp      Turn on _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode.  In this  mode,  the  $\b$E\bEN\bNV\b and
-                      $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\b files  are not processed, shell functions are
-                      not inherited from the environment, and  the  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
-                      B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS,  C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they ap-
-                      pear in the environment, are ignored.  If the  shell  is
-                      started  with the effective user (group) id not equal to
-                      the real user (group) id, and the -\b-p\bp option is not  sup-
+              -\b-p\bp      Turn  on  _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd  mode.   In this mode, the $\b$E\bEN\bNV\bV and
+                      $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bfiles are not processed, shell  functions  are
+                      not  inherited  from the environment, and the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
+                      B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS, C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they  ap-
+                      pear  in  the environment, are ignored.  If the shell is
+                      started with the effective user (group) id not equal  to
+                      the  real user (group) id, and the -\b-p\bp option is not sup-
                       plied, these actions are taken and the effective user id
-                      is set to the real user id.  If the -\b-p\bp  option  is  sup-
-                      plied  at  startup,  the effective user id is not reset.
-                      Turning this option off causes the  effective  user  and
+                      is  set  to  the real user id.  If the -\b-p\bp option is sup-
+                      plied at startup, the effective user id  is  not  reset.
+                      Turning  this  option  off causes the effective user and
                       group ids to be set to the real user and group ids.
               -\b-r\br      Enable restricted shell mode.  This option cannot be un-
                       set once it has been set.
               -\b-t\bt      Exit after reading and executing one command.
               -\b-u\bu      Treat unset variables and parameters other than the spe-
-                      cial  parameters  "@"  and  "*", or array variables sub-
-                      scripted with "@" or "*", as an  error  when  performing
-                      parameter  expansion.   If  expansion is attempted on an
-                      unset variable or parameter, the shell prints  an  error
-                      message,  and, if not interactive, exits with a non-zero
+                      cial parameters "@" and "*",  or  array  variables  sub-
+                      scripted  with  "@"  or "*", as an error when performing
+                      parameter expansion.  If expansion is  attempted  on  an
+                      unset  variable  or parameter, the shell prints an error
+                      message, and, if not interactive, exits with a  non-zero
                       status.
               -\b-v\bv      Print shell input lines as they are read.
-              -\b-x\bx      After expanding each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br  command,  c\bca\bas\bse\be
+              -\b-x\bx      After  expanding  each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br command, c\bca\bas\bse\be
                       command, s\bse\bel\ble\bec\bct\bt command, or arithmetic f\bfo\bor\br command, dis-
-                      play the expanded value of P\bPS\bS4\b4, followed by the  command
-                      and  its  expanded arguments or associated word list, to
+                      play  the expanded value of P\bPS\bS4\b4, followed by the command
+                      and its expanded arguments or associated word  list,  to
                       standard error.
-              -\b-B\bB      The shell performs brace expansion (see B\bBr\bra\bac\bce\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+              -\b-B\bB      The  shell performs brace expansion (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
                       in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  This is on by default.
-              -\b-C\bC      If  set,  b\bba\bas\bsh\bh  does not overwrite an existing file with
-                      the >\b>, >\b>&\b&, and <\b<>\b> redirection operators.   This  may  be
+              -\b-C\bC      If set, b\bba\bas\bsh\bh does not overwrite an  existing  file  with
+                      the  >\b>,  >\b>&\b&,  and <\b<>\b> redirection operators.  This may be
                       overridden when creating output files by using the redi-
                       rection operator >\b>|\b| instead of >\b>.
               -\b-E\bE      If set, any trap on E\bER\bRR\bR is inherited by shell functions,
-                      command  substitutions,  and commands executed in a sub-
-                      shell environment.  The E\bER\bRR\bR trap is normally not  inher-
+                      command substitutions, and commands executed in  a  sub-
+                      shell  environment.  The E\bER\bRR\bR trap is normally not inher-
                       ited in such cases.
               -\b-H\bH      Enable !\b!  style history substitution.  This option is on
                       by default when the shell is interactive.
-              -\b-P\bP      If set, the shell does not resolve symbolic  links  when
-                      executing  commands  such  as c\bcd\bd that change the current
+              -\b-P\bP      If  set,  the shell does not resolve symbolic links when
+                      executing commands such as c\bcd\bd that  change  the  current
                       working  directory.   It  uses  the  physical  directory
                       structure instead.  By default, b\bba\bas\bsh\bh follows the logical
-                      chain of  directories  when  performing  commands  which
+                      chain  of  directories  when  performing  commands which
                       change the current directory.
-              -\b-T\bT      If  set,  any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are inherited by
+              -\b-T\bT      If set, any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are  inherited  by
                       shell functions, command substitutions, and commands ex-
-                      ecuted  in a subshell environment.  The D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN
+                      ecuted in a subshell environment.  The D\bDE\bEB\bBU\bUG\bG and  R\bRE\bET\bTU\bUR\bRN\bN
                       traps are normally not inherited in such cases.
-              -\b--\b-      If no arguments follow this option, then the  positional
+              -\b--\b-      If  no arguments follow this option, then the positional
                       parameters are unset.  Otherwise, the positional parame-
-                      ters are set to the _\ba_\br_\bgs, even if  some  of  them  begin
+                      ters  are  set  to  the _\ba_\br_\bgs, even if some of them begin
                       with a -\b-.
-              -\b-       Signal  the  end of options, cause all remaining _\ba_\br_\bgs to
+              -\b-       Signal the end of options, cause all remaining  _\ba_\br_\bgs  to
                       be assigned to the positional parameters.  The -\b-x\bx and -\b-v\bv
                       options are turned off.  If there are no _\ba_\br_\bgs, the posi-
                       tional parameters remain unchanged.
 
-              The options are off by default unless otherwise noted.  Using  +
-              rather  than  -  causes these options to be turned off.  The op-
+              The  options are off by default unless otherwise noted.  Using +
+              rather than - causes these options to be turned  off.   The  op-
               tions can also be specified as arguments to an invocation of the
-              shell.   The current set of options may be found in $\b$-\b-.  The re-
-              turn status is always true unless an invalid option  is  encoun-
+              shell.  The current set of options may be found in $\b$-\b-.  The  re-
+              turn  status  is always true unless an invalid option is encoun-
               tered.
 
        s\bsh\bhi\bif\bft\bt [_\bn]
-              The  positional  parameters  from _\bn+1 ... are renamed to $\b$1\b1 .\b..\b..\b..\b.
-              Parameters represented by the numbers $\b$#\b# down to $\b$#\b#-_\bn+1 are  un-
-              set.   _\bn must be a non-negative number less than or equal to $\b$#\b#.
-              If _\bn is 0, no parameters are changed.  If _\bn is not given, it  is
+              The positional parameters from _\bn+1 ... are renamed  to  $\b$1\b .\b..\b..\b..\b.
+              Parameters  represented by the numbers $\b$#\b# down to $\b$#\b#-_\bn+1 are un-
+              set.  _\bn must be a non-negative number less than or equal to  $\b$#\b#.
+              If  _\bn is 0, no parameters are changed.  If _\bn is not given, it is
               assumed to be 1.  If _\bn is greater than $\b$#\b#, the positional param-
-              eters are not changed.  The return status is greater  than  zero
+              eters  are  not changed.  The return status is greater than zero
               if _\bn is greater than $\b$#\b# or less than zero; otherwise 0.
 
        s\bsh\bho\bop\bpt\bt [-\b-p\bpq\bqs\bsu\bu] [-\b-o\bo] [_\bo_\bp_\bt_\bn_\ba_\bm_\be ...]
-              Toggle  the values of settings controlling optional shell behav-
-              ior.  The settings can be either those listed below, or, if  the
+              Toggle the values of settings controlling optional shell  behav-
+              ior.   The settings can be either those listed below, or, if the
               -\b-o\bo option is used, those available with the -\b-o\bo option to the s\bse\bet\bt
               builtin command.  With no options, or with the -\b-p\bp option, a list
-              of  all  settable  options  is  displayed, with an indication of
+              of all settable options is  displayed,  with  an  indication  of
               whether or not each is set; if _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are supplied, the output
-              is  restricted to those options.  The -\b-p\bp option causes output to
-              be displayed in a form that may be reused as input.   Other  op-
+              is restricted to those options.  The -\b-p\bp option causes output  to
+              be  displayed  in a form that may be reused as input.  Other op-
               tions have the following meanings:
               -\b-s\bs     Enable (set) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
               -\b-u\bu     Disable (unset) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
-              -\b-q\bq     Suppresses  normal output (quiet mode); the return status
+              -\b-q\bq     Suppresses normal output (quiet mode); the return  status
                      indicates whether the _\bo_\bp_\bt_\bn_\ba_\bm_\be is set or unset.  If multi-
-                     ple  _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return sta-
-                     tus is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero  other-
+                     ple _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return  sta-
+                     tus  is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero other-
                      wise.
-              -\b-o\bo     Restricts  the  values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those defined for
+              -\b-o\bo     Restricts the values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those  defined  for
                      the -\b-o\bo option to the s\bse\bet\bt builtin.
 
-              If either -\b-s\bs or -\b-u\bu is used  with  no  _\bo_\bp_\bt_\bn_\ba_\bm_\be  arguments,  s\bsh\bho\bop\bpt\bt
-              shows  only  those options which are set or unset, respectively.
-              Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are  disabled  (unset)
+              If  either  -\b-s\bs  or  -\b-u\bu  is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments, s\bsh\bho\bop\bpt\bt
+              shows only those options which are set or  unset,  respectively.
+              Unless  otherwise  noted, the s\bsh\bho\bop\bpt\bt options are disabled (unset)
               by default.
 
-              The  return  status when listing options is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
-              are enabled, non-zero otherwise.  When setting or unsetting  op-
-              tions,  the  return  status  is  zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be is not a
+              The return status when listing options is zero if  all  _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
+              are  enabled, non-zero otherwise.  When setting or unsetting op-
+              tions, the return status is zero unless  an  _\bo_\bp_\bt_\bn_\ba_\bm_\be  is  not  a
               valid shell option.
 
               The list of s\bsh\bho\bop\bpt\bt options is:
 
               a\bas\bss\bso\boc\bc_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_o\bon\bnc\bce\be
-                      If set, the shell suppresses multiple evaluation of  as-
-                      sociative  array subscripts during arithmetic expression
-                      evaluation, while executing builtins  that  can  perform
-                      variable  assignments, and while executing builtins that
+                      If  set, the shell suppresses multiple evaluation of as-
+                      sociative array subscripts during arithmetic  expression
+                      evaluation,  while  executing  builtins that can perform
+                      variable assignments, and while executing builtins  that
                       perform array dereferencing.
-              a\bau\but\bto\boc\bcd\bd  If set, a command name that is the name of  a  directory
-                      is  executed  as  if it were the argument to the c\bcd\bd com-
+              a\bau\but\bto\boc\bcd\bd  If  set,  a command name that is the name of a directory
+                      is executed as if it were the argument to  the  c\bcd\b com-
                       mand.  This option is only used by interactive shells.
               c\bcd\bda\bab\bbl\ble\be_\b_v\bva\bar\brs\bs
-                      If set, an argument to the c\bcd\bd builtin  command  that  is
-                      not  a directory is assumed to be the name of a variable
+                      If  set,  an  argument to the c\bcd\bd builtin command that is
+                      not a directory is assumed to be the name of a  variable
                       whose value is the directory to change to.
               c\bcd\bds\bsp\bpe\bel\bll\bl If set, minor errors in the spelling of a directory com-
-                      ponent  in  a  c\bcd\bd command will be corrected.  The errors
+                      ponent in a c\bcd\bd command will be  corrected.   The  errors
                       checked for are transposed characters, a missing charac-
-                      ter,  and  one  character  too many.  If a correction is
-                      found, the corrected filename is printed, and  the  com-
-                      mand  proceeds.  This option is only used by interactive
+                      ter, and one character too many.   If  a  correction  is
+                      found,  the  corrected filename is printed, and the com-
+                      mand proceeds.  This option is only used by  interactive
                       shells.
               c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
                       If set, b\bba\bas\bsh\bh checks that a command found in the hash ta-
-                      ble  exists  before  trying  to execute it.  If a hashed
-                      command no longer exists, a normal path search  is  per-
+                      ble exists before trying to execute  it.   If  a  hashed
+                      command  no  longer exists, a normal path search is per-
                       formed.
               c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
                       If set, b\bba\bas\bsh\bh lists the status of any stopped and running
-                      jobs before exiting an interactive shell.  If  any  jobs
+                      jobs  before  exiting an interactive shell.  If any jobs
                       are running, this causes the exit to be deferred until a
-                      second exit is attempted without an intervening  command
-                      (see  J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  The shell always post-
+                      second  exit is attempted without an intervening command
+                      (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  The  shell  always  post-
                       pones exiting if any jobs are stopped.
               c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
-                      If set, b\bba\bas\bsh\bh checks the window size after each  external
-                      (non-builtin)  command  and,  if  necessary, updates the
-                      values of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bLU\bUM\bMN\bNS\bS.  This option is enabled  by
+                      If  set, b\bba\bas\bsh\bh checks the window size after each external
+                      (non-builtin) command and,  if  necessary,  updates  the
+                      values  of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bLU\bUM\bMN\bNS\bS.  This option is enabled by
                       default.
-              c\bcm\bmd\bdh\bhi\bis\bst\bt If  set,  b\bba\bas\bsh\bh attempts to save all lines of a multiple-
-                      line command in the same  history  entry.   This  allows
-                      easy  re-editing of multi-line commands.  This option is
-                      enabled by default, but only has an  effect  if  command
-                      history  is  enabled, as described in _\bb_\ba_\bs_\bh_\b(_\b1_\b) under H\bHI\bIS\bS-\b-
+              c\bcm\bmd\bdh\bhi\bis\bst\bt If set, b\bba\bas\bsh\bh attempts to save all lines of  a  multiple-
+                      line  command  in  the  same history entry.  This allows
+                      easy re-editing of multi-line commands.  This option  is
+                      enabled  by  default,  but only has an effect if command
+                      history is enabled, as described in _\bb_\ba_\bs_\bh_\b(_\b1_\b)  under  H\bHI\bIS\bS-\b-
                       T\bTO\bOR\bRY\bY.
               c\bco\bom\bmp\bpa\bat\bt3\b31\b1
               c\bco\bom\bmp\bpa\bat\bt3\b32\b2
@@ -1413,122 +1424,122 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               c\bco\bom\bmp\bpa\bat\bt4\b43\b3
               c\bco\bom\bmp\bpa\bat\bt4\b44\b4
               c\bco\bom\bmp\bpa\bat\bt5\b50\b0
-                      These control aspects of the shell's compatibility  mode
+                      These  control aspects of the shell's compatibility mode
                       (see S\bSH\bHE\bEL\bLL\bL C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY M\bMO\bOD\bDE\bE in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).
 
               c\bco\bom\bmp\bpl\ble\bet\bte\be_\b_f\bfu\bul\bll\blq\bqu\buo\bot\bte\be
-                      If  set,  b\bba\bas\bsh\bh  quotes all shell metacharacters in file-
-                      names and directory names  when  performing  completion.
+                      If set, b\bba\bas\bsh\bh quotes all shell  metacharacters  in  file-
+                      names  and  directory  names when performing completion.
                       If not set, b\bba\bas\bsh\bh removes metacharacters such as the dol-
-                      lar sign from the set of characters that will be  quoted
-                      in  completed filenames when these metacharacters appear
-                      in shell variable references in words to  be  completed.
-                      This  means that dollar signs in variable names that ex-
-                      pand to directories will not  be  quoted;  however,  any
-                      dollar  signs appearing in filenames will not be quoted,
-                      either.  This is active only when bash  is  using  back-
-                      slashes  to quote completed filenames.  This variable is
-                      set by default, which is the default  bash  behavior  in
+                      lar  sign from the set of characters that will be quoted
+                      in completed filenames when these metacharacters  appear
+                      in  shell  variable references in words to be completed.
+                      This means that dollar signs in variable names that  ex-
+                      pand  to  directories  will  not be quoted; however, any
+                      dollar signs appearing in filenames will not be  quoted,
+                      either.   This  is  active only when bash is using back-
+                      slashes to quote completed filenames.  This variable  is
+                      set  by  default,  which is the default bash behavior in
                       versions through 4.2.
 
               d\bdi\bir\bre\bex\bxp\bpa\ban\bnd\bd
-                      If  set,  b\bba\bas\bsh\bh replaces directory names with the results
-                      of word expansion when performing  filename  completion.
-                      This  changes  the contents of the readline editing buf-
-                      fer.  If not set, b\bba\bas\bsh\bh attempts  to  preserve  what  the
+                      If set, b\bba\bas\bsh\bh replaces directory names with  the  results
+                      of  word  expansion when performing filename completion.
+                      This changes the contents of the readline  editing  buf-
+                      fer.   If  not  set,  b\bba\bas\bsh\bh attempts to preserve what the
                       user typed.
 
               d\bdi\bir\brs\bsp\bpe\bel\bll\bl
-                      If  set,  b\bba\bas\bsh\bh attempts spelling correction on directory
-                      names during word completion if the directory name  ini-
+                      If set, b\bba\bas\bsh\bh attempts spelling correction  on  directory
+                      names  during word completion if the directory name ini-
                       tially supplied does not exist.
 
-              d\bdo\bot\btg\bgl\blo\bob\bb If  set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
-                      the results of pathname expansion.  The filenames  `\b``\b`.\b.'\b''\b'
-                      and  `\b``\b`.\b..\b.'\b''\b'   must always be matched explicitly, even if
+              d\bdo\bot\btg\bgl\blo\bob\bb If set, b\bba\bas\bsh\bh includes filenames beginning with a `.'  in
+                      the  results of pathname expansion.  The filenames `\b``\b`.\b.'\b''\b'
+                      and `\b``\b`.\b..\b.'\b''\b'  must always be matched explicitly,  even  if
                       d\bdo\bot\btg\bgl\blo\bob\bb is set.
 
               e\bex\bxe\bec\bcf\bfa\bai\bil\bl
                       If set, a non-interactive shell will not exit if it can-
-                      not  execute  the  file  specified as an argument to the
-                      e\bex\bxe\bec\bbuiltin command.  An  interactive  shell  does  not
+                      not execute the file specified as  an  argument  to  the
+                      e\bex\bxe\bec\b builtin  command.   An  interactive shell does not
                       exit if e\bex\bxe\bec\bc fails.
 
               e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
                       If set, aliases are expanded as described in _\bb_\ba_\bs_\bh_\b(_\b1_\b) un-
-                      der A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for  in-
+                      der  A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for in-
                       teractive shells.
 
               e\bex\bxt\btd\bde\beb\bbu\bug\bg
-                      If  set at shell invocation, or in a shell startup file,
+                      If set at shell invocation, or in a shell startup  file,
                       arrange to execute the debugger profile before the shell
-                      starts,  identical to the -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br option.  If set af-
-                      ter invocation, behavior intended for use  by  debuggers
+                      starts, identical to the -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br option.  If set  af-
+                      ter  invocation,  behavior intended for use by debuggers
                       is enabled:
 
                       1\b1.\b.     The -\b-F\bF option to the d\bde\bec\bcl\bla\bar\bre\be builtin displays the
                              source file name and line number corresponding to
                              each function name supplied as an argument.
 
-                      2\b2.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG trap returns a
-                             non-zero value, the next command is  skipped  and
+                      2\b2.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
+                             non-zero  value,  the next command is skipped and
                              not executed.
 
-                      3\b3.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG trap returns a
-                             value of 2, and the shell is executing in a  sub-
-                             routine  (a shell function or a shell script exe-
-                             cuted by the .\b. or  s\bso\bou\bur\brc\bce\be  builtins),  the  shell
+                      3\b3.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
+                             value  of 2, and the shell is executing in a sub-
+                             routine (a shell function or a shell script  exe-
+                             cuted  by  the  .\b.  or s\bso\bou\bur\brc\bce\be builtins), the shell
                              simulates a call to r\bre\bet\btu\bur\brn\bn.
 
-                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\b and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as described
+                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\band B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as  described
                              in their descriptions in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).
 
-                      5\b5.\b.     Function tracing is  enabled:  command  substitu-
+                      5\b5.\b.     Function  tracing  is  enabled: command substitu-
                              tion, shell functions, and subshells invoked with
                              (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
 
-                      6\b6.\b.     Error tracing is enabled:  command  substitution,
-                             shell  functions,  and  subshells  invoked with (\b(
+                      6\b6.\b.     Error  tracing  is enabled: command substitution,
+                             shell functions, and  subshells  invoked  with  (\b(
                              _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bR trap.
 
               e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
                       in _\bb_\ba_\bs_\bh_\b(_\b1_\b) under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
 
               e\bex\bxt\btq\bqu\buo\bot\bte\be
-                      If  set,  $\b$'_\bs_\bt_\br_\bi_\bn_\bg'  and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
-                      within  $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}  expansions  enclosed   in   double
+                      If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg"  quoting  is  performed
+                      within   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
                       quotes.  This option is enabled by default.
 
               f\bfa\bai\bil\blg\bgl\blo\bob\bb
-                      If  set,  patterns  which fail to match filenames during
+                      If set, patterns which fail to  match  filenames  during
                       pathname expansion result in an expansion error.
 
               f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
-                      If set, the suffixes  specified  by  the  F\bFI\bIG\bGN\bNO\bOR\bRE\b shell
-                      variable  cause words to be ignored when performing word
+                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
+                      variable cause words to be ignored when performing  word
                       completion even if the ignored words are the only possi-
-                      ble  completions.   See S\bSH\bHE\bEL\bLL\bL V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS in _\bb_\ba_\bs_\bh_\b(_\b1_\b) for a
-                      description of F\bFI\bIG\bGN\bNO\bOR\bRE\bE.  This option is enabled  by  de-
+                      ble completions.  See S\bSH\bHE\bEL\bLL\bL V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS in _\bb_\ba_\bs_\bh_\b(_\b1_\b)  for  a
+                      description  of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.  This option is enabled by de-
                       fault.
 
               g\bgl\blo\bob\bba\bas\bsc\bci\bii\bir\bra\ban\bng\bge\bes\bs
-                      If  set,  range  expressions  used  in  pattern matching
-                      bracket expressions (see P\bPa\bat\btt\bte\ber\brn\bn  M\bMa\bat\btc\bch\bhi\bin\bng\bg  in  _\bb_\ba_\bs_\bh_\b(_\b1_\b))
+                      If set,  range  expressions  used  in  pattern  matching
+                      bracket  expressions  (see  P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg in _\bb_\ba_\bs_\bh_\b(_\b1_\b))
                       behave as if in the traditional C locale when performing
-                      comparisons.  That is, the  current  locale's  collating
-                      sequence  is  not taken into account, so b\bb will not col-
-                      late between A\bA and  B\bB,  and  upper-case  and  lower-case
+                      comparisons.   That  is,  the current locale's collating
+                      sequence is not taken into account, so b\bb will  not  col-
+                      late  between  A\bA  and  B\bB,  and upper-case and lower-case
                       ASCII characters will collate together.
 
               g\bgl\blo\bob\bbs\bsk\bki\bip\bpd\bdo\bot\bts\bs
-                      If  set,  pathname  expansion will never match the file-
+                      If set, pathname expansion will never  match  the  file-
                       names `\b``\b`.\b.'\b''\b'  and `\b``\b`.\b..\b.'\b''\b', even if the pattern begins with
                       a `\b``\b`.\b.'\b''\b'.  This option is enabled by default.
 
               g\bgl\blo\bob\bbs\bst\bta\bar\br
                       If set, the pattern *\b**\b* used in a pathname expansion con-
-                      text will match all files and zero or  more  directories
-                      and  subdirectories.  If the pattern is followed by a /\b/,
+                      text  will  match all files and zero or more directories
+                      and subdirectories.  If the pattern is followed by a  /\b/,
                       only directories and subdirectories match.
 
               g\bgn\bnu\bu_\b_e\ber\brr\brf\bfm\bmt\bt
@@ -1536,25 +1547,25 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       GNU error message format.
 
               h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd
-                      If  set,  the history list is appended to the file named
+                      If set, the history list is appended to the  file  named
                       by the value of the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable when the shell ex-
                       its, rather than overwriting the file.
 
               h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt
-                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given the
+                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given  the
                       opportunity to re-edit a failed history substitution.
 
               h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by
-                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of  his-
-                      tory  substitution  are  not  immediately  passed to the
-                      shell parser.  Instead, the  resulting  line  is  loaded
+                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of his-
+                      tory substitution are  not  immediately  passed  to  the
+                      shell  parser.   Instead,  the  resulting line is loaded
                       into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer, allowing further modi-
                       fication.
 
               h\bho\bos\bst\btc\bco\bom\bmp\bpl\ble\bet\bte\be
                       If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will attempt to
-                      perform  hostname  completion when a word containing a @\b@
-                      is being completed (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\b in
+                      perform hostname completion when a word containing  a  @\b@
+                      is  being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg under R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE in
                       _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  This is enabled by default.
 
               h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
@@ -1562,23 +1573,23 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       active login shell exits.
 
               i\bin\bnh\bhe\ber\bri\bit\bt_\b_e\ber\brr\bre\bex\bxi\bit\bt
-                      If set, command substitution inherits the value  of  the
-                      e\ber\brr\bre\bex\bxi\bit\b option, instead of unsetting it in the subshell
-                      environment.  This option is enabled when _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\b is
+                      If  set,  command substitution inherits the value of the
+                      e\ber\brr\bre\bex\bxi\bit\boption, instead of unsetting it in the  subshell
+                      environment.   This option is enabled when _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be is
                       enabled.
 
               i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs
                       If set, allow a word beginning with #\b# to cause that word
-                      and all remaining characters on that line to be  ignored
+                      and  all remaining characters on that line to be ignored
                       in an interactive shell (see C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  This
                       option is enabled by default.
 
               l\bla\bas\bst\btp\bpi\bip\bpe\be
-                      If set, and job control is not active,  the  shell  runs
+                      If  set,  and  job control is not active, the shell runs
                       the last command of a pipeline not executed in the back-
                       ground in the current shell environment.
 
-              l\bli\bit\bth\bhi\bis\bst\bt If set, and the c\bcm\bmd\bdh\bhi\bis\bst\bt option  is  enabled,  multi-line
+              l\bli\bit\bth\bhi\bis\bst\bt If  set,  and  the c\bcm\bmd\bdh\bhi\bis\bst\bt option is enabled, multi-line
                       commands are saved to the history with embedded newlines
                       rather than using semicolon separators where possible.
 
@@ -1589,125 +1600,125 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       tribute is not inherited.
 
               l\blo\boc\bca\bal\blv\bva\bar\br_\b_u\bun\bns\bse\bet\bt
-                      If  set,  calling  u\bun\bns\bse\bet\bt  on local variables in previous
-                      function scopes marks them so  subsequent  lookups  find
-                      them  unset until that function returns. This is identi-
-                      cal to the behavior of unsetting local variables at  the
+                      If set, calling u\bun\bns\bse\bet\bt on  local  variables  in  previous
+                      function  scopes  marks  them so subsequent lookups find
+                      them unset until that function returns. This is  identi-
+                      cal  to the behavior of unsetting local variables at the
                       current function scope.
 
               l\blo\bog\bgi\bin\bn_\b_s\bsh\bhe\bel\bll\bl
-                      The  shell  sets this option if it is started as a login
+                      The shell sets this option if it is started as  a  login
                       shell (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  The value may not be
                       changed.
 
               m\bma\bai\bil\blw\bwa\bar\brn\bn
-                      If  set,  and  a file that b\bba\bas\bsh\bh is checking for mail has
-                      been accessed since the last time it  was  checked,  the
-                      message  ``The  mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read'' is dis-
+                      If set, and a file that b\bba\bas\bsh\bh is checking  for  mail  has
+                      been  accessed  since  the last time it was checked, the
+                      message ``The mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read''  is  dis-
                       played.
 
               n\bno\bo_\b_e\bem\bmp\bpt\bty\by_\b_c\bcm\bmd\bd_\b_c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
-                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh  will  not  at-
-                      tempt  to  search the P\bPA\bAT\bTH\bH for possible completions when
+                      If  set,  and  r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will not at-
+                      tempt to search the P\bPA\bAT\bTH\bH for possible  completions  when
                       completion is attempted on an empty line.
 
               n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb
-                      If set, b\bba\bas\bsh\bh matches  filenames  in  a  case-insensitive
+                      If  set,  b\bba\bas\bsh\bh  matches  filenames in a case-insensitive
                       fashion when performing pathname expansion (see P\bPa\bat\bth\bhn\bna\bam\bme\be
                       E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).
 
               n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
-                      If set, b\bba\bas\bsh\bh  matches  patterns  in  a  case-insensitive
+                      If  set,  b\bba\bas\bsh\bh  matches  patterns  in a case-insensitive
                       fashion when performing matching while executing c\bca\bas\bse\be or
                       [\b[[\b[ conditional commands, when performing pattern substi-
-                      tution  word expansions, or when filtering possible com-
+                      tution word expansions, or when filtering possible  com-
                       pletions as part of programmable completion.
 
               n\bno\boe\bex\bxp\bpa\ban\bnd\bd_\b_t\btr\bra\ban\bns\bsl\bla\bat\bti\bio\bon\bn
-                      If set, b\bba\bas\bsh\bh encloses the translated results  of  $"..."
-                      quoting  in  single quotes instead of double quotes.  If
+                      If  set,  b\bba\bas\bsh\bh encloses the translated results of $"..."
+                      quoting in single quotes instead of double  quotes.   If
                       the string is not translated, this has no effect.
 
               n\bnu\bul\bll\blg\bgl\blo\bob\bb
-                      If set, b\bba\bas\bsh\bh allows patterns which match no  files  (see
-                      P\bPa\bat\bth\bhn\bna\bam\bme\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn  in  _\bb_\ba_\bs_\bh_\b(_\b1_\b))  to  expand  to a null
+                      If  set,  b\bba\bas\bsh\bh allows patterns which match no files (see
+                      P\bPa\bat\bth\bhn\bna\bam\bme\bE\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn in  _\bb_\ba_\bs_\bh_\b(_\b1_\b))  to  expand  to  a  null
                       string, rather than themselves.
 
               p\bpa\bat\bts\bsu\bub\bb_\b_r\bre\bep\bpl\bla\bac\bce\bem\bme\ben\bnt\bt
                       If set, b\bba\bas\bsh\bh expands occurrences of &\b& in the replacement
-                      string  of  pattern  substitution to the text matched by
-                      the pattern, as described under P\bPa\bar\bra\bam\bme\bet\bte\ber\br  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\b in
+                      string of pattern substitution to the  text  matched  by
+                      the  pattern,  as described under P\bPa\bar\bra\bam\bme\bet\bte\ber\br E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn in
                       _\bb_\ba_\bs_\bh_\b(_\b1_\b).  This option is enabled by default.
 
               p\bpr\bro\bog\bgc\bco\bom\bmp\bp
                       If set, the programmable completion facilities (see P\bPr\bro\bo-\b-
-                      g\bgr\bra\bam\bmm\bma\bab\bbl\ble\bC\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn in _\bb_\ba_\bs_\bh_\b(_\b1_\b)) are enabled.  This  op-
+                      g\bgr\bra\bam\bmm\bma\bab\bbl\ble\b C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn in _\bb_\ba_\bs_\bh_\b(_\b1_\b)) are enabled.  This op-
                       tion is enabled by default.
 
               p\bpr\bro\bog\bgc\bco\bom\bmp\bp_\b_a\bal\bli\bia\bas\bs
-                      If  set,  and  programmable  completion is enabled, b\bba\bas\bsh\bh
-                      treats a command name that doesn't have any  completions
-                      as  a possible alias and attempts alias expansion. If it
-                      has an alias, b\bba\bas\bsh\bh attempts programmable completion  us-
+                      If set, and programmable  completion  is  enabled,  b\bba\bas\bsh\bh
+                      treats  a command name that doesn't have any completions
+                      as a possible alias and attempts alias expansion. If  it
+                      has  an alias, b\bba\bas\bsh\bh attempts programmable completion us-
                       ing the command word resulting from the expanded alias.
 
               p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
                       If set, prompt strings undergo parameter expansion, com-
-                      mand substitution, arithmetic expansion, and  quote  re-
-                      moval  after being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG in
+                      mand  substitution,  arithmetic expansion, and quote re-
+                      moval after being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\b in
                       _\bb_\ba_\bs_\bh_\b(_\b1_\b).  This option is enabled by default.
 
               r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
-                      The shell sets this option  if  it  is  started  in  re-
-                      stricted  mode  (see  R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  The
-                      value may not be changed.  This is not  reset  when  the
-                      startup  files  are executed, allowing the startup files
+                      The  shell  sets  this  option  if  it is started in re-
+                      stricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL  in  _\bb_\ba_\bs_\bh_\b(_\b1_\b)).   The
+                      value  may  not  be changed.  This is not reset when the
+                      startup files are executed, allowing the  startup  files
                       to discover whether or not a shell is restricted.
 
               s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
-                      If set, the s\bsh\bhi\bif\bft\bt builtin prints an error  message  when
+                      If  set,  the s\bsh\bhi\bif\bft\bt builtin prints an error message when
                       the shift count exceeds the number of positional parame-
                       ters.
 
               s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
                       If set, the .\b. (s\bso\bou\bur\brc\bce\be) builtin uses the value of P\bPA\bAT\bTH\bH to
-                      find  the  directory  containing the file supplied as an
+                      find the directory containing the file  supplied  as  an
                       argument.  This option is enabled by default.
 
               v\bva\bar\brr\bre\bed\bdi\bir\br_\b_c\bcl\blo\bos\bse\be
-                      If set, the shell automatically closes file  descriptors
+                      If  set, the shell automatically closes file descriptors
                       assigned using the _\b{_\bv_\ba_\br_\bn_\ba_\bm_\be_\b} redirection syntax (see R\bRE\bE-\b-
-                      D\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bin _\bb_\ba_\bs_\bh_\b(_\b1_\b)) instead of leaving them open  when
+                      D\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\b in _\bb_\ba_\bs_\bh_\b(_\b1_\b)) instead of leaving them open when
                       the command completes.
 
               x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
-                      If  set,  the  e\bec\bch\bho\bo builtin expands backslash-escape se-
+                      If set, the e\bec\bch\bho\bo builtin  expands  backslash-escape  se-
                       quences by default.
 
        s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
-              Suspend the execution of this shell until it receives a  S\bSI\bIG\bGC\bCO\bON\bNT\bT
-              signal.   A login shell, or a shell without job control enabled,
-              cannot be suspended; the -\b-f\bf option can be used to override  this
-              and  force  the  suspension.   The return status is 0 unless the
-              shell is a login shell or job control is not enabled and  -\b-f\b is
+              Suspend  the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
+              signal.  A login shell, or a shell without job control  enabled,
+              cannot  be suspended; the -\b-f\bf option can be used to override this
+              and force the suspension.  The return status  is  0  unless  the
+              shell  is  a login shell or job control is not enabled and -\b-f\bf is
               not supplied.
 
        t\bte\bes\bst\bt _\be_\bx_\bp_\br
        [\b[ _\be_\bx_\bp_\br ]\b]
               Return a status of 0 (true) or 1 (false) depending on the evalu-
               ation of the conditional expression _\be_\bx_\bp_\br.  Each operator and op-
-              erand  must be a separate argument.  Expressions are composed of
-              the primaries described in  _\bb_\ba_\bs_\bh_\b(_\b1_\b)  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\b E\bEX\bXP\bPR\bRE\bES\bS-\b-
+              erand must be a separate argument.  Expressions are composed  of
+              the  primaries  described  in  _\bb_\ba_\bs_\bh_\b(_\b1_\b) under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bS-\b-
               S\bSI\bIO\bON\bNS\bS.  t\bte\bes\bst\bt does not accept any options, nor does it accept and
               ignore an argument of -\b--\b- as signifying the end of options.
 
-              Expressions may  be  combined  using  the  following  operators,
-              listed  in  decreasing  order of precedence.  The evaluation de-
-              pends on the number of arguments; see  below.   Operator  prece-
+              Expressions  may  be  combined  using  the  following operators,
+              listed in decreasing order of precedence.   The  evaluation  de-
+              pends  on  the  number of arguments; see below.  Operator prece-
               dence is used when there are five or more arguments.
               !\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
               (\b( _\be_\bx_\bp_\br )\b)
-                     Returns  the value of _\be_\bx_\bp_\br.  This may be used to override
+                     Returns the value of _\be_\bx_\bp_\br.  This may be used to  override
                      the normal precedence of operators.
               _\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
                      True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
@@ -1724,157 +1735,157 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      null.
               2 arguments
                      If the first argument is !\b!, the expression is true if and
-                     only  if the second argument is null.  If the first argu-
-                     ment is one of the unary conditional operators listed  in
-                     _\bb_\ba_\bs_\bh_\b(_\b1_\b under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
+                     only if the second argument is null.  If the first  argu-
+                     ment  is one of the unary conditional operators listed in
+                     _\bb_\ba_\bs_\bh_\b(_\b1_\bunder C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression  is
                      true if the unary test is true.  If the first argument is
                      not a valid unary conditional operator, the expression is
                      false.
               3 arguments
                      The following conditions are applied in the order listed.
-                     If  the  second argument is one of the binary conditional
-                     operators listed in  _\bb_\ba_\bs_\bh_\b(_\b1_\b)  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\b E\bEX\bXP\bPR\bRE\bES\bS-\b-
-                     S\bSI\bIO\bON\bNS\bS,  the result of the expression is the result of the
-                     binary test using the first and third arguments as  oper-
-                     ands.   The -\b-a\ba and -\b-o\bo operators are considered binary op-
+                     If the second argument is one of the  binary  conditional
+                     operators  listed  in  _\bb_\ba_\bs_\bh_\b(_\b1_\b)  under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bS-\b-
+                     S\bSI\bIO\bON\bNS\bS, the result of the expression is the result of  the
+                     binary  test using the first and third arguments as oper-
+                     ands.  The -\b-a\ba and -\b-o\bo operators are considered binary  op-
                      erators when there are three arguments.  If the first ar-
-                     gument  is  !\b!, the value is the negation of the two-argu-
-                     ment test using the second and third arguments.   If  the
+                     gument is !\b!, the value is the negation of  the  two-argu-
+                     ment  test  using the second and third arguments.  If the
                      first argument is exactly (\b( and the third argument is ex-
-                     actly )\b), the result is the one-argument test of the  sec-
+                     actly  )\b), the result is the one-argument test of the sec-
                      ond argument.  Otherwise, the expression is false.
               4 arguments
                      The following conditions are applied in the order listed.
                      If the first argument is !\b!, the result is the negation of
-                     the  three-argument  expression composed of the remaining
-                     arguments.  the two-argument test using  the  second  and
-                     third  arguments.  If the first argument is exactly (\b( and
-                     the fourth argument is exactly )\b), the result is the  two-
-                     argument  test of the second and third arguments.  Other-
+                     the three-argument expression composed of  the  remaining
+                     arguments.   the  two-argument  test using the second and
+                     third arguments.  If the first argument is exactly (\b and
+                     the  fourth argument is exactly )\b), the result is the two-
+                     argument test of the second and third arguments.   Other-
                      wise, the expression is parsed and evaluated according to
                      precedence using the rules listed above.
               5 or more arguments
-                     The  expression  is  parsed  and  evaluated  according to
+                     The expression  is  parsed  and  evaluated  according  to
                      precedence using the rules listed above.
 
-              When used with t\bte\bes\bst\bt or [\b[, the <\b< and  >\b>  operators  sort  lexico-
+              When  used  with  t\bte\bes\bst\bt  or [\b[, the <\b< and >\b> operators sort lexico-
               graphically using ASCII ordering.
 
-       t\bti\bim\bme\bes\bs  Print  the  accumulated  user and system times for the shell and
+       t\bti\bim\bme\bes\bs  Print the accumulated user and system times for  the  shell  and
               for processes run from the shell.  The return status is 0.
 
        t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\bc_\bt_\bi_\bo_\bn] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
               The _\ba_\bc_\bt_\bi_\bo_\bn is a command that is read and executed when the shell
               receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc.  If _\ba_\bc_\bt_\bi_\bo_\bn is absent (and there is a
-              single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified  signal  is  reset  to  its
-              original  disposition  (the  value  it  had upon entrance to the
-              shell).  If _\ba_\bc_\bt_\bi_\bo_\bn is the null string the  signal  specified  by
-              each  _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored by the shell and by the commands it in-
+              single  _\bs_\bi_\bg_\bs_\bp_\be_\bc)  or  -\b-,  each  specified signal is reset to its
+              original disposition (the value it  had  upon  entrance  to  the
+              shell).   If  _\ba_\bc_\bt_\bi_\bo_\bn  is the null string the signal specified by
+              each _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored by the shell and by the commands it  in-
               vokes.
 
-              If no arguments are supplied, t\btr\bra\bap\bp displays the actions  associ-
+              If  no arguments are supplied, t\btr\bra\bap\bp displays the actions associ-
               ated with each trapped signal as a set of t\btr\bra\bap\bp commands that can
-              be reused as shell input to restore the current signal  disposi-
-              tions.   If  -\b-p\bp  is  given, and _\ba_\bc_\bt_\bi_\bo_\bn is not present, then t\btr\bra\bap\bp
-              displays the actions associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc  or,  if  none
+              be  reused as shell input to restore the current signal disposi-
+              tions.  If -\b-p\bp is given, and _\ba_\bc_\bt_\bi_\bo_\bn is  not  present,  then  t\btr\bra\bap\bp
+              displays  the  actions  associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc or, if none
               are supplied, for all trapped signals, as a set of t\btr\bra\bap\bp commands
-              that can be reused as shell input to restore the current  signal
-              dispositions.   The  -\b-P\bP  option  behaves similarly, but displays
-              only the actions associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc argument.  -\b-P\b re-
-              quires  at  least one _\bs_\bi_\bg_\bs_\bp_\be_\bc argument.  The -\b-P\bP or -\b-p\bp options to
-              t\btr\bra\bap\bmay be used in a subshell environment (e.g.,  command  sub-
-              stitution)  and, as long as they are used before t\btr\bra\bap\bp is used to
-              change a signal's handling, will display the state of  its  par-
+              that  can be reused as shell input to restore the current signal
+              dispositions.  The -\b-P\bP option  behaves  similarly,  but  displays
+              only  the actions associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc argument.  -\b-P\bP re-
+              quires at least one _\bs_\bi_\bg_\bs_\bp_\be_\bc argument.  The -\b-P\bP or -\b-p\bp  options  to
+              t\btr\bra\bap\b may  be used in a subshell environment (e.g., command sub-
+              stitution) and, as long as they are used before t\btr\bra\bap\bp is used  to
+              change  a  signal's handling, will display the state of its par-
               ent's traps.
 
-              The  -\b-l\bl  option  causes t\btr\bra\bap\bp to print a list of signal names and
-              their corresponding numbers.  Each _\bs_\bi_\bg_\bs_\bp_\be_\bc is  either  a  signal
-              name  defined  in  <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal number.  Signal names
+              The -\b-l\bl option causes t\btr\bra\bap\bp to print a list of  signal  names  and
+              their  corresponding  numbers.   Each _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a signal
+              name defined in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal  number.   Signal  names
               are case insensitive and the S\bSI\bIG\bG prefix is optional.
 
-              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0) the command _\ba_\bc_\bt_\bi_\bo_\bn is executed on  exit
-              from  the  shell.   If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\bc_\bt_\bi_\bo_\bn is
+              If  a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0) the command _\ba_\bc_\bt_\bi_\bo_\bn is executed on exit
+              from the shell.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the  command  _\ba_\bc_\bt_\bi_\bo_\b is
               executed before every _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command,
-              _\bs_\be_\bl_\be_\bc_\b command,  (( arithmetic command, [[ conditional command,
+              _\bs_\be_\bl_\be_\bc_\bcommand, (( arithmetic command, [[  conditional  command,
               arithmetic _\bf_\bo_\br command, and before the first command executes in
-              a  shell  function (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  Refer to the
-              description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the s\bsh\bho\bop\bpt\bt builtin for  de-
-              tails  of its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN,
-              the command _\ba_\bc_\bt_\bi_\bo_\bn is executed each time a shell function  or  a
-              script  executed  with the .\b. or s\bso\bou\bur\brc\bce\be builtins finishes execut-
+              a shell function (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR in _\bb_\ba_\bs_\bh_\b(_\b1_\b)).  Refer  to  the
+              description  of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the s\bsh\bho\bop\bpt\bt builtin for de-
+              tails of its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is  R\bRE\bET\bTU\bUR\bRN\bN,
+              the  command  _\ba_\bc_\bt_\bi_\bo_\bn is executed each time a shell function or a
+              script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins  finishes  execut-
               ing.
 
-              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, the command _\ba_\bc_\bt_\bi_\bo_\bn is executed  whenever  a
+              If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, the command _\ba_\bc_\bt_\bi_\bo_\bn is executed whenever a
               pipeline (which may consist of a single simple command), a list,
               or a compound command returns a non-zero exit status, subject to
-              the  following  conditions.  The E\bER\bRR\bR trap is not executed if the
+              the following conditions.  The E\bER\bRR\bR trap is not executed  if  the
               failed command is part of the command list immediately following
-              a  w\bwh\bhi\bil\ble\be  or u\bun\bnt\bti\bil\bl keyword, part of the test in an _\bi_\bf statement,
+              a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword, part of the test in an  _\bi_\b statement,
               part of a command executed in a &\b&&\b& or |\b||\b| list except the command
-              following  the final &\b&&\b& or |\b||\b|, any command in a pipeline but the
-              last, or if the command's return value is being  inverted  using
+              following the final &\b&&\b& or |\b||\b|, any command in a pipeline but  the
+              last,  or  if the command's return value is being inverted using
               !\b!.  These are the same conditions obeyed by the e\ber\brr\bre\bex\bxi\bit\bt (-\b-e\be) op-
               tion.
 
               When the shell is not interactive, signals ignored upon entry to
               the shell cannot be trapped or reset.  Interactive shells permit
               trapping signals ignored on entry.  Trapped signals that are not
-              being  ignored  are reset to their original values in a subshell
-              or subshell environment when one is created.  The return  status
+              being ignored are reset to their original values in  a  subshell
+              or  subshell environment when one is created.  The return status
               is false if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is invalid; otherwise t\btr\bra\bap\bp returns true.
 
        t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
-              With  no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
+              With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted  if
               used as a command name.  If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
-              string  which  is  one  of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
-              _\bf_\bi_\bl_\bif  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word,  function,
-              builtin,  or executable disk file, respectively.  If the _\bn_\ba_\bm_\be is
-              not found, then nothing is printed, and t\bty\byp\bpe\be returns a  non-zero
-              exit  status.  If the -\b-p\bp option is used, t\bty\byp\bpe\be either returns the
-              name of the executable file that would  be  found  by  searching
-              $\b$P\bPA\bAT\bTH\b if  _\bn_\ba_\bm_\be  were specified as a command name, or nothing if
-              ``type -t name'' would not return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces  a
-              P\bPA\bAT\bTH\b search  for  each _\bn_\ba_\bm_\be, even if ``type -t name'' would not
+              string which is one of _\ba_\bl_\bi_\ba_\bs,  _\bk_\be_\by_\bw_\bo_\br_\bd,  _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn,  _\bb_\bu_\bi_\bl_\bt_\bi_\bn,  or
+              _\bf_\bi_\bl_\b if  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word, function,
+              builtin, or executable disk file, respectively.  If the _\bn_\ba_\bm_\b is
+              not  found, then nothing is printed, and t\bty\byp\bpe\be returns a non-zero
+              exit status.  If the -\b-p\bp option is used, t\bty\byp\bpe\be either returns  the
+              name  of  the  executable  file that would be found by searching
+              $\b$P\bPA\bAT\bTH\bif _\bn_\ba_\bm_\be were specified as a command name,  or  nothing  if
+              ``type  -t name'' would not return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a
+              P\bPA\bAT\bTH\bsearch for each _\bn_\ba_\bm_\be, even if ``type -t  name''  would  not
               return _\bf_\bi_\bl_\be.  If a command is hashed, -\b-p\bp and -\b-P\bP print the hashed
-              value,  which  is not necessarily the file that appears first in
-              P\bPA\bAT\bTH\bH.  If the -\b-a\ba option is used, t\bty\byp\bpe\be prints all of  the  places
-              that  contain  a command named _\bn_\ba_\bm_\be.  This includes aliases, re-
-              served words, functions, and builtins, but the path  search  op-
+              value, which is not necessarily the file that appears  first  in
+              P\bPA\bAT\bTH\bH.   If  the -\b-a\ba option is used, t\bty\byp\bpe\be prints all of the places
+              that contain a command named _\bn_\ba_\bm_\be.  This includes  aliases,  re-
+              served  words,  functions, and builtins, but the path search op-
               tions (-\b-p\bp and -\b-P\bP) can be supplied to restrict the output to exe-
-              cutable files.  t\bty\byp\bpe\be does not consult the table of  hashed  com-
+              cutable  files.   t\bty\byp\bpe\be does not consult the table of hashed com-
               mands when using -\b-a\ba with -\b-p\bp, and only performs a P\bPA\bAT\bTH\bH search for
-              _\bn_\ba_\bm_\be.  The -\b-f\bf option suppresses shell function lookup,  as  with
-              the  c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true if all of the arguments
+              _\bn_\ba_\bm_\be.   The  -\b-f\bf option suppresses shell function lookup, as with
+              the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true if all of the  arguments
               are found, false if any are not found.
 
        u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bS] -\b-a\ba
        u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bS] [-\b-b\bbc\bcd\bde\bef\bfi\bik\bkl\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bxP\bPR\bRT\bT [_\bl_\bi_\bm_\bi_\bt]]
-              Provides control over the resources available to the  shell  and
-              to  processes started by it, on systems that allow such control.
+              Provides  control  over the resources available to the shell and
+              to processes started by it, on systems that allow such  control.
               The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
-              for  the  given resource.  A hard limit cannot be increased by a
-              non-root user once it is set; a soft limit may be  increased  up
-              to  the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is speci-
+              for the given resource.  A hard limit cannot be increased  by  a
+              non-root  user  once it is set; a soft limit may be increased up
+              to the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is  speci-
               fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
               can be a number in the unit specified for the resource or one of
               the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
-              current  hard  limit,  the current soft limit, and no limit, re-
-              spectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, the current value of the  soft
+              current hard limit, the current soft limit, and  no  limit,  re-
+              spectively.   If _\bl_\bi_\bm_\bi_\bt is omitted, the current value of the soft
               limit of the resource is printed, unless the -\b-H\bH option is given.
-              When more than one resource is specified,  the  limit  name  and
-              unit,  if  appropriate, are printed before the value.  Other op-
+              When  more  than  one  resource is specified, the limit name and
+              unit, if appropriate, are printed before the value.   Other  op-
               tions are interpreted as follows:
               -\b-a\ba     All current limits are reported; no limits are set
               -\b-b\bb     The maximum socket buffer size
               -\b-c\bc     The maximum size of core files created
               -\b-d\bd     The maximum size of a process's data segment
               -\b-e\be     The maximum scheduling priority ("nice")
-              -\b-f\bf     The maximum size of files written by the  shell  and  its
+              -\b-f\bf     The  maximum  size  of files written by the shell and its
                      children
               -\b-i\bi     The maximum number of pending signals
               -\b-k\bk     The maximum number of kqueues that may be allocated
               -\b-l\bl     The maximum size that may be locked into memory
-              -\b-m\bm     The  maximum resident set size (many systems do not honor
+              -\b-m\bm     The maximum resident set size (many systems do not  honor
                      this limit)
               -\b-n\bn     The maximum number of open file descriptors (most systems
                      do not allow this value to be set)
@@ -1883,134 +1894,134 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-r\br     The maximum real-time scheduling priority
               -\b-s\bs     The maximum stack size
               -\b-t\bt     The maximum amount of cpu time in seconds
-              -\b-u\bu     The  maximum  number  of  processes available to a single
+              -\b-u\bu     The maximum number of processes  available  to  a  single
                      user
-              -\b-v\bv     The maximum amount of virtual  memory  available  to  the
+              -\b-v\bv     The  maximum  amount  of  virtual memory available to the
                      shell and, on some systems, to its children
               -\b-x\bx     The maximum number of file locks
               -\b-P\bP     The maximum number of pseudoterminals
-              -\b-R\bR     The  maximum  time  a  real-time  process  can run before
+              -\b-R\bR     The maximum time  a  real-time  process  can  run  before
                      blocking, in microseconds
               -\b-T\bT     The maximum number of threads
 
-              If _\bl_\bi_\bm_\bi_\bt is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt  is  the
-              new  value  of  the  specified resource.  If no option is given,
-              then -\b-f\bf is assumed.  Values are in 1024-byte increments,  except
-              for  -\b-t\bt,  which is in seconds; -\b-R\bR, which is in microseconds; -\b-p\bp,
-              which is in units of 512-byte blocks; -\b-P\bP, -\b-T\bT, -\b-b\bb,  -\b-k\bk,  -\b-n\bn,  and
-              -\b-u\bu,  which  are unscaled values; and, when in posix mode, -\b-c\bc and
-              -\b-f\bf, which are in 512-byte increments.  The return  status  is  0
-              unless  an  invalid  option or argument is supplied, or an error
+              If  _\bl_\bi_\bm_\bi_\bt  is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt is the
+              new value of the specified resource.  If  no  option  is  given,
+              then  -\b-f\bf is assumed.  Values are in 1024-byte increments, except
+              for -\b-t\bt, which is in seconds; -\b-R\bR, which is in  microseconds;  -\b-p\bp,
+              which  is  in  units of 512-byte blocks; -\b-P\bP, -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and
+              -\b-u\bu, which are unscaled values; and, when in posix mode,  -\b-c\b and
+              -\b-f\bf,  which  are  in 512-byte increments.  The return status is 0
+              unless an invalid option or argument is supplied,  or  an  error
               occurs while setting a new limit.
 
        u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
               The user file-creation mask is set to _\bm_\bo_\bd_\be.  If _\bm_\bo_\bd_\be begins with
-              a  digit,  it is interpreted as an octal number; otherwise it is
-              interpreted as a symbolic mode mask similar to that accepted  by
-              _\bc_\bh_\bm_\bo_\bd(1).   If _\bm_\bo_\bd_\be is omitted, the current value of the mask is
-              printed.  The -\b-S\bS option causes the mask to be  printed  in  sym-
-              bolic  form;  the  default output is an octal number.  If the -\b-p\bp
+              a digit, it is interpreted as an octal number; otherwise  it  is
+              interpreted  as a symbolic mode mask similar to that accepted by
+              _\bc_\bh_\bm_\bo_\bd(1).  If _\bm_\bo_\bd_\be is omitted, the current value of the mask  is
+              printed.   The  -\b-S\bS  option causes the mask to be printed in sym-
+              bolic form; the default output is an octal number.   If  the  -\b-p\bp
               option is supplied, and _\bm_\bo_\bd_\be is omitted, the output is in a form
               that may be reused as input.  The return status is 0 if the mode
-              was successfully changed or if no _\bm_\bo_\bd_\be  argument  was  supplied,
+              was  successfully  changed  or if no _\bm_\bo_\bd_\be argument was supplied,
               and false otherwise.
 
        u\bun\bna\bal\bli\bia\bas\bs [-a\ba] [_\bn_\ba_\bm_\be ...]
-              Remove  each  _\bn_\ba_\bm_\be  from  the list of defined aliases.  If -\b-a\ba is
-              supplied, all alias definitions are removed.  The  return  value
+              Remove each _\bn_\ba_\bm_\be from the list of defined  aliases.   If  -\b-a\b is
+              supplied,  all  alias definitions are removed.  The return value
               is true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
 
        u\bun\bns\bse\bet\bt [-f\bfv\bv] [-n\bn] [_\bn_\ba_\bm_\be ...]
-              For  each  _\bn_\ba_\bm_\be,  remove the corresponding variable or function.
+              For each _\bn_\ba_\bm_\be, remove the corresponding  variable  or  function.
               If the -\b-v\bv option is given, each _\bn_\ba_\bm_\be refers to a shell variable,
-              and  that  variable  is removed.  Read-only variables may not be
-              unset.  If -\b-f\bf is specified, each _\bn_\ba_\bm_\be refers to  a  shell  func-
-              tion,  and the function definition is removed.  If the -\b-n\bn option
-              is supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\b attribute,
-              _\bn_\ba_\bm_\b will  be unset rather than the variable it references.  -\b-n\bn
-              has no effect if the -\b-f\bf option is supplied.  If no  options  are
-              supplied,  each  _\bn_\ba_\bm_\be refers to a variable; if there is no vari-
-              able by that name, a function with that name, if any, is  unset.
-              Each  unset variable or function is removed from the environment
-              passed  to  subsequent  commands.   If  any   of   B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS,
+              and that variable is removed.  Read-only variables  may  not  be
+              unset.   If  -\b-f\bf  is specified, each _\bn_\ba_\bm_\be refers to a shell func-
+              tion, and the function definition is removed.  If the -\b-n\b option
+              is  supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\bf attribute,
+              _\bn_\ba_\bm_\bwill be unset rather than the variable it  references.   -\b-n\bn
+              has  no  effect if the -\b-f\bf option is supplied.  If no options are
+              supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is  no  vari-
+              able  by that name, a function with that name, if any, is unset.
+              Each unset variable or function is removed from the  environment
+              passed   to   subsequent  commands.   If  any  of  B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS,
               B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0,  B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS,  B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD,  B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL,  B\bBA\bAS\bSH\bHP\bPI\bID\bD,
-              C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK,  E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE,  E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS,  F\bFU\bUN\bNC\bC-\b-
-              N\bNA\bAM\bME\bE,  G\bGR\bRO\bOU\bUP\bPS\bS,  H\bHI\bIS\bST\bTC\bCM\bMD\bD, L\bLI\bIN\bNE\bEN\bNO\bO, R\bRA\bAN\bND\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS, or S\bSR\bRA\bAN\bND\bDO\bOM\bM are
+              C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS,  D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK,  E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE,  E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS, F\bFU\bUN\bNC\bC-\b-
+              N\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, H\bHI\bIS\bST\bTC\bCM\bMD\bD, L\bLI\bIN\bNE\bEN\bNO\bO, R\bRA\bAN\bND\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS, or  S\bSR\bRA\bAN\bND\bDO\bOM\b are
               unset, they lose their special properties, even if they are sub-
               sequently reset.  The exit status is true unless a _\bn_\ba_\bm_\be is read-
               only or may not be unset.
 
        w\bwa\bai\bit\bt [-\b-f\bfn\bn] [-\b-p\bp _\bv_\ba_\br_\bn_\ba_\bm_\be] [_\bi_\bd _\b._\b._\b.]
               Wait for each specified child process and return its termination
-              status.   Each _\bi_\bd may be a process ID or a job specification; if
-              a job spec is given, all processes in that  job's  pipeline  are
-              waited  for.   If  _\bi_\bd  is  not given, w\bwa\bai\bit\bt waits for all running
-              background jobs and the last-executed process  substitution,  if
+              status.  Each _\bi_\bd may be a process ID or a job specification;  if
+              a  job  spec  is given, all processes in that job's pipeline are
+              waited for.  If _\bi_\bd is not given,  w\bwa\bai\bit\bt  waits  for  all  running
+              background  jobs  and the last-executed process substitution, if
               its process id is the same as $\b$!\b!, and the return status is zero.
-              If the -\b-n\bn option is supplied, w\bwa\bai\bit\bt waits for a single  job  from
+              If  the  -\b-n\bn option is supplied, w\bwa\bai\bit\bt waits for a single job from
               the list of _\bi_\bds or, if no _\bi_\bds are supplied, any job, to complete
-              and returns its exit status.  If none of the supplied  arguments
+              and  returns its exit status.  If none of the supplied arguments
               is a child of the shell, or if no arguments are supplied and the
-              shell has no unwaited-for children, the exit status is 127.   If
-              the  -\b-p\bp option is supplied, the process or job identifier of the
-              job for which the exit status is returned  is  assigned  to  the
-              variable  _\bv_\ba_\br_\bn_\ba_\bm_\be  named  by  the option argument.  The variable
-              will be unset initially, before any assignment.  This is  useful
-              only  when  the -\b-n\bn option is supplied.  Supplying the -\b-f\bf option,
-              when job control is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to  ter-
+              shell  has no unwaited-for children, the exit status is 127.  If
+              the -\b-p\bp option is supplied, the process or job identifier of  the
+              job  for  which  the  exit status is returned is assigned to the
+              variable _\bv_\ba_\br_\bn_\ba_\bm_\be named by the  option  argument.   The  variable
+              will  be unset initially, before any assignment.  This is useful
+              only when the -\b-n\bn option is supplied.  Supplying the  -\b-f\b option,
+              when  job control is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to ter-
               minate before returning its status, instead of returning when it
-              changes status.  If _\bi_\bd specifies a non-existent process or  job,
-              the  return  status is 127.  If w\bwa\bai\bit\bt is interrupted by a signal,
-              the return status will be greater than 128, as  described  under
-              S\bSI\bIG\bGN\bNA\bAL\bLS\b in  _\bb_\ba_\bs_\bh_\b(_\b1_\b).   Otherwise, the return status is the exit
+              changes  status.  If _\bi_\bd specifies a non-existent process or job,
+              the return status is 127.  If w\bwa\bai\bit\bt is interrupted by  a  signal,
+              the  return  status will be greater than 128, as described under
+              S\bSI\bIG\bGN\bNA\bAL\bLS\bin _\bb_\ba_\bs_\bh_\b(_\b1_\b).  Otherwise, the return status  is  the  exit
               status of the last process or job waited for.
 
 S\bSH\bHE\bEL\bLL\bL C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY M\bMO\bOD\bDE\bE
-       Bash-4.0 introduced the concept of a _\bs_\bh_\be_\bl_\bl _\bc_\bo_\bm_\bp_\ba_\bt_\bi_\bb_\bi_\bl_\bi_\bt_\by _\bl_\be_\bv_\be_\bl,  speci-
-       fied  as  a  set  of options to the shopt builtin ( c\bco\bom\bmp\bpa\bat\bt3\b31\b1, c\bco\bom\bmp\bpa\bat\bt3\b32\b2,
-       c\bco\bom\bmp\bpa\bat\bt4\b40\b0, c\bco\bom\bmp\bpa\bat\bt4\b41\b1, and so on).  There is only one current  compatibil-
-       ity  level  --  each  option  is mutually exclusive.  The compatibility
-       level is intended to allow users to select behavior from previous  ver-
-       sions  that  is  incompatible  with  newer  versions while they migrate
-       scripts to use current features and behavior. It's  intended  to  be  a
+       Bash-4.0  introduced the concept of a _\bs_\bh_\be_\bl_\bl _\bc_\bo_\bm_\bp_\ba_\bt_\bi_\bb_\bi_\bl_\bi_\bt_\by _\bl_\be_\bv_\be_\bl, speci-
+       fied as a set of options to the shopt  builtin  (  c\bco\bom\bmp\bpa\bat\bt3\b31\b1,  c\bco\bom\bmp\bpa\bat\bt3\b32\b2,
+       c\bco\bom\bmp\bpa\bat\bt4\b40\b0,  c\bco\bom\bmp\bpa\bat\bt4\b41\b1, and so on).  There is only one current compatibil-
+       ity level -- each option  is  mutually  exclusive.   The  compatibility
+       level  is intended to allow users to select behavior from previous ver-
+       sions that is incompatible  with  newer  versions  while  they  migrate
+       scripts  to  use  current  features and behavior. It's intended to be a
        temporary solution.
 
-       This  section does not mention behavior that is standard for a particu-
-       lar version (e.g., setting c\bco\bom\bmp\bpa\bat\bt3\b32\b2 means that quoting the rhs  of  the
-       regexp  matching operator quotes special regexp characters in the word,
+       This section does not mention behavior that is standard for a  particu-
+       lar  version  (e.g., setting c\bco\bom\bmp\bpa\bat\bt3\b32\b2 means that quoting the rhs of the
+       regexp matching operator quotes special regexp characters in the  word,
        which is default behavior in bash-3.2 and subsequent versions).
 
-       If a user enables, say, c\bco\bom\bmp\bpa\bat\bt3\b32\b2, it may affect the behavior  of  other
-       compatibility  levels  up  to  and  including the current compatibility
-       level.  The idea is that each  compatibility  level  controls  behavior
-       that  changed  in that version of b\bba\bas\bsh\bh, but that behavior may have been
-       present in earlier versions.  For instance, the change to  use  locale-
-       based  comparisons  with  the  [\b[[\b[ command came in bash-4.1, and earlier
+       If  a  user enables, say, c\bco\bom\bmp\bpa\bat\bt3\b32\b2, it may affect the behavior of other
+       compatibility levels up to  and  including  the  current  compatibility
+       level.   The  idea  is  that each compatibility level controls behavior
+       that changed in that version of b\bba\bas\bsh\bh, but that behavior may  have  been
+       present  in  earlier versions.  For instance, the change to use locale-
+       based comparisons with the [\b[[\b[ command came  in  bash-4.1,  and  earlier
        versions used ASCII-based comparisons, so enabling c\bco\bom\bmp\bpa\bat\bt3\b32\b2 will enable
-       ASCII-based  comparisons  as  well.  That granularity may not be suffi-
-       cient for all uses, and as a result users should  employ  compatibility
-       levels  carefully.   Read the documentation for a particular feature to
+       ASCII-based comparisons as well.  That granularity may  not  be  suffi-
+       cient  for  all uses, and as a result users should employ compatibility
+       levels carefully.  Read the documentation for a particular  feature  to
        find out the current behavior.
 
-       Bash-4.3 introduced a new shell variable: B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT.  The  value  as-
+       Bash-4.3  introduced  a new shell variable: B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT.  The value as-
        signed to this variable (a decimal version number like 4.2, or an inte-
-       ger corresponding to the c\bco\bom\bmp\bpa\bat\bt_\bN_\bN option, like 42) determines the  com-
+       ger  corresponding to the c\bco\bom\bmp\bpa\bat\bt_\bN_\bN option, like 42) determines the com-
        patibility level.
 
-       Starting  with bash-4.4, Bash has begun deprecating older compatibility
-       levels.  Eventually, the options will be removed in favor of  B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bM-\b-
+       Starting with bash-4.4, Bash has begun deprecating older  compatibility
+       levels.   Eventually, the options will be removed in favor of B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bM-\b-
        P\bPA\bAT\bT.
 
-       Bash-5.0  is  the  final  version for which there will be an individual
-       shopt option for the previous version. Users should use B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\b on
+       Bash-5.0 is the final version for which there  will  be  an  individual
+       shopt  option for the previous version. Users should use B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT on
        bash-5.0 and later versions.
 
-       The  following  table describes the behavior changes controlled by each
+       The following table describes the behavior changes controlled  by  each
        compatibility level setting.  The c\bco\bom\bmp\bpa\bat\bt_\bN_\bN tag is used as shorthand for
        setting the compatibility level to _\bN_\bN using one of the following mecha-
-       nisms.  For versions prior to bash-5.0, the compatibility level may  be
-       set  using  the  corresponding c\bco\bom\bmp\bpa\bat\bt_\bN_\bN shopt option.  For bash-4.3 and
-       later versions, the B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT variable is preferred, and  it  is  re-
+       nisms.   For versions prior to bash-5.0, the compatibility level may be
+       set using the corresponding c\bco\bom\bmp\bpa\bat\bt_\bN_\bN shopt option.   For  bash-4.3  and
+       later  versions,  the  B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT variable is preferred, and it is re-
        quired for bash-5.1 and later versions.
 
        c\bco\bom\bmp\bpa\bat\bt3\b31\b1
@@ -2018,85 +2029,85 @@ S\bSH\bHE\bEL\bLL\bL C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY M\bMO\bOD\bDE\bE
                      ator (=~) has no special effect
 
        c\bco\bom\bmp\bpa\bat\bt3\b32\b2
-              +\bo      interrupting a command list such as "a ; b  ;  c"  causes
-                     the  execution  of  the  next  command  in  the  list (in
-                     bash-4.0 and later versions, the shell acts as if it  re-
-                     ceived  the  interrupt,  so interrupting one command in a
+              +\bo      interrupting  a  command  list such as "a ; b ; c" causes
+                     the execution  of  the  next  command  in  the  list  (in
+                     bash-4.0  and later versions, the shell acts as if it re-
+                     ceived the interrupt, so interrupting one  command  in  a
                      list aborts the execution of the entire list)
 
        c\bco\bom\bmp\bpa\bat\bt4\b40\b0
-              +\bo      the <\b< and >\b> operators to the [\b[[\b[ command do  not  consider
+              +\bo      the  <\b<  and >\b> operators to the [\b[[\b[ command do not consider
                      the current locale when comparing strings; they use ASCII
                      ordering.  Bash versions prior to bash-4.1 use ASCII col-
-                     lation  and _\bs_\bt_\br_\bc_\bm_\bp(3); bash-4.1 and later use the current
+                     lation and _\bs_\bt_\br_\bc_\bm_\bp(3); bash-4.1 and later use the  current
                      locale's collation sequence and _\bs_\bt_\br_\bc_\bo_\bl_\bl(3).
 
        c\bco\bom\bmp\bpa\bat\bt4\b41\b1
-              +\bo      in _\bp_\bo_\bs_\bi_\bx mode, t\bti\bim\bme\be may be followed by options and  still
+              +\bo      in  _\bp_\bo_\bs_\bi_\bx mode, t\bti\bim\bme\be may be followed by options and still
                      be recognized as a reserved word (this is POSIX interpre-
                      tation 267)
               +\bo      in _\bp_\bo_\bs_\bi_\bx mode, the parser requires that an even number of
-                     single  quotes  occur  in  the  _\bw_\bo_\br_\bd portion of a double-
-                     quoted parameter expansion and treats them specially,  so
-                     that  characters  within the single quotes are considered
+                     single quotes occur in the  _\bw_\bo_\br_\bd  portion  of  a  double-
+                     quoted  parameter expansion and treats them specially, so
+                     that characters within the single quotes  are  considered
                      quoted (this is POSIX interpretation 221)
 
        c\bco\bom\bmp\bpa\bat\bt4\b42\b2
               +\bo      the replacement string in double-quoted pattern substitu-
-                     tion  does  not undergo quote removal, as it does in ver-
+                     tion does not undergo quote removal, as it does  in  ver-
                      sions after bash-4.2
-              +\bo      in posix mode, single quotes are considered special  when
-                     expanding  the  _\bw_\bo_\br_\bd portion of a double-quoted parameter
-                     expansion and can be used to quote  a  closing  brace  or
-                     other  special character (this is part of POSIX interpre-
-                     tation 221); in later versions,  single  quotes  are  not
+              +\bo      in  posix mode, single quotes are considered special when
+                     expanding the _\bw_\bo_\br_\bd portion of a  double-quoted  parameter
+                     expansion  and  can  be  used to quote a closing brace or
+                     other special character (this is part of POSIX  interpre-
+                     tation  221);  in  later  versions, single quotes are not
                      special within double-quoted word expansions
 
        c\bco\bom\bmp\bpa\bat\bt4\b43\b3
-              +\bo      the  shell does not print a warning message if an attempt
-                     is made to use a quoted compound assignment as  an  argu-
-                     ment  to  declare  (e.g.,  declare -a foo='(1 2)'). Later
+              +\bo      the shell does not print a warning message if an  attempt
+                     is  made  to use a quoted compound assignment as an argu-
+                     ment to declare (e.g., declare  -a  foo='(1  2)').  Later
                      versions warn that this usage is deprecated
-              +\bo      word expansion errors  are  considered  non-fatal  errors
-                     that  cause  the  current  command to fail, even in posix
-                     mode (the default behavior is to make them  fatal  errors
+              +\bo      word  expansion  errors  are  considered non-fatal errors
+                     that cause the current command to  fail,  even  in  posix
+                     mode  (the  default behavior is to make them fatal errors
                      that cause the shell to exit)
-              +\bo      when   executing   a   shell  function,  the  loop  state
+              +\bo      when  executing  a  shell  function,   the   loop   state
                      (while/until/etc.)  is not reset, so b\bbr\bre\bea\bak\bk or c\bco\bon\bnt\bti\bin\bnu\bue\be in
                      that function will break or continue loops in the calling
-                     context. Bash-4.4 and later reset the loop state to  pre-
+                     context.  Bash-4.4 and later reset the loop state to pre-
                      vent this
 
        c\bco\bom\bmp\bpa\bat\bt4\b44\b4
-              +\bo      the  shell  sets  up  the  values  used  by B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV and
-                     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bso they can expand to  the  shell's  positional
+              +\bo      the shell sets  up  the  values  used  by  B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\b and
+                     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\b so  they  can expand to the shell's positional
                      parameters even if extended debugging mode is not enabled
-              +\bo      a  subshell  inherits  loops  from its parent context, so
-                     b\bbr\bre\bea\bak\bor  c\bco\bon\bnt\bti\bin\bnu\bue\be  will  cause  the  subshell  to  exit.
-                     Bash-5.0  and  later  reset the loop state to prevent the
+              +\bo      a subshell inherits loops from  its  parent  context,  so
+                     b\bbr\bre\bea\bak\b or  c\bco\bon\bnt\bti\bin\bnu\bue\be  will  cause  the  subshell  to exit.
+                     Bash-5.0 and later reset the loop state  to  prevent  the
                      exit
-              +\bo      variable assignments preceding builtins like  e\bex\bxp\bpo\bor\brt\b and
+              +\bo      variable  assignments  preceding builtins like e\bex\bxp\bpo\bor\brt\bt and
                      r\bre\bea\bad\bdo\bon\bnl\bly\by that set attributes continue to affect variables
                      with the same name in the calling environment even if the
                      shell is not in posix mode
 
        c\bco\bom\bmp\bpa\bat\bt5\b50\b0
-              +\bo      Bash-5.1  changed  the way $\b$R\bRA\bAN\bND\bDO\bOM\bM is generated to intro-
+              +\bo      Bash-5.1 changed the way $\b$R\bRA\bAN\bND\bDO\bOM\bM is generated  to  intro-
                      duce slightly more randomness. If the shell compatibility
-                     level  is  set  to  50 or lower, it reverts to the method
-                     from bash-5.0 and previous versions, so seeding the  ran-
-                     dom  number generator by assigning a value to R\bRA\bAN\bND\bDO\bOM\bM will
+                     level is set to 50 or lower, it  reverts  to  the  method
+                     from  bash-5.0 and previous versions, so seeding the ran-
+                     dom number generator by assigning a value to R\bRA\bAN\bND\bDO\bOM\b will
                      produce the same sequence as in bash-5.0
-              +\bo      If the command hash table is empty, bash  versions  prior
-                     to  bash-5.1 printed an informational message to that ef-
-                     fect, even when producing output that can  be  reused  as
-                     input.  Bash-5.1  suppresses that message when the -\b-l\bl op-
+              +\bo      If  the  command hash table is empty, bash versions prior
+                     to bash-5.1 printed an informational message to that  ef-
+                     fect,  even  when  producing output that can be reused as
+                     input. Bash-5.1 suppresses that message when the  -\b-l\b op-
                      tion is supplied.
 
        c\bco\bom\bmp\bpa\bat\bt5\b51\b1
-              +\bo      The u\bun\bns\bse\bet\bt builtin treats attempts  to  unset  array  sub-
-                     scripts  @\b@ and *\b* differently depending on whether the ar-
-                     ray is indexed or associative, and  differently  than  in
+              +\bo      The  u\bun\bns\bse\bet\bt  builtin  treats  attempts to unset array sub-
+                     scripts @\b@ and *\b* differently depending on whether the  ar-
+                     ray  is  indexed  or associative, and differently than in
                      previous versions.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
index 479b804bac9a6017c5152d95d7d6003192d84318..8dd2de798dcd89f89ef125c8e568c25e87e63546 100644 (file)
@@ -2,10 +2,10 @@
 Copyright (C) 1988-2023 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Fri Jan 27 15:17:14 EST 2023
+@set LASTCHANGE Tue Feb  7 15:46:55 EST 2023
 
 @set EDITION 5.2
 @set VERSION 5.2
 
-@set UPDATED 27 January 2023
-@set UPDATED-MONTH January 2023
+@set UPDATED 7 February 2023
+@set UPDATED-MONTH February 2023
diff --git a/input.c b/input.c
index 76496cd594846c363f0b48b5dbc2cd7869043843..73ffa3ec7d301e3276752d317b5c124f5fe74dfe 100644 (file)
--- a/input.c
+++ b/input.c
@@ -479,6 +479,10 @@ b_fill_buffer (BUFFERED_STREAM *bp)
   off_t o;
 
   CHECK_TERMSIG;
+
+  if (bp->b_flag & B_ERROR)    /* try making read errors `sticky' */
+    return EOF;
+
   /* In an environment where text and binary files are treated differently,
      compensate for lseek() on text files returning an offset different from
      the count of characters read() returns.  Text-mode streams have to be
diff --git a/input.h b/input.h
index f4d91b0437de1e07e1111432445bd40e0a75d24d..09a42119ffd2d42dc04068c9276a6d7870f12e51 100644 (file)
--- a/input.h
+++ b/input.h
@@ -67,6 +67,10 @@ extern int bash_input_fd_changed;
 #define beof(bp)       (((bp)->b_flag & B_EOF) != 0)   
 #define berror(bp)     (((bp)->b_flag & B_ERROR) != 0)
 
+#undef bclearerror
+
+#define bclearerror(bp)        ((bp)->b_flag &= ~(B_ERROR|B_EOF))
+
 #endif /* BUFFERED_INPUT */
 
 typedef union {
diff --git a/parse.y b/parse.y
index f5199f151d4f7c3d22bedc60c6fc0b8e6f7ddd9c..379fdaadb8790da6c3b4fa53aa438cdf239335d8 100644 (file)
--- a/parse.y
+++ b/parse.y
@@ -176,7 +176,7 @@ static int yy_stream_unget (int);
 
 static int shell_getc (int);
 static void shell_ungetc (int);
-static void discard_until (int);
+static int discard_until (int);
 
 static void push_string (char *, int, alias_t *);
 static void pop_string (void);
@@ -2822,7 +2822,7 @@ shell_ungetchar (void)
 
 /* Discard input until CHARACTER is seen, then push that character back
    onto the input stream. */
-static void
+static int
 discard_until (int character)
 {
   int c;
@@ -2832,6 +2832,7 @@ discard_until (int character)
 
   if (c != EOF)
     shell_ungetc (c);
+  return (c);
 }
 
 void
@@ -3440,7 +3441,13 @@ read_token (int command)
     {
       /* A comment.  Discard until EOL or EOF, and then return a newline. */
       parser_state |= PST_COMMENT;
-      discard_until ('\n');
+      character = discard_until ('\n');
+      if (character == EOF)
+       {
+         parser_state &= ~PST_COMMENT;
+         EOF_Reached = 1;
+         return (yacc_EOF);            /* XXX */
+       }
       shell_getc (0);
       parser_state &= ~PST_COMMENT;
       character = '\n';        /* this will take the next if statement and return. */