]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
history builtin has a -H option to display history entries as they would be written...
authorChet Ramey <chet.ramey@case.edu>
Mon, 5 Jan 2026 16:57:18 +0000 (11:57 -0500)
committerChet Ramey <chet.ramey@case.edu>
Mon, 5 Jan 2026 16:57:18 +0000 (11:57 -0500)
27 files changed:
CWRU/CWRU.chlog
MANIFEST
builtins/history.def
doc/Makefile.in
doc/bash.0
doc/bash.1
doc/bash.html
doc/bash.info
doc/bash.pdf
doc/bashref.aux
doc/bashref.bt
doc/bashref.bts
doc/bashref.html
doc/bashref.info
doc/bashref.log
doc/bashref.pdf
doc/builtins.0
doc/builtins.pdf
doc/version.texi
execute_cmd.c
lib/readline/doc/hsuser.texi
print_cmd.c
redir.c
tests/builtins.right
tests/history.right
tests/history.tests
tests/history11.sub [new file with mode: 0644]

index 15553f703cb627f91fb784fb7c92e58a218f6274..9ec9fe60203f109094460f3b80e02f1dbc797db4 100644 (file)
@@ -12447,3 +12447,38 @@ builtins/evalstring.c
 execute_cmd.c
        - execute_command_internal: set currently_executing_command to NULL
          in places where we return from this function
+
+                                  12/26
+                                  -----
+builtins/history.def
+       - -H: new option, means to display history entries as they would be
+         written to the history file, with timestamp information and without
+         line numbers or `*'
+       - listing now takes a START-END range argument, so you can list a
+         subset of the history list from START to END, with the format
+         subject to the -H option. If START > END, list in reverse order.
+         This moves history and fc functionality closer to convergence
+       - parse_range: new function, encapsulates parsing START-END history
+         range specifiction; used by deletion and listing
+
+doc/bash.1,doc/bashref.texi
+       - history: update with a description of ranges, add description of -H;
+         listing and deletion now reference range description
+
+                                  12/30
+                                  -----
+print_cmd.c
+       - print_case_clauses: reset was_heredoc to 0 after printing each case
+         clause, since any here-document must have been associated with the
+         command list following the pattern list and `)'
+         Report from "Stan Marsh" <gazelle@xmission.com> back in May, 2025
+
+                                  12/31
+                                  -----
+doc/Makefile.in
+       - dvi: remove from default targets as per latest GNU coding standards
+
+redir.c
+       - stdin_redirection: now take the entire REDIRECT * as its argument,
+         so we can do additional posix-mandated checking on redirections
+         like 0<&0, to satisfy interp 1913
index 3bf2fa24052a0be839d921e052e03e5adc0e5788..f2cacc8bf039b984722baa3074e5517184700bd1 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -697,7 +697,6 @@ doc/article.ps      f
 doc/rose94.ps  f
 #doc/bash.ps           f
 #doc/bashref.ps        f
-doc/bashref.dvi        f
 doc/bash.0             f
 doc/bashbug.0          f
 doc/builtins.0 f
@@ -1301,6 +1300,7 @@ tests/history7.sub        f
 tests/history8.sub     f
 tests/history9.sub     f
 tests/history10.sub    f
+tests/history11.sub    f
 tests/ifs.tests                f
 tests/ifs.right                f
 tests/ifs1.sub         f
index 4c36416c2b90667d646457ffe9b9261c8fd46bfc..478ae81898d534f4cf197f1418f1656e7cb6d3cd 100644 (file)
@@ -23,18 +23,32 @@ $PRODUCES history.c
 $BUILTIN history
 $FUNCTION history_builtin
 $DEPENDS_ON HISTORY
-$SHORT_DOC history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
+$SHORT_DOC history [-c] [-H] [-d range] [range] or history -anrw [filename] or history -ps arg [arg...]
 Display or manipulate the history list.
 
-Display the history list with line numbers, prefixing each modified
-entry with a `*'.  An argument of N lists only the last N entries.
+Without options, or if -H is supplied, display the portion of the
+history list specified by RANGE, as described below. If -H is not
+supplied, the list displays line numbers, prefixing each modified
+entry with a `*'.
+
+When listing or deleting history entries, RANGE is an argument of
+the form of a number OFFSET or a range START-END. If OFFSET is supplied,
+it references the history entry at position OFFSET; when listing, this
+displays the last OFFSET entries. A negative OFFSET is interpreted
+relative to one greater than the last history position, so negative
+OFFSETs count back from the end of the history list. START and END, if
+supplied, reference the portion of the history list beginning at position
+START through position END. Negative START and END count back from the
+end of the history list. When listing, if START is greater than END,
+the history entries are displayed in reverse order from START to END.
 
 Options:
   -c   clear the history list by deleting all of the entries
-  -d offset    delete the history entry at position OFFSET. Negative
-               offsets count back from the end of the history list
-  -d start-end delete the history entries beginning at position START
-               through position END.
+  -d range     delete the history entries specified by RANGE. RANGE is
+               described above.
+  -H   display the selected history entries in the format that would
+               be written to the history file, including any timestamp,
+               without prefixing any line number or `*'.
 
   -a   append history lines from this session to the history file
   -n   read all history lines not already read from the history file
@@ -93,7 +107,8 @@ extern int errno;
 #endif
 
 static char *histtime (HIST_ENTRY *, const char *);
-static int display_history (WORD_LIST *);
+static int parse_range (char *, char *, int *, int *);
+static int display_history (WORD_LIST *, int);
 static void push_history (WORD_LIST *);
 static int expand_and_print_history (WORD_LIST *);
 
@@ -105,6 +120,7 @@ static int expand_and_print_history (WORD_LIST *);
 #define PFLAG  0x20
 #define CFLAG  0x40
 #define DFLAG  0x80
+#define HFLAG  0x100
 
 #ifndef TIMELEN_MAX
 #  define TIMELEN_MAX 128
@@ -119,7 +135,7 @@ history_builtin (WORD_LIST *list)
 
   flags = 0;
   reset_internal_getopt ();
-  while ((opt = internal_getopt (list, "acd:npsrw")) != -1)
+  while ((opt = internal_getopt (list, "acd:npsrwH")) != -1)
     {
       switch (opt)
        {
@@ -150,6 +166,9 @@ history_builtin (WORD_LIST *list)
          flags |= PFLAG;
 #endif
          break;
+       case 'H':
+         flags |= HFLAG;
+         break;
        CASE_HELPOPT;
        default:
          builtin_usage ();
@@ -189,37 +208,11 @@ history_builtin (WORD_LIST *list)
 #endif
   else if ((flags & DFLAG) && (range = strchr ((delete_arg[0] == '-') ? delete_arg + 1 : delete_arg, '-')))
     {
-      intmax_t delete_start, delete_end;
-      *range++ = '\0';
-      if (valid_number (delete_arg, &delete_start) == 0 || valid_number (range, &delete_end) == 0)
-       {
-         range[-1] = '-';
-         sh_erange (delete_arg, _("history position"));
-         return (EXECUTION_FAILURE);
-       }
-      if (delete_arg[0] == '-' && delete_start < 0)
-       /* the_history[history_length] == 0x0, so this is correct */
-        delete_start += history_length;
-      /* numbers as displayed by display_history are offset by history_base */
-      else if (delete_start > 0)
-       delete_start -= history_base;
-
-      if (delete_start < 0 || delete_start >= history_length)
-       {
-         sh_erange (delete_arg, _("history position"));
-         return (EXECUTION_FAILURE);
-       }
+      int delete_start, delete_end;
 
-      if (range[0] == '-' && delete_end < 0)
-        delete_end += history_length;
-      else if (delete_end > 0)
-       delete_end -= history_base;
+      if (parse_range (delete_arg, range, &delete_start, &delete_end) != 0)
+       return (EXECUTION_FAILURE);
 
-      if (delete_end < 0 || delete_end >= history_length)
-       {
-         sh_erange (range, _("history position"));
-         return (EXECUTION_FAILURE);
-       }
       /* XXX - print error if end < start? */
       result = bash_delete_history_range (delete_start, delete_end);
       if (where_history () > history_length)
@@ -266,7 +259,7 @@ history_builtin (WORD_LIST *list)
     }
   else if ((flags & (AFLAG|RFLAG|NFLAG|WFLAG|CFLAG)) == 0)
     {
-      result = display_history (list);
+      result = display_history (list, flags);
       return (sh_chkwrite (result));
     }
 
@@ -366,49 +359,123 @@ histtime (HIST_ENTRY *hlist, const char *histtimefmt)
   return timestr;
 }
 
+/* Parse a range START-END into two offsets into the history list (offset by
+   history_base), return in *STARTP and *ENDP. Return 0 on success, non-zero
+   on failure. Negative START and END are offsets from history_length. */
 static int
-display_history (WORD_LIST *list)
+parse_range (char *arg, char *range, int *startp, int *endp)
 {
-  register int i;
+  intmax_t ls, le;
+
+  *range++ = '\0';
+  if (valid_number (arg, &ls) == 0 || valid_number (range, &le) == 0)
+    {
+      range[-1] = '-'; /* must point into ARG */
+      sh_erange (arg, _("history position"));
+      return (EXECUTION_FAILURE);
+    }
+  if (arg[0] == '-' && ls < 0)
+    ls += history_length;
+  else if (ls > 0)
+    ls -= history_base;
+  if (ls < 0 || ls >= history_length)
+    {
+      sh_erange (arg, _("history position"));
+      range[-1] = '-'; /* must point into ARG */
+      return (EXECUTION_FAILURE);
+    }
+  if (range[0] == '-' && le < 0)
+    le += history_length;
+  else if (le > 0)
+    le -= history_base;
+  if (le < 0 || le >= history_length)
+    {
+      sh_erange (range, _("history position"));
+      range[-1] = '-'; /* must point into ARG */
+      return (EXECUTION_FAILURE);
+    }
+
+  range[-1] = '-';
+  *startp = ls;
+  *endp = le;
+
+  return EXECUTION_SUCCESS;
+}
+
+static int
+display_history (WORD_LIST *list, int flags)
+{
+  int i, start, end, reverse;
   intmax_t limit;
   HIST_ENTRY **hlist;
-  char *histtimefmt, *timestr;
+  char *histtimefmt, *timestr, *range, *list_arg;
 
-  if (list)
+  reverse = 0;
+  if (list && list->word)
     {
-      if (get_numeric_arg (list, 0, &limit) == 0)
-       return (EX_USAGE);
+      list_arg = list->word->word;
+      range = strchr ((list_arg[0] == '-') ? list_arg + 1 : list_arg, '-');
+      if (range)
+       {
+         if (parse_range (list_arg, range, &start, &end) != 0)
+           return (EXECUTION_FAILURE);
+         if (end < start)      /* end < start means to print in reverse order */
+           {
+             int t;
+             t = end;
+             end = start;
+             start = t;
+             reverse = 1;
+           }
+       }
+      else
+       {
+         if (get_numeric_arg (list, 0, &limit) == 0)
+           return (EX_USAGE);
+         if (limit < 0)
+           limit = -limit;
 
-      if (limit < 0)
-       limit = -limit;
+         start = (0 <= limit && limit < history_length) ? history_length - limit : 0;
+         end = history_length - 1;
+       }
     }
   else
-    limit = -1;
+    {
+      start = 0;
+      end = history_length - 1;
+    }
 
   hlist = history_list ();
+  if (hlist == 0)
+    return (EXECUTION_SUCCESS);
+
+  histtimefmt = get_string_value ("HISTTIMEFORMAT");
 
-  if (hlist)
+  for (i = reverse ? end : start; reverse ? i >= start : i <= end; reverse ? i-- : i++)
     {
-      for (i = 0;  hlist[i]; i++)
-       ;
+      QUIT;
 
-      if (0 <= limit && limit < i)
-       i -= limit;
+      if (flags & HFLAG)
+       {
+         if (history_write_timestamps && hlist[i]->timestamp && hlist[i]->timestamp[0])
+           printf ("%s\n", hlist[i]->timestamp);
+         if (printf ("%s\n", histline (i)) < 0)
+           {
+             sh_wrerror ();
+             break;
+           }
+       }
       else
-       i = 0;
-
-      histtimefmt = get_string_value ("HISTTIMEFORMAT");
-
-      while (hlist[i])
        {
-         QUIT;
-
          timestr = (histtimefmt && *histtimefmt) ? histtime (hlist[i], histtimefmt) : (char *)NULL;
-         printf ("%5d%c %s%s\n", i + history_base,
-                 histdata(i) ? '*' : ' ',
-                 ((timestr && *timestr) ? timestr : ""),
-                 histline(i));
-         i++;
+         if (printf ("%5d%c %s%s\n", i + history_base,
+                       histdata (i) ? '*' : ' ',
+                       ((timestr && *timestr) ? timestr : ""),
+                       histline (i)) < 0)
+           {
+             sh_wrerror ();
+             break;
+           }
        }
     }
 
index e0e2a15b1cf797c2b2e48212f6b9282219a3ce09..1bb1483c4b39968d2f7d55cb6127b2ba3191e3c9 100644 (file)
@@ -154,8 +154,9 @@ BASHREF_FILES = $(srcdir)/bashref.texi $(srcdir)/fdl.texi $(srcdir)/version.texi
 #      $(RM) $@
 #      -${TEXI2PDF} $<
 
-all: info dvi text html pdf # $(MAN2HTML)
-nodvi: ps info text html
+all: info text html pdf # $(MAN2HTML)
+withdvi: pdf info text html dvi
+
 everything: all ps
 
 CREATED_PS = bash.ps bashref.ps
index 259d5bd2c7ff8d59ea5d90c0cf7f6fb689d7e52e..f858b6b547801140d0d63897571efdee34072fb2 100644 (file)
@@ -5841,8 +5841,8 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               ing  is  complete,  f\bfc\bc reads the file containing the edited com-
               mands and echoes and executes them.  The -\b-D\bD option, if supplied,
               causes f\bfc\bc to remove the selected commands from the history  list
-              before executing the file of edited commands.  -\b-D\bD is only active
-              when f\bfc\bc is invoked in this way.
+              before executing the file of edited commands.  -\b-D\bD is only effec-
+              tive when f\bfc\bc is invoked in this way.
 
               In  the second form, f\bfc\bc re-executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd after replacing each
               instance of _\bp_\ba_\bt with _\br_\be_\bp.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is interpreted  the  same  as
@@ -5973,21 +5973,36 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
               The return status is 0 unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
 
-       h\bhi\bis\bst\bto\bor\bry\by [\b[_\bn]\b]
+       h\bhi\bis\bst\bto\bor\bry\by [\b[-\b-H\bH]\b] [\b[_\br_\ba_\bn_\bg_\be]\b]
        h\bhi\bis\bst\bto\bor\bry\by -\b-c\bc
-       h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
-       h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd
+       h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\br_\ba_\bn_\bg_\be
        h\bhi\bis\bst\bto\bor\bry\by -\b-a\ban\bnr\brw\bw [_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be]
        h\bhi\bis\bst\bto\bor\bry\by -\b-p\bp _\ba_\br_\bg [_\ba_\br_\bg ...]
        h\bhi\bis\bst\bto\bor\bry\by -\b-s\bs _\ba_\br_\bg [_\ba_\br_\bg ...]
-              With  no options, display the command history list with numbers.
-              Entries prefixed with a *\b* have been modified.  An argument of  _\bn
-              lists  only the last _\bn entries.  If the shell variable H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
-              F\bFO\bOR\bRM\bMA\bAT\bT is set and not null, it is used as a  format  string  for
-              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3)  to display the time stamp associated with each dis-
-              played history entry.  If h\bhi\bis\bst\bto\bor\bry\by uses H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT,  it  does
-              not  print an intervening space between the formatted time stamp
-              and the history entry.
+              With  no  options, or with the -\b-H\bH option, display the portion of
+              the command history list specified by _\br_\ba_\bn_\bg_\be, as described below.
+              If _\br_\ba_\bn_\bg_\be is not specified,  display  the  entire  history  list.
+              Without -\b-H\bH, display the list with command numbers, prefixing en-
+              tries that have been modified with a "*".
+
+              A  _\br_\ba_\bn_\bg_\be argument is specified in the form of a number _\bo_\bf_\bf_\bs_\be_\bt or
+              a range _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd.  If _\bo_\bf_\bf_\bs_\be_\bt is  supplied,  it  references  the
+              history entry at position _\bo_\bf_\bf_\bs_\be_\bt in the history list; when list-
+              ing  this  displays  the last _\bo_\bf_\bf_\bs_\be_\bt entries.  A negative _\bo_\bf_\bf_\bs_\be_\bt
+              counts back from the end of the history list,  relative  to  one
+              greater  than the last history position.  When listing, negative
+              and positive _\bo_\bf_\bf_\bs_\be_\bt_\bs have identical results.  _\bs_\bt_\ba_\br_\bt and _\be_\bn_\bd,  if
+              supplied, reference the portion of the history list beginning at
+              position  _\bs_\bt_\ba_\br_\bt through position _\be_\bn_\bd.  If _\bs_\bt_\ba_\br_\bt or _\be_\bn_\bd are nega-
+              tive, they count back from the end of the  history  list.   When
+              listing,  if  _\bs_\bt_\ba_\br_\bt is greater than _\be_\bn_\bd, the history entries are
+              displayed in reverse order from _\be_\bn_\bd to _\bs_\bt_\ba_\br_\bt.
+
+              If the shell variable H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT is set and not null, it  is
+              used  as  a  format  string  for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to display the time
+              stamp associated with each displayed history entry.  If  h\bhi\bis\bst\bto\bor\bry\by
+              uses  H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT, it does not print an intervening space be-
+              tween the formatted time stamp and the history entry.
 
               If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is supplied, h\bhi\bis\bst\bto\bor\bry\by uses it as the name of the his-
               tory file; if not, it uses the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE.   If  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
@@ -5998,16 +6013,14 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-c\bc     Clear the history list by deleting all the entries.  This
                      can be used with the other options to replace the history
                      list.
-              -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
-                     Delete the history entry at position _\bo_\bf_\bf_\bs_\be_\bt.   If  _\bo_\bf_\bf_\bs_\be_\bt
-                     is negative, it is interpreted as relative to one greater
-                     than the last history position, so negative indices count
-                     back  from  the  end  of  the history, and an index of -1
-                     refers to the current h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd command.
-              -\b-d\bd _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd
-                     Delete the range of  history  entries  between  positions
-                     _\bs_\bt_\ba_\br_\bt  and  _\be_\bn_\bd, inclusive.  Positive and negative values
-                     for _\bs_\bt_\ba_\br_\bt and _\be_\bn_\bd are interpreted as described above.
+              -\b-d\bd _\br_\ba_\bn_\bg_\be
+                     Delete the history entries specified  by  _\br_\ba_\bn_\bg_\be,  as  de-
+                     scribed above.  An index of -1 refers to the current h\bhi\bis\bs-\b-
+                     t\bto\bor\bry\by -\b-d\bd command.
+              -\b-H\bH     Display  the  selected history entries in the format that
+                     would be written to the history file, including any  time
+                     stamp  information  as described below, without prefixing
+                     the entry with any line number or "*".
               -\b-a\ba     Append the "new"  history  lines  to  the  history  file.
                      These  are  history  lines entered since the beginning of
                      the current b\bba\bas\bsh\bh session, but not already appended to the
@@ -7577,4 +7590,4 @@ B\bBU\bUG\bGS\bS
 
        Array variables may not (yet) be exported.
 
-GNU Bash 5.3                   2025 December 18                        _\bB_\bA_\bS_\bH(1)
+GNU Bash 5.3                   2025 December 26                        _\bB_\bA_\bS_\bH(1)
index 145717cc8a5230806fcae45a701a3d7b10c5dfc9..c605d04ce1ee5910df03e2dba40ad89f31f3761b 100644 (file)
@@ -5,7 +5,7 @@
 .\"    Case Western Reserve University
 .\"    chet.ramey@case.edu
 .\"
-.\"    Last Change: Thu Dec 18 17:18:21 EST 2025
+.\"    Last Change: Fri Dec 26 18:21:22 EST 2025
 .\"
 .\" For bash_builtins, strip all but "SHELL BUILTIN COMMANDS" section
 .\" For rbash, strip all but "RESTRICTED SHELL" section
@@ -22,7 +22,7 @@
 .ds zX \" empty
 .if \n(zZ=1 .ig zZ
 .if \n(zY=1 .ig zY
-.TH BASH 1 "2025 December 18" "GNU Bash 5.3"
+.TH BASH 1 "2025 December 26" "GNU Bash 5.3"
 .\"
 .ie \n(.g \{\
 .ds ' \(aq
@@ -10413,7 +10413,7 @@ option, if supplied,
 causes \fBfc\fP to remove the selected commands from the history
 list before executing the file of edited commands.
 .B \-D
-is only active when \fBfc\fP is invoked in this way.
+is only effective when \fBfc\fP is invoked in this way.
 .IP
 In the second form, \fBfc\fP re-executes \fIcommand\fP
 after replacing each instance of \fIpat\fP with \fIrep\fP.
@@ -10660,14 +10660,12 @@ prints the descriptions of all matching help topics.
 The return status is 0 unless no command matches
 .IR pattern .
 .TP
-\fBhistory [\fIn\fP]
+\fBhistory [\fB\-H\fP] [\fIrange\fP]
 .PD 0
 .TP
 \fBhistory\fP \fB\-c\fP
 .TP
-\fBhistory \-d\fP \fIoffset\fP
-.TP
-\fBhistory \-d\fP \fIstart\fP-\fIend\fP
+\fBhistory \-d\fP \fIrange\fP
 .TP
 \fBhistory\fP \fB\-anrw\fP [\fIfilename\fP]
 .TP
@@ -10675,15 +10673,33 @@ The return status is 0 unless no command matches
 .TP
 \fBhistory\fP \fB\-s\fP \fIarg\fP [\fIarg\fP .\|.\|.]
 .PD
-With no options, display the command history list with numbers.
-Entries prefixed with a
-.B *
-have been modified.
-An argument of
-.I n
-lists only the last
-.I n
-entries.
+With no options,
+or with the \fB\-H\fP option,
+display the portion of the command history list
+specified by \fIrange\fP, as described below.
+If \fIrange\fP is not specified, display the entire history list.
+Without \fB\-H\fP, display the list with command numbers, prefixing
+entries that have been modified with a
+.Q "*" .
+.IP
+A
+.I range
+argument is specified in the form of a number \fIoffset\fP or
+a range \fIstart\fP\-\fIend\fP.
+If \fIoffset\fP is supplied, it references the history entry at
+position \fIoffset\fP in the history list;
+when listing this displays the last \fIoffset\fP entries.
+A negative \fIoffset\fP counts back from the end of the history list,
+relative to one greater than the last history position.
+When listing, negative and positive \fIoffsets\fP have identical results.
+\fIstart\fP and \fIend\fP, if supplied, reference the portion of
+the history list beginning at position \fIstart\fP through position
+\fIend\fP.
+If \fIstart\fP or \fIend\fP are negative, they count back from the
+end of the history list.
+When listing, if \fIstart\fP is greater than \fIend\fP, the history
+entries are displayed in reverse order from \fIend\fP to \fIstart\fP.
+.IP
 If the shell variable
 .SM
 .B HISTTIMEFORMAT
@@ -10717,18 +10733,16 @@ Options, if supplied, have the following meanings:
 Clear the history list by deleting all the entries.
 This can be used with the other options to replace the history list.
 .TP
-\fB\-d\fP \fIoffset\fP
-Delete the history entry at position \fIoffset\fP.
-If \fIoffset\fP is negative, it is interpreted as relative to one greater
-than the last history position, so negative indices count back from the
-end of the history, and an index of \-1 refers to the current
-\fBhistory \-d\fP command.
-.TP
-\fB\-d\fP \fIstart\fP\-\fIend\fP
-Delete the range of history entries between positions \fIstart\fP and
-\fIend\fP, inclusive.
-Positive and negative values for \fIstart\fP and \fIend\fP
-are interpreted as described above.
+\fB\-d\fP \fIrange\fP
+Delete the history entries specified by \fIrange\fP, as described above.
+An index of \-1 refers to the current \fBhistory \-d\fP command.
+.TP
+\fB\-H\fP
+Display the selected history entries in the format that would be written
+to the history file,
+including any time stamp information as described below,
+without prefixing the entry with any line number or
+.Q "*" .
 .TP
 .B \-a
 Append the
index 14e4e1944197cc0eeb89a74062f90c70384e7060..2f8fc02afbee833a014e86323abcac7fbc15114e 100644 (file)
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Dec  2 16:55:58 2025 -->
+<!-- CreationDate: Wed Dec 31 13:23:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
 <html>
@@ -12232,8 +12232,8 @@ with a <i>name</i> that is not a function.</p>
 </table>
 
 <p style="margin-left:9%;"><b>fc</b> [<b>&minus;e</b>
-<i>ename</i>] [<b>&minus;lnr</b>] [<i>first</i>]
-[<i>last</i>] <b><br>
+<i>ename</i>] [<b>&minus;D</b>] [<b>&minus;lnr</b>]
+[<i>first</i>] [<i>last</i>] <b><br>
 fc &minus;s</b> [<i>pat</i>=<i>rep</i>] [<i>cmd</i>]</p>
 
 <p style="margin-left:18%;">The first form selects a range
@@ -12271,7 +12271,11 @@ variable, and the value of <b><small>EDITOR</small></b> if
 <b><small>FCEDIT</small></b> is not set. If neither variable
 is set, <b>fc</b> uses <i>vi.</i> When editing is complete,
 <b>fc</b> reads the file containing the edited commands and
-echoes and executes them.</p>
+echoes and executes them. The <b>&minus;D</b> option, if
+supplied, causes <b>fc</b> to remove the selected commands
+from the history list before executing the file of edited
+commands. <b>&minus;D</b> is only effective when <b>fc</b>
+is invoked in this way.</p>
 
 <p style="margin-left:18%; margin-top: 1em">In the second
 form, <b>fc</b> re-executes <i>command</i> after replacing
@@ -12486,23 +12490,44 @@ prints the descriptions of all matching help topics.</p>
 <p style="margin-left:18%; margin-top: 1em">The return
 status is 0 unless no command matches <i>pattern</i>.</p>
 
-<p style="margin-left:9%;"><b>history [</b><i>n</i><b>]
-<br>
+<p style="margin-left:9%;"><b>history [&minus;H]
+[</b><i>range</i><b>] <br>
 history &minus;c <br>
-history &minus;d</b> <i>offset</i> <b><br>
-history &minus;d</b> <i>start</i>-<i>end</i> <b><br>
+history &minus;d</b> <i>range</i> <b><br>
 history &minus;anrw</b> [<i>filename</i>] <b><br>
 history &minus;p</b> <i>arg</i> [<i>arg</i> ...] <b><br>
 history &minus;s</b> <i>arg</i> [<i>arg</i> ...]</p>
 
-<p style="margin-left:18%;">With no options, display the
-command history list with numbers. Entries prefixed with a
-<b>*</b> have been modified. An argument of <i>n</i> lists
-only the last <i>n</i> entries. If the shell variable
-<b><small>HISTTIMEFORMAT</small></b> is set and not null, it
-is used as a format string for <i>strftime</i>(3) to display
-the time stamp associated with each displayed history entry.
-If <b>history</b> uses
+<p style="margin-left:18%;">With no options, or with the
+<b>&minus;H</b> option, display the portion of the command
+history list specified by <i>range</i>, as described below.
+If <i>range</i> is not specified, display the entire history
+list. Without <b>&minus;H</b>, display the list with command
+numbers, prefixing entries that have been modified with a
+&ldquo;*&rdquo;.</p>
+
+<p style="margin-left:18%; margin-top: 1em">A <i>range</i>
+argument is specified in the form of a number <i>offset</i>
+or a range <i>start</i>&minus;<i>end</i>. If <i>offset</i>
+is supplied, it references the history entry at position
+<i>offset</i> in the history list; when listing this
+displays the last <i>offset</i> entries. A negative
+<i>offset</i> counts back from the end of the history list,
+relative to one greater than the last history position. When
+listing, negative and positive <i>offsets</i> have identical
+results. <i>start</i> and <i>end</i>, if supplied, reference
+the portion of the history list beginning at position
+<i>start</i> through position <i>end</i>. If <i>start</i> or
+<i>end</i> are negative, they count back from the end of the
+history list. When listing, if <i>start</i> is greater than
+<i>end</i>, the history entries are displayed in reverse
+order from <i>end</i> to <i>start</i>.</p>
+
+<p style="margin-left:18%; margin-top: 1em">If the shell
+variable <b><small>HISTTIMEFORMAT</small></b> is set and not
+null, it is used as a format string for <i>strftime</i>(3)
+to display the time stamp associated with each displayed
+history entry. If <b>history</b> uses
 <b><small>HISTTIMEFORMAT</small></b><small>,</small> it does
 not print an intervening space between the formatted time
 stamp and the history entry.</p>
@@ -12537,22 +12562,12 @@ list.</p> </td></tr>
 </table>
 
 <p style="margin-left:18%;"><b>&minus;d</b>
-<i>offset</i></p>
-
-<p style="margin-left:27%;">Delete the history entry at
-position <i>offset</i>. If <i>offset</i> is negative, it is
-interpreted as relative to one greater than the last history
-position, so negative indices count back from the end of the
-history, and an index of &minus;1 refers to the current
-<b>history &minus;d</b> command.</p>
-
-<p style="margin-left:18%;"><b>&minus;d</b>
-<i>start</i>&minus;<i>end</i></p>
+<i>range</i></p>
 
-<p style="margin-left:27%;">Delete the range of history
-entries between positions <i>start</i> and <i>end</i>,
-inclusive. Positive and negative values for <i>start</i> and
-<i>end</i> are interpreted as described above.</p>
+<p style="margin-left:27%;">Delete the history entries
+specified by <i>range</i>, as described above. An index of
+&minus;1 refers to the current <b>history &minus;d</b>
+command.</p>
 
 <table width="100%" border="0" rules="none" frame="void"
        cellspacing="0" cellpadding="0">
@@ -12561,6 +12576,20 @@ inclusive. Positive and negative values for <i>start</i> and
 <td width="3%">
 
 
+<p><b>&minus;H</b></p></td>
+<td width="6%"></td>
+<td width="73%">
+
+
+<p>Display the selected history entries in the format that
+would be written to the history file, including any time
+stamp information as described below, without prefixing the
+entry with any line number or &ldquo;*&rdquo;.</p></td></tr>
+<tr valign="top" align="left">
+<td width="18%"></td>
+<td width="3%">
+
+
 <p><b>&minus;a</b></p></td>
 <td width="6%"></td>
 <td width="73%">
index b7665149e59f2cc7997a6941de981de5df3ec45f..5ae297f20854deedd68ce99cf2995402d1439529 100644 (file)
@@ -1,9 +1,9 @@
 This is bash.info, produced by makeinfo version 7.2 from bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 18 December 2025).
+Bash shell (version 5.3, 26 December 2025).
 
-   This is Edition 5.3, last updated 18 December 2025, of â€˜The GNU Bash
+   This is Edition 5.3, last updated 26 December 2025, of â€˜The GNU Bash
 Reference Manual’, for â€˜Bash’, Version 5.3.
 
    Copyright Â© 1988-2025 Free Software Foundation, Inc.
@@ -26,10 +26,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 18 December 2025).  The Bash home page is
+Bash shell (version 5.3, 26 December 2025).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.3, last updated 18 December 2025, of â€˜The GNU Bash
+   This is Edition 5.3, last updated 26 December 2025, of â€˜The GNU Bash
 Reference Manual’, for â€˜Bash’, Version 5.3.
 
    Bash contains features that appear in other popular shells, and some
@@ -10993,7 +10993,7 @@ history file.
      â€˜fc’ reads the file of edited commands and echoes and executes
      them.  The â€˜-D’ option, if supplied, causes â€˜fc’ to remove the
      selected commands from the history list before executing the file
-     of edited commands.  â€˜-D’ is only active when â€˜fc’ is invoked in
+     of edited commands.  â€˜-D’ is only effective when â€˜fc’ is invoked in
      this way.  It could be used if you make a typo in a command and
      want to fix it using an editor while removing the erroneous command
      from the history to avoid clutter.
@@ -11016,21 +11016,36 @@ history file.
      history entry, in which case â€˜fc’ returns a non-zero status.
 
 â€˜history’
-          history [N]
+          history [-H] [RANGE]
           history -c
-          history -d OFFSET
-          history -d START-END
+          history -d RANGE
           history [-anrw] [FILENAME]
-          history -ps ARG
-
-     With no options, display the history list with numbers.  Entries
-     prefixed with a â€˜*’ have been modified.  An argument of N lists
-     only the last N entries.  If the shell variable â€˜HISTTIMEFORMAT’ is
-     set and not null, it is used as a format string for â€˜strftime’(3)
-     to display the time stamp associated with each displayed history
-     entry.  If â€˜history’ uses â€˜HISTTIMEFORMAT’, it does not print an
-     intervening space between the formatted time stamp and the history
-     entry.
+          history -ps ARG [ARG...]
+
+     With no options, or with the â€˜-H’ option, display the portion of
+     the command history list specified by RANGE, as described below.
+     If RANGE is not specified, display the entire history list.
+     Without â€˜-H’, display the list with command numbers, prefixing
+     entries that have been modified with a â€˜*’.
+
+     A RANGE argument is specified in the form of a number OFFSET or a
+     range START-END.  If OFFSET is supplied, it references the history
+     entry at position OFFSET in the history list; when listing this
+     displays the last OFFSET entries.  A negative OFFSET counts back
+     from the end of the history list, relative to one greater than the
+     last history position.  When listing, negative and positive OFFSETs
+     have identical results.  START and END, if supplied, reference the
+     portion of the history list beginning at position START through
+     position END.  If START or END are negative, they count back from
+     the end of the history list.  When listing, if START is greater
+     than END, the history entries are displayed in reverse order from
+     END to START.
+
+     If the shell variable â€˜HISTTIMEFORMAT’ is set and not null, it is
+     used as a format string for â€˜strftime’(3) to display the time stamp
+     associated with each displayed history entry.  If â€˜history’ uses
+     â€˜HISTTIMEFORMAT’, it does not print an intervening space between
+     the formatted time stamp and the history entry.
 
      Options, if supplied, have the following meanings:
 
@@ -11038,19 +11053,16 @@ history file.
           Clear the history list.  This may be combined with the other
           options to replace the history list.
 
-     â€˜-d OFFSET’
-          Delete the history entry at position OFFSET.  If OFFSET is
-          positive, it should be specified as it appears when the
-          history is displayed.  If OFFSET is negative, it is
-          interpreted as relative to one greater than the last history
-          position, so negative indices count back from the end of the
-          history, and an index of â€˜-1’ refers to the current â€˜history
-          -d’ command.
+     â€˜-d RANGE’
+          Delete the history entries specified by RANGE, as described
+          above.  An offset of â€˜-1’ refers to the current â€˜history -d’
+          command.
 
-     â€˜-d START-END’
-          Delete the range of history entries between positions START
-          and END, inclusive.  Positive and negative values for START
-          and END are interpreted as described above.
+     â€˜-H’
+          Display the selected history entries in the format that would
+          be written to the history file, including any time stamp
+          information as described below, without prefixing the entry
+          with any line number or â€˜*’.
 
      â€˜-a’
           Append the "new" history lines to the history file.  These are
@@ -13791,28 +13803,28 @@ Node: A Programmable Completion Example\7f485732
 Node: Using History Interactively\7f491077
 Node: Bash History Facilities\7f491758
 Node: Bash History Builtins\7f495493
-Node: History Interaction\7f502365
-Node: Event Designators\7f507315
-Node: Word Designators\7f508893
-Node: Modifiers\7f511285
-Node: Installing Bash\7f513222
-Node: Basic Installation\7f514338
-Node: Compilers and Options\7f518214
-Node: Compiling For Multiple Architectures\7f518964
-Node: Installation Names\7f520717
-Node: Specifying the System Type\7f522951
-Node: Sharing Defaults\7f523697
-Node: Operation Controls\7f524411
-Node: Optional Features\7f525430
-Node: Reporting Bugs\7f538153
-Node: Major Differences From The Bourne Shell\7f539510
-Node: GNU Free Documentation License\7f560937
-Node: Indexes\7f586114
-Node: Builtin Index\7f586565
-Node: Reserved Word Index\7f593663
-Node: Variable Index\7f596108
-Node: Function Index\7f613521
-Node: Concept Index\7f627516
+Node: History Interaction\7f503088
+Node: Event Designators\7f508038
+Node: Word Designators\7f509616
+Node: Modifiers\7f512008
+Node: Installing Bash\7f513945
+Node: Basic Installation\7f515061
+Node: Compilers and Options\7f518937
+Node: Compiling For Multiple Architectures\7f519687
+Node: Installation Names\7f521440
+Node: Specifying the System Type\7f523674
+Node: Sharing Defaults\7f524420
+Node: Operation Controls\7f525134
+Node: Optional Features\7f526153
+Node: Reporting Bugs\7f538876
+Node: Major Differences From The Bourne Shell\7f540233
+Node: GNU Free Documentation License\7f561660
+Node: Indexes\7f586837
+Node: Builtin Index\7f587288
+Node: Reserved Word Index\7f594386
+Node: Variable Index\7f596831
+Node: Function Index\7f614244
+Node: Concept Index\7f628239
 \1f
 End Tag Table
 
index eb9f142ad0a23b2d1197c98ebd1469d205ae1be2..c861b55f4810ace55b2f2309219924d61b41a941 100644 (file)
Binary files a/doc/bash.pdf and b/doc/bash.pdf differ
index 5743a0e16df45e76e07e9b4a0fc535fd6c778771..dc5bd7d7f9fe435f23c7463e71d7b41af710ee46 100644 (file)
 @xrdef{Event Designators-pg}{172}
 @xrdef{Word Designators-title}{Word Designators}
 @xrdef{Word Designators-snt}{Section@tie 9.3.2}
+@xrdef{Word Designators-pg}{173}
 @xrdef{Modifiers-title}{Modifiers}
 @xrdef{Modifiers-snt}{Section@tie 9.3.3}
-@xrdef{Word Designators-pg}{173}
 @xrdef{Modifiers-pg}{174}
 @xrdef{Installing Bash-title}{Installing Bash}
 @xrdef{Installing Bash-snt}{Chapter@tie 10}
index 054755d94df7c51b0aec791d577136ead9825138..27c0dcf015280ce935cd4d56f2fbb81633d2792e 100644 (file)
@@ -58,4 +58,4 @@
 \entry{complete}{161}{\code {complete}}
 \entry{compopt}{165}{\code {compopt}}
 \entry{fc}{169}{\code {fc}}
-\entry{history}{169}{\code {history}}
+\entry{history}{170}{\code {history}}
index 907171779282c694a2e2603949fc007e4a0e4c47..e7b501c51c3ac7aa81db2f87de28cdddaf05c92e 100644 (file)
@@ -39,7 +39,7 @@
 \initial {H}
 \entry{\code {hash}}{56}
 \entry{\code {help}}{67}
-\entry{\code {history}}{169}
+\entry{\code {history}}{170}
 \initial {J}
 \entry{\code {jobs}}{127}
 \initial {K}
index bde971b4a2807001a4d2c823b940cfded4e3c5a8..9f1985339e7b83649d5eb9a69c56133fdfd5900e 100644 (file)
@@ -4,9 +4,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <!-- This text is a brief description of the features that are present in
-the Bash shell (version 5.3, 2 December 2025).
+the Bash shell (version 5.3, 26 December 2025).
 
-This is Edition 5.3, last updated 2 December 2025,
+This is Edition 5.3, last updated 26 December 2025,
 of The GNU Bash Reference Manual,
 for Bash, Version 5.3.
 
@@ -69,6 +69,7 @@ ul.toc-numbered-mark {list-style: none}
 
 
 
+
 <div class="top-level-extent" id="Top">
 <div class="nav-panel">
 <p>
@@ -77,10 +78,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
 <h1 class="top" id="Bash-Features-1"><span>Bash Features<a class="copiable-link" href="#Bash-Features-1"> &para;</a></span></h1>
 
 <p>This text is a brief description of the features that are present in
-the Bash shell (version 5.3, 2 December 2025).
+the Bash shell (version 5.3, 26 December 2025).
 The Bash home page is <a class="url" href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
 </p>
-<p>This is Edition 5.3, last updated 2 December 2025,
+<p>This is Edition 5.3, last updated 26 December 2025,
 of <cite class="cite">The GNU Bash Reference Manual</cite>,
 for <code class="code">Bash</code>, Version 5.3.
 </p>
@@ -14437,7 +14438,7 @@ history list and history file.
 <dl class="table">
 <dt><a id="index-fc"></a><span><code class="code">fc</code><a class="copiable-link" href="#index-fc"> &para;</a></span></dt>
 <dd><div class="example">
-<pre class="example-preformatted"><code class="code">fc [-e <var class="var">ename</var>] [-lnr] [<var class="var">first</var>] [<var class="var">last</var>]</code>
+<pre class="example-preformatted"><code class="code">fc [-e <var class="var">ename</var>] [-D] [-lnr] [<var class="var">first</var>] [<var class="var">last</var>]</code>
 <code class="code">fc -s [<var class="var">pat</var>=<var class="var">rep</var>] [<var class="var">command</var>]</code>
 </pre></div>
 
@@ -14474,6 +14475,13 @@ value of the <code class="env">FCEDIT</code> variable if set, or the value of th
 <code class="env">EDITOR</code> variable if that is set, or <code class="code">vi</code> if neither is set.
 When editing is complete, <code class="code">fc</code> reads the file of edited commands
 and echoes and executes them.
+The <samp class="option">-D</samp> option, if supplied,
+causes <code class="code">fc</code> to remove the selected commands from the history
+list before executing the file of edited commands.
+<samp class="option">-D</samp> is only effective when <code class="code">fc</code> is invoked in this way.
+It could be used if you make a typo in a command and want to fix it using
+an editor while removing the erroneous command from the history to
+avoid clutter.
 </p>
 <p>In the second form, <code class="code">fc</code> re-executes <var class="var">command</var> after
 replacing each instance of <var class="var">pat</var> in the selected command with <var class="var">rep</var>.
@@ -14497,18 +14505,40 @@ is that of the re-executed command, unless
 </dd>
 <dt><a id="index-history"></a><span><code class="code">history</code><a class="copiable-link" href="#index-history"> &para;</a></span></dt>
 <dd><div class="example">
-<pre class="example-preformatted">history [<var class="var">n</var>]
+<pre class="example-preformatted">history [-H] [<var class="var">range</var>]
 history -c
-history -d <var class="var">offset</var>
-history -d <var class="var">start</var>-<var class="var">end</var>
+history -d <var class="var">range</var>
 history [-anrw] [<var class="var">filename</var>]
-history -ps <var class="var">arg</var>
+history -ps <var class="var">arg</var> [<var class="var">arg</var>...]
 </pre></div>
 
-<p>With no options, display the history list with numbers.
-Entries prefixed with a &lsquo;<samp class="samp">*</samp>&rsquo; have been modified.
-An argument of <var class="var">n</var> lists only the last <var class="var">n</var> entries.
-If the shell variable <code class="env">HISTTIMEFORMAT</code> is set and not null,
+<p>With no options,
+or with the <samp class="option">-H</samp> option,
+display the portion of the command history list
+specified by <var class="var">range</var>, as described below.
+If <var class="var">range</var> is not specified, display the entire history list.
+Without <samp class="option">-H</samp>, display the list with command numbers, prefixing
+entries that have been modified with a &lsquo;<samp class="samp">*</samp>&rsquo;.
+</p>
+<p>A
+<var class="var">range</var>
+argument is specified in the form of a number <var class="var">offset</var> or
+a range <var class="var">start</var>-<var class="var">end</var>.
+If <var class="var">offset</var> is supplied, it references the history entry at
+position <var class="var">offset</var> in the history list;
+when listing this displays the last <var class="var">offset</var> entries.
+A negative <var class="var">offset</var> counts back from the end of the history list,
+relative to one greater than the last history position.
+When listing, negative and positive <var class="var">offset</var>s have identical results.
+<var class="var">start</var> and <var class="var">end</var>, if supplied, reference the portion of
+the history list beginning at position <var class="var">start</var> through position
+<var class="var">end</var>.
+If <var class="var">start</var> or <var class="var">end</var> are negative, they count back from the
+end of the history list.
+When listing, if <var class="var">start</var> is greater than <var class="var">end</var>, the history
+entries are displayed in reverse order from <var class="var">end</var> to <var class="var">start</var>.
+</p>
+<p>If the shell variable <code class="env">HISTTIMEFORMAT</code> is set and not null,
 it is used as a format string for <code class="code">strftime</code>(3) to display
 the time stamp associated with each displayed history entry.
 If <code class="code">history</code> uses <code class="env">HISTTIMEFORMAT</code>, it does not print an
@@ -14522,21 +14552,17 @@ intervening space between the formatted time stamp and the history entry.
 This may be combined with the other options to replace the history list.
 </p>
 </dd>
-<dt><code class="code">-d <var class="var">offset</var></code></dt>
-<dd><p>Delete the history entry at position <var class="var">offset</var>.
-If <var class="var">offset</var> is positive, it should be specified as it appears when
-the history is displayed.
-If <var class="var">offset</var> is negative, it is interpreted as relative to one greater
-than the last history position, so negative indices count back from the
-end of the history, and an index of &lsquo;<samp class="samp">-1</samp>&rsquo; refers to the current
-<code class="code">history -d</code> command.
+<dt><code class="code">-d <var class="var">range</var></code></dt>
+<dd><p>Delete the history entries specified by <var class="var">range</var>, as described above.
+An offset of &lsquo;<samp class="samp">-1</samp>&rsquo; refers to the current <code class="code">history -d</code> command.
 </p>
 </dd>
-<dt><code class="code">-d <var class="var">start</var>-<var class="var">end</var></code></dt>
-<dd><p>Delete the range of history entries between positions <var class="var">start</var> and
-<var class="var">end</var>, inclusive.
-Positive and negative values for <var class="var">start</var> and <var class="var">end</var>
-are interpreted as described above.
+<dt><code class="code">-H</code></dt>
+<dd><p>Display the selected history entries in the format that would be written
+to the history file,
+including any time stamp information as described below,
+without prefixing the entry with any line number or
+&lsquo;<samp class="samp">*</samp>&rsquo;.
 </p>
 </dd>
 <dt><code class="code">-a</code></dt>
index b59f6544eb60e0bbca465f7c7fb55591413761f1..63961fe7790f1f9b55183b338166fda6d8769710 100644 (file)
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 7.2 from
 bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 18 December 2025).
+Bash shell (version 5.3, 26 December 2025).
 
-   This is Edition 5.3, last updated 18 December 2025, of â€˜The GNU Bash
+   This is Edition 5.3, last updated 26 December 2025, of â€˜The GNU Bash
 Reference Manual’, for â€˜Bash’, Version 5.3.
 
    Copyright Â© 1988-2025 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.3, 18 December 2025).  The Bash home page is
+Bash shell (version 5.3, 26 December 2025).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.3, last updated 18 December 2025, of â€˜The GNU Bash
+   This is Edition 5.3, last updated 26 December 2025, of â€˜The GNU Bash
 Reference Manual’, for â€˜Bash’, Version 5.3.
 
    Bash contains features that appear in other popular shells, and some
@@ -10994,7 +10994,7 @@ history file.
      â€˜fc’ reads the file of edited commands and echoes and executes
      them.  The â€˜-D’ option, if supplied, causes â€˜fc’ to remove the
      selected commands from the history list before executing the file
-     of edited commands.  â€˜-D’ is only active when â€˜fc’ is invoked in
+     of edited commands.  â€˜-D’ is only effective when â€˜fc’ is invoked in
      this way.  It could be used if you make a typo in a command and
      want to fix it using an editor while removing the erroneous command
      from the history to avoid clutter.
@@ -11017,21 +11017,36 @@ history file.
      history entry, in which case â€˜fc’ returns a non-zero status.
 
 â€˜history’
-          history [N]
+          history [-H] [RANGE]
           history -c
-          history -d OFFSET
-          history -d START-END
+          history -d RANGE
           history [-anrw] [FILENAME]
-          history -ps ARG
-
-     With no options, display the history list with numbers.  Entries
-     prefixed with a â€˜*’ have been modified.  An argument of N lists
-     only the last N entries.  If the shell variable â€˜HISTTIMEFORMAT’ is
-     set and not null, it is used as a format string for â€˜strftime’(3)
-     to display the time stamp associated with each displayed history
-     entry.  If â€˜history’ uses â€˜HISTTIMEFORMAT’, it does not print an
-     intervening space between the formatted time stamp and the history
-     entry.
+          history -ps ARG [ARG...]
+
+     With no options, or with the â€˜-H’ option, display the portion of
+     the command history list specified by RANGE, as described below.
+     If RANGE is not specified, display the entire history list.
+     Without â€˜-H’, display the list with command numbers, prefixing
+     entries that have been modified with a â€˜*’.
+
+     A RANGE argument is specified in the form of a number OFFSET or a
+     range START-END.  If OFFSET is supplied, it references the history
+     entry at position OFFSET in the history list; when listing this
+     displays the last OFFSET entries.  A negative OFFSET counts back
+     from the end of the history list, relative to one greater than the
+     last history position.  When listing, negative and positive OFFSETs
+     have identical results.  START and END, if supplied, reference the
+     portion of the history list beginning at position START through
+     position END.  If START or END are negative, they count back from
+     the end of the history list.  When listing, if START is greater
+     than END, the history entries are displayed in reverse order from
+     END to START.
+
+     If the shell variable â€˜HISTTIMEFORMAT’ is set and not null, it is
+     used as a format string for â€˜strftime’(3) to display the time stamp
+     associated with each displayed history entry.  If â€˜history’ uses
+     â€˜HISTTIMEFORMAT’, it does not print an intervening space between
+     the formatted time stamp and the history entry.
 
      Options, if supplied, have the following meanings:
 
@@ -11039,19 +11054,16 @@ history file.
           Clear the history list.  This may be combined with the other
           options to replace the history list.
 
-     â€˜-d OFFSET’
-          Delete the history entry at position OFFSET.  If OFFSET is
-          positive, it should be specified as it appears when the
-          history is displayed.  If OFFSET is negative, it is
-          interpreted as relative to one greater than the last history
-          position, so negative indices count back from the end of the
-          history, and an index of â€˜-1’ refers to the current â€˜history
-          -d’ command.
+     â€˜-d RANGE’
+          Delete the history entries specified by RANGE, as described
+          above.  An offset of â€˜-1’ refers to the current â€˜history -d’
+          command.
 
-     â€˜-d START-END’
-          Delete the range of history entries between positions START
-          and END, inclusive.  Positive and negative values for START
-          and END are interpreted as described above.
+     â€˜-H’
+          Display the selected history entries in the format that would
+          be written to the history file, including any time stamp
+          information as described below, without prefixing the entry
+          with any line number or â€˜*’.
 
      â€˜-a’
           Append the "new" history lines to the history file.  These are
@@ -13792,28 +13804,28 @@ Node: A Programmable Completion Example\7f486053
 Node: Using History Interactively\7f491401
 Node: Bash History Facilities\7f492085
 Node: Bash History Builtins\7f495823
-Node: History Interaction\7f502698
-Node: Event Designators\7f507651
-Node: Word Designators\7f509232
-Node: Modifiers\7f511627
-Node: Installing Bash\7f513567
-Node: Basic Installation\7f514686
-Node: Compilers and Options\7f518565
-Node: Compiling For Multiple Architectures\7f519318
-Node: Installation Names\7f521074
-Node: Specifying the System Type\7f523311
-Node: Sharing Defaults\7f524060
-Node: Operation Controls\7f524777
-Node: Optional Features\7f525799
-Node: Reporting Bugs\7f538525
-Node: Major Differences From The Bourne Shell\7f539885
-Node: GNU Free Documentation License\7f561315
-Node: Indexes\7f586495
-Node: Builtin Index\7f586949
-Node: Reserved Word Index\7f594050
-Node: Variable Index\7f596498
-Node: Function Index\7f613914
-Node: Concept Index\7f627912
+Node: History Interaction\7f503421
+Node: Event Designators\7f508374
+Node: Word Designators\7f509955
+Node: Modifiers\7f512350
+Node: Installing Bash\7f514290
+Node: Basic Installation\7f515409
+Node: Compilers and Options\7f519288
+Node: Compiling For Multiple Architectures\7f520041
+Node: Installation Names\7f521797
+Node: Specifying the System Type\7f524034
+Node: Sharing Defaults\7f524783
+Node: Operation Controls\7f525500
+Node: Optional Features\7f526522
+Node: Reporting Bugs\7f539248
+Node: Major Differences From The Bourne Shell\7f540608
+Node: GNU Free Documentation License\7f562038
+Node: Indexes\7f587218
+Node: Builtin Index\7f587672
+Node: Reserved Word Index\7f594773
+Node: Variable Index\7f597221
+Node: Function Index\7f614637
+Node: Concept Index\7f628635
 \1f
 End Tag Table
 
index 373373637a1f6aaea9952d43e8ab85d61283268e..84bd52e3581ef20af57ddfc7b8f97f1a687a081f 100644 (file)
@@ -1,11 +1,12 @@
-This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025/MacPorts 2025.74524_1) (preloaded format=pdfetex 2025.9.16)  2 DEC 2025 16:55
+This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025/MacPorts 2025.74524_1) (preloaded format=pdfetex 2025.9.16)  31 DEC 2025 13:23
 entering extended mode
  restricted \write18 enabled.
  file:line:error style messages enabled.
  %&-line parsing enabled.
-**\input /usr/local/src/bash/bash-20251201/doc/bashref.texi
-(/usr/local/src/bash/bash-20251201/doc/bashref.texi
-(/usr/local/src/bash/bash-20251201/doc/texinfo.tex
+**\input /usr/local/src/bash/bash-20251226/doc/bashref.texi \input /usr/local/s
+rc/bash/bash-20251226/doc/bashref.texi
+(/usr/local/src/bash/bash-20251226/doc/bashref.texi
+(/usr/local/src/bash/bash-20251226/doc/texinfo.tex
 Loading texinfo [version 2015-11-22.14]:
 \outerhsize=\dimen16
 \outervsize=\dimen17
@@ -161,15 +162,15 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
 texinfo.tex: doing @include of version.texi
 
 
-(/usr/local/src/bash/bash-20251201/doc/version.texi) [1{/opt/local/var/db/texmf
+(/usr/local/src/bash/bash-20251226/doc/version.texi) [1{/opt/local/var/db/texmf
 /fonts/map/pdftex/updmap/pdftex.map}] [2]
-(/usr/local/build/bash/bash-20251201/doc/bashref.toc [-1] [-2] [-3]) [-4]
-(/usr/local/build/bash/bash-20251201/doc/bashref.toc)
-(/usr/local/build/bash/bash-20251201/doc/bashref.toc) Chapter 1
+(/usr/local/build/bash/bash-20251226/doc/bashref.toc [-1] [-2] [-3]) [-4]
+(/usr/local/build/bash/bash-20251226/doc/bashref.toc)
+(/usr/local/build/bash/bash-20251226/doc/bashref.toc) Chapter 1
 \openout0 = `bashref.toc'.
 
 
-(/usr/local/build/bash/bash-20251201/doc/bashref.aux)
+(/usr/local/build/bash/bash-20251226/doc/bashref.aux)
 \openout1 = `bashref.aux'.
 
  [1] Chapter 2 [2]
@@ -264,7 +265,7 @@ Chapter 7 [124] [125] [126] [127] [128]
 texinfo.tex: doing @include of rluser.texi
 
 
-(/usr/local/src/bash/bash-20251201/lib/readline/doc/rluser.texi Chapter 8
+(/usr/local/src/bash/bash-20251226/lib/readline/doc/rluser.texi Chapter 8
 [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
 Underfull \hbox (badness 7540) in paragraph at lines 969--975
  []@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func
@@ -313,7 +314,7 @@ gnored[]
 texinfo.tex: doing @include of hsuser.texi
 
 
-(/usr/local/src/bash/bash-20251201/lib/readline/doc/hsuser.texi Chapter 9
+(/usr/local/src/bash/bash-20251226/lib/readline/doc/hsuser.texi Chapter 9
 [167] [168] [169] [170] [171] [172] [173]) Chapter 10 [174] [175] [176]
 [177] [178]
 Underfull \hbox (badness 10000) in paragraph at lines 10767--10776
@@ -346,17 +347,17 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
 texinfo.tex: doing @include of fdl.texi
 
 
-(/usr/local/src/bash/bash-20251201/doc/fdl.texi [192] [193] [194] [195]
+(/usr/local/src/bash/bash-20251226/doc/fdl.texi [192] [193] [194] [195]
 [196] [197] [198]) Appendix D [199] [200] [201] [202] [203] [204] [205]
 [206] [207] [208] ) 
 Here is how much of TeX's memory you used:
  4116 strings out of 495820
  47662 string characters out of 6170887
- 145125 words of memory out of 5000000
+ 145127 words of memory out of 5000000
  5053 multiletter control sequences out of 15000+600000
  34315 words of font info for 116 fonts, out of 8000000 for 9000
  701 hyphenation exceptions out of 8191
- 16i,6n,16p,331b,983s stack positions out of 10000i,1000n,20000p,200000b,200000s
+ 16i,6n,16p,389b,983s stack positions out of 10000i,1000n,20000p,200000b,200000s
 </opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/
 cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cm
 csc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi10
@@ -373,7 +374,7 @@ fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive/fonts
 lic/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
 -super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm-super
 /sfrm1440.pfb>
-Output written on bashref.pdf (214 pages, 810750 bytes).
+Output written on bashref.pdf (214 pages, 811602 bytes).
 PDF statistics:
  2947 PDF objects out of 2984 (max. 8388607)
  2685 compressed objects within 27 object streams
index 9348188ea1ff54fb71fc41514f46088fd6cf0764..1987acd948610f0d1a25ae37856ad062eeea9753 100644 (file)
Binary files a/doc/bashref.pdf and b/doc/bashref.pdf differ
index bcd87d547804df43fdaee7def99e60855c906599..cea1bebe4b0f9301200137dd134d4f89ac4954b6 100644 (file)
@@ -729,7 +729,7 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
        f\bfa\bal\bls\bse\be  Does nothing; returns a non-zero status.
 
-       f\bfc\bc [-\b-e\be _\be_\bn_\ba_\bm_\be] [-\b-l\bln\bnr\br] [_\bf_\bi_\br_\bs_\bt] [_\bl_\ba_\bs_\bt]
+       f\bfc\bc [-\b-e\be _\be_\bn_\ba_\bm_\be] [-\b-D\bD] [-\b-l\bln\bnr\br] [_\bf_\bi_\br_\bs_\bt] [_\bl_\ba_\bs_\bt]
        f\bfc\bc -\b-s\bs [_\bp_\ba_\bt=_\br_\be_\bp] [_\bc_\bm_\bd]
               The first form selects a range of commands from  _\bf_\bi_\br_\bs_\bt  to  _\bl_\ba_\bs_\bt
               from  the  history  list  and  displays or edits and re-executes
@@ -755,116 +755,119 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               value of the F\bFC\bCE\bED\bDI\bIT\bT variable, and the value of E\bED\bDI\bIT\bTO\bOR\bR if  F\bFC\bCE\bED\bDI\bIT\bT
               is  not set.  If neither variable is set, f\bfc\bc uses _\bv_\bi_\b. When edit-
               ing is complete, f\bfc\bc reads the file containing  the  edited  com-
-              mands and echoes and executes them.
+              mands and echoes and executes them.  The -\b-D\bD option, if supplied,
+              causes  f\bfc\bc to remove the selected commands from the history list
+              before executing the file of edited commands.  -\b-D\bD is only effec-
+              tive when f\bfc\bc is invoked in this way.
 
-              In  the second form, f\bfc\bc re-executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd after replacing each
-              instance of _\bp_\ba_\bt with _\br_\be_\bp.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is interpreted  the  same  as
+              In the second form, f\bfc\bc re-executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd after replacing  each
+              instance  of  _\bp_\ba_\bt  with _\br_\be_\bp.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is interpreted the same as
               _\bf_\bi_\br_\bs_\bt above.
 
-              A  useful  alias  to use with f\bfc\bc is so that typing runs the last
+              A useful alias to use with f\bfc\bc is so that typing  runs  the  last
               command beginning with and typing re-executes the last command.
 
-              If the first form is used, the return value is  zero  unless  an
-              invalid  option  is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt specify history
-              lines out of range.  When editing and  re-executing  a  file  of
+              If  the  first  form is used, the return value is zero unless an
+              invalid option is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt  specify  history
+              lines  out  of  range.   When editing and re-executing a file of
               commands, the return value is the value of the last command exe-
               cuted or failure if an error occurs with the temporary file.  If
               the second form is used, the return status is that of the re-ex-
-              ecuted  command, unless _\bc_\bm_\bd does not specify a valid history en-
+              ecuted command, unless _\bc_\bm_\bd does not specify a valid history  en-
               try, in which case f\bfc\bc returns a non-zero status.
 
        f\bfg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc]
-              Resume _\bj_\bo_\bb_\bs_\bp_\be_\bc in the foreground, and make it the  current  job.
-              If  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is  not  present, f\bfg\bg uses the shell's notion of the
-              _\bc_\bu_\br_\br_\be_\bn_\b_\bj_\bo_\bb.  The return value is that  of  the  command  placed
-              into  the foreground, or failure if run when job control is dis-
+              Resume  _\bj_\bo_\bb_\bs_\bp_\be_\bc  in the foreground, and make it the current job.
+              If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, f\bfg\bg uses the  shell's  notion  of  the
+              _\bc_\bu_\br_\br_\be_\bn_\b _\bj_\bo_\bb.   The  return  value is that of the command placed
+              into the foreground, or failure if run when job control is  dis-
               abled or, when run with job control enabled, if _\bj_\bo_\bb_\bs_\bp_\be_\bc does not
-              specify a valid job or _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies a job that was  started
+              specify  a valid job or _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies a job that was started
               without job control.
 
        g\bge\bet\bto\bop\bpt\bts\bs _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg _\bn_\ba_\bm_\be [_\ba_\br_\bg ...]
-              g\bge\bet\bto\bop\bpt\bts\b is  used  by shell scripts and functions to parse posi-
-              tional parameters and obtain options and their arguments.   _\bo_\bp_\bt_\b-
-              _\bs_\bt_\br_\bi_\bn_\b contains  the  option  characters to be recognized; if a
+              g\bge\bet\bto\bop\bpt\bts\bis used by shell scripts and functions  to  parse  posi-
+              tional  parameters and obtain options and their arguments.  _\bo_\bp_\bt_\b-
+              _\bs_\bt_\br_\bi_\bn_\bcontains the option characters to  be  recognized;  if  a
               character is followed by a colon, the option is expected to have
-              an argument, which should be separated from it by  white  space.
+              an  argument,  which should be separated from it by white space.
               The colon and question mark characters may not be used as option
               characters.
 
-              Each  time  it is invoked, g\bge\bet\bto\bop\bpt\bts\bs places the next option in the
+              Each time it is invoked, g\bge\bet\bto\bop\bpt\bts\bs places the next option  in  the
               shell variable _\bn_\ba_\bm_\be, initializing _\bn_\ba_\bm_\be if it does not exist, and
               the index of the next argument to be processed into the variable
-              O\bOP\bPT\bTI\bIN\bND\bD.  O\bOP\bPT\bTI\bIN\bND\bD is initialized to 1 each time  the  shell  or  a
-              shell  script  is invoked.  When an option requires an argument,
+              O\bOP\bPT\bTI\bIN\bND\bD.   O\bOP\bPT\bTI\bIN\bND\bD  is  initialized  to 1 each time the shell or a
+              shell script is invoked.  When an option requires  an  argument,
               g\bge\bet\bto\bop\bpt\bts\bs places that argument into the variable O\bOP\bPT\bTA\bAR\bRG\bG.
 
-              The shell does not reset O\bOP\bPT\bTI\bIN\bND\bD automatically; it must be  manu-
-              ally  reset  between  multiple  calls to g\bge\bet\bto\bop\bpt\bts\bs within the same
+              The  shell does not reset O\bOP\bPT\bTI\bIN\bND\bD automatically; it must be manu-
+              ally reset between multiple calls to  g\bge\bet\bto\bop\bpt\bts\bs  within  the  same
               shell invocation to use a new set of parameters.
 
-              When it reaches the end of options, g\bge\bet\bto\bop\bpt\bts\bs exits with a  return
-              value  greater  than  zero.   O\bOP\bPT\bTI\bIN\bND\bD  is set to the index of the
+              When  it reaches the end of options, g\bge\bet\bto\bop\bpt\bts\bs exits with a return
+              value greater than zero.  O\bOP\bPT\bTI\bIN\bND\bD is set  to  the  index  of  the
               first non-option argument, and _\bn_\ba_\bm_\be is set to ?.
 
-              g\bge\bet\bto\bop\bpt\bts\bnormally parses the positional parameters, but  if  more
-              arguments  are  supplied as _\ba_\br_\bg values, g\bge\bet\bto\bop\bpt\bts\bs parses those in-
+              g\bge\bet\bto\bop\bpt\bts\b normally  parses the positional parameters, but if more
+              arguments are supplied as _\ba_\br_\bg values, g\bge\bet\bto\bop\bpt\bts\bs parses  those  in-
               stead.
 
-              g\bge\bet\bto\bop\bpt\bts\bcan report errors in two ways.  If the  first  character
-              of  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg  is  a colon, g\bge\bet\bto\bop\bpt\bts\bs uses _\bs_\bi_\bl_\be_\bn_\bt error reporting.
-              In normal operation, g\bge\bet\bto\bop\bpt\bts\bs prints diagnostic messages when  it
-              encounters  invalid options or missing option arguments.  If the
-              variable O\bOP\bPT\bTE\bER\bRR\bR is set to 0, g\bge\bet\bto\bop\bpt\bts\bs does not display any  error
-              messages,  even  if  the  first  character of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is not a
+              g\bge\bet\bto\bop\bpt\bts\b can  report errors in two ways.  If the first character
+              of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is a colon, g\bge\bet\bto\bop\bpt\bts\bs uses  _\bs_\bi_\bl_\be_\bn_\bt  error  reporting.
+              In  normal operation, g\bge\bet\bto\bop\bpt\bts\bs prints diagnostic messages when it
+              encounters invalid options or missing option arguments.  If  the
+              variable  O\bOP\bPT\bTE\bER\bRR\bR is set to 0, g\bge\bet\bto\bop\bpt\bts\bs does not display any error
+              messages, even if the first character  of  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg  is  not  a
               colon.
 
               If g\bge\bet\bto\bop\bpt\bts\bs detects an invalid option, it places ? into _\bn_\ba_\bm_\be and,
-              if not silent, prints an error message and  unsets  O\bOP\bPT\bTA\bAR\bRG\bG.   If
-              g\bge\bet\bto\bop\bpt\bts\b is silent, it assigns the option character found to O\bOP\bP-\b-
+              if  not  silent,  prints an error message and unsets O\bOP\bPT\bTA\bAR\bRG\bG.  If
+              g\bge\bet\bto\bop\bpt\bts\bis silent, it assigns the option character found to  O\bOP\bP-\b-
               T\bTA\bAR\bRG\bG and does not print a diagnostic message.
 
-              If a required argument is not found, and g\bge\bet\bto\bop\bpt\bts\bs is not  silent,
+              If  a required argument is not found, and g\bge\bet\bto\bop\bpt\bts\bs is not silent,
               it sets the value of _\bn_\ba_\bm_\be to a question mark (?\b?), unsets O\bOP\bPT\bTA\bAR\bRG\bG,
-              and  prints a diagnostic message.  If g\bge\bet\bto\bop\bpt\bts\bs is silent, it sets
-              the value of _\bn_\ba_\bm_\be to a colon (:\b:) and sets O\bOP\bPT\bTA\bAR\bRG\bG to  the  option
+              and prints a diagnostic message.  If g\bge\bet\bto\bop\bpt\bts\bs is silent, it  sets
+              the  value  of _\bn_\ba_\bm_\be to a colon (:\b:) and sets O\bOP\bPT\bTA\bAR\bRG\bG to the option
               character found.
 
-              g\bge\bet\bto\bop\bpt\bts\b returns true if an option, specified or unspecified, is
+              g\bge\bet\bto\bop\bpt\bts\breturns true if an option, specified or unspecified,  is
               found.  It returns false if the end of options is encountered or
               an error occurs.
 
        h\bha\bas\bsh\bh [-\b-l\blr\br] [-\b-p\bp _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [-\b-d\bdt\bt] [_\bn_\ba_\bm_\be]
               Each time h\bha\bas\bsh\bh is invoked, it remembers the full pathname of the
-              command _\bn_\ba_\bm_\be as  determined  by  searching  the  directories  in
-              $\b$P\bPA\bAT\bTH\bH.   Any previously-remembered pathname associated with _\bn_\ba_\bm_\be
-              is discarded.  If the -\b-p\bp option is supplied, h\bha\bas\bsh\bh uses  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+              command  _\bn_\ba_\bm_\be  as  determined  by  searching  the directories in
+              $\b$P\bPA\bAT\bTH\bH.  Any previously-remembered pathname associated with  _\bn_\ba_\bm_\be
+              is  discarded.  If the -\b-p\bp option is supplied, h\bha\bas\bsh\bh uses _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
               as the full pathname of the command.
 
-              The  -\b-r\br  option  causes the shell to forget all remembered loca-
-              tions.  Assigning to the P\bPA\bAT\bTH\bH variable also  clears  all  hashed
-              filenames.   The -\b-d\bd option causes the shell to forget the remem-
+              The -\b-r\br option causes the shell to forget  all  remembered  loca-
+              tions.   Assigning  to  the P\bPA\bAT\bTH\bH variable also clears all hashed
+              filenames.  The -\b-d\bd option causes the shell to forget the  remem-
               bered location of each _\bn_\ba_\bm_\be.
 
               If the -\b-t\bt option is supplied, h\bha\bas\bsh\bh prints the full pathname cor-
-              responding to each _\bn_\ba_\bm_\be.  If multiple _\bn_\ba_\bm_\be  arguments  are  sup-
-              plied  with  -\b-t\bt,  h\bha\bas\bsh\bh  prints the _\bn_\ba_\bm_\be before the corresponding
+              responding  to  each  _\bn_\ba_\bm_\be.  If multiple _\bn_\ba_\bm_\be arguments are sup-
+              plied with -\b-t\bt, h\bha\bas\bsh\bh prints the  _\bn_\ba_\bm_\be  before  the  corresponding
               hashed full pathname.  The -\b-l\bl option displays output in a format
               that may be reused as input.
 
-              If no arguments are given, or  if  only  -\b-l\bl  is  supplied,  h\bha\bas\bsh\bh
-              prints  information  about remembered commands.  The -\b-t\bt, -\b-d\bd, and
-              -\b-p\boptions (the options that act on the _\bn_\ba_\bm_\be arguments) are  mu-
+              If  no  arguments  are  given,  or  if only -\b-l\bl is supplied, h\bha\bas\bsh\bh
+              prints information about remembered commands.  The -\b-t\bt,  -\b-d\bd,  and
+              -\b-p\b options (the options that act on the _\bn_\ba_\bm_\be arguments) are mu-
               tually exclusive.  Only one will be active.  If more than one is
-              supplied,  -\b-t\bt  has higher priority than -\b-p\bp, and both have higher
+              supplied, -\b-t\bt has higher priority than -\b-p\bp, and both  have  higher
               priority than -\b-d\bd.
 
-              The return status is zero unless a _\bn_\ba_\bm_\be is not found or  an  in-
+              The  return  status is zero unless a _\bn_\ba_\bm_\be is not found or an in-
               valid option is supplied.
 
        h\bhe\bel\blp\bp [-\b-d\bdm\bms\bs] [_\bp_\ba_\bt_\bt_\be_\br_\bn]
-              Display  helpful information about builtin commands.  If _\bp_\ba_\bt_\bt_\be_\br_\bn
-              is specified, h\bhe\bel\blp\bp gives detailed help on all commands  matching
-              _\bp_\ba_\bt_\bt_\be_\br_\b as described below; otherwise it displays a list of all
+              Display helpful information about builtin commands.  If  _\bp_\ba_\bt_\bt_\be_\br_\bn
+              is  specified, h\bhe\bel\blp\bp gives detailed help on all commands matching
+              _\bp_\ba_\bt_\bt_\be_\br_\bas described below; otherwise it displays a list of  all
               the builtins and shell compound commands.
 
               Options, if supplied, have the follow meanings:
@@ -874,57 +877,70 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      format
               -\b-s\bs     Display only a short usage synopsis for each _\bp_\ba_\bt_\bt_\be_\br_\bn
 
-              If _\bp_\ba_\bt_\bt_\be_\br_\bn contains pattern  matching  characters  (see  P\bPa\bat\btt\bte\ber\brn\bn
-              M\bMa\bat\btc\bch\bhi\bin\bng\b above) it's treated as a shell pattern and h\bhe\bel\blp\bp prints
+              If  _\bp_\ba_\bt_\bt_\be_\br_\bn  contains  pattern  matching characters (see P\bPa\bat\btt\bte\ber\brn\bn
+              M\bMa\bat\btc\bch\bhi\bin\bng\babove) it's treated as a shell pattern and h\bhe\bel\blp\b prints
               the description of each help topic matching _\bp_\ba_\bt_\bt_\be_\br_\bn.
 
-              If not, and _\bp_\ba_\bt_\bt_\be_\br_\bn exactly matches the name of  a  help  topic,
-              h\bhe\bel\blp\b prints the description associated with that topic.  Other-
-              wise, h\bhe\bel\blp\bp performs prefix matching and prints the  descriptions
+              If  not,  and  _\bp_\ba_\bt_\bt_\be_\br_\bn exactly matches the name of a help topic,
+              h\bhe\bel\blp\bprints the description associated with that topic.   Other-
+              wise,  h\bhe\bel\blp\bp performs prefix matching and prints the descriptions
               of all matching help topics.
 
               The return status is 0 unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
 
-       h\bhi\bis\bst\bto\bor\bry\by [\b[_\bn]\b]
+       h\bhi\bis\bst\bto\bor\bry\by [\b[-\b-H\bH]\b] [\b[_\br_\ba_\bn_\bg_\be]\b]
        h\bhi\bis\bst\bto\bor\bry\by -\b-c\bc
-       h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
-       h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd
+       h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\br_\ba_\bn_\bg_\be
        h\bhi\bis\bst\bto\bor\bry\by -\b-a\ban\bnr\brw\bw [_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be]
        h\bhi\bis\bst\bto\bor\bry\by -\b-p\bp _\ba_\br_\bg [_\ba_\br_\bg ...]
        h\bhi\bis\bst\bto\bor\bry\by -\b-s\bs _\ba_\br_\bg [_\ba_\br_\bg ...]
-              With  no options, display the command history list with numbers.
-              Entries prefixed with a *\b* have been modified.  An argument of  _\bn
-              lists  only the last _\bn entries.  If the shell variable H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
-              F\bFO\bOR\bRM\bMA\bAT\bT is set and not null, it is used as a  format  string  for
-              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3)  to display the time stamp associated with each dis-
-              played history entry.  If h\bhi\bis\bst\bto\bor\bry\by uses H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT,  it  does
-              not  print an intervening space between the formatted time stamp
-              and the history entry.
+              With no options, or with the -\b-H\bH option, display the  portion  of
+              the command history list specified by _\br_\ba_\bn_\bg_\be, as described below.
+              If  _\br_\ba_\bn_\bg_\be  is  not  specified,  display the entire history list.
+              Without -\b-H\bH, display the list with command numbers, prefixing en-
+              tries that have been modified with a
+
+              A _\br_\ba_\bn_\bg_\be argument is specified in the form of a number _\bo_\bf_\bf_\bs_\be_\bt  or
+              a  range  _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd.   If  _\bo_\bf_\bf_\bs_\be_\bt is supplied, it references the
+              history entry at position _\bo_\bf_\bf_\bs_\be_\bt in the history list; when list-
+              ing this displays the last _\bo_\bf_\bf_\bs_\be_\bt entries.   A  negative  _\bo_\bf_\bf_\bs_\be_\bt
+              counts  back  from  the end of the history list, relative to one
+              greater than the last history position.  When listing,  negative
+              and  positive _\bo_\bf_\bf_\bs_\be_\bt_\bs have identical results.  _\bs_\bt_\ba_\br_\bt and _\be_\bn_\bd, if
+              supplied, reference the portion of the history list beginning at
+              position _\bs_\bt_\ba_\br_\bt through position _\be_\bn_\bd.  If _\bs_\bt_\ba_\br_\bt or _\be_\bn_\bd are  nega-
+              tive,  they  count  back from the end of the history list.  When
+              listing, if _\bs_\bt_\ba_\br_\bt is greater than _\be_\bn_\bd, the history  entries  are
+              displayed in reverse order from _\be_\bn_\bd to _\bs_\bt_\ba_\br_\bt.
+
+              If  the shell variable H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT is set and not null, it is
+              used as a format string for  _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3)  to  display  the  time
+              stamp  associated with each displayed history entry.  If h\bhi\bis\bst\bto\bor\bry\by
+              uses H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT, it does not print an intervening space  be-
+              tween the formatted time stamp and the history entry.
 
               If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is supplied, h\bhi\bis\bst\bto\bor\bry\by uses it as the name of the his-
-              tory file; if not, it uses the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE.   If  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
-              is  not  supplied and H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset or null, the -\b-a\ba,\b, -\b-n\bn,\b, -\b-r\br,\b,
+              tory  file;  if not, it uses the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+              is not supplied and H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset or null, the -\b-a\ba,\b,  -\b-n\bn,\b -\b-r\br,\b,
               and -\b-w\bw options have no effect.
 
               Options, if supplied, have the following meanings:
               -\b-c\bc     Clear the history list by deleting all the entries.  This
                      can be used with the other options to replace the history
                      list.
-              -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
-                     Delete the history entry at position _\bo_\bf_\bf_\bs_\be_\bt.   If  _\bo_\bf_\bf_\bs_\be_\bt
-                     is negative, it is interpreted as relative to one greater
-                     than the last history position, so negative indices count
-                     back  from  the  end  of  the history, and an index of -1
-                     refers to the current h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd command.
-              -\b-d\bd _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd
-                     Delete the range of  history  entries  between  positions
-                     _\bs_\bt_\ba_\br_\bt  and  _\be_\bn_\bd, inclusive.  Positive and negative values
-                     for _\bs_\bt_\ba_\br_\bt and _\be_\bn_\bd are interpreted as described above.
-              -\b-a\ba     Append the history lines to the history file.  These  are
-                     history  lines entered since the beginning of the current
-                     b\bba\bas\bsh\bh session, but not already  appended  to  the  history
+              -\b-d\bd _\br_\ba_\bn_\bg_\be
+                     Delete  the  history  entries  specified by _\br_\ba_\bn_\bg_\be, as de-
+                     scribed above.  An index of -1 refers to the current h\bhi\bis\bs-\b-
+                     t\bto\bor\bry\by -\b-d\bd command.
+              -\b-H\bH     Display the selected history entries in the  format  that
+                     would  be written to the history file, including any time
+                     stamp information as described below,  without  prefixing
+                     the entry with any line number or
+              -\b-a\ba     Append  the history lines to the history file.  These are
+                     history lines entered since the beginning of the  current
+                     b\bba\bas\bsh\bh  session,  but  not  already appended to the history
                      file.
-              -\b-n\bn     Read  the history lines not already read from the history
+              -\b-n\bn     Read the history lines not already read from the  history
                      file and add them to the current history list.  These are
                      lines appended to the history file since the beginning of
                      the current b\bba\bas\bsh\bh session.
@@ -932,24 +948,24 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      rent history list.
               -\b-w\bw     Write the current history list to the history file, over-
                      writing the history file.
-              -\b-p\bp     Perform history substitution on the  following  _\ba_\br_\bg_\b and
-                     display  the result on the standard output, without stor-
-                     ing the results in the history list.  Each  _\ba_\br_\bg  must  be
+              -\b-p\bp     Perform  history  substitution  on the following _\ba_\br_\bg_\bs and
+                     display the result on the standard output, without  stor-
+                     ing  the  results  in the history list.  Each _\ba_\br_\bg must be
                      quoted to disable normal history expansion.
-              -\b-s\bs     Store  the  _\ba_\br_\bg_\bs  in  the history list as a single entry.
-                     The last command in the history list  is  removed  before
+              -\b-s\bs     Store the _\ba_\br_\bg_\bs in the history list  as  a  single  entry.
+                     The  last  command  in the history list is removed before
                      adding the _\ba_\br_\bg_\bs.
 
-              If  the  H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, h\bhi\bis\bst\bto\bor\bry\by writes the time
+              If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, h\bhi\bis\bst\bto\bor\bry\by writes  the  time
               stamp information associated with each history entry to the his-
-              tory file, marked with the  history  comment  character  as  de-
-              scribed  above.   When the history file is read, lines beginning
-              with the history comment character  followed  immediately  by  a
-              digit  are  interpreted  as timestamps for the following history
+              tory  file,  marked  with  the  history comment character as de-
+              scribed above.  When the history file is read,  lines  beginning
+              with  the  history  comment  character followed immediately by a
+              digit are interpreted as timestamps for  the  following  history
               entry.
 
-              The return value is 0 unless an invalid option  is  encountered,
-              an  error  occurs  while reading or writing the history file, an
+              The  return  value is 0 unless an invalid option is encountered,
+              an error occurs while reading or writing the  history  file,  an
               invalid _\bo_\bf_\bf_\bs_\be_\bt or range is supplied as an argument to -\b-d\bd, or the
               history expansion supplied as an argument to -\b-p\bp fails.
 
@@ -958,14 +974,14 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               The first form lists the active jobs.  The options have the fol-
               lowing meanings:
               -\b-l\bl     List process IDs in addition to the normal information.
-              -\b-n\bn     Display information only about  jobs  that  have  changed
+              -\b-n\bn     Display  information  only  about  jobs that have changed
                      status since the user was last notified of their status.
-              -\b-p\bp     List  only  the  process  ID  of  the job's process group
+              -\b-p\bp     List only the process  ID  of  the  job's  process  group
                      leader.
               -\b-r\br     Display only running jobs.
               -\b-s\bs     Display only stopped jobs.
 
-              If _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, j\bjo\bob\bbs\bs  restricts  output  to  information
+              If  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is  supplied,  j\bjo\bob\bbs\bs restricts output to information
               about that job.  The return status is 0 unless an invalid option
               is encountered or an invalid _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied.
 
@@ -975,252 +991,252 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
        k\bki\bil\bll\bl [-\b-s\bs _\bs_\bi_\bg_\bs_\bp_\be_\bc | -\b-n\bn _\bs_\bi_\bg_\bn_\bu_\bm | -\b-_\bs_\bi_\bg_\bs_\bp_\be_\bc] _\bi_\bd [ ... ]
        k\bki\bil\bll\bl -\b-l\bl|-\b-L\bL [_\bs_\bi_\bg_\bs_\bp_\be_\bc | _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
-              Send  the signal specified by _\bs_\bi_\bg_\bs_\bp_\be_\bc or _\bs_\bi_\bg_\bn_\bu_\bm to the processes
+              Send the signal specified by _\bs_\bi_\bg_\bs_\bp_\be_\bc or _\bs_\bi_\bg_\bn_\bu_\bm to the  processes
               named by each _\bi_\bd.  Each _\bi_\bd may be a job specification _\bj_\bo_\bb_\bs_\bp_\be_\bc or
-              a process ID _\bp_\bi_\bd.  _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a  case-insensitive  signal
-              name  such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix) or a sig-
-              nal number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number.  If _\bs_\bi_\bg_\bs_\bp_\be_\bc is  not  sup-
+              a  process  ID _\bp_\bi_\bd.  _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a case-insensitive signal
+              name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix) or a  sig-
+              nal  number;  _\bs_\bi_\bg_\bn_\bu_\bm is a signal number.  If _\bs_\bi_\bg_\bs_\bp_\be_\bc is not sup-
               plied, then k\bki\bil\bll\bl sends S\bSI\bIG\bGT\bTE\bER\bRM\bM.
 
               The -\b-l\bl option lists the signal names.  If any arguments are sup-
               plied when -\b-l\bl is given, k\bki\bil\bll\bl lists the names of the signals cor-
-              responding  to  the  arguments, and the return status is 0.  The
-              _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bargument to -\b-l\bl is a number specifying either a  sig-
-              nal  number or the exit status of a process terminated by a sig-
-              nal; if it is supplied, k\bki\bil\bll\bl prints the name of the signal  that
+              responding to the arguments, and the return status  is  0.   The
+              _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\b argument to -\b-l\bl is a number specifying either a sig-
+              nal number or the exit status of a process terminated by a  sig-
+              nal;  if it is supplied, k\bki\bil\bll\bl prints the name of the signal that
               caused the process to terminate.  k\bki\bil\bll\bl assumes that process exit
               statuses are greater than 128; anything less than that is a sig-
               nal number.  The -\b-L\bL option is equivalent to -\b-l\bl.
 
-              k\bki\bil\bll\b returns true if at least one signal was successfully sent,
+              k\bki\bil\bll\breturns true if at least one signal was successfully  sent,
               or false if an error occurs or an invalid option is encountered.
 
        l\ble\bet\bt _\ba_\br_\bg [_\ba_\br_\bg ...]
-              Each _\ba_\br_\bg is evaluated as an arithmetic  expression  (see  A\bAR\bRI\bIT\bTH\bH-\b-
-              M\bME\bET\bTI\bIC\b E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN  in _\bb_\ba_\bs_\bh(1)).  If the last _\ba_\br_\bg evaluates to 0,
+              Each  _\ba_\br_\bg  is  evaluated as an arithmetic expression (see A\bAR\bRI\bIT\bTH\bH-\b-
+              M\bME\bET\bTI\bIC\bE\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN in _\bb_\ba_\bs_\bh(1)).  If the last _\ba_\br_\bg evaluates  to  0,
               l\ble\bet\bt returns 1; otherwise l\ble\bet\bt returns 0.
 
        l\blo\boc\bca\bal\bl [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ... | - ]
               For each argument, create a local variable named _\bn_\ba_\bm_\be and assign
-              it _\bv_\ba_\bl_\bu_\be.  The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the options accepted by  d\bde\be-\b-
-              c\bcl\bla\bar\bre\be.   When  l\blo\boc\bca\bal\bl  is  used  within a function, it causes the
-              variable _\bn_\ba_\bm_\be to have a visible scope restricted to  that  func-
-              tion  and  its  children.   It is an error to use l\blo\boc\bca\bal\bl when not
+              it  _\bv_\ba_\bl_\bu_\be.  The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the options accepted by d\bde\be-\b-
+              c\bcl\bla\bar\bre\be.  When l\blo\boc\bca\bal\bl is used within  a  function,  it  causes  the
+              variable  _\bn_\ba_\bm_\be  to have a visible scope restricted to that func-
+              tion and its children.  It is an error to  use  l\blo\boc\bca\bal\bl  when  not
               within a function.
 
-              If _\bn_\ba_\bm_\be is -, it makes the set of shell  options  local  to  the
-              function  in  which  l\blo\boc\bca\bal\bl is invoked: any shell options changed
-              using the s\bse\bet\bt builtin inside the function after the call to  l\blo\bo-\b-
-              c\bca\bal\b are restored to their original values when the function re-
-              turns.  The restore is performed as if a series of s\bse\bet\b commands
-              were  executed  to  restore the values that were in place before
+              If  _\bn_\ba_\bm_\be  is  -,  it makes the set of shell options local to the
+              function in which l\blo\boc\bca\bal\bl is invoked: any  shell  options  changed
+              using  the s\bse\bet\bt builtin inside the function after the call to l\blo\bo-\b-
+              c\bca\bal\bare restored to their original values when the function  re-
+              turns.   The restore is performed as if a series of s\bse\bet\bt commands
+              were executed to restore the values that were  in  place  before
               the function.
 
-              With no operands, l\blo\boc\bca\bal\bl writes a list of local variables to  the
+              With  no operands, l\blo\boc\bca\bal\bl writes a list of local variables to the
               standard output.
 
-              The  return status is 0 unless l\blo\boc\bca\bal\bl is used outside a function,
+              The return status is 0 unless l\blo\boc\bca\bal\bl is used outside a  function,
               an invalid _\bn_\ba_\bm_\be is supplied, or _\bn_\ba_\bm_\be is a readonly variable.
 
        l\blo\bog\bgo\bou\but\bt [\b[_\bn]\b]
-              Exit a login shell, returning a status of _\bn to the shell's  par-
+              Exit  a login shell, returning a status of _\bn to the shell's par-
               ent.
 
        m\bma\bap\bpf\bfi\bil\ble\be [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
        _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
        r\bre\bea\bad\bda\bar\brr\bra\bay\by [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
        _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
-              Read  lines  from the standard input, or from file descriptor _\bf_\bd
-              if the -\b-u\bu option is supplied, into the  indexed  array  variable
-              _\ba_\br_\br_\ba_\by.   The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by.  Options, if
+              Read lines from the standard input, or from file  descriptor  _\bf_\bd
+              if  the  -\b-u\bu  option is supplied, into the indexed array variable
+              _\ba_\br_\br_\ba_\by.  The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by.  Options,  if
               supplied, have the following meanings:
-              -\b-d\bd     Use the first character of _\bd_\be_\bl_\bi_\bm to terminate each  input
+              -\b-d\bd     Use  the first character of _\bd_\be_\bl_\bi_\bm to terminate each input
                      line, rather than newline.  If _\bd_\be_\bl_\bi_\bm is the empty string,
                      m\bma\bap\bpf\bfi\bil\ble\be will terminate a line when it reads a NUL charac-
                      ter.
               -\b-n\bn     Copy at most _\bc_\bo_\bu_\bn_\bt lines.  If _\bc_\bo_\bu_\bn_\bt is 0, copy all lines.
-              -\b-O\bO     Begin  assigning  to  _\ba_\br_\br_\ba_\by at index _\bo_\br_\bi_\bg_\bi_\bn.  The default
+              -\b-O\bO     Begin assigning to _\ba_\br_\br_\ba_\by at index  _\bo_\br_\bi_\bg_\bi_\bn.   The  default
                      index is 0.
               -\b-s\bs     Discard the first _\bc_\bo_\bu_\bn_\bt lines read.
-              -\b-t\bt     Remove a trailing _\bd_\be_\bl_\bi_\bm (default newline) from each  line
+              -\b-t\bt     Remove  a trailing _\bd_\be_\bl_\bi_\bm (default newline) from each line
                      read.
-              -\b-u\bu     Read  lines  from file descriptor _\bf_\bd instead of the stan-
+              -\b-u\bu     Read lines from file descriptor _\bf_\bd instead of  the  stan-
                      dard input.
-              -\b-C\bC     Evaluate _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read.   The
+              -\b-C\bC     Evaluate  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read.  The
                      -\b-c\bc option specifies _\bq_\bu_\ba_\bn_\bt_\bu_\bm.
-              -\b-c\bc     Specify  the  number  of  lines read between each call to
+              -\b-c\bc     Specify the number of lines read  between  each  call  to
                      _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk.
 
-              If -\b-C\bC is specified without -\b-c\bc,  the  default  quantum  is  5000.
+              If  -\b-C\bC  is  specified  without  -\b-c\bc, the default quantum is 5000.
               When _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated, it is supplied the index of the next
               array element to be assigned and the line to be assigned to that
-              element  as  additional  arguments.  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated after
+              element as additional arguments.  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk  is  evaluated  after
               the line is read but before the array element is assigned.
 
-              If not supplied with an explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear  _\ba_\br_\b-
+              If  not supplied with an explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear _\ba_\br_\b-
               _\br_\ba_\by before assigning to it.
 
               m\bma\bap\bpf\bfi\bil\ble\be returns zero unless an invalid option or option argument
-              is  supplied,  _\ba_\br_\br_\ba_\by  is invalid or unassignable, or if _\ba_\br_\br_\ba_\by is
+              is supplied, _\ba_\br_\br_\ba_\by is invalid or unassignable, or  if  _\ba_\br_\br_\ba_\b is
               not an indexed array.
 
        p\bpo\bop\bpd\bd [-n\bn] [+_\bn] [-_\bn]
-              Remove entries from the directory stack.  The elements are  num-
-              bered  from 0 starting at the first directory listed by d\bdi\bir\brs\bs, so
-              p\bpo\bop\bpd\bis equivalent to With no arguments, p\bpo\bop\bpd\bd  removes  the  top
-              directory  from the stack, and changes to the new top directory.
+              Remove  entries from the directory stack.  The elements are num-
+              bered from 0 starting at the first directory listed by d\bdi\bir\brs\bs,  so
+              p\bpo\bop\bpd\b is  equivalent  to With no arguments, p\bpo\bop\bpd\bd removes the top
+              directory from the stack, and changes to the new top  directory.
               Arguments, if supplied, have the following meanings:
               -\b-n\bn     Suppress the normal change of directory when removing di-
                      rectories from the stack, only manipulate the stack.
-              +\b+_\bn     Remove the _\bnth entry counting from the left of  the  list
-                     shown  by  d\bdi\bir\brs\bs, starting with zero, from the stack.  For
+              +\b+_\bn     Remove  the  _\bnth entry counting from the left of the list
+                     shown by d\bdi\bir\brs\bs, starting with zero, from the  stack.   For
                      example: removes the first directory, the second.
-              -\b-_\bn     Remove the _\bnth entry counting from the right of the  list
-                     shown  by d\bdi\bir\brs\bs, starting with zero.  For example: removes
+              -\b-_\bn     Remove  the _\bnth entry counting from the right of the list
+                     shown by d\bdi\bir\brs\bs, starting with zero.  For example:  removes
                      the last directory, the next to last.
 
-              If the top element of the directory stack is modified,  and  the
-              -\b-n\b option  was not supplied, p\bpo\bop\bpd\bd uses the c\bcd\bd builtin to change
+              If  the  top element of the directory stack is modified, and the
+              -\b-n\boption was not supplied, p\bpo\bop\bpd\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\bpo\bop\bpd\bd
               returns a non-zero value.
 
-              Otherwise, p\bpo\bop\bpd\bd returns false if an invalid option is  supplied,
-              the  directory stack is empty, or _\bn specifies a non-existent di-
+              Otherwise,  p\bpo\bop\bpd\bd returns false if an invalid option is supplied,
+              the directory stack is empty, or _\bn specifies a non-existent  di-
               rectory stack entry.
 
-              If the p\bpo\bop\bpd\bd command is successful, b\bba\bas\bsh\bh runs d\bdi\bir\brs\bs  to  show  the
-              final  contents of the directory stack, and the return status is
+              If  the  p\bpo\bop\bpd\bd  command is successful, b\bba\bas\bsh\bh runs d\bdi\bir\brs\bs to show the
+              final contents of the directory stack, and the return status  is
               0.
 
        p\bpr\bri\bin\bnt\btf\bf [-\b-v\bv _\bv_\ba_\br] _\bf_\bo_\br_\bm_\ba_\bt [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
-              Write the formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output  under  the
-              control  of the _\bf_\bo_\br_\bm_\ba_\bt.  The -\b-v\bv option assigns the output to the
+              Write  the  formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output under the
+              control of the _\bf_\bo_\br_\bm_\ba_\bt.  The -\b-v\bv option assigns the output to  the
               variable _\bv_\ba_\br rather than printing it to the standard output.
 
-              The _\bf_\bo_\br_\bm_\ba_\bt is a character string which contains three  types  of
-              objects:  plain  characters, which are simply copied to standard
-              output, character escape  sequences,  which  are  converted  and
-              copied  to  the standard output, and format specifications, each
-              of which causes printing of the next  successive  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.   In
-              addition  to  the  standard  _\bp_\br_\bi_\bn_\bt_\bf(3)  format  characters c\bcC\bCs\bsS\bS-\b-
+              The  _\bf_\bo_\br_\bm_\ba_\bt  is a character string which contains three types of
+              objects: plain characters, which are simply copied  to  standard
+              output,  character  escape  sequences,  which  are converted and
+              copied to the standard output, and format  specifications,  each
+              of  which  causes  printing of the next successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.  In
+              addition to  the  standard  _\bp_\br_\bi_\bn_\bt_\bf(3)  format  characters  c\bcC\bCs\bsS\bS-\b-
               n\bnd\bdi\bio\bou\bux\bxX\bXe\beE\bEf\bfF\bFg\bgG\bGa\baA\bA, p\bpr\bri\bin\bnt\btf\bf interprets the following additional for-
               mat specifiers:
               %\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 and %\b%Q\bQ use
-                     the $\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
+              %\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 and %\b%Q\b use
+                     the  $\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-
+              %\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.  This format specifier
                      recognizes two special argument values: -1 represents the
-                     current  time,  and  -2 represents the time the shell was
+                     current time, and -2 represents the time  the  shell  was
                      invoked.  If no argument is specified, conversion behaves
-                     as if -1 had been supplied.  This is an exception to  the
+                     as  if -1 had been supplied.  This is an exception to the
                      usual p\bpr\bri\bin\bnt\btf\bf behavior.
 
               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-
+              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.
 
-              The  %s  and  %c  format specifiers accept an l (long) modifier,
+              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.  The %S and %C format specifiers
               are equivalent to %ls and %lc, respectively.
 
-              Arguments to non-string format specifiers are treated as C  con-
+              Arguments  to non-string format specifiers are treated as C con-
               stants, except that a leading plus or minus sign is allowed, and
-              if  the leading character is a single or double quote, the value
-              is the numeric value of the following character, using the  cur-
+              if the leading character is a single or double quote, the  value
+              is  the numeric value of the following character, using the cur-
               rent locale.
 
-              Format  specifiers may apply to the _\bnth argument rather than the
-              next sequential argument.  In this case, the '%' in  the  format
+              Format specifiers may apply to the _\bnth argument rather than  the
+              next  sequential  argument.  In this case, the '%' in the format
               specifier is replaced by the sequence where _\bn is a decimal inte-
-              ger  greater  than  0,  giving the argument number to use as the
-              operand.  The format string should not mix numbered  and  unnum-
-              bered  argument  specifiers, though this is allowed.  Unnumbered
-              argument specifiers always refer to the next argument  following
-              the  last argument consumed by an unnumbered specifier; numbered
-              argument specifiers refer to absolute positions in the  argument
+              ger greater than 0, giving the argument number  to  use  as  the
+              operand.   The  format string should not mix numbered and unnum-
+              bered argument specifiers, though this is  allowed.   Unnumbered
+              argument  specifiers always refer to the next argument following
+              the last argument consumed by an unnumbered specifier;  numbered
+              argument  specifiers refer to absolute positions in the argument
               list.
 
-              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.  If _\bf_\bo_\br_\bm_\ba_\bt is
+              the  extra  format  specifications  behave as if a zero value or
+              null string, as appropriate, had been supplied.   If  _\bf_\bo_\br_\bm_\ba_\b is
               reused, a numbered argument specifier refers to the _\bnth argument
               following the highest numbered argument consumed by the previous
               use of _\bf_\bo_\br_\bm_\ba_\bt.
 
-              The return value is zero on success, non-zero if an invalid  op-
+              The  return value is zero on success, non-zero if an invalid op-
               tion is supplied 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]
               Add a directory to the top of the directory stack, or rotate the
-              stack,  making  the new top of the stack the current working di-
-              rectory.  With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the  top  two  ele-
-              ments  of the directory stack.  Arguments, if supplied, have the
+              stack, making the new top of the stack the current  working  di-
+              rectory.   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     Suppress the normal change of directory when rotating  or
-                     adding  directories  to  the  stack,  only manipulate the
+              -\b-n\bn     Suppress  the normal change of directory when rotating or
+                     adding directories to  the  stack,  only  manipulate  the
                      stack.
               +\b+_\bn     Rotate the stack so that the _\bnth directory (counting from
-                     the left of the list shown by d\bdi\bir\brs\bs, starting  with  zero)
+                     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 zero  un-
-              less  the directory stack is empty.  When rotating the directory
+              Otherwise,  if no arguments are supplied, p\bpu\bus\bsh\bhd\bd returns zero un-
+              less the directory stack is empty.  When rotating the  directory
               stack, p\bpu\bus\bsh\bhd\bd returns zero unless the directory stack is empty or
               _\bn specifies a non-existent directory stack element.
 
-              If the p\bpu\bus\bsh\bhd\bd command is successful, b\bba\bas\bsh\bh runs d\bdi\bir\brs\bs to  show  the
+              If  the  p\bpu\bus\bsh\bhd\bd command is successful, b\bba\bas\bsh\bh 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\bEe\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 ...]
               Read one line from the standard input, or from the file descrip-
-              tor _\bf_\bd supplied as an argument to the -\b-u\bu option, split  it  into
-              words  as described in _\bb_\ba_\bs_\bh (1) under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg, and assign
-              the first word 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 re-
-              maining 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 the value of the I\bIF\bFS\bS variable are used
+              tor  _\bf_\bd  supplied as an argument to the -\b-u\bu option, split it into
+              words as described in _\bb_\ba_\bs_\bh (1) under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg, and  assign
+              the  first word 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  re-
+              maining  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 the value of the I\bIF\bFS\bS variable  are  used
               to split the line into words using the same rules the shell uses
               for expansion (described in _\bb_\ba_\bs_\bh (1) under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg).  The
               backslash character (\\b\) removes any special meaning for the next
@@ -1230,190 +1246,190 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\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 terminates the input line,
-                     rather than newline.  If _\bd_\be_\bl_\bi_\bm is the empty string,  r\bre\bea\bad\bd
+                     The first character of _\bd_\be_\bl_\bi_\bm terminates the  input  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\bd
-                     uses r\bre\bea\bad\bdl\bli\bin\bne\be (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE in  _\bb_\ba_\bs_\bh(1))  to  obtain  the
-                     line.   R\bRe\bea\bad\bdl\bli\bin\bne\be  uses  the  current (or default, if line
-                     editing was not previously active) editing settings,  but
+              -\b-e\be     If the standard input is coming  from  a  terminal,  r\bre\bea\bad\bd
+                     uses  r\bre\bea\bad\bdl\bli\bin\bne\be  (see  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE  in _\bb_\ba_\bs_\bh(1)) to obtain the
+                     line.  R\bRe\bea\bad\bdl\bli\bin\bne\be uses the current  (or  default,  if  line
+                     editing  was not previously active) editing settings, but
                      uses r\bre\bea\bad\bdl\bli\bin\bne\be's default filename completion.
-              -\b-E\bE     If  the  standard  input  is coming from a terminal, r\bre\bea\bad\bd
-                     uses r\bre\bea\bad\bdl\bli\bin\bne\be (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE in  _\bb_\ba_\bs_\bh(1))  to  obtain  the
-                     line.   R\bRe\bea\bad\bdl\bli\bin\bne\be  uses  the  current (or default, if line
-                     editing was not previously active) editing settings,  but
-                     uses  bash's  default  completion, including programmable
+              -\b-E\bE     If the standard input is coming  from  a  terminal,  r\bre\bea\bad\bd
+                     uses  r\bre\bea\bad\bdl\bli\bin\bne\be  (see  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE  in _\bb_\ba_\bs_\bh(1)) to obtain the
+                     line.  R\bRe\bea\bad\bdl\bli\bin\bne\be uses the current  (or  default,  if  line
+                     editing  was not previously active) editing settings, but
+                     uses bash's default  completion,  including  programmable
                      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,  r\bre\bea\bad\b places
+                     If  r\bre\bea\bad\bdl\bli\bin\bne\be  is being used to read the line, r\bre\bea\bad\bd places
                      _\bt_\be_\bx_\bt 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
-                     waiting for a complete line of input, unless  it  encoun-
-                     ters  EOF or r\bre\bea\bad\bd times out, but honors a delimiter if it
+                     r\bre\bea\bad\breturns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather  than
+                     waiting  for  a complete line of input, unless it encoun-
+                     ters EOF or r\bre\bea\bad\bd times out, but honors a delimiter if  it
                      reads fewer than _\bn_\bc_\bh_\ba_\br_\bs characters 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
+                     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
                      it encounters EOF or r\bre\bea\bad\bd times out.  Any delimiter char-
-                     acters in the input are not treated specially and do  not
+                     acters  in the input are not treated specially and do not
                      cause r\bre\bea\bad\bd to return until it has read _\bn_\bc_\bh_\ba_\br_\bs characters.
                      The result is not split on the characters in I\bIF\bFS\bS; the in-
                      tent is that the variable is assigned exactly the charac-
-                     ters  read  (with  the exception of backslash; see the -\b-r\br
+                     ters read (with the exception of backslash;  see  the  -\b-r\br
                      option below).
               -\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
                      Display _\bp_\br_\bo_\bm_\bp_\bt on standard error, without a trailing new-
-                     line, before attempting to read any input,  but  only  if
+                     line,  before  attempting  to read any input, but 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 it does not
-                     read a complete line of input (or a specified  number  of
-                     characters)  within  _\bt_\bi_\bm_\be_\bo_\bu_\bt  seconds.   _\bt_\bi_\bm_\be_\bo_\bu_\bt may be a
-                     decimal number with a fractional  portion  following  the
-                     decimal  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, it saves any partial input  read  into
-                     the  specified  variable  _\bn_\ba_\bm_\be,  and  the  exit status is
-                     greater than 128.  If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0, r\bre\bea\bad\bd returns  immedi-
-                     ately,  without  trying  to read any data.  In this case,
-                     the exit status is 0 if input is available on the  speci-
-                     fied  file  descriptor, or the read will return EOF, non-
+                     Cause r\bre\bea\bad\bd to time out and return failure if it does  not
+                     read  a  complete line of input (or a specified number of
+                     characters) within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.   _\bt_\bi_\bm_\be_\bo_\bu_\bt  may  be  a
+                     decimal  number  with  a fractional portion following the
+                     decimal 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.
+                     If  r\bre\bea\bad\bd  times out, it saves any partial input read into
+                     the specified variable  _\bn_\ba_\bm_\be,  and  the  exit  status  is
+                     greater  than 128.  If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0, r\bre\bea\bad\bd returns immedi-
+                     ately, without trying to read any data.   In  this  case,
+                     the  exit status is 0 if input is available on the speci-
+                     fied file descriptor, or the read will return  EOF,  non-
                      zero otherwise.
-              -\b-u\bu _\bf_\bd  Read input from file descriptor _\bf_\bd instead of  the  stan-
+              -\b-u\bu _\bf_\bd  Read  input  from file descriptor _\bf_\bd instead of the stan-
                      dard input.
 
-              Other  than  the  case where _\bd_\be_\bl_\bi_\bm is the empty string, r\bre\bea\bad\bd ig-
+              Other than the case where _\bd_\be_\bl_\bi_\bm is the empty  string,  r\bre\bea\bad\b ig-
               nores any NUL characters in the input.
 
-              If no _\bn_\ba_\bm_\be_\bs are supplied, r\bre\bea\bad\bd assigns the  line  read,  without
-              the  ending  delimiter but otherwise unmodified, to the variable
+              If  no  _\bn_\ba_\bm_\be_\bs  are supplied, r\bre\bea\bad\bd assigns the line read, without
+              the ending delimiter but otherwise unmodified, to  the  variable
               R\bRE\bEP\bPL\bLY\bY.
 
               The exit status is zero, unless end-of-file is encountered, r\bre\bea\bad\bd
-              times out (in which case the status  is  greater  than  128),  a
+              times  out  (in  which  case  the status is greater than 128), a
               variable assignment error (such as assigning to a readonly vari-
-              able)  occurs,  or an invalid file descriptor is supplied as the
+              able) 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
+              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 or unset.  If the -\b-f\bf
-              option  is  supplied, each _\bn_\ba_\bm_\be refers to a shell function.  The
-              -\b-a\boption restricts the variables to indexed arrays; the -\b-A\b op-
+              option is supplied, each _\bn_\ba_\bm_\be refers to a shell  function.   The
+              -\b-a\b option restricts the variables to indexed arrays; the -\b-A\bA op-
               tion restricts the variables to associative arrays.  If both op-
-              tions  are  supplied, -\b-A\bA takes precedence.  If no _\bn_\ba_\bm_\be arguments
-              are supplied, or if the -\b-p\bp option is supplied, print a  list  of
-              all  readonly  names.  The other options may be used to restrict
+              tions are supplied, -\b-A\bA takes precedence.  If no  _\bn_\ba_\bm_\b arguments
+              are  supplied,  or if the -\b-p\bp option is supplied, print a list of
+              all readonly names.  The other options may be used  to  restrict
               the output to a subset of the set of readonly names.  The -\b-p\bp op-
               tion displays output in a format that may be reused as input.
 
-              r\bre\bea\bad\bdo\bon\bnl\bly\ballows the value of a variable to be set  at  the  same
+              r\bre\bea\bad\bdo\bon\bnl\bly\b allows  the  value of a variable to be set at the same
               time the readonly attribute is changed by following the variable
-              name  with  =_\bv_\ba_\bl_\bu_\be.   This  sets the value of the variable is to
+              name with =_\bv_\ba_\bl_\bu_\be.  This sets the value of  the  variable  is  to
               _\bv_\ba_\bl_\bu_\be while modifying the readonly attribute.
 
-              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
+              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\b is
               supplied with a _\bn_\ba_\bm_\be that is not a function.
 
        r\bre\bet\btu\bur\brn\bn [_\bn]
-              Stop executing a shell function or sourced file and  return  the
+              Stop  executing  a shell function or sourced file and return the
               value specified by _\bn to its caller.  If _\bn is omitted, the return
-              status  is that of the last command executed.  If r\bre\bet\btu\bur\brn\bn is exe-
-              cuted by a trap handler, the last command used to determine  the
+              status is that of the last command executed.  If r\bre\bet\btu\bur\brn\bn is  exe-
+              cuted  by a trap handler, the last command used to determine the
               status is the last command executed before the trap handler.  If
               r\bre\bet\btu\bur\brn\bn is executed during a D\bDE\bEB\bBU\bUG\bG trap, the last command used to
-              determine  the  status  is the last command executed by the trap
+              determine the status is the last command executed  by  the  trap
               handler before r\bre\bet\btu\bur\brn\bn was invoked.
 
               When r\bre\bet\btu\bur\brn\bn is used to terminate execution of a script being ex-
-              ecuted 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
+              ecuted  by  the .\b.  (s\bso\bou\bur\brc\bce\be) command, it causes the shell to stop
+              executing that script and return either _\bn or the exit status  of
+              the  last  command executed within the script as the exit status
+              of the script.  If _\bn is supplied, the return value is its  least
               significant 8 bits.
 
-              Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is  executed  before
+              Any  command  associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed before
               execution resumes after the function or script.
 
-              The  return  status  is non-zero if r\bre\bet\btu\bur\brn\bn is supplied a non-nu-
+              The return status is non-zero if r\bre\bet\btu\bur\brn\bn is  supplied  a  non-nu-
               meric argument, or is used outside a function and not during ex-
               ecution of a script by .\b. or s\bso\bou\bur\brc\bce\be.
 
        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 ...]
        s\bse\bet\bt -\b-o\bo
-       s\bse\bet\bt +\b+o\bo 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-
+       s\bse\bet\bt +\b+o\bo 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 posix mode, only shell variables are listed.   The
-              output  is sorted according to the current locale.  When options
-              are specified, they set or unset shell  attributes.   Any  argu-
-              ments  remaining  after  option processing are treated as values
+              be  reset.  In posix mode, only shell variables are listed.  The
+              output is sorted according to the current locale.  When  options
+              are  specified,  they  set or unset shell attributes.  Any 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$_\bn.  Options, if specified, have  the  following  mean-
+              $\b$2\b2,  ...,  $\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 or af-
-                      ter  a foreground command terminates.  This is effective
+                      ter a foreground command terminates.  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_\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(1)), 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_\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(1)), 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 reserved word, part of the test follow-
-                      ing  the  i\bif\bf or e\bel\bli\bif\bf reserved words, part of any command
+                      ing the i\bif\bf or e\bel\bli\bif\bf reserved words, part of  any  command
                       executed in a &\b&&\b& or |\b||\b| list except the command following
-                      the final &\b&&\b& or |\b||\b|, any command in a  pipeline  but  the
-                      last  (subject  to  the  state of the p\bpi\bip\bpe\bef\bfa\bai\bil\bl shell op-
-                      tion), or if the command's return  value  is  being  in-
-                      verted  with !\b!.  If a compound command other than a sub-
+                      the  final  &\b&&\b&  or |\b||\b|, any command in a pipeline but the
+                      last (subject to the state of  the  p\bpi\bip\bpe\bef\bfa\bai\bil\bl  shell  op-
+                      tion),  or  if  the  command's return value is being in-
+                      verted with !\b!.  If a compound command other than a  sub-
                       shell returns a non-zero status because a command failed
-                      while -\b-e\be was being ignored, the shell does not exit.   A
+                      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 environment separately (see  C\bCO\bOM\bMM\bMA\bAN\bND\b E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN
+                      This option applies to the shell  environment  and  each
+                      subshell  environment  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(1)), and may cause subshells to exit
                       before executing all the commands in the subshell.
 
-                      If  a  compound  command or shell function executes in a
-                      context where -\b-e\be is being ignored, none of the  commands
-                      executed  within  the  compound command or function body
-                      will be affected by the -\b-e\be setting, even if  -\b-e\be  is  set
-                      and  a  command returns a failure status.  If a compound
-                      command or shell function sets -\b-e\be while executing  in  a
-                      context  where -\b-e\be is ignored, that setting will not have
-                      any effect until the compound  command  or  the  command
+                      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(1)).  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(1)).  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:
@@ -1421,10 +1437,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
@@ -1434,11 +1450,11 @@ 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(1)
-                              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(1)
+                              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  had  been
+                              The  effect  is as if the shell command had been
                               executed (see S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs in _\bb_\ba_\bs_\bh(1)).
                       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.
@@ -1453,185 +1469,185 @@ 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   Enable  posix  mode; change the behavior of b\bba\bas\bsh\bh
-                              where the default  operation  differs  from  the
-                              POSIX  standard  to match the standard.  See S\bSE\bEE\bE
-                              A\bAL\bLS\bSO\bin _\bb_\ba_\bs_\bh(1) for a reference  to  a  document
-                              that  details  how posix mode affects bash's be-
+                      p\bpo\bos\bsi\bix\bx   Enable posix mode; change the behavior  of  b\bba\bas\bsh\bh
+                              where  the  default  operation  differs from the
+                              POSIX standard to match the standard.   See  S\bSE\bEE\bE
+                              A\bAL\bLS\bSO\b in  _\bb_\ba_\bs_\bh(1)  for a reference to a document
+                              that details how posix mode affects  bash's  be-
                               havior.
                       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, s\bse\bet\bt prints the
-                      current shell option settings.  If +\b+o\bo is  supplied  with
-                      no  _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be,  s\bse\bet\bt prints a series of s\bse\bet\bt commands to
-                      recreate the current option  settings  on  the  standard
+                      If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be,  s\bse\bet\bt  prints  the
+                      current  shell  option settings.  If +\b+o\bo is supplied with
+                      no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, s\bse\bet\bt prints a series of s\bse\bet\bt  commands  to
+                      recreate  the  current  option  settings on the standard
                       output.
-              -\b-p\bp      Turn  on  _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode.  In this mode, the shell does
-                      not read the $\b$E\bEN\bNV\bV and $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV files,  shell  functions
-                      are  not  inherited  from the environment, and the S\bSH\bHE\bEL\bL-\b-
-                      L\bLO\bOP\bPT\bTS\bS, B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS, C\bCD\bDP\bPA\bAT\bTH\bH, and  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  variables,  if
-                      they  appear  in  the  environment, are ignored.  If the
-                      shell is started with the effective user (group) id  not
-                      equal  to the real user (group) id, and the -\b-p\bp option is
-                      not supplied, these actions are taken and the  effective
+              -\b-p\bp      Turn on _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode.  In this mode, the  shell  does
+                      not  read  the $\b$E\bEN\bNV\bV and $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV files, shell functions
+                      are not inherited from the environment,  and  the  S\bSH\bHE\bEL\bL-\b-
+                      L\bLO\bOP\bPT\bTS\bS,  B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS,  C\bCD\bDP\bPA\bAT\bTH\bH,  and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if
+                      they appear in the environment,  are  ignored.   If  the
+                      shell  is started with the effective user (group) id not
+                      equal to the real user (group) id, and the -\b-p\bp option  is
+                      not  supplied, these actions are taken and the effective
                       user id is set to the real user id.  If the -\b-p\bp option is
                       supplied at startup, the effective user id is not reset.
-                      Turning  this  option  off causes the effective user and
+                      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 subscripted  with
-                      or  as an error when performing parameter expansion.  If
-                      expansion is attempted on an unset variable  or  parame-
-                      ter,  the shell prints an error message, and, if not in-
+                      cial  parameters and or array variables subscripted with
+                      or as an error when performing parameter expansion.   If
+                      expansion  is  attempted on an unset variable or parame-
+                      ter, the shell prints an error message, and, if not  in-
                       teractive, 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
                       the standard error.
-              -\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
+              -\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
                       in _\bb_\ba_\bs_\bh(1)).  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.  Using the
-                      redirection operator >\b>|\b| instead of >\b> will override  this
+              -\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.   Using  the
+                      redirection  operator >\b>|\b| instead of >\b> will override this
                       and force the creation of an output file.
               -\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, unset the positional
                       parameters.  Otherwise, set the positional parameters to
                       the _\ba_\br_\bgs, even if some of them begin with a -\b-.
               -\b-       Signal the end of options, and assign all remaining _\ba_\br_\bgs
                       to the positional parameters.  The -\b-x\bx and -\b-v\bv options are
-                      turned  off.  If there are no _\ba_\br_\bgs, the positional para-
+                      turned off.  If there are no _\ba_\br_\bgs, the positional  para-
                       meters 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 zero unless an invalid option is encoun-
+              shell.   The current set of options may be found in $\b$-\b-.  The re-
+              turn status is always zero unless an invalid option  is  encoun-
               tered.
 
        s\bsh\bhi\bif\bft\bt [_\bn]
               Rename positional parameters from _\bn+1 ... to $\b$1\b1 .\b..\b..\b..\b.  Parameters
-              represented by the numbers $\b$#\b# down to $\b$#\b#-_\bn+1 are unset.  _\b 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 parameters are
-              not changed.  The return status is greater than  zero  if  _\b is
+              represented  by the numbers $\b$#\b# down to $\b$#\b#-_\bn+1 are unset.  _\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  parameters  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, display a list of all
-              settable options, with an indication of whether or not  each  is
-              set;  if  any _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are supplied, the output is restricted to
+              With no options, or with the -\b-p\bp option, display a  list  of  all
+              settable  options,  with an indication of whether or not each is
+              set; if any _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are supplied, the output is  restricted  to
               those options.  The -\b-p\bp option displays output in a form that may
               be reused as input.
 
               Other options have the following meanings:
               -\b-s\bs     Enable (set) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
               -\b-u\bu     Disable (unset) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
-              -\b-q\bq     Suppresses normal output (quiet mode); the return  status
+              -\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 supplied with -\b-q\bq, the return
+                     ple _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are supplied with  -\b-q\bq,  the  return
                      status is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero oth-
                      erwise.
-              -\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\bar\brr\bra\bay\by_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_o\bon\bnc\bce\be
-                      If  set, the shell suppresses multiple evaluation of as-
+                      If set, the shell suppresses multiple evaluation of  as-
                       sociative and indexed array subscripts during arithmetic
                       expression evaluation, while executing builtins that can
-                      perform  variable  assignments,  and   while   executing
+                      perform   variable   assignments,  and  while  executing
                       builtins that perform array dereferencing.
               a\bas\bss\bso\boc\bc_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_o\bon\bnc\bce\be
                       Deprecated; a synonym for a\bar\brr\bra\bay\by_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_o\bon\bnc\bce\be.
-              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-
+              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-
                       mand.  This option is only used by interactive shells.
               b\bba\bas\bsh\bh_\b_s\bso\bou\bur\brc\bce\be_\b_f\bfu\bul\bll\blp\bpa\bat\bth\bh
-                      If  set,  filenames added to the B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE array vari-
-                      able are converted to full pathnames  (see  S\bSh\bhe\bel\bll\b V\bVa\bar\bri\bi-\b-
+                      If set, filenames added to the B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE  array  vari-
+                      able  are  converted  to full pathnames (see S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bi-\b-
                       a\bab\bbl\ble\bes\bs above).
               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, the c\bcd\bd command attempts to correct minor errors
-                      in the spelling of a directory component.  Minor  errors
-                      include  transposed characters, a missing character, and
+              c\bcd\bds\bsp\bpe\bel\bll\bl If set, the c\bcd\bd command attempts to correct minor  errors
+                      in  the spelling of a directory component.  Minor errors
+                      include transposed characters, a missing character,  and
                       one extra character.  If c\bcd\bd corrects the directory name,
-                      it prints the corrected filename, and the  command  pro-
+                      it  prints  the corrected filename, and the command pro-
                       ceeds.  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, b\bba\bas\bsh\bh performs  a  normal  path
+                      ble exists before trying to execute  it.   If  a  hashed
+                      command  no  longer  exists, b\bba\bas\bsh\bh performs a normal path
                       search.
               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, b\bba\bas\bsh\bh defers the exit until a second exit is
-                      attempted without an intervening command (see  J\bJO\bOB\b C\bCO\bON\bN-\b-
+                      attempted  without  an intervening command (see J\bJO\bOB\bB C\bCO\bON\bN-\b-
                       T\bTR\bRO\bOL\bL in _\bb_\ba_\bs_\bh(1)).  The shell always postpones 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, using the file descriptor
-                      associated with the standard error if it is a  terminal.
+                      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, using the  file  descriptor
+                      associated  with the standard error if it is a terminal.
                       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(1) 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(1)  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
@@ -1640,143 +1656,143 @@ 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\b42\b2
               c\bco\bom\bmp\bpa\bat\bt4\b43\b3
               c\bco\bom\bmp\bpa\bat\bt4\b44\b4
-                      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(1)).
               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.
+                      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  r\bre\bea\bad\bdl\bli\bin\bne\be  editing
-                      buffer.   If not set, b\bba\bas\bsh\bh attempts to preserve what the
+                      buffer.  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. and _\b._\b.
-                      must always be matched explicitly, even  if  d\bdo\bot\btg\bgl\blo\bob\b is
+              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.  and  _\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.  An interactive shell  does  not  exit  if
+                      not execute the file specified as  an  argument  to  the
+                      e\bex\bxe\bec\b builtin.   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(1) 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(1)).
-                      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,  enable  the extended pattern matching features
+              e\bex\bxt\btg\bgl\blo\bob\bb If set, enable the extended  pattern  matching  features
                       described in _\bb_\ba_\bs_\bh(1) under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn.
               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
+                      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(1)  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(1) 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(1))
+                      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(1))
                       behave as if in the traditional C locale when performing
-                      comparisons.  That is, pattern matching  does  not  take
+                      comparisons.   That  is,  pattern matching does not take
                       the current locale's collating sequence into account, so
-                      b\b will  not collate between A\bA and B\bB, and upper-case and
+                      b\bwill not collate 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-
-                      names  _\b.  and  _\b._\b. even if the pattern begins with a This
+                      If  set,  pathname  expansion will never match the file-
+                      names _\b. and _\b._\b. even if the pattern begins  with  a  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
                       If set, shell error messages are written in the standard
                       GNU error message format.
               h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd
-                      If set, the history list is appended to the  file  named
+                      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, the user is given
-                      the opportunity to re-edit a  failed  history  substitu-
+                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the  user  is  given
+                      the  opportunity  to  re-edit a failed history substitu-
                       tion.
               h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by
-                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of his-
-                      tory substitution are  not  immediately  passed  to  the
-                      shell  parser.   Instead,  the  resulting line is loaded
+                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of  his-
+                      tory  substitution  are  not  immediately  passed to the
+                      shell parser.  Instead, the  resulting  line  is  loaded
                       into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer, allowing further modi-
                       fication.
               h\bho\bos\bst\btc\bco\bom\bmp\bpl\ble\bet\bte\be
                       If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will attempt to
-                      perform hostname completion when a word containing  a  @\b@
-                      is  being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg under R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE 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\b in
                       _\bb_\ba_\bs_\bh(1)).  This is enabled by default.
               h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
                       If set, b\bba\bas\bsh\bh will send S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an inter-
                       active login shell exits.
               i\bin\bnh\bhe\ber\bri\bit\bt_\b_e\ber\brr\bre\bex\bxi\bit\bt
-                      If set, command substitution inherits the value  of  the
-                      e\ber\brr\bre\bex\bxi\bit\b option, instead of unsetting it in the subshell
-                      environment.  This option is enabled when posix mode  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 posix mode is
                       enabled.
               i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs
-                      In  an interactive shell, a word beginning with #\b# causes
-                      that word and all remaining characters on that  line  to
-                      be  ignored, as in a non-interactive shell (see C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS
+                      In an interactive shell, a word beginning with #\b causes
+                      that  word  and all remaining characters on that line to
+                      be ignored, as in a non-interactive shell (see  C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS
                       in _\bb_\ba_\bs_\bh(1)).  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.
               l\blo\boc\bca\bal\blv\bva\bar\br_\b_i\bin\bnh\bhe\ber\bri\bit\bt
@@ -1785,110 +1801,110 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       scope before any new value is assigned.  The nameref at-
                       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
+                      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
+                      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(1)).  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, b\bba\bas\bsh\bh
+                      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,  b\bba\bas\bsh\bh
                       displays the message
               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 does not search
-                      P\bPA\bAT\bTH\bfor possible completions  when  completion  is  at-
+                      P\bPA\bAT\bTH\b for  possible  completions  when completion is at-
                       tempted 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(1)).
               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  $\b$...
-                      quoting  in  single quotes instead of double quotes.  If
+                      If  set,  b\bba\bas\bsh\bh  encloses  the translated results of $\b$...
+                      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, pathname expansion patterns which match no files
-                      (see P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn in _\bb_\ba_\bs_\bh(1))  expand  to  nothing
+                      (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(1)) expand to nothing
                       and are removed, rather than expanding to 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(1).  This option is enabled by default.
               p\bpr\bro\bog\bgc\bco\bom\bmp\bp
-                      If  set,  enable  the programmable completion facilities
-                      (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn in _\bb_\ba_\bs_\bh(1)).   This  option
+                      If set, enable the  programmable  completion  facilities
+                      (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be  C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn in _\bb_\ba_\bs_\bh(1)).  This option
                       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
+                      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-
+                      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(1).  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(1)).  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(1)).   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
-                      argument when the -\b-p\bp option is not supplied.   This  op-
+                      find the directory containing the file  supplied  as  an
+                      argument  when  the -\b-p\bp option is not supplied.  This op-
                       tion 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
-                      assigned using the  _\b{_\bv_\ba_\br_\bn_\ba_\bm_\be_\b}  redirection  syntax  (see
-                      R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\b in  _\bb_\ba_\bs_\bh(1))  instead  of leaving them open
+                      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\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bin _\bb_\ba_\bs_\bh(1)) 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-
-                      quences  by  default.  If the p\bpo\bos\bsi\bix\bx shell option is also
+                      If  set,  the  e\bec\bch\bho\bo builtin expands backslash-escape se-
+                      quences by default.  If the p\bpo\bos\bsi\bix\bx shell option  is  also
                       enabled, e\bec\bch\bho\bo does not interpret any options.
 
        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 will 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  sup-
+              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 will 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 sup-
               plied.
 
        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
-              operand must be a separate argument.  Expressions  are  composed
-              of  the primaries described in _\bb_\ba_\bs_\bh(1) under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bS-\b-
+              ation of the conditional expression  _\be_\bx_\bp_\br.   Each  operator  and
+              operand  must  be a separate argument.  Expressions are composed
+              of the primaries described in _\bb_\ba_\bs_\bh(1) 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.  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-
+              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.  t\bte\bes\bst\bt uses operator
               precedence 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
                      normal operator precedence.
               _\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.
@@ -1905,111 +1921,111 @@ 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(1)  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(1) under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression  is
                      true if the unary test is true.  If the first argument is
                      not a valid unary conditional operator, the expression is
                      false.
               3 arguments
                      The following conditions are applied in the order listed.
-                     If the second argument is one of the  binary  conditional
-                     operators  listed  in  _\bb_\ba_\bs_\bh(1)  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
-                     operands.  The -\b-a\ba and -\b-o\bo operators are considered  binary
-                     operators  when  there are three arguments.  If the first
+                     If  the  second argument is one of the binary conditional
+                     operators listed in  _\bb_\ba_\bs_\bh(1)  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
+                     operands.   The -\b-a\ba and -\b-o\bo operators are considered binary
+                     operators when there are three arguments.  If  the  first
                      argument is !\b!, the value is the negation of the two-argu-
-                     ment test using the second and third arguments.   If  the
+                     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.   If  the  first argument is exactly (\b( and the
+                     the  three-argument  expression composed of the remaining
+                     arguments.  If the first argument is exactly  (\b(  and  the
                      fourth argument is exactly )\b), the result is the two-argu-
-                     ment test of the second and third arguments.   Otherwise,
-                     the  expression  is  parsed  and  evaluated  according to
+                     ment  test of the second and third arguments.  Otherwise,
+                     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 the shell is in posix mode, or if the expression is part of
               the [\b[[\b[ command, the <\b< and >\b> operators sort using the current lo-
-              cale.   If  the  shell is not in posix mode, the t\bte\bes\bst\bt and [\b[ com-
+              cale.  If the shell is not in posix mode, the t\bte\bes\bst\bt  and  [\b com-
               mands sort lexicographically using ASCII ordering.
 
-              The historical operator-precedence parsing with 4 or more  argu-
-              ments  can  lead  to ambiguities when it encounters strings that
-              look like primaries.  The POSIX standard has deprecated  the  -\b-a\ba
-              and  -\b-o\bo  primaries and enclosing expressions within parentheses.
-              Scripts should no longer use them.  It's much more  reliable  to
-              restrict  test  invocations  to a single primary, and to replace
+              The  historical operator-precedence parsing with 4 or more argu-
+              ments can lead to ambiguities when it  encounters  strings  that
+              look  like  primaries.  The POSIX standard has deprecated the -\b-a\ba
+              and -\b-o\bo primaries and enclosing expressions  within  parentheses.
+              Scripts  should  no longer use them.  It's much more reliable to
+              restrict test invocations to a single primary,  and  to  replace
               uses of -\b-a\ba and -\b-o\bo with the shell's &\b&&\b& and |\b||\b| list operators.
 
-       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\bpP\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  any  of the signals _\bs_\bi_\bg_\bs_\bp_\be_\bc.  If _\ba_\bc_\bt_\bi_\bo_\bn is absent (and
+              receives any of the signals _\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 _\bs_\bi_\bg_\bs_\bp_\be_\bc is reset
-              to the value it had when the shell was started.   If  _\ba_\bc_\bt_\bi_\bo_\b is
-              the  null string the signal specified by each _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored
+              to  the  value  it had when the shell was started.  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 invokes.
 
-              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 may
-              be used in a subshell environment (e.g.,  command  substitution)
-              and,  as  long  as they are used before t\btr\bra\bap\bp is used to change a
+              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  may
+              be  used  in a subshell environment (e.g., command substitution)
+              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 parent's traps.
 
-              The -\b-l\bl option prints a list of signal  names  and  their  corre-
-              sponding  numbers.  Each _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a signal name defined
+              The  -\b-l\bl  option  prints  a list of signal names and their corre-
+              sponding 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 insen-
-              sitive and the S\bSI\bIG\bG prefix is optional.  If -\b-l\bl is  supplied  with
+              sitive  and  the S\bSI\bIG\bG prefix is optional.  If -\b-l\bl is supplied with
               no _\bs_\bi_\bg_\bs_\bp_\be_\bc arguments, it prints a list of valid signal names.
 
-              If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is E\bEX\bXI\bIT\bT (0), _\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, _\ba_\bc_\bt_\bi_\bo_\bn is executed  before  every
-              _\bs_\bi_\bm_\bp_\bl_\b _\bc_\bo_\bm_\bm_\ba_\bn_\bd,  _\bf_\bo_\br  command, _\bc_\ba_\bs_\be command, _\bs_\be_\bl_\be_\bc_\bt command, ((
-              arithmetic command, [[ conditional command, arithmetic _\bf_\bo_\b com-
-              mand,  and before the first command executes in a shell function
+              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0), _\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, _\ba_\bc_\bt_\bi_\bo_\bn is executed before every
+              _\bs_\bi_\bm_\bp_\bl_\b_\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command,  _\bs_\be_\bl_\be_\bc_\bt  command,  ((
+              arithmetic  command, [[ conditional command, arithmetic _\bf_\bo_\br com-
+              mand, 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(1)).  Refer to the description of the
-              e\bex\bxt\btd\bde\beb\bbu\bug\bshell option (see s\bsh\bho\bop\bpt\bt in _\bb_\ba_\bs_\bh(1)) for details of  its
+              e\bex\bxt\btd\bde\beb\bbu\bug\b shell option (see s\bsh\bho\bop\bpt\bt in _\bb_\ba_\bs_\bh(1)) for details of its
               effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, _\ba_\bc_\bt_\bi_\bo_\bn is ex-
-              ecuted  each time a shell function or a script executed with the
+              ecuted each time a shell function or a script executed with  the
               .\b. or s\bso\bou\bur\brc\bce\be builtins finishes executing.
 
-              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, _\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
+              If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  E\bER\bRR\bR,  _\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
               failed command is part of the command list immediately following
               a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl reserved word, part of the test in an _\bi_\bf state-
-              ment, 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 (subject to the state of  the  p\bpi\bip\bpe\bef\bfa\bai\bil\bl  shell  op-
-              tion),  or if the command's return value is being inverted using
+              ment,  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  (subject  to the state of the p\bpi\bip\bpe\bef\bfa\bai\bil\bl shell op-
+              tion), 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\btr\bru\bue\be   Does nothing, returns a 0 status.
@@ -2018,61 +2034,61 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               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_\be if _\bn_\ba_\bm_\be is an alias,
-              shell reserved word, function, builtin, or executable file,  re-
-              spectively.   If  the _\bn_\ba_\bm_\be is not found, t\bty\byp\bpe\be prints nothing and
+              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_\be if _\bn_\ba_\bm_\be is an  alias,
+              shell  reserved word, function, builtin, or executable file, re-
+              spectively.  If the _\bn_\ba_\bm_\be is not found, t\bty\byp\bpe\be prints  nothing  and
               returns a non-zero exit status.
 
-              If the -\b-p\bp option is used, t\bty\byp\bpe\be either returns  the  pathname  of
-              the  executable  file that would be found by searching $\b$P\bPA\bAT\bTH\bH for
-              _\bn_\ba_\bm_\bor nothing if would not return _\bf_\bi_\bl_\be.  The -\b-P\bP option  forces
-              a  P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be, even if would not return _\bf_\bi_\bl_\be.  If
+              If  the  -\b-p\bp  option is used, t\bty\byp\bpe\be either returns the pathname of
+              the executable file that would be found by searching  $\b$P\bPA\bAT\bTH\b for
+              _\bn_\ba_\bm_\b or nothing if would not return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces
+              a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be, even if would not return _\bf_\bi_\bl_\be.   If
               _\bn_\ba_\bm_\be is present in the table of hashed commands, -\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, reserved
-              words, functions, and builtins, but the path search options  (-\b-p\bp
-              and  -\b-P\bP)  can  be  supplied to restrict the output to executable
-              files.  t\bty\byp\bpe\be does not consult the table of hashed commands  when
+              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,  reserved
+              words,  functions, and builtins, but the path search options (-\b-p\bp
+              and -\b-P\bP) can be supplied to restrict  the  output  to  executable
+              files.   t\bty\byp\bpe\be does not consult the table of hashed commands 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\bm-\b-
-              m\bma\ban\bnd\b builtin.   t\bty\byp\bpe\be  returns  true if all of the arguments are
+              m\bma\ban\bnd\bbuiltin.  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
+              Provides  control  over the resources available to the shell and
               to processes it starts, on systems that allow such control.
 
-              The  -\b-H\bH and -\b-S\bS options specify whether the hard or soft limit is
+              The -\b-H\bH and -\b-S\bS options specify whether 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-
+              to  the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is speci-
               fied, u\bul\bli\bim\bmi\bit\bt sets both the soft and hard limits.
 
               The value of _\bl_\bi_\bm_\bi_\bt can be a number in the unit specified for the
-              resource  or one of the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd,
-              which stand for the current hard limit, the current soft  limit,
-              and  no limit, respectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, u\bul\bli\bim\bmi\bit\bt prints
-              the current value of the soft limit of the resource, unless  the
-              -\b-H\b option  is given.  When more than one resource is specified,
-              the limit name and unit, if appropriate, are printed before  the
+              resource or one of the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or  u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd,
+              which  stand for the current hard limit, the current soft limit,
+              and no limit, respectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, u\bul\bli\bim\bmi\bit\b prints
+              the  current value of the soft limit of the resource, unless the
+              -\b-H\boption is given.  When more than one resource  is  specified,
+              the  limit name and unit, if appropriate, are printed before the
               value.  Other options are interpreted as follows:
               -\b-a\ba     Report all current limits; 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 (
-              -\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).
@@ -2081,148 +2097,148 @@ 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 supplied, and the -\b-a\ba option is not  used,  _\bl_\bi_\bm_\bi_\b is
-              the  new  value of the specified resource.  If no option is sup-
+              If  _\bl_\bi_\bm_\bi_\bt  is  supplied, 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  sup-
               plied, 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
+              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 occurs while setting
               a new limit.
 
        u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
-              Set  the user file-creation mask to _\bm_\bo_\bd_\be.  If _\bm_\bo_\bd_\be begins with a
+              Set the user file-creation mask to _\bm_\bo_\bd_\be.  If _\bm_\bo_\bd_\be begins with  a
               digit, it is interpreted as an octal number; otherwise it is in-
-              terpreted as a symbolic mode mask similar to  that  accepted  by
+              terpreted  as  a  symbolic mode mask similar to that accepted by
               _\bc_\bh_\bm_\bo_\bd(1).  If _\bm_\bo_\bd_\be is omitted, u\bum\bma\bas\bsk\bk prints the current value of
               the mask.  The -\b-S\bS option without a _\bm_\bo_\bd_\be argument prints the mask
               in a symbolic format; 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 zero
-              if the mode was successfully changed or if no _\bm_\bo_\bd_\be argument  was
+              a form that may be reused as input.  The return status  is  zero
+              if  the mode was successfully changed or if no _\bm_\bo_\bd_\be argument was
               supplied, and non-zero 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, remove all alias definitions.   The  return  value  is
+              Remove each _\bn_\ba_\bm_\be from the list of defined  aliases.   If  -\b-a\b is
+              supplied,  remove  all  alias  definitions.  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.  If -\b-f\bf  is  specified,  each  _\bn_\ba_\bm_\be
-              refers  to  a shell function, and the function definition is re-
-              moved.  If the -\b-n\bn option is supplied, and  _\bn_\ba_\bm_\be  is  a  variable
-              with  the  _\bn_\ba_\bm_\be_\br_\be_\bf attribute, _\bn_\ba_\bm_\be will be unset rather than the
-              variable it references.  -\b-n\bn has no effect if the  -\b-f\bf  option  is
-              supplied.   Read-only  variables and functions may not be unset.
-              When variables or functions are removed, they are  also  removed
-              from  the  environment passed to subsequent commands.  If no op-
-              tions are supplied, each _\bn_\ba_\bm_\be refers to a variable; if there  is
-              no  variable by that name, a function with that name, if any, is
-              unset.  Some shell variables  may  not  be  unset.   If  any  of
+              and  that  variable  is  removed.  If -\b-f\bf is specified, each _\bn_\ba_\bm_\be
+              refers to a shell function, and the function definition  is  re-
+              moved.   If  the  -\b-n\bn  option is supplied, and _\bn_\ba_\bm_\be is a variable
+              with the _\bn_\ba_\bm_\be_\br_\be_\bf attribute, _\bn_\ba_\bm_\be will be unset rather  than  the
+              variable  it  references.   -\b-n\bn has no effect if the -\b-f\bf option is
+              supplied.  Read-only variables and functions may not  be  unset.
+              When  variables  or functions are removed, they are also removed
+              from the environment passed to subsequent commands.  If  no  op-
+              tions  are supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is
+              no variable by that name, a function with that name, if any,  is
+              unset.   Some  shell  variables  may  not  be  unset.  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\bB-\b-
-              S\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\bCN\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\bC-\b-
-              O\bON\bND\bDS\bS, or S\bSR\bRA\bAN\bND\bDO\bOM\bM are unset, they lose their special  properties,
-              even  if  they  are subsequently reset.  The exit status is true
+              S\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\bCN\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\bC-\b-
+              O\bON\bND\bDS\bS,  or S\bSR\bRA\bAN\bND\bDO\bOM\bM are unset, they lose their special properties,
+              even if they are subsequently reset.  The exit  status  is  true
               unless a _\bn_\ba_\bm_\be is readonly 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 ...]
               Wait for each specified child process _\bi_\bd and return the termina-
-              tion status of the last _\bi_\bd.  Each _\bi_\bd may be a process ID _\bp_\bi_\b or
-              a  job  specification  _\bj_\bo_\bb_\bs_\bp_\be_\bc;  if  a jobspec is supplied, w\bwa\bai\bit\bt
+              tion  status of the last _\bi_\bd.  Each _\bi_\bd may be a process ID _\bp_\bi_\bd or
+              a job specification _\bj_\bo_\bb_\bs_\bp_\be_\bc; if  a  jobspec  is  supplied,  w\bwa\bai\bit\bt
               waits for all processes in the job.
 
-              If no options or _\bi_\bds are supplied, w\bwa\bai\bit\bt waits  for  all  running
-              background  jobs  and the last-executed process substitution, if
+              If  no  options  or _\bi_\bds are supplied, 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  any  one  of  the
+              If  the  -\b-n\bn  option  is  supplied, w\bwa\bai\bit\bt waits for any one of the
               given _\bi_\bds or, if no _\bi_\bds are supplied, any job or process substi-
               tution, to complete and returns its exit status.  If none of the
-              supplied  _\bi_\bds is a child of the shell, or if no _\bi_\bds are supplied
-              and the shell has no unwaited-for children, the exit  status  is
+              supplied _\bi_\bds is a child of the shell, or if no _\bi_\bds are  supplied
+              and  the  shell has no unwaited-for children, the exit status is
               127.
 
-              If  the  -\b-p\bp  option is supplied, w\bwa\bai\bit\bt assigns the process or job
-              identifier of the job for which the exit status is  returned  to
-              the  variable  _\bv_\ba_\br_\bn_\ba_\bm_\be  named by the option argument.  The vari-
-              able, which cannot be readonly, will be unset initially,  before
-              any  assignment.   This is useful only when used with the -\b-n\bn op-
+              If the -\b-p\bp option is supplied, w\bwa\bai\bit\bt assigns the  process  or  job
+              identifier  of  the job for which the exit status is returned to
+              the variable _\bv_\ba_\br_\bn_\ba_\bm_\be named by the option  argument.   The  vari-
+              able,  which cannot be readonly, will be unset initially, before
+              any assignment.  This is useful only when used with the  -\b-n\b op-
               tion.
 
-              Supplying the -\b-f\bf option, when job  control  is  enabled,  forces
-              w\bwa\bai\bit\b to wait for each _\bi_\bd to terminate before returning its sta-
-              tus, instead of returning when it changes status.  If there  are
-              no  _\bi_\bd arguments, w\bwa\bai\bit\bt waits until all background processes have
+              Supplying  the  -\b-f\bf  option,  when job control is enabled, forces
+              w\bwa\bai\bit\bto wait for each _\bi_\bd to terminate before returning its  sta-
+              tus,  instead of returning when it changes status.  If there are
+              no _\bi_\bd arguments, w\bwa\bai\bit\bt waits until all background processes  have
               terminated.
 
-              If none of the _\bi_\bds specify  one  of  the  shell's  active  child
-              processes,  the return status is 127.  If w\bwa\bai\bit\bt is interrupted by
-              a signal, any _\bv_\ba_\br_\bn_\ba_\bm_\be will remain unset, and the  return  status
+              If  none  of  the  _\bi_\bds  specify  one of the shell's active child
+              processes, the return status is 127.  If w\bwa\bai\bit\bt is interrupted  by
+              a  signal,  any _\bv_\ba_\br_\bn_\ba_\bm_\be will remain unset, and the return status
               will be greater than 128, as described under S\bSI\bIG\bGN\bNA\bAL\bLS\bS in _\bb_\ba_\bs_\bh(1).
               Otherwise, the return status is the exit status of the last _\bi_\bd.
 
 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-
+       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\bm-\b-
-       p\bpa\bat\bt4\b40\b0, c\bco\bom\bmp\bpa\bat\bt4\b41\b1, and so on).  There is only one  current  compatibility
+       p\bpa\bat\bt4\b40\b0,  c\bco\bom\bmp\bpa\bat\bt4\b41\b1,  and so on).  There is only one current compatibility
        level -- each option is mutually exclusive.  The compatibility level is
-       intended  to allow users to select behavior from previous versions that
-       is incompatible with newer versions while they migrate scripts  to  use
-       current  features  and behavior.  It's intended to be a temporary solu-
+       intended to allow users to select behavior from previous versions  that
+       is  incompatible  with newer versions while they migrate scripts to use
+       current features and behavior.  It's intended to be a  temporary  solu-
        tion.
 
-       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 right hand
-       side of the regexp matching operator quotes special  regexp  characters
-       in  the word, which is default behavior in bash-3.2 and subsequent ver-
+       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  right  hand
+       side  of  the regexp matching operator quotes special regexp characters
+       in the word, which is default behavior in bash-3.2 and subsequent  ver-
        sions).
 
-       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, b\bba\bas\bsh\bh began deprecating older compatibility lev-
        els.  Eventually, the options will be removed in favor of B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT.
 
-       Bash-5.0  was the final version for which there was an individual shopt
-       option for the previous version.  B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is the only mechanism  to
+       Bash-5.0 was the final version for which there was an individual  shopt
+       option  for the previous version.  B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is the only mechanism to
        control the compatibility level in versions newer than bash-5.0.
 
-       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
@@ -2230,118 +2246,118 @@ 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      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.
 
        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.  B\bBa\bas\bsh\bh 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 posix mode, t\bti\bim\bme\be may be followed by options and  still
+              +\bo      In  posix 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      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-
                      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\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  en-
+              +\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
+                     parameters  even  if  extended  debugging mode is not en-
                      abled.
-              +\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-
-                     duce slightly more randomness.  If the shell  compatibil-
+              +\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 compatibil-
                      ity 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
+                     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
                      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\b 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\bl 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.
               +\bo      Arithmetic commands ( (\b((\b(...)\b))\b) ) and the expressions in an
                      arithmetic for statement can be expanded more than once.
-              +\bo      Expressions used as arguments to arithmetic operators  in
-                     the  [\b[[\b[  conditional  command  can  be expanded more than
+              +\bo      Expressions  used as arguments to arithmetic operators in
+                     the [\b[[\b[ conditional command  can  be  expanded  more  than
                      once.
-              +\bo      The expressions in substring  parameter  brace  expansion
+              +\bo      The  expressions  in  substring parameter brace expansion
                      can be expanded more than once.
               +\bo      The expressions in the $\b$(\b((\b(...)\b))\b) word expansion can be ex-
                      panded more than once.
-              +\bo      Arithmetic  expressions  used as indexed array subscripts
+              +\bo      Arithmetic expressions used as indexed  array  subscripts
                      can be expanded more than once.
-              +\bo      t\bte\bes\bst\b-\b-v\bv, when given an argument of A\bA[\b[@\b@]\b], where  A\bA  is  an
+              +\bo      t\bte\bes\bst\b -\b-v\bv,  when  given an argument of A\bA[\b[@\b@]\b], where A\bA is an
                      existing associative array, will return true if the array
-                     has  any set elements.  Bash-5.2 will look for and report
+                     has any set elements.  Bash-5.2 will look for and  report
                      on a key named @\b@.
               +\bo      The  ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br[\b[:\b:]\b]=\b=_\bv_\ba_\bl_\bu_\be}  word  expansion  will  return
-                     _\bv_\ba_\bl_\bu_\be,  before any variable-specific transformations have
+                     _\bv_\ba_\bl_\bu_\be, before any variable-specific transformations  have
                      been performed (e.g., converting to lowercase).  Bash-5.2
                      will return the final value assigned to the variable.
-              +\bo      Parsing command substitutions will behave as if  extended
+              +\bo      Parsing  command substitutions will behave as if extended
                      globbing (see the description of the s\bsh\bho\bop\bpt\bt builtin above)
-                     is  enabled,  so that parsing a command substitution con-
+                     is enabled, so that parsing a command  substitution  con-
                      taining an extglob pattern (say, as part of a shell func-
-                     tion) will not fail.  This assumes the intent is  to  en-
-                     able  extglob before the command is executed and word ex-
-                     pansions are performed.  It will fail at  word  expansion
-                     time  if extglob hasn't been enabled by the time the com-
+                     tion)  will  not fail.  This assumes the intent is to en-
+                     able extglob before the command is executed and word  ex-
+                     pansions  are  performed.  It will fail at word expansion
+                     time if extglob hasn't been enabled by the time the  com-
                      mand is executed.
 
        c\bco\bom\bmp\bpa\bat\bt5\b52\b2
-              +\bo      The t\bte\bes\bst\bt builtin uses its historical algorithm  to  parse
-                     parenthesized  subexpressions when given five or more ar-
+              +\bo      The  t\bte\bes\bst\bt  builtin uses its historical algorithm to parse
+                     parenthesized subexpressions when given five or more  ar-
                      guments.
-              +\bo      If the -\b-p\bp or -\b-P\bP option is supplied to the  b\bbi\bin\bnd\b builtin,
+              +\bo      If  the  -\b-p\bp or -\b-P\bP option is supplied to the b\bbi\bin\bnd\bd builtin,
                      b\bbi\bin\bnd\bd treats any arguments remaining after option process-
-                     ing  as  bindable command names, and displays any key se-
-                     quences bound to those commands, instead of treating  the
+                     ing as bindable command names, and displays any  key  se-
+                     quences  bound to those commands, instead of treating the
                      arguments as key sequences to bind.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
index 6a8c79fe1bbc6ac81ba9b1aae103eee12a1694d2..ba8cca4858bde4294af886c7638a82dab4ae1dce 100644 (file)
Binary files a/doc/builtins.pdf and b/doc/builtins.pdf differ
index 85bc5f8de5395e9d55ab152aebb36a86406016ba..157c489534817b7de19a6cbbac1bf6a2ed624b3b 100644 (file)
@@ -2,10 +2,11 @@
 Copyright (C) 1988-2025 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Thu Dec 18 17:25:09 EST 2025
+@set LASTCHANGE Fri Dec 26 18:21:22 EST 2025
+
 
 @set EDITION 5.3
 @set VERSION 5.3
 
-@set UPDATED 18 December 2025
+@set UPDATED 26 December 2025
 @set UPDATED-MONTH December 2025
index 34d10ba92638f1583cce3e7f02dbe90d7f07eeac..8c0fa563099f1ae3d66ccc9f2e4252878b323270 100644 (file)
@@ -846,10 +846,12 @@ execute_command_internal (COMMAND *command, int asynchronous, int pipe_in, int p
     }
 #endif /* COMMAND_TIMING */
 
+  /* Is this a compound command with a redirection from stdin? POSIX interp
+     1913 makes it matter. */
   if (shell_control_structure (command->type) && command->redirects)
 {
     stdin_redirected = stdin_redirects (command->redirects);
-/*itrace("execute_command_internal: compound command with redirects: stdin_redirected = %d", stdin_redirected); */
+/*itrace("execute_command_internal: compound command with redirects: stdin_redirected = %d", stdin_redirected);*/
 }
 
 #if defined (PROCESS_SUBSTITUTION)
index e94b76d90c76aa531b5bbbc8229d93faa732f8ca..517745e59d2c61e73403e6491d3ee9b54585c761 100644 (file)
@@ -194,7 +194,7 @@ and echoes and executes them.
 The @option{-D} option, if supplied,
 causes @code{fc} to remove the selected commands from the history
 list before executing the file of edited commands.
-@option{-D} is only active when @code{fc} is invoked in this way.
+@option{-D} is only effective when @code{fc} is invoked in this way.
 It could be used if you make a typo in a command and want to fix it using
 an editor while removing the erroneous command from the history to
 avoid clutter.
@@ -221,17 +221,39 @@ is that of the re-executed command, unless
 @item history
 @btindex history
 @example
-history [@var{n}]
+history [-H] [@var{range}]
 history -c
-history -d @var{offset}
-history -d @var{start}-@var{end}
+history -d @var{range}
 history [-anrw] [@var{filename}]
-history -ps @var{arg}
+history -ps @var{arg} [@var{arg}@dots{}]
 @end example
 
-With no options, display the history list with numbers.
-Entries prefixed with a @samp{*} have been modified.
-An argument of @var{n} lists only the last @var{n} entries.
+With no options,
+or with the @option{-H} option,
+display the portion of the command history list
+specified by @var{range}, as described below.
+If @var{range} is not specified, display the entire history list.
+Without @option{-H}, display the list with command numbers, prefixing
+entries that have been modified with a @samp{*}.
+
+A
+@var{range}
+argument is specified in the form of a number @var{offset} or
+a range @var{start}-@var{end}.
+If @var{offset} is supplied, it references the history entry at
+position @var{offset} in the history list;
+when listing this displays the last @var{offset} entries.
+A negative @var{offset} counts back from the end of the history list,
+relative to one greater than the last history position.
+When listing, negative and positive @var{offset}s have identical results.
+@var{start} and @var{end}, if supplied, reference the portion of
+the history list beginning at position @var{start} through position
+@var{end}.
+If @var{start} or @var{end} are negative, they count back from the
+end of the history list.
+When listing, if @var{start} is greater than @var{end}, the history
+entries are displayed in reverse order from @var{end} to @var{start}.
+
 If the shell variable @env{HISTTIMEFORMAT} is set and not null,
 it is used as a format string for @code{strftime}(3) to display
 the time stamp associated with each displayed history entry.
@@ -245,20 +267,16 @@ Options, if supplied, have the following meanings:
 Clear the history list.
 This may be combined with the other options to replace the history list.
 
-@item -d @var{offset}
-Delete the history entry at position @var{offset}.
-If @var{offset} is positive, it should be specified as it appears when
-the history is displayed.
-If @var{offset} is negative, it is interpreted as relative to one greater
-than the last history position, so negative indices count back from the
-end of the history, and an index of @samp{-1} refers to the current
-@code{history -d} command.
-
-@item -d @var{start}-@var{end}
-Delete the range of history entries between positions @var{start} and
-@var{end}, inclusive.
-Positive and negative values for @var{start} and @var{end}
-are interpreted as described above.
+@item -d @var{range}
+Delete the history entries specified by @var{range}, as described above.
+An offset of @samp{-1} refers to the current @code{history -d} command.
+
+@item -H
+Display the selected history entries in the format that would be written
+to the history file,
+including any time stamp information as described below,
+without prefixing the entry with any line number or
+@samp{*}.
 
 @item -a
 Append the "new" history lines to the history file.
index e8abd97b03fa3fbd14b1c0ffc8ab550ce73f35f7..17b058e47b1e0df607fe4fdff4aca762b2b97675 100644 (file)
@@ -791,6 +791,7 @@ print_case_clauses (PATTERN_LIST *clauses)
        newline (";;&");
       else
        newline (";;");
+      was_heredoc = 0;
       clauses = clauses->next;
     }
   indentation -= indentation_amount;
diff --git a/redir.c b/redir.c
index 3083a1633754ee51230854900d63b7a3b6fa9786..d62318dc0922ca936dea63ecd8af6d7554fce868 100644 (file)
--- a/redir.c
+++ b/redir.c
@@ -97,7 +97,7 @@ static int add_undo_redirect (int, enum r_instruction, int);
 static int add_undo_close_redirect (int);
 static int add_undo_fd_redirect (int, int);
 static int expandable_redirection_filename (REDIRECT *);
-static int stdin_redirection (enum r_instruction, int);
+static int stdin_redirection (REDIRECT *);
 static int undoablefd (int);
 static int do_redirection_internal (REDIRECT *, int, char **);
 
@@ -1388,9 +1388,9 @@ add_exec_redirect (REDIRECT *dummy_redirect)
 /* Return 1 if the redirection specified by RI and REDIRECTOR alters the
    standard input. */
 static int
-stdin_redirection (enum r_instruction ri, int redirector)
+stdin_redirection (REDIRECT *rp)
 {
-  switch (ri)
+  switch (rp->instruction)
     {
     case r_input_direction:
     case r_inputa_direction:
@@ -1402,7 +1402,7 @@ stdin_redirection (enum r_instruction ri, int redirector)
     case r_duplicating_input:
     case r_duplicating_input_word:
     case r_close_this:
-      return (redirector == 0);
+      return (rp->redirector.dest == 0);
     case r_output_direction:
     case r_appending_to:
     case r_duplicating_output:
@@ -1420,7 +1420,10 @@ stdin_redirection (enum r_instruction ri, int redirector)
 }
 
 /* Return non-zero if any of the redirections in REDIRS alter the standard
-   input. */
+   input. The way we call this, to determine whether asynchronous commands
+   contain a redirection to standard input to inhibit the implicit redirection
+   from /dev/null, is subject to POSIX interp 1913, which carves out an
+   exception for things like 0<&0. */
 int
 stdin_redirects (REDIRECT *redirs)
 {
@@ -1429,7 +1432,7 @@ stdin_redirects (REDIRECT *redirs)
 
   for (n = 0, rp = redirs; rp; rp = rp->next)
     if ((rp->rflags & REDIR_VARASSIGN) == 0)
-      n += stdin_redirection (rp->instruction, rp->redirector.dest);
+      n += stdin_redirection (rp);
   return n;
 }
 /* bind_var_to_int handles array references */
index 606e6774f1b9e78b49eeafa9572f65628838452e..362ce0114a42a9b2c1b8daa5b57a44681910513f 100644 (file)
@@ -363,7 +363,7 @@ Use `man -k' or `info' to find out more about commands not in this list.
 
 A star (*) next to a name means that the command is disabled.
 
- ! PIPELINE                              history [-c] [-d offset] [n] or hist>
+ ! PIPELINE                              history [-c] [-H] [-d range] [range]>
  job_spec [&]                            if COMMANDS; then COMMANDS; [ elif C>
  (( expression ))                        jobs [-lnprs] [jobspec ...] or jobs >
  . [-p path] filename [arguments]        kill [-s sigspec | -n signum | -sigs>
@@ -456,7 +456,7 @@ Use `man -k' or `info' to find out more about commands not in this list.
 
 A star (*) next to a name means that the command is disabled.
 
- ! PIPELINE                              history [-c] [-d offset] [n] or hist>
+ ! PIPELINE                              history [-c] [-H] [-d range] [range]>
  job_spec [&]                            if COMMANDS; then COMMANDS; [ elif C>
  (( expression ))                        jobs [-lnprs] [jobspec ...] or jobs >
  . [-p path] filename [arguments]        kill [-s sigspec | -n signum | -sigs>
index 235903bc1e06a95789e89500d82be1e075d12d19..de82fa0536efa8e63750f3244989d2a4001c2dde 100644 (file)
@@ -1,5 +1,5 @@
 ./history.tests: line 19: history: -x: invalid option
-history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
+history: usage: history [-c] [-H] [-d range] [range] or history -anrw [filename] or history -ps arg [arg...]
 ./history.tests: line 21: history: cannot use more than one of -anrw
 ./history.tests: line 24: fc: -v: invalid option
 fc: usage: fc [-e ename] [-D] [-lnr] [first] [last] or fc -s [pat=rep] [command]
@@ -439,3 +439,120 @@ edit append
     8  echo three append
     9  # simulate readline edit_and_execute_command
    10  echo edit append
+       history11.sub
+one
+two
+three
+four
+five
+six
+seven
+eight
+nine
+ten
+    1  echo one
+    2  echo two
+    3  echo three
+    4  echo four
+    5  echo five
+    6  echo six
+    7  echo seven
+    8  echo eight
+    9  echo nine
+   10  echo ten
+
+    2  echo two
+    3  echo three
+    4  echo four
+
+    1  echo one
+    2  echo two
+    3  echo three
+    4  echo four
+    5  echo five
+    6  echo six
+    7  echo seven
+    8  echo eight
+    9  echo nine
+   10  echo ten
+a
+b
+c
+d
+e
+    1  echo one
+    2  echo two
+    3  echo three
+    4  echo four
+    5  echo five
+    6  echo six
+    7  echo seven
+    8  echo eight
+    9  echo nine
+   10  echo ten
+   11  echo a
+   12  echo b
+   13  echo c
+   14  echo d
+   15  echo e
+    6  echo six
+    7  echo seven
+    8  echo eight
+    9  echo nine
+   10  echo ten
+   11  echo a
+   12  echo b
+   13  echo c
+   14  echo d
+   15  echo e
+
+   15  echo e
+
+./history11.sub: line 49: history: 18: history position out of range
+./history11.sub: line 50: history: 18: history position out of range
+
+    1  echo one
+    2  echo two
+    3  echo three
+    4  echo four
+    5  echo five
+    6  echo six
+    7  echo seven
+    8  echo eight
+    9  echo nine
+   10  echo ten
+   11  echo a
+   12  echo b
+   13  echo c
+   14  echo d
+   15  echo e
+
+./history11.sub: line 54: history: 22: history position out of range
+./history11.sub: line 55: history: 22: history position out of range
+
+./history11.sub: line 57: history: 16: history position out of range
+./history11.sub: line 58: history: 200: history position out of range
+./history11.sub: line 59: history: -20: history position out of range
+./history11.sub: line 60: history: -50: history position out of range
+./history11.sub: line 61: history: 5-0xaf: history position out of range
+./history11.sub: line 63: history: @42: numeric argument required
+./history11.sub: line 64: history: -0xaf: numeric argument required
+./history11.sub: line 68: history: -200: history position out of range
+
+    1  echo one
+    2  echo two
+    3  echo three
+    4  echo four
+    5  echo five
+    6  echo six
+    7  echo seven
+    8  echo eight
+    9  echo nine
+   10  echo ten
+   11  echo a
+   12  echo b
+   13  echo c
+   14  echo d
+
+./history11.sub: line 71: history: 20: history position out of range
+./history11.sub: line 72: history: -30: history position out of range
index 15c6b0108133cc8452893de56e3caea6fdac16f9..e364c6bbbd659a0d8d042a28d15fd85199b25389 100644 (file)
@@ -138,3 +138,4 @@ test_runsub ./history7.sub
 test_runsub ./history8.sub
 test_runsub ./history9.sub
 test_runsub ./history10.sub
+test_runsub ./history11.sub
diff --git a/tests/history11.sub b/tests/history11.sub
new file mode 100644 (file)
index 0000000..6819d1c
--- /dev/null
@@ -0,0 +1,75 @@
+#   This program is free software: you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation, either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+: ${TMPDIR:=/tmp}
+
+set -o history
+HISTFILE=$TMPDIR/history-$$
+
+history -c
+
+echo one
+echo two
+echo three
+echo four
+echo five
+echo six
+echo seven
+echo eight
+echo nine
+echo ten
+
+history ; echo 
+
+history 2-4 ; echo
+
+history
+
+echo a
+echo b
+echo c
+echo d
+echo e
+
+history
+
+history 6--1; echo
+history -- -1 ; echo
+
+history 18-14
+history 14-18 ; echo
+
+history ; echo
+
+history -- -1-22
+history -- 22--2 ; echo
+
+history 16-40
+history 1-200
+history -- -20-50
+history 1--50
+history 5-0xaf
+
+history @42
+history -- -0xaf
+
+# out of range arguments are clamped at 0 and history_length, respectively
+history -d -2--1 # remove comment and this command
+history -- -200--1 ; echo
+history 567 ; echo
+
+history -- -1-20
+history -- 1--30
+
+unset HISTFILE
+exit 0