]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
New -D option for fc to force it to delete history entries selected for editing and...
authorChet Ramey <chet.ramey@case.edu>
Tue, 30 Dec 2025 20:55:55 +0000 (15:55 -0500)
committerChet Ramey <chet.ramey@case.edu>
Tue, 30 Dec 2025 20:55:55 +0000 (15:55 -0500)
15 files changed:
CWRU/CWRU.chlog
bashjmp.h
bashline.c
builtins/evalstring.c
builtins/fc.def
doc/bash.0
doc/bash.1
doc/bash.info
doc/bashref.info
doc/version.texi
eval.c
lib/readline/doc/hsuser.texi
shell.c
tests/builtins.right
tests/history.right

index 509288adae618332cb3141df8a70f1cafb5b1aba..18463f6a76b7341b51b319b359fb91505591490d 100644 (file)
@@ -12373,3 +12373,36 @@ lib/readline/bind.c
        - show-mode-in-prompt: add V_SPECIAL flag so hack_special_boolean_var()
          gets called and _rl_reset_prompt will be called when it's changed
          Report and fix from Martin D Kealey <martin@kurahaupo.gen.nz>
+
+                                  12/18
+                                  -----
+bashjmp.h
+       - REINIT: new value for jump_to_top_level()
+
+eval.c,shell.c,builtins/evalstring.c
+       - handle REINIT as a longjmp to top_level value, same as DISCARD
+         except it doesn't reset last_command_exit_value
+
+builtins/fc.def
+       - fc_builtin: new option -D. This removes the selected commands
+         from the history list before calling fc_execute_file to execute
+         the edited lines.
+         Currently used by edit_and_execute_command to remove the partial
+         history entry so it doesn't trip a HISTCONTROL entry of `ignoredups'
+         if the partial history entry and the first line of the edited file
+         happen to be the same. It could be used if you made a typo in a
+         command and wanted to fix it in an editor without the old line
+         cluttering up the history
+
+bashline.c
+       - edit_and_execute_command: change implementation so it acts more
+         like an accept-line followed by command execution instead of a
+         readline command that returns to editing the same line. The old
+         behavior is present if the shell isn't running interactively or
+         readline is getting input from a macro. The new behavior is to
+         not save or restore any parser state, but reset the parser after
+         parse_and_execute returns and jump_to_top_level (REINIT)
+         Inspired by a report from William Pursell <william.r.pursell@gmail.com>
+
+doc/bash.1,doc/bashref.texi
+       - fc: documented new -D option
index 1a4721bc8044d7b2207c022ad450426c411f8237..065f0708c20cd20b376b26d35e0ea7c82be6fe12 100644 (file)
--- a/bashjmp.h
+++ b/bashjmp.h
@@ -43,5 +43,6 @@ extern int no_longjmp_on_fatal_error;
 #define ERREXIT                4       /* Exit due to error condition */       
 #define SIGEXIT                5       /* Exit due to fatal terminating signal */
 #define EXITBLTIN      6       /* Exit due to the exit builtin. */
+#define REINIT         7       /* Abandon current command and reinitialize */
 
 #endif /* _BASHJMP_H_ */
index bd5a25429346dc438ce17ce03599754b6b18e7d1..0f624604b802c97b5b2565fba87d272dc2977596 100644 (file)
@@ -943,17 +943,20 @@ edit_and_execute_command (int count, int c, int editing_mode, const char *edit_c
 {
   char *command, *metaval;
   int r, rrs, metaflag;
+  int reading_from_tty;
+  size_t clen;
   sh_parser_state_t ps;
 
   rrs = rl_readline_state;
   saved_command_line_count = current_command_line_count;
 
+  reading_from_tty = interactive && (bash_input.type != st_string) && (RL_ISSTATE (RL_STATE_MACROINPUT) == 0);
+
   /* Accept the current line. */
   rl_newline (1, c);
 
   if (rl_explicit_arg)
     {
-      size_t clen;
       /* 32 exceeds strlen (itos (INTMAX_MAX)) (19) */
       clen = strlen (edit_command) + 32;
       command = (char *)xmalloc (clen);
@@ -965,8 +968,6 @@ edit_and_execute_command (int count, int c, int editing_mode, const char *edit_c
         then call fc to operate on it.  We have to add a dummy command to
         the end of the history because fc ignores the last command (assumes
         it's supposed to deal with the command before the `fc'). */
-      /* This breaks down when using command-oriented history and are not
-        finished with the command, so we should not ignore the last command */
       using_history ();
       current_command_line_count++;    /* for rl_newline above */
       bash_add_history (rl_line_buffer);
@@ -974,45 +975,73 @@ edit_and_execute_command (int count, int c, int editing_mode, const char *edit_c
       bash_add_history ("");
       history_lines_this_session++;
       using_history ();
-      command = savestring (edit_command);
+      /* XXX - hist_last_line_added = 1; ? */
+      /* +4 for -D */
+      clen = strlen (edit_command) + 4;
+      command = (char *)xmalloc (clen);
+      snprintf (command, clen, "%s -D", edit_command);
     }
 
-  metaval = rl_variable_value ("input-meta");
-  metaflag = RL_BOOLEAN_VARIABLE_VALUE (metaval);
-  
-  if (rl_deprep_term_function)
-    (*rl_deprep_term_function) ();
-  rl_clear_signals ();
-  save_parser_state (&ps);
-  parser_unset_string_list ();
-  r = parse_and_execute (command, (editing_mode == VI_EDITING_MODE) ? "v" : "C-xC-e", SEVAL_NOHIST);
-  restore_parser_state (&ps);
+  /* save needed readline state */
+  if (reading_from_tty == 0)
+    {
+      metaval = rl_variable_value ("input-meta");
+      metaflag = RL_BOOLEAN_VARIABLE_VALUE (metaval);
+    }
 
-  /* if some kind of reset_parser was called, undo it. */
-  reset_readahead_token ();
+  rl_cleanup_after_signal ();
 
-  if (rl_prep_term_function)
-    (*rl_prep_term_function) (metaflag);
-  rl_set_signals ();
+  /* save needed bash state */
+  if (reading_from_tty == 0)
+    {
+      save_parser_state (&ps);
+      parser_unset_string_list ();     /* XXX */
+    }
+
+  r = parse_and_execute (command, (editing_mode == VI_EDITING_MODE) ? "v" : "C-xC-e", SEVAL_NOHIST);
 
-  current_command_line_count = saved_command_line_count;
+  /* restore needed bash state */ 
+  if (reading_from_tty == 0)
+    { 
+      restore_parser_state (&ps);
 
-  /* Now erase the contents of the current line and undo the effects of the
-     rl_accept_line() above.  We don't even want to make the text we just
-     executed available for undoing. */
-  rl_line_buffer[0] = '\0';    /* XXX */
-  rl_point = rl_end = 0;
-  rl_done = 0;
-  rl_readline_state = rrs;
+      /* if some kind of reset_parser was called, undo it. */
+      reset_readahead_token ();
+      current_command_line_count = saved_command_line_count;
+    }
+
+  /* restore needed readline state */
+  if (reading_from_tty == 0)
+    {
+      if (rl_prep_term_function)
+       (*rl_prep_term_function) (metaflag);
+      rl_set_signals ();
+
+      /* Now erase the contents of the current line and undo the effects of the
+        rl_accept_line() above.  We don't even want to make the text we just
+        executed available for undoing. */
+      rl_line_buffer[0] = '\0';        /* XXX */
+      rl_point = rl_end = 0;
+      rl_done = 0;
+      rl_readline_state = rrs;
 
 #if defined (VI_MODE)
-  if (editing_mode == VI_EDITING_MODE)
-    rl_vi_insertion_mode (1, c);
+      if (editing_mode == VI_EDITING_MODE)
+       rl_vi_insertion_mode (1, c);
 #endif
 
-  rl_forced_update_display ();
+      rl_forced_update_display ();
+      return r;
+    }
 
-  return r;
+  /* We are running interactively and reading from the keyboard. We need
+     to jump back to the top level after resetting enough state to read the
+     next command with readline. We call reset_parser() just in case. */
+  reset_parser ();
+  clear_shell_input_line ();   /* XXX - probably not necessary */
+  /* The prompt strings will be reset by prompt_again() */
+  
+  jump_to_top_level (REINIT);
 }
 
 #if defined (VI_MODE)
index a408bbde85769a3ae365533547195b2fa870040f..31ece9ffe4409af6d97409302166da7fcde59746 100644 (file)
@@ -421,6 +421,7 @@ parse_and_execute (char *string, const char *from_file, int flags)
              goto out;
 
            case DISCARD:
+           case REINIT:
              if (command)
                run_unwind_frame ("pe_dispose");
              last_result = last_command_exit_value = EXECUTION_FAILURE; /* XXX */
@@ -683,6 +684,7 @@ parse_string (char *string, const char *from_file, int flags, COMMAND **cmdp, ch
            case EXITPROG:
            case EXITBLTIN:
            case DISCARD:               /* XXX */
+           case REINIT:
              if (command)
                dispose_command (command);
              /* Remember to call longjmp (top_level) after the old
index 1d88a49a1f26fde7653852eabeefb83dbcd6fb01..0187d43bc26e49dfb981193a6d2259a82f06dbae 100644 (file)
@@ -1,7 +1,7 @@
 This file is fc.def, from which is created fc.c.
 It implements the builtin "fc" in Bash.
 
-Copyright (C) 1987-2024 Free Software Foundation, Inc.
+Copyright (C) 1987-2025 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -23,7 +23,7 @@ $PRODUCES fc.c
 $BUILTIN fc
 $FUNCTION fc_builtin
 $DEPENDS_ON HISTORY
-$SHORT_DOC fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]
+$SHORT_DOC fc [-e ename] [-D] [-lnr] [first] [last] or fc -s [pat=rep] [command]
 Display or execute commands from the history list.
 
 fc is used to list or edit and re-execute commands from the history list.
@@ -33,8 +33,11 @@ string.
 
 Options:
   -e ENAME     select which editor to use.  Default is FCEDIT, then EDITOR,
-               then vi
-  -l   list lines instead of editing
+               then vi.
+  -D   when editing and re-executing commands, fc removes the selected
+               commands from the history list before executing the edited
+               commands
+  -l   list lines instead of editing
   -n   omit line numbers when listing
   -r   reverse the order of the lines (newest listed first)
 
@@ -113,15 +116,16 @@ extern int suppress_debug_trap_verbose;
 /* fc builtin command (fix command) for Bash for those who
    like K*rn-style history better than csh-style.
 
-     fc [-e ename] [-nlr] [first] [last]
+     fc [-e ename [-D]] [-nlr] [first] [last]
 
    FIRST and LAST can be numbers specifying the range, or FIRST can be
    a string, which means the most recent command beginning with that
    string.
 
    -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,
-      then the editor which corresponds to the current readline editing
-      mode, then vi.
+      then vi.
+   -D means to remove the selected commands from the history before
+      adding the edited ones.
 
    -l means list lines instead of editing.
    -n means no line numbers listed.
@@ -193,7 +197,7 @@ fc_builtin (WORD_LIST *list)
 {
   register int i;
   register char *sep;
-  int numbering, reverse, listing, execute;
+  int numbering, reverse, listing, execute, delete_last;
   int histbeg, histend, last_hist, retval, opt, rh, real_last;
   FILE *stream;
   REPL *rlist, *rl;
@@ -202,14 +206,14 @@ fc_builtin (WORD_LIST *list)
   char *fn;
 
   numbering = 1;
-  reverse = listing = execute = 0;
+  reverse = listing = execute = delete_last = 0;
   ename = (char *)NULL;
 
   /* Parse out the options and set which of the two forms we're in. */
   reset_internal_getopt ();
   lcurrent = list;             /* XXX */
   while (fc_number (loptend = lcurrent) == 0 &&
-        (opt = internal_getopt (list, ":e:lnrs")) != -1)
+        (opt = internal_getopt (list, ":e:Dlnrs")) != -1)
     {
       switch (opt)
        {
@@ -233,6 +237,10 @@ fc_builtin (WORD_LIST *list)
          ename = list_optarg;
          break;
 
+       case 'D':
+         delete_last = 1;
+         break;
+
        CASE_HELPOPT;
        default:
          builtin_usage ();
@@ -518,10 +526,20 @@ fc_builtin (WORD_LIST *list)
 
 #if defined (READLINE)
   /* If we're executing as part of a dispatched readline command like
-     {emacs,vi}_edit_and_execute_command, the readline state will indicate it.
-     We could remove the partial command from the history, but ksh93 doesn't
-     so we stay compatible. */
+     {emacs,vi}_edit_and_execute_command, the readline state will indicate it. */
 #endif
+  /* If -D is supplied, we remove the selected commands from the history.
+     If we are being run by edit_and_execute_command, we want to remove the
+     partial command from the history so a HISTCONTROL value of `ignoredups'
+     doesn't cause the edited command to be skipped if the first lines are
+     identical. */
+  if (delete_last)
+    {
+      if (histbeg == histend)
+       bash_delete_histent (histbeg);
+      else
+       bash_delete_history_range (histbeg, histend);
+    }
 
   /* Make sure parse_and_execute doesn't turn this off, even though a
      call to parse_and_execute farther up the function call stack (e.g.,
index 1549badbaaaf7847f18ca24bafc658bce5957a4e..259d5bd2c7ff8d59ea5d90c0cf7f6fb689d7e52e 100644 (file)
@@ -5813,7 +5813,7 @@ S\bSH\bHE\bEL\bLL\bL 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
@@ -5839,117 +5839,120 @@ S\bSH\bHE\bEL\bLL\bL 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 active
+              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 "r="fc -s"", so that typing  "r
+              A  useful alias to use with f\bfc\bc is "r="fc -s"", so that typing "r
               cc" runs the last command beginning with "cc" and typing "r" re-
               executes the last command.
 
-              If  the  first  form is used, the return value is 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\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
+              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
               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\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-
+              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-
               stead.
 
-              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
+              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
               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\bis 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\b is 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\breturns true if an option, specified or unspecified,  is
+              g\bge\bet\bto\bop\bpt\bts\b returns 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\b options (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\boptions (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_\bas 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_\b as described below; otherwise it displays a list of all
               the builtins and shell compound commands.
 
               Options, if supplied, have the follow meanings:
@@ -5959,13 +5962,13 @@ S\bSH\bHE\bEL\bLL\bL 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\babove) it's treated as a shell pattern and h\bhe\bel\blp\b 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\b above) it's treated as a shell pattern and h\bhe\bel\blp\bp 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\bprints 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\b prints 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.
@@ -5977,18 +5980,18 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
        h\bhi\bis\bst\bto\bor\bry\by -\b-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\b is  set  and not null, it is used as a format string for
-              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to display the time stamp associated with each  dis-
-              played  history  entry.  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
+              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\bis set and not null, it is used as a  format  string  for
+              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3)  to display the time stamp associated with each dis-
+              played history entry.  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.
 
               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:
@@ -5996,20 +5999,20 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      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
+                     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
+                     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_\band _\be_\bn_\bd, inclusive.  Positive and  negative  values
+                     Delete the range of  history  entries  between  positions
+                     _\bs_\bt_\ba_\br_\b 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  "new"  history  lines  to  the history file.
-                     These are history lines entered since  the  beginning  of
+              -\b-a\ba     Append the "new"  history  lines  to  the  history  file.
+                     These  are  history  lines entered since the beginning of
                      the current b\bba\bas\bsh\bh session, but not already appended to the
                      history file.
-              -\b-n\bn     Read  the history lines not already read from the history
+              -\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.
@@ -6017,24 +6020,24 @@ S\bSH\bHE\bEL\bLL\bL 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.
 
@@ -6043,14 +6046,14 @@ S\bSH\bHE\bEL\bLL\bL 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.
 
@@ -6060,448 +6063,448 @@ S\bSH\bHE\bEL\bLL\bL 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  above).   If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\bt
+              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 above).  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 "popd +0."  With no  arguments,  p\bpo\bop\bpd\b re-
-              moves  the  top directory from the stack, and changes to the new
+              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 "popd +0."  With no arguments, p\bpo\bop\bpd\bd re-
+              moves the top directory from the stack, and changes to  the  new
               top directory.  Arguments, if supplied, have the following mean-
               ings:
               -\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: "popd +0" removes the first directory, "popd +1"
                      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: "popd
-                     -0" removes the last directory, "popd  -1"  the  next  to
+              -\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:  "popd
+                     -0"  removes  the  last  directory, "popd -1" the next to
                      last.
 
-              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
+              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
               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\b use
-                     the  $\b$'\b''\b'  quoting style if any characters in the argument
-                     string require it, and backslash quoting  otherwise.   If
-                     the  format  string uses the _\bp_\br_\bi_\bn_\bt_\bf alternate form, these
+              %\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$'\b''\b' quoting style if any characters in  the  argument
+                     string  require  it, and backslash quoting otherwise.  If
+                     the format string uses the _\bp_\br_\bi_\bn_\bt_\bf alternate  form,  these
                      two  formats  quote  the  argument  string  using  single
                      quotes.
-              %\b%Q\bQ     like  %\b%q\bq, but applies any supplied precision to the _\ba_\br_\bg_\bu_\b-
+              %\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
-              specifier is replaced by the sequence "%_\bn$", where _\bn is a  deci-
+              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 "%_\bn$", where _\bn is a deci-
               mal integer greater than 0, giving the argument number to use as
-              the  operand.  The format string should not mix numbered and un-
-              numbered argument specifiers, though this  is  allowed.   Unnum-
+              the operand.  The format string should not mix numbered and  un-
+              numbered  argument  specifiers,  though this is allowed.  Unnum-
               bered argument specifiers always refer to the next argument fol-
-              lowing  the  last  argument consumed by an unnumbered specifier;
-              numbered argument specifiers refer to absolute positions in  the
+              lowing 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
-              reused, a numbered argument specifier "%_\bn$" refers  to  the  _\bnth
+              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 "%_\bn$" 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 above 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  above 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 above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg).  The back-
-              slash  character  (\\b\)  removes  any special meaning for the next
+              slash character (\\b\) removes any special  meaning  for  the  next
               character read and is used for line continuation.
 
               Options, if supplied, have the following meanings:
               -\b-a\ba _\ba_\bn_\ba_\bm_\be
                      The words are assigned to sequential indices of the array
                      variable _\ba_\bn_\ba_\bm_\be, starting at 0.  _\ba_\bn_\ba_\bm_\be is unset before any
-                     new values are assigned.  Other _\bn_\ba_\bm_\be  arguments  are  ig-
+                     new  values  are  assigned.  Other _\bn_\ba_\bm_\be arguments are ig-
                      nored.
               -\b-d\bd _\bd_\be_\bl_\bi_\bm
-                     The  first  character of _\bd_\be_\bl_\bi_\bm 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 above) to  obtain  the  line.
-                     R\bRe\bea\bad\bdl\bli\bin\bne\b uses  the  current (or default, if line editing
-                     was not previously active)  editing  settings,  but  uses
+              -\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 above) to obtain the line.
+                     R\bRe\bea\bad\bdl\bli\bin\bne\buses 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 above) to  obtain  the  line.
-                     R\bRe\bea\bad\bdl\bli\bin\bne\b uses  the  current (or default, if line editing
-                     was not previously active)  editing  settings,  but  uses
+              -\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 above) to obtain the line.
+                     R\bRe\bea\bad\bdl\bli\bin\bne\buses the current (or default,  if  line  editing
+                     was  not  previously  active)  editing settings, but uses
                      bash's default completion, including programmable comple-
                      tion.
               -\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\bd places
+                     If r\bre\bea\bad\bdl\bli\bin\bne\be is being used to read the line,  r\bre\bea\bad\b 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\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
+                     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
                      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\b returns  after  reading  exactly  _\bn_\bc_\bh_\ba_\br_\bs characters
-                     rather than waiting for a complete line of input,  unless
+                     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
                      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\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-
+                     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-
                      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\b ig-
+              Other  than  the  case where _\bd_\be_\bl_\bi_\bm is the empty string, r\bre\bea\bad\bd 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\b option restricts the variables to indexed arrays; the -\b-A\bA op-
+              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-
               tion restricts the variables to associative arrays.  If both op-
-              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
+              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
               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\b allows  the  value of a variable to be set at the same
+              r\bre\bea\bad\bdo\bon\bnl\bly\ballows 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\b 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\bf 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_\b _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+              -\b-e\be      Exit immediately if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist  of  a
+                      single  _\bs_\bi_\bm_\bp_\bl_\be  _\bc_\bo_\bm_\bm_\ba_\bn_\bd),  a _\bl_\bi_\bs_\bt, or a _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd
                       (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above), exits with a non-zero status.
-                      The  shell  does  not  exit if the command that fails is
-                      part of the command list immediately following  a  w\bwh\bhi\bil\ble\be
-                      or  u\bun\bnt\bti\bil\bl  reserved word, part of the test following the
-                      i\bif\bor e\bel\bli\bif\bf reserved words, part of any command  executed
-                      in  a &\b&&\b& or |\b||\b| list except the command following the fi-
-                      nal &\b&&\b& or |\b||\b|, any command in a  pipeline  but  the  last
-                      (subject  to the state of the p\bpi\bip\bpe\bef\bfa\bai\bil\bl shell option), or
-                      if the command's return value is being inverted with  !\b!.
-                      If  a  compound  command other than a subshell returns a
-                      non-zero status because a command failed  while  -\b-e\b was
-                      being  ignored, the shell does not exit.  A trap on E\bER\bRR\bR,
+                      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  following  the
+                      i\bif\b or e\bel\bli\bif\bf reserved words, part of any command executed
+                      in a &\b&&\b& or |\b||\b| list except the command following the  fi-
+                      nal  &\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 option),  or
+                      if  the command's return value is being inverted with !\b!.
+                      If a compound command other than a  subshell  returns  a
+                      non-zero  status  because  a command failed while -\b-e\be was
+                      being ignored, the shell does not exit.  A trap on  E\bER\bRR\bR,
                       if set, is executed before the shell exits.  This option
                       applies to the shell environment and each subshell envi-
-                      ronment separately (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD  E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\b E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+                      ronment  separately  (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
                       above), and may cause subshells to exit before executing
                       all the commands in the subshell.
 
-                      If  a  compound  command or shell function executes in a
-                      context where -\b-e\be is being ignored, none of the  commands
-                      executed  within  the  compound command or function body
-                      will be affected by the -\b-e\be setting, even if  -\b-e\be  is  set
-                      and  a  command returns a failure status.  If a compound
-                      command or shell function sets -\b-e\be while executing  in  a
-                      context  where -\b-e\be is ignored, that setting will not have
-                      any effect until the compound  command  or  the  command
+                      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 above).  All  processes  run
+              -\b-m\bm      Monitor  mode.   Job control is enabled.  This option is
+                      on by default for interactive  shells  on  systems  that
+                      support  it  (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above).  All processes run
                       in a separate process group.  When a background job com-
                       pletes, the shell prints a line containing its exit sta-
                       tus.
               -\b-n\bn      Read commands but do not execute them.  This may be used
-                      to  check a shell script for syntax errors.  This is 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:
@@ -6509,10 +6512,10 @@ S\bSH\bHE\bEL\bLL\bL 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
@@ -6526,7 +6529,7 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               H\bHI\bIS\bST\bTO\bOR\bRY\bY.  This option is on by default in inter-
                               active shells.
                       i\big\bgn\bno\bor\bre\bee\beo\bof\bf
-                              The  effect  is  as   if   the   shell   command
+                              The   effect   is   as   if  the  shell  command
                               "IGNOREEOF=10"  had  been  executed  (see  S\bSh\bhe\bel\bll\bl
                               V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above).
                       k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
@@ -6542,184 +6545,184 @@ S\bSH\bHE\bEL\bLL\bL 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\b below  for  a reference to a document that
+                      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\bbelow for a reference to  a  document  that
                               details how posix mode affects bash's behavior.
                       p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
                               Same as -\b-p\bp.
                       v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
-                      v\bvi\bi      Use a vi-style command line  editing  interface.
+                      v\bvi\bi      Use  a  vi-style command line editing interface.
                               This also affects the editing interface used for
                               r\bre\bea\bad\bd -\b-e\be.
                       x\bxt\btr\bra\bac\bce\be  Same as -\b-x\bx.
-                      If  -\b-o\bo  is  supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, 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  sub-
-                      scripted  with  "@"  or "*", as an error when performing
-                      parameter expansion.  If expansion is  attempted  on  an
-                      unset  variable  or parameter, the shell prints an error
-                      message, and, if not interactive, exits with a  non-zero
+                      cial  parameters  "@"  and  "*", or array variables sub-
+                      scripted with "@" or "*", as an  error  when  performing
+                      parameter  expansion.   If  expansion is attempted on an
+                      unset variable or parameter, the shell prints  an  error
+                      message,  and, if not interactive, exits with a non-zero
                       status.
               -\b-v\bv      Print shell input lines as they are read.
-              -\b-x\bx      After  expanding  each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br command, c\bca\bas\bse\be
+              -\b-x\bx      After expanding each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br  command,  c\bca\bas\bse\be
                       command, s\bse\bel\ble\bec\bct\bt command, or arithmetic f\bfo\bor\br command, dis-
-                      play the expanded value of P\bPS\bS4\b4, followed by the  command
-                      and  its  expanded arguments or associated word list, to
+                      play  the expanded value of P\bPS\bS4\b4, followed by the command
+                      and its expanded arguments or associated word  list,  to
                       the standard error.
-              -\b-B\bB      The shell performs brace expansion (see B\bBr\bra\bac\bce\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+              -\b-B\bB      The  shell performs brace expansion (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
                       above).  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.  _\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
+              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
               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\bd com-
+              a\bau\but\bto\boc\bcd\bd  If  set,  a command name that is the name of a directory
+                      is executed as if it were the argument to  the  c\bcd\b com-
                       mand.  This option is only used by interactive shells.
               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\bl 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\b 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\bB C\bCO\bON\bN-\b-
-                      T\bTR\bRO\bOL\babove).  The shell always postpones exiting if  any
+                      attempted without an intervening command (see  J\bJO\bOB\b C\bCO\bON\bN-\b-
+                      T\bTR\bRO\bOL\b above).  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
+              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 above under H\bHI\bIS\bST\bTO\bOR\bRY\bY.
               c\bco\bom\bmp\bpa\bat\bt3\b31\b1
               c\bco\bom\bmp\bpa\bat\bt3\b32\b2
@@ -6728,143 +6731,143 @@ S\bSH\bHE\bEL\bLL\bL 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 below).
               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
+              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 above under
+                      If set, aliases are expanded as  described  above  under
                       A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for interac-
                       tive shells.
               e\bex\bxt\btd\bde\beb\bbu\bug\bg
-                      If set 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 above).
-                      5\b5.\b.     Function tracing is  enabled:  command  substitu-
+                      5\b5.\b.     Function  tracing  is  enabled: command substitu-
                              tion, shell functions, and subshells invoked with
                              (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
-                      6\b6.\b.     Error  tracing  is enabled: command substitution,
-                             shell functions, and  subshells  invoked  with  (\b(
+                      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 above 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   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
+                      If  set,  $\b$'_\bs_\bt_\br_\bi_\bn_\bg'  and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
+                      within  $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}  expansions  enclosed   in   double
                       quotes.  This option is enabled by default.
               f\bfa\bai\bil\blg\bgl\blo\bob\bb
-                      If set, patterns which fail to  match  filenames  during
+                      If  set,  patterns  which fail to match filenames during
                       pathname expansion result in an expansion error.
               f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
-                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
-                      variable cause words to be ignored when performing  word
+                      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
                       completion even if the ignored words are the only possi-
-                      ble  completions.   See  S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above for a de-
-                      scription 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 above  for  a  de-
+                      scription  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 above)  behave
-                      as  if  in the traditional C locale when performing com-
-                      parisons.  That is, pattern matching does not  take  the
-                      current  locale's  collating sequence into account, so b\bb
-                      will not collate between A\bA and  B\bB,  and  upper-case  and
+                      If set,  range  expressions  used  in  pattern  matching
+                      bracket  expressions (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg above) behave
+                      as if in the traditional C locale when  performing  com-
+                      parisons.   That  is, pattern matching does not take the
+                      current locale's collating sequence into account,  so  b\bb
+                      will  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  ".".
+                      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
+                      perform hostname completion when a word containing  a  @\b@
+                      is   being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
                       above).  This is enabled by default.
               h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
                       If set, b\bba\bas\bsh\bh will send S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an inter-
                       active login shell exits.
               i\bin\bnh\bhe\ber\bri\bit\bt_\b_e\ber\brr\bre\bex\bxi\bit\bt
-                      If  set,  command substitution inherits the value of the
-                      e\ber\brr\bre\bex\bxi\bit\boption, 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\b option, 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
                       above).  This option is enabled by default.
               l\bla\bas\bst\btp\bpi\bip\bpe\be
-                      If  set,  and  job control is not active, the shell runs
+                      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
@@ -6873,37 +6876,37 @@ S\bSH\bHE\bEL\bLL\bL 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
-                      shell  (see  I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN  above).   The  value may not be
+                      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 above).   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
-                      displays the message "The  mail  in  _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be  has  been
+                      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  "The  mail  in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been
                       read".
               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\b for  possible  completions  when completion is at-
+                      P\bPA\bAT\bTH\bfor 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 above).
               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$"\b"..."\b"
-                      quoting in single quotes instead of double  quotes.   If
+                      If set, b\bba\bas\bsh\bh encloses the translated results  of  $\b$"\b"..."\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
@@ -6911,73 +6914,73 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       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\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+                      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
                       above.  This option is enabled by default.
               p\bpr\bro\bog\bgc\bco\bom\bmp\bp
-                      If  set,  enable  the programmable completion facilities
+                      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 above).  This option is en-
                       abled 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
+                      mand substitution, arithmetic expansion, and  quote  re-
+                      moval  after  being  expanded  as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
                       above.  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 below).   The  value
-                      may  not be changed.  This is not reset when the startup
-                      files are executed, allowing the startup files  to  dis-
+                      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 below).  The value
+                      may not be changed.  This is not reset when the  startup
+                      files  are  executed, allowing the startup files to dis-
                       cover 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
+                      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\bN above) 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 above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
-              t\bte\bes\bst\bdoes not accept any options, nor does it accept and  ignore
+              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 above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\b E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
+              t\bte\bes\bst\b 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.
@@ -6994,111 +6997,111 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      null.
               2 arguments
                      If the first argument is !\b!, the expression is true if and
-                     only if the second argument is null.  If the first  argu-
-                     ment  is  one  of  the unary conditional operators listed
-                     above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS,  the  expression  is
+                     only  if the second argument is null.  If the first argu-
+                     ment is one of the  unary  conditional  operators  listed
+                     above  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL  E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
                      true if the unary test is true.  If the first argument is
                      not a valid unary conditional operator, the expression is
                      false.
               3 arguments
                      The following conditions are applied in the order listed.
-                     If  the  second argument is one of the binary conditional
+                     If the second argument is one of the  binary  conditional
                      operators listed above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
                      result of the expression is the result of the binary test
-                     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-argument test using
+                     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-argument test  using
                      the second and third arguments.  If the first argument is
                      exactly (\b( and the third argument is exactly )\b), the result
-                     is the one-argument test of the second argument.   Other-
+                     is  the one-argument test of the second argument.  Other-
                      wise, 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_\bn 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_\b 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\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
+              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
               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_\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  above).   Refer  to the description of the
-              e\bex\bxt\btd\bde\beb\bbu\bug\bshell option (see s\bsh\bho\bop\bpt\bt above) for details of  its  ef-
-              fect  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 exe-
+              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
+              (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above).  Refer  to  the  description  of  the
+              e\bex\bxt\btd\bde\beb\bbu\bug\b shell  option (see s\bsh\bho\bop\bpt\bt above) for details of its ef-
+              fect 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  exe-
               cuted each time a shell function or a script executed with the .\b.
               or s\bso\bou\bur\brc\bce\be builtins finishes executing.
 
-              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.
@@ -7107,61 +7110,61 @@ S\bSH\bHE\bEL\bLL\bL 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
+              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_\be or nothing if "type -t name" would not return _\bf_\bi_\bl_\be.  The -\b-P\bP
-              option forces a P\bPA\bAT\bTH\bH search for each  _\bn_\ba_\bm_\be,  even  if  "type  -t
+              option  forces  a  P\bPA\bAT\bTH\bH  search  for each _\bn_\ba_\bm_\be, even if "type -t
               name" would not return _\bf_\bi_\bl_\be.  If _\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
+              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 ("nice").
-              -\b-f\bf     The  maximum  size  of files written by the shell and its
+              -\b-f\bf     The maximum size of files written by the  shell  and  its
                      children.
               -\b-i\bi     The maximum number of pending signals.
               -\b-k\bk     The maximum number of kqueues that may be allocated.
               -\b-l\bl     The maximum size that may be locked into memory.
-              -\b-m\bm     The maximum resident set size (many systems do not  honor
+              -\b-m\bm     The  maximum resident set size (many systems do not honor
                      this limit).
               -\b-n\bn     The maximum number of open file descriptors (most systems
                      do not allow this value to be set).
@@ -7170,148 +7173,148 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-r\br     The maximum real-time scheduling priority.
               -\b-s\bs     The maximum stack size.
               -\b-t\bt     The maximum amount of cpu time in seconds.
-              -\b-u\bu     The  maximum  number  of  processes available to a single
+              -\b-u\bu     The maximum number of processes  available  to  a  single
                      user.
-              -\b-v\bv     The maximum amount of virtual  memory  available  to  the
+              -\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
-              will  be  greater  than  128,  as described under S\bSI\bIG\bGN\bNA\bAL\bLS\bS above.
+              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\b above.
               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
@@ -7319,173 +7322,173 @@ 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\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-
+              +\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-
                      abled.
-              +\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
+              +\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
                      exit
-              +\bo      Variable  assignments  preceding builtins like e\bex\bxp\bpo\bor\brt\bt and
+              +\bo      Variable assignments preceding builtins like  e\bex\bxp\bpo\bor\brt\b 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\bM 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\b will
                      produce the same sequence as in bash-5.0.
-              +\bo      If the command hash table is empty, bash  versions  prior
-                     to  bash-5.1 printed an informational message to that ef-
-                     fect, even when producing output that can  be  reused  as
-                     input.   Bash-5.1 suppresses that message when the -\b-l\bl op-
+              +\bo      If  the  command hash table is empty, bash versions prior
+                     to bash-5.1 printed an informational message to that  ef-
+                     fect,  even  when  producing output that can be reused as
+                     input.  Bash-5.1 suppresses that message when the -\b-l\b op-
                      tion is supplied.
 
        c\bco\bom\bmp\bpa\bat\bt5\b51\b1
-              +\bo      The u\bun\bns\bse\bet\bt builtin treats attempts  to  unset  array  sub-
-                     scripts  @\b@ and *\b* differently depending on whether the ar-
-                     ray is indexed or associative, and  differently  than  in
+              +\bo      The  u\bun\bns\bse\bet\bt  builtin  treats  attempts to unset array sub-
+                     scripts @\b@ and *\b* differently depending on whether the  ar-
+                     ray  is  indexed  or associative, and differently than in
                      previous versions.
               +\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\bd builtin,
+              +\bo      If the -\b-p\bp or -\b-P\bP option is supplied to the  b\bbi\bin\bnd\b 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.
 
 R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
-       invocation, the shell becomes _\br_\be_\bs_\bt_\br_\bi_\bc_\bt_\be_\bd.  A restricted shell  is  used
-       to  set  up an environment more controlled than the standard shell.  It
-       behaves identically to b\bba\bas\bsh\bh with the exception that the  following  are
+       invocation,  the  shell becomes _\br_\be_\bs_\bt_\br_\bi_\bc_\bt_\be_\bd.  A restricted shell is used
+       to set up an environment more controlled than the standard  shell.   It
+       behaves  identically  to b\bba\bas\bsh\bh with the exception that the following are
        disallowed or not performed:
 
        +\bo      Changing directories with c\bcd\bd.
 
-       +\bo      Setting  or  unsetting the values of S\bSH\bHE\bEL\bLL\bL, P\bPA\bAT\bTH\bH, H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE, E\bEN\bNV\bV,
+       +\bo      Setting or unsetting the values of S\bSH\bHE\bEL\bLL\bL, P\bPA\bAT\bTH\bH,  H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE,  E\bEN\bNV\bV,
               or B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV.
 
        +\bo      Specifying command names containing /\b/.
 
-       +\bo      Specifying a filename containing a /\b/ as an  argument  to  the  .\b.
+       +\bo      Specifying  a  filename  containing  a /\b/ as an argument to the .\b.
               builtin command.
 
-       +\bo      Using  the  -\b-p\bp  option  to  the  .\b.  builtin command to specify a
+       +\bo      Using the -\b-p\bp option to the  .\b.   builtin  command  to  specify  a
               search path.
 
-       +\bo      Specifying a filename containing a slash as an argument  to  the
+       +\bo      Specifying  a  filename containing a slash as an argument to the
               h\bhi\bis\bst\bto\bor\bry\by builtin command.
 
-       +\bo      Specifying  a  filename containing a slash as an argument to the
+       +\bo      Specifying a filename containing a slash as an argument  to  the
               -\b-p\bp option to the h\bha\bas\bsh\bh builtin command.
 
-       +\bo      Importing function definitions from  the  shell  environment  at
+       +\bo      Importing  function  definitions  from  the shell environment at
               startup.
 
-       +\bo      Parsing  the values of B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS and S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell en-
+       +\bo      Parsing the values of B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS and S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell  en-
               vironment at startup.
 
-       +\bo      Redirecting output using the >, >|, <>, >&, &>, and >>  redirec-
+       +\bo      Redirecting  output using the >, >|, <>, >&, &>, and >> redirec-
               tion operators.
 
        +\bo      Using the e\bex\bxe\bec\bc builtin command to replace the shell with another
               command.
 
-       +\bo      Adding  or  deleting builtin commands with the -\b-f\bf and -\b-d\bd options
+       +\bo      Adding or deleting builtin commands with the -\b-f\bf and  -\b-d\b options
               to the e\ben\bna\bab\bbl\ble\be builtin command.
 
-       +\bo      Using the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled  shell
+       +\bo      Using  the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled shell
               builtins.
 
        +\bo      Specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command.
 
-       +\bo      Turning  off  restricted  mode  with  s\bse\bet\bt  +\b+r\br  or  s\bsh\bho\bop\bpt\bt  -\b-u\bu r\bre\be-\b-
+       +\bo      Turning off  restricted  mode  with  s\bse\bet\bt  +\b+r\br  or  s\bsh\bho\bop\bpt\bt  -\b-u\b r\bre\be-\b-
               s\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl.
 
        These restrictions are enforced after any startup files are read.
 
        When a command that is found to be a shell script is executed (see C\bCO\bOM\bM-\b-
-       M\bMA\bAN\bND\bE\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions  in  the  shell
+       M\bMA\bAN\bND\b E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN  above),  r\brb\bba\bas\bsh\bh turns off any restrictions in the shell
        spawned to execute the script.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
@@ -7510,10 +7513,10 @@ F\bFI\bIL\bLE\bES\bS
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc
               The individual per-interactive-shell startup file
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt
-              The  individual  login shell cleanup file, executed when a login
+              The individual login shell cleanup file, executed when  a  login
               shell exits
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by
-              The default value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE, the file in which bash saves  the
+              The  default value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE, the file in which bash saves the
               command history
        _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc
               Individual _\br_\be_\ba_\bd_\bl_\bi_\bn_\be initialization file
@@ -7525,15 +7528,15 @@ A\bAU\bUT\bTH\bHO\bOR\bRS\bS
 
 B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        If you find a bug in b\bba\bas\bsh\bh, you should report it.  But first, you should
-       make  sure  that  it really is a bug, and that it appears in the latest
-       version  of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available   from
+       make sure that it really is a bug, and that it appears  in  the  latest
+       version   of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available  from
        <ftp://ftp.gnu.org/pub/gnu/bash/>   and   <http://git.savannah.gnu.org/
        cgit/bash.git/snapshot/bash-master.tar.gz>.
 
-       Once you have determined that a bug actually exists,  use  the  _\bb_\ba_\bs_\bh_\bb_\bu_\bg
-       command  to submit a bug report.  If you have a fix, you are encouraged
+       Once  you  have  determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
+       command to submit a bug report.  If you have a fix, you are  encouraged
        to mail that as well!  You may send suggestions and "philosophical" bug
-       reports, as well as comments and bug  reports  concerning  this  manual
+       reports,  as  well  as  comments and bug reports concerning this manual
        page, to to <bug-bash@gnu.org>.
 
        _\bA_\bl_\bl bug reports should include:
@@ -7541,37 +7544,37 @@ B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        +\bo the version number of b\bba\bas\bsh\bh ("echo $BASH_VERSION"),
        +\bo the host platform and operating system ("uname -a"),
        +\bo either
-           (a) if  you  or  an  administrator  built  and  installed b\bba\bas\bsh\bh from
-               source, the name and version of the compiler used to build  it,
+           (a) if you or  an  administrator  built  and  installed  b\bba\bas\bsh\b from
+               source,  the name and version of the compiler used to build it,
                as reported by b\bba\bas\bsh\bh's "configure" script; or
-           (b) if  your site uses a distributor's b\bba\bas\bsh\bh package, the version of
+           (b) if your site uses a distributor's b\bba\bas\bsh\bh package, the version  of
                that package (for example, "dpkg -i bash" or "rpm -qi bash"),
        +\bo a description of the behavior b\bba\bas\bsh\bh exhibited,
        +\bo a description of the behavior you expected from b\bba\bas\bsh\bh, and
        +\bo a short shell script or "recipe" exercising the unexpected behavior.
 
-       _\bb_\ba_\bs_\bh_\bb_\bu_\binserts the first three items automatically into  the  template
+       _\bb_\ba_\bs_\bh_\bb_\bu_\b inserts  the first three items automatically into the template
        it provides for filing a bug report.
 
 B\bBU\bUG\bGS\bS
        It's too big and too slow.
 
-       There  are some subtle differences between b\bba\bas\bsh\bh and historical versions
-       of s\bsh\bh, due mostly to b\bba\bas\bsh\bh's independent implementation and  the  evolu-
+       There are some subtle differences between b\bba\bas\bsh\bh and historical  versions
+       of  s\bsh\bh,  due mostly to b\bba\bas\bsh\bh's independent implementation and the evolu-
        tion of the POSIX specification.
 
        Aliases are confusing in some uses.
 
        Shell builtin commands and functions are not stoppable/restartable.
 
-       Compound  commands  and  command  lists of the form "a ; b ; c" are not
-       handled gracefully when  combined  with  process  suspension.   When  a
-       process  is stopped, the shell immediately executes the next command in
-       the list or breaks out of any existing loops.  It suffices  to  enclose
-       the  command  in  parentheses to force it into a subshell, which may be
-       stopped as a unit, or to start the command in the background and  imme-
+       Compound commands and command lists of the form "a ; b  ;  c"  are  not
+       handled  gracefully  when  combined  with  process  suspension.  When a
+       process is stopped, the shell immediately executes the next command  in
+       the  list  or breaks out of any existing loops.  It suffices to enclose
+       the command in parentheses to force it into a subshell,  which  may  be
+       stopped  as a unit, or to start the command in the background and imme-
        diately bring it into the foreground.
 
        Array variables may not (yet) be exported.
 
-GNU Bash 5.3                    2025 December 2                        _\bB_\bA_\bS_\bH(1)
+GNU Bash 5.3                   2025 December 18                        _\bB_\bA_\bS_\bH(1)
index 4554754e43ec686f3449d61e065ae3b7f3e88e93..145717cc8a5230806fcae45a701a3d7b10c5dfc9 100644 (file)
@@ -5,7 +5,7 @@
 .\"    Case Western Reserve University
 .\"    chet.ramey@case.edu
 .\"
-.\"    Last Change: Tue Dec  2 16:43:36 EST 2025
+.\"    Last Change: Thu Dec 18 17:18:21 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 2" "GNU Bash 5.3"
+.TH BASH 1 "2025 December 18" "GNU Bash 5.3"
 .\"
 .ie \n(.g \{\
 .ds ' \(aq
@@ -10340,7 +10340,7 @@ that is not a function.
 \fBfalse\fP
 Does nothing; returns a non-zero status.
 .TP
-\fBfc\fP [\fB\-e\fP \fIename\fP] [\fB\-lnr\fP] [\fIfirst\fP] [\fIlast\fP]
+\fBfc\fP [\fB\-e\fP \fIename\fP] [\fB\-D\fP] [\fB\-lnr\fP] [\fIfirst\fP] [\fIlast\fP]
 .PD 0
 .TP
 \fBfc\fP \fB\-s\fP [\fIpat\fP=\fIrep\fP] [\fIcmd\fP]
@@ -10407,6 +10407,13 @@ If neither variable is set, \fBfc\fP uses
 .FN vi.
 When editing is complete, \fBfc\fP reads the file containing
 the edited commands and echoes and executes them.
+The
+.B \-D
+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.
 .IP
 In the second form, \fBfc\fP re-executes \fIcommand\fP
 after replacing each instance of \fIpat\fP with \fIrep\fP.
index 3143f1c22b1ed5db1209e3a4701173f37e9a5f92..b7665149e59f2cc7997a6941de981de5df3ec45f 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, 2 December 2025).
+Bash shell (version 5.3, 18 December 2025).
 
-   This is Edition 5.3, last updated 2 December 2025, of ‘The GNU Bash
+   This is Edition 5.3, last updated 18 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, 2 December 2025).  The Bash home page is
+Bash shell (version 5.3, 18 December 2025).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.3, last updated 2 December 2025, of ‘The GNU Bash
+   This is Edition 5.3, last updated 18 December 2025, of ‘The GNU Bash
 Reference Manual’, for ‘Bash’, Version 5.3.
 
    Bash contains features that appear in other popular shells, and some
@@ -10962,7 +10962,7 @@ Bash provides two builtin commands which manipulate the history list and
 history file.
 
 ‘fc’
-          fc [-e ENAME] [-lnr] [FIRST] [LAST]
+          fc [-e ENAME] [-D] [-lnr] [FIRST] [LAST]
           fc -s [PAT=REP] [COMMAND]
 
      The first form selects a range of commands from FIRST to LAST from
@@ -10991,7 +10991,12 @@ history file.
      ‘FCEDIT’ variable if set, or the value of the ‘EDITOR’ variable if
      that is set, or ‘vi’ if neither is set.  When editing is complete,
      ‘fc’ reads the file of edited commands and echoes and executes
-     them.
+     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
+     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.
 
      In the second form, ‘fc’ re-executes COMMAND after replacing each
      instance of PAT in the selected command with REP.  COMMAND is
@@ -12950,7 +12955,7 @@ D.1 Index of Shell Builtin Commands
                                                               (line 233)
 * help:                                  Bash Builtins.       (line 375)
 * history:                               Bash History Builtins.
-                                                              (line  59)
+                                                              (line  64)
 * jobs:                                  Job Control Builtins.
                                                               (line  28)
 * kill:                                  Job Control Builtins.
@@ -13676,138 +13681,138 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f899
-Node: Introduction\7f2838
-Node: What is Bash?\7f3051
-Node: What is a shell?\7f4184
-Node: Definitions\7f6794
-Node: Basic Shell Features\7f10121
-Node: Shell Syntax\7f11345
-Node: Shell Operation\7f12372
-Node: Quoting\7f13663
-Node: Escape Character\7f15001
-Node: Single Quotes\7f15536
-Node: Double Quotes\7f15885
-Node: ANSI-C Quoting\7f17230
-Node: Locale Translation\7f18624
-Node: Creating Internationalized Scripts\7f20027
-Node: Comments\7f24225
-Node: Shell Commands\7f24992
-Node: Reserved Words\7f25931
-Node: Simple Commands\7f27074
-Node: Pipelines\7f27736
-Node: Lists\7f30992
-Node: Compound Commands\7f32912
-Node: Looping Constructs\7f33921
-Node: Conditional Constructs\7f36470
-Node: Command Grouping\7f51607
-Node: Coprocesses\7f53099
-Node: GNU Parallel\7f55785
-Node: Shell Functions\7f56703
-Node: Shell Parameters\7f65151
-Node: Positional Parameters\7f70052
-Node: Special Parameters\7f71142
-Node: Shell Expansions\7f74603
-Node: Brace Expansion\7f76792
-Node: Tilde Expansion\7f80128
-Node: Shell Parameter Expansion\7f83083
-Node: Command Substitution\7f103730
-Node: Arithmetic Expansion\7f107259
-Node: Process Substitution\7f108435
-Node: Word Splitting\7f109543
-Node: Filename Expansion\7f111987
-Node: Pattern Matching\7f115211
-Node: Quote Removal\7f120977
-Node: Redirections\7f121281
-Node: Executing Commands\7f131537
-Node: Simple Command Expansion\7f132204
-Node: Command Search and Execution\7f134312
-Node: Command Execution Environment\7f136756
-Node: Environment\7f140204
-Node: Exit Status\7f142107
-Node: Signals\7f144166
-Node: Shell Scripts\7f149114
-Node: Shell Builtin Commands\7f152412
-Node: Bourne Shell Builtins\7f154753
-Node: Bash Builtins\7f181472
-Node: Modifying Shell Behavior\7f219208
-Node: The Set Builtin\7f219550
-Node: The Shopt Builtin\7f231544
-Node: Special Builtins\7f248597
-Node: Shell Variables\7f249586
-Node: Bourne Shell Variables\7f250020
-Node: Bash Variables\7f252528
-Node: Bash Features\7f291812
-Node: Invoking Bash\7f292826
-Node: Bash Startup Files\7f299410
-Node: Interactive Shells\7f304652
-Node: What is an Interactive Shell?\7f305060
-Node: Is this Shell Interactive?\7f305722
-Node: Interactive Shell Behavior\7f306546
-Node: Bash Conditional Expressions\7f310307
-Node: Shell Arithmetic\7f315724
-Node: Aliases\7f319051
-Node: Arrays\7f322185
-Node: The Directory Stack\7f329888
-Node: Directory Stack Builtins\7f330685
-Node: Controlling the Prompt\7f335130
-Node: The Restricted Shell\7f338014
-Node: Bash POSIX Mode\7f340896
-Node: Shell Compatibility Mode\7f359843
-Node: Job Control\7f368850
-Node: Job Control Basics\7f369307
-Node: Job Control Builtins\7f375675
-Node: Job Control Variables\7f382463
-Node: Command Line Editing\7f383694
-Node: Introduction and Notation\7f385397
-Node: Readline Interaction\7f387749
-Node: Readline Bare Essentials\7f388937
-Node: Readline Movement Commands\7f390745
-Node: Readline Killing Commands\7f391741
-Node: Readline Arguments\7f393764
-Node: Searching\7f394854
-Node: Readline Init File\7f397097
-Node: Readline Init File Syntax\7f398400
-Node: Conditional Init Constructs\7f425351
-Node: Sample Init File\7f429736
-Node: Bindable Readline Commands\7f432856
-Node: Commands For Moving\7f434394
-Node: Commands For History\7f436858
-Node: Commands For Text\7f442249
-Node: Commands For Killing\7f446374
-Node: Numeric Arguments\7f449162
-Node: Commands For Completion\7f450314
-Node: Keyboard Macros\7f456010
-Node: Miscellaneous Commands\7f456711
-Node: Readline vi Mode\7f463278
-Node: Programmable Completion\7f464255
-Node: Programmable Completion Builtins\7f473991
-Node: A Programmable Completion Example\7f485728
-Node: Using History Interactively\7f491073
-Node: Bash History Facilities\7f491754
-Node: Bash History Builtins\7f495489
-Node: History Interaction\7f501960
-Node: Event Designators\7f506910
-Node: Word Designators\7f508488
-Node: Modifiers\7f510880
-Node: Installing Bash\7f512817
-Node: Basic Installation\7f513933
-Node: Compilers and Options\7f517809
-Node: Compiling For Multiple Architectures\7f518559
-Node: Installation Names\7f520312
-Node: Specifying the System Type\7f522546
-Node: Sharing Defaults\7f523292
-Node: Operation Controls\7f524006
-Node: Optional Features\7f525025
-Node: Reporting Bugs\7f537748
-Node: Major Differences From The Bourne Shell\7f539105
-Node: GNU Free Documentation License\7f560532
-Node: Indexes\7f585709
-Node: Builtin Index\7f586160
-Node: Reserved Word Index\7f593258
-Node: Variable Index\7f595703
-Node: Function Index\7f613116
-Node: Concept Index\7f627111
+Node: Top\7f901
+Node: Introduction\7f2842
+Node: What is Bash?\7f3055
+Node: What is a shell?\7f4188
+Node: Definitions\7f6798
+Node: Basic Shell Features\7f10125
+Node: Shell Syntax\7f11349
+Node: Shell Operation\7f12376
+Node: Quoting\7f13667
+Node: Escape Character\7f15005
+Node: Single Quotes\7f15540
+Node: Double Quotes\7f15889
+Node: ANSI-C Quoting\7f17234
+Node: Locale Translation\7f18628
+Node: Creating Internationalized Scripts\7f20031
+Node: Comments\7f24229
+Node: Shell Commands\7f24996
+Node: Reserved Words\7f25935
+Node: Simple Commands\7f27078
+Node: Pipelines\7f27740
+Node: Lists\7f30996
+Node: Compound Commands\7f32916
+Node: Looping Constructs\7f33925
+Node: Conditional Constructs\7f36474
+Node: Command Grouping\7f51611
+Node: Coprocesses\7f53103
+Node: GNU Parallel\7f55789
+Node: Shell Functions\7f56707
+Node: Shell Parameters\7f65155
+Node: Positional Parameters\7f70056
+Node: Special Parameters\7f71146
+Node: Shell Expansions\7f74607
+Node: Brace Expansion\7f76796
+Node: Tilde Expansion\7f80132
+Node: Shell Parameter Expansion\7f83087
+Node: Command Substitution\7f103734
+Node: Arithmetic Expansion\7f107263
+Node: Process Substitution\7f108439
+Node: Word Splitting\7f109547
+Node: Filename Expansion\7f111991
+Node: Pattern Matching\7f115215
+Node: Quote Removal\7f120981
+Node: Redirections\7f121285
+Node: Executing Commands\7f131541
+Node: Simple Command Expansion\7f132208
+Node: Command Search and Execution\7f134316
+Node: Command Execution Environment\7f136760
+Node: Environment\7f140208
+Node: Exit Status\7f142111
+Node: Signals\7f144170
+Node: Shell Scripts\7f149118
+Node: Shell Builtin Commands\7f152416
+Node: Bourne Shell Builtins\7f154757
+Node: Bash Builtins\7f181476
+Node: Modifying Shell Behavior\7f219212
+Node: The Set Builtin\7f219554
+Node: The Shopt Builtin\7f231548
+Node: Special Builtins\7f248601
+Node: Shell Variables\7f249590
+Node: Bourne Shell Variables\7f250024
+Node: Bash Variables\7f252532
+Node: Bash Features\7f291816
+Node: Invoking Bash\7f292830
+Node: Bash Startup Files\7f299414
+Node: Interactive Shells\7f304656
+Node: What is an Interactive Shell?\7f305064
+Node: Is this Shell Interactive?\7f305726
+Node: Interactive Shell Behavior\7f306550
+Node: Bash Conditional Expressions\7f310311
+Node: Shell Arithmetic\7f315728
+Node: Aliases\7f319055
+Node: Arrays\7f322189
+Node: The Directory Stack\7f329892
+Node: Directory Stack Builtins\7f330689
+Node: Controlling the Prompt\7f335134
+Node: The Restricted Shell\7f338018
+Node: Bash POSIX Mode\7f340900
+Node: Shell Compatibility Mode\7f359847
+Node: Job Control\7f368854
+Node: Job Control Basics\7f369311
+Node: Job Control Builtins\7f375679
+Node: Job Control Variables\7f382467
+Node: Command Line Editing\7f383698
+Node: Introduction and Notation\7f385401
+Node: Readline Interaction\7f387753
+Node: Readline Bare Essentials\7f388941
+Node: Readline Movement Commands\7f390749
+Node: Readline Killing Commands\7f391745
+Node: Readline Arguments\7f393768
+Node: Searching\7f394858
+Node: Readline Init File\7f397101
+Node: Readline Init File Syntax\7f398404
+Node: Conditional Init Constructs\7f425355
+Node: Sample Init File\7f429740
+Node: Bindable Readline Commands\7f432860
+Node: Commands For Moving\7f434398
+Node: Commands For History\7f436862
+Node: Commands For Text\7f442253
+Node: Commands For Killing\7f446378
+Node: Numeric Arguments\7f449166
+Node: Commands For Completion\7f450318
+Node: Keyboard Macros\7f456014
+Node: Miscellaneous Commands\7f456715
+Node: Readline vi Mode\7f463282
+Node: Programmable Completion\7f464259
+Node: Programmable Completion Builtins\7f473995
+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
 \1f
 End Tag Table
 
index 8fb48027a0051b5151dcae84fd44dda04688218b..b59f6544eb60e0bbca465f7c7fb55591413761f1 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, 2 December 2025).
+Bash shell (version 5.3, 18 December 2025).
 
-   This is Edition 5.3, last updated 2 December 2025, of ‘The GNU Bash
+   This is Edition 5.3, last updated 18 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, 2 December 2025).  The Bash home page is
+Bash shell (version 5.3, 18 December 2025).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.3, last updated 2 December 2025, of ‘The GNU Bash
+   This is Edition 5.3, last updated 18 December 2025, of ‘The GNU Bash
 Reference Manual’, for ‘Bash’, Version 5.3.
 
    Bash contains features that appear in other popular shells, and some
@@ -10963,7 +10963,7 @@ Bash provides two builtin commands which manipulate the history list and
 history file.
 
 ‘fc’
-          fc [-e ENAME] [-lnr] [FIRST] [LAST]
+          fc [-e ENAME] [-D] [-lnr] [FIRST] [LAST]
           fc -s [PAT=REP] [COMMAND]
 
      The first form selects a range of commands from FIRST to LAST from
@@ -10992,7 +10992,12 @@ history file.
      ‘FCEDIT’ variable if set, or the value of the ‘EDITOR’ variable if
      that is set, or ‘vi’ if neither is set.  When editing is complete,
      ‘fc’ reads the file of edited commands and echoes and executes
-     them.
+     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
+     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.
 
      In the second form, ‘fc’ re-executes COMMAND after replacing each
      instance of PAT in the selected command with REP.  COMMAND is
@@ -12951,7 +12956,7 @@ D.1 Index of Shell Builtin Commands
                                                               (line 233)
 * help:                                  Bash Builtins.       (line 375)
 * history:                               Bash History Builtins.
-                                                              (line  59)
+                                                              (line  64)
 * jobs:                                  Job Control Builtins.
                                                               (line  28)
 * kill:                                  Job Control Builtins.
@@ -13677,138 +13682,138 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f902
-Node: Introduction\7f2844
-Node: What is Bash?\7f3060
-Node: What is a shell?\7f4196
-Node: Definitions\7f6809
-Node: Basic Shell Features\7f10139
-Node: Shell Syntax\7f11366
-Node: Shell Operation\7f12396
-Node: Quoting\7f13690
-Node: Escape Character\7f15031
-Node: Single Quotes\7f15569
-Node: Double Quotes\7f15921
-Node: ANSI-C Quoting\7f17269
-Node: Locale Translation\7f18666
-Node: Creating Internationalized Scripts\7f20072
-Node: Comments\7f24273
-Node: Shell Commands\7f25043
-Node: Reserved Words\7f25985
-Node: Simple Commands\7f27131
-Node: Pipelines\7f27796
-Node: Lists\7f31055
-Node: Compound Commands\7f32978
-Node: Looping Constructs\7f33990
-Node: Conditional Constructs\7f36542
-Node: Command Grouping\7f51682
-Node: Coprocesses\7f53177
-Node: GNU Parallel\7f55866
-Node: Shell Functions\7f56787
-Node: Shell Parameters\7f65238
-Node: Positional Parameters\7f70142
-Node: Special Parameters\7f71235
-Node: Shell Expansions\7f74699
-Node: Brace Expansion\7f76891
-Node: Tilde Expansion\7f80230
-Node: Shell Parameter Expansion\7f83188
-Node: Command Substitution\7f103838
-Node: Arithmetic Expansion\7f107370
-Node: Process Substitution\7f108549
-Node: Word Splitting\7f109660
-Node: Filename Expansion\7f112107
-Node: Pattern Matching\7f115334
-Node: Quote Removal\7f121103
-Node: Redirections\7f121410
-Node: Executing Commands\7f131669
-Node: Simple Command Expansion\7f132339
-Node: Command Search and Execution\7f134450
-Node: Command Execution Environment\7f136897
-Node: Environment\7f140348
-Node: Exit Status\7f142254
-Node: Signals\7f144316
-Node: Shell Scripts\7f149267
-Node: Shell Builtin Commands\7f152568
-Node: Bourne Shell Builtins\7f154912
-Node: Bash Builtins\7f181634
-Node: Modifying Shell Behavior\7f219373
-Node: The Set Builtin\7f219718
-Node: The Shopt Builtin\7f231715
-Node: Special Builtins\7f248771
-Node: Shell Variables\7f249763
-Node: Bourne Shell Variables\7f250200
-Node: Bash Variables\7f252711
-Node: Bash Features\7f291998
-Node: Invoking Bash\7f293015
-Node: Bash Startup Files\7f299602
-Node: Interactive Shells\7f304847
-Node: What is an Interactive Shell?\7f305258
-Node: Is this Shell Interactive?\7f305923
-Node: Interactive Shell Behavior\7f306750
-Node: Bash Conditional Expressions\7f310514
-Node: Shell Arithmetic\7f315934
-Node: Aliases\7f319264
-Node: Arrays\7f322401
-Node: The Directory Stack\7f330107
-Node: Directory Stack Builtins\7f330907
-Node: Controlling the Prompt\7f335355
-Node: The Restricted Shell\7f338242
-Node: Bash POSIX Mode\7f341127
-Node: Shell Compatibility Mode\7f360077
-Node: Job Control\7f369087
-Node: Job Control Basics\7f369547
-Node: Job Control Builtins\7f375918
-Node: Job Control Variables\7f382709
-Node: Command Line Editing\7f383943
-Node: Introduction and Notation\7f385649
-Node: Readline Interaction\7f388004
-Node: Readline Bare Essentials\7f389195
-Node: Readline Movement Commands\7f391006
-Node: Readline Killing Commands\7f392005
-Node: Readline Arguments\7f394031
-Node: Searching\7f395124
-Node: Readline Init File\7f397370
-Node: Readline Init File Syntax\7f398676
-Node: Conditional Init Constructs\7f425630
-Node: Sample Init File\7f430018
-Node: Bindable Readline Commands\7f433141
-Node: Commands For Moving\7f434682
-Node: Commands For History\7f437149
-Node: Commands For Text\7f442543
-Node: Commands For Killing\7f446671
-Node: Numeric Arguments\7f449462
-Node: Commands For Completion\7f450617
-Node: Keyboard Macros\7f456316
-Node: Miscellaneous Commands\7f457020
-Node: Readline vi Mode\7f463590
-Node: Programmable Completion\7f464570
-Node: Programmable Completion Builtins\7f474309
-Node: A Programmable Completion Example\7f486049
-Node: Using History Interactively\7f491397
-Node: Bash History Facilities\7f492081
-Node: Bash History Builtins\7f495819
-Node: History Interaction\7f502293
-Node: Event Designators\7f507246
-Node: Word Designators\7f508827
-Node: Modifiers\7f511222
-Node: Installing Bash\7f513162
-Node: Basic Installation\7f514281
-Node: Compilers and Options\7f518160
-Node: Compiling For Multiple Architectures\7f518913
-Node: Installation Names\7f520669
-Node: Specifying the System Type\7f522906
-Node: Sharing Defaults\7f523655
-Node: Operation Controls\7f524372
-Node: Optional Features\7f525394
-Node: Reporting Bugs\7f538120
-Node: Major Differences From The Bourne Shell\7f539480
-Node: GNU Free Documentation License\7f560910
-Node: Indexes\7f586090
-Node: Builtin Index\7f586544
-Node: Reserved Word Index\7f593645
-Node: Variable Index\7f596093
-Node: Function Index\7f613509
-Node: Concept Index\7f627507
+Node: Top\7f904
+Node: Introduction\7f2848
+Node: What is Bash?\7f3064
+Node: What is a shell?\7f4200
+Node: Definitions\7f6813
+Node: Basic Shell Features\7f10143
+Node: Shell Syntax\7f11370
+Node: Shell Operation\7f12400
+Node: Quoting\7f13694
+Node: Escape Character\7f15035
+Node: Single Quotes\7f15573
+Node: Double Quotes\7f15925
+Node: ANSI-C Quoting\7f17273
+Node: Locale Translation\7f18670
+Node: Creating Internationalized Scripts\7f20076
+Node: Comments\7f24277
+Node: Shell Commands\7f25047
+Node: Reserved Words\7f25989
+Node: Simple Commands\7f27135
+Node: Pipelines\7f27800
+Node: Lists\7f31059
+Node: Compound Commands\7f32982
+Node: Looping Constructs\7f33994
+Node: Conditional Constructs\7f36546
+Node: Command Grouping\7f51686
+Node: Coprocesses\7f53181
+Node: GNU Parallel\7f55870
+Node: Shell Functions\7f56791
+Node: Shell Parameters\7f65242
+Node: Positional Parameters\7f70146
+Node: Special Parameters\7f71239
+Node: Shell Expansions\7f74703
+Node: Brace Expansion\7f76895
+Node: Tilde Expansion\7f80234
+Node: Shell Parameter Expansion\7f83192
+Node: Command Substitution\7f103842
+Node: Arithmetic Expansion\7f107374
+Node: Process Substitution\7f108553
+Node: Word Splitting\7f109664
+Node: Filename Expansion\7f112111
+Node: Pattern Matching\7f115338
+Node: Quote Removal\7f121107
+Node: Redirections\7f121414
+Node: Executing Commands\7f131673
+Node: Simple Command Expansion\7f132343
+Node: Command Search and Execution\7f134454
+Node: Command Execution Environment\7f136901
+Node: Environment\7f140352
+Node: Exit Status\7f142258
+Node: Signals\7f144320
+Node: Shell Scripts\7f149271
+Node: Shell Builtin Commands\7f152572
+Node: Bourne Shell Builtins\7f154916
+Node: Bash Builtins\7f181638
+Node: Modifying Shell Behavior\7f219377
+Node: The Set Builtin\7f219722
+Node: The Shopt Builtin\7f231719
+Node: Special Builtins\7f248775
+Node: Shell Variables\7f249767
+Node: Bourne Shell Variables\7f250204
+Node: Bash Variables\7f252715
+Node: Bash Features\7f292002
+Node: Invoking Bash\7f293019
+Node: Bash Startup Files\7f299606
+Node: Interactive Shells\7f304851
+Node: What is an Interactive Shell?\7f305262
+Node: Is this Shell Interactive?\7f305927
+Node: Interactive Shell Behavior\7f306754
+Node: Bash Conditional Expressions\7f310518
+Node: Shell Arithmetic\7f315938
+Node: Aliases\7f319268
+Node: Arrays\7f322405
+Node: The Directory Stack\7f330111
+Node: Directory Stack Builtins\7f330911
+Node: Controlling the Prompt\7f335359
+Node: The Restricted Shell\7f338246
+Node: Bash POSIX Mode\7f341131
+Node: Shell Compatibility Mode\7f360081
+Node: Job Control\7f369091
+Node: Job Control Basics\7f369551
+Node: Job Control Builtins\7f375922
+Node: Job Control Variables\7f382713
+Node: Command Line Editing\7f383947
+Node: Introduction and Notation\7f385653
+Node: Readline Interaction\7f388008
+Node: Readline Bare Essentials\7f389199
+Node: Readline Movement Commands\7f391010
+Node: Readline Killing Commands\7f392009
+Node: Readline Arguments\7f394035
+Node: Searching\7f395128
+Node: Readline Init File\7f397374
+Node: Readline Init File Syntax\7f398680
+Node: Conditional Init Constructs\7f425634
+Node: Sample Init File\7f430022
+Node: Bindable Readline Commands\7f433145
+Node: Commands For Moving\7f434686
+Node: Commands For History\7f437153
+Node: Commands For Text\7f442547
+Node: Commands For Killing\7f446675
+Node: Numeric Arguments\7f449466
+Node: Commands For Completion\7f450621
+Node: Keyboard Macros\7f456320
+Node: Miscellaneous Commands\7f457024
+Node: Readline vi Mode\7f463594
+Node: Programmable Completion\7f464574
+Node: Programmable Completion Builtins\7f474313
+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
 \1f
 End Tag Table
 
index 2ecc2f5fa5e3e55de109ad30b0efc409257de87b..85bc5f8de5395e9d55ab152aebb36a86406016ba 100644 (file)
@@ -2,10 +2,10 @@
 Copyright (C) 1988-2025 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Tue Dec  2 16:47:35 EST 2025
+@set LASTCHANGE Thu Dec 18 17:25:09 EST 2025
 
 @set EDITION 5.3
 @set VERSION 5.3
 
-@set UPDATED 2 December 2025
+@set UPDATED 18 December 2025
 @set UPDATED-MONTH December 2025
diff --git a/eval.c b/eval.c
index 9e0c278efc4e0cca7060a08436828b980e5aafa2..13334457ac5f8919d060140a9e7d0ae5a6bfd2a8 100644 (file)
--- a/eval.c
+++ b/eval.c
@@ -114,6 +114,7 @@ reader_loop (void)
                 alone. */
              if (last_command_exit_value == 0)
                set_exit_status (EXECUTION_FAILURE);
+           case REINIT:
              if (subshell_environment)
                {
                  current_command = (COMMAND *)NULL;
index 5bce1c3d2e6af394a756a451f0f2b601719f448c..e94b76d90c76aa531b5bbbc8229d93faa732f8ca 100644 (file)
@@ -154,7 +154,7 @@ history list and history file.
 @item fc
 @btindex fc
 @example
-@code{fc [-e @var{ename}] [-lnr] [@var{first}] [@var{last}]}
+@code{fc [-e @var{ename}] [-D] [-lnr] [@var{first}] [@var{last}]}
 @code{fc -s [@var{pat}=@var{rep}] [@var{command}]}
 @end example
 
@@ -191,6 +191,13 @@ value of the @env{FCEDIT} variable if set, or the value of the
 @env{EDITOR} variable if that is set, or @code{vi} if neither is set.
 When editing is complete, @code{fc} reads the file of edited commands
 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.
+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.
 
 In the second form, @code{fc} re-executes @var{command} after
 replacing each instance of @var{pat} in the selected command with @var{rep}.
diff --git a/shell.c b/shell.c
index 6ea54fde536b146b81f581468d20e8328a89d603..92b115e1a0e8ed8087e0cea3d1c74da831258bd3 100644 (file)
--- a/shell.c
+++ b/shell.c
@@ -1397,6 +1397,7 @@ run_wordexp (char *words)
        case EXITBLTIN:
          return last_command_exit_value;
        case DISCARD:
+       case REINIT:
          return last_command_exit_value = 1;
        default:
          command_error ("run_wordexp", CMDERR_BADJUMP, code, 0);
@@ -1475,6 +1476,7 @@ run_one_command (char *command)
        case EXITBLTIN:
          return last_command_exit_value;
        case DISCARD:
+       case REINIT:
          return last_command_exit_value = 1;
        default:
          command_error ("run_one_command", CMDERR_BADJUMP, code, 0);
index d7fcd38fbf0aff1db63843cb323756a36e0e67c6..606e6774f1b9e78b49eeafa9572f65628838452e 100644 (file)
@@ -394,7 +394,7 @@ A star (*) next to a name means that the command is disabled.
  exit [n]                                typeset [-aAfFgiIlnrtux] name[=value>
  export [-fn] [name[=value] ...] or ex>  ulimit [-SHabcdefiklmnpqrstuvxPRT] [>
  false                                   umask [-p] [-S] [mode]
- fc [-e ename] [-lnr] [first] [last] o>  unalias [-a] name [name ...]
+ fc [-e ename] [-D] [-lnr] [first] [la>  unalias [-a] name [name ...]
  fg [job_spec]                           unset [-f] [-v] [-n] [name ...]
  for NAME [in WORDS ... ] ; do COMMAND>  until COMMANDS; do COMMANDS-2; done
  for (( exp1; exp2; exp3 )); do COMMAN>  variables - Names and meanings of so>
@@ -487,7 +487,7 @@ A star (*) next to a name means that the command is disabled.
  exit [n]                                typeset [-aAfFgiIlnrtux] name[=value>
  export [-fn] [name[=value] ...] or ex>  ulimit [-SHabcdefiklmnpqrstuvxPRT] [>
  false                                   umask [-p] [-S] [mode]
- fc [-e ename] [-lnr] [first] [last] o>  unalias [-a] name [name ...]
+ fc [-e ename] [-D] [-lnr] [first] [la>  unalias [-a] name [name ...]
  fg [job_spec]                           unset [-f] [-v] [-n] [name ...]
  for NAME [in WORDS ... ] ; do COMMAND>  until COMMANDS; do COMMANDS-2; done
  for (( exp1; exp2; exp3 )); do COMMAN>  variables - Names and meanings of so>
index 7c12f3e1dfb538f5eee3326eef3b3db768a9cbc2..54ed23b08d207a5f4d9a9d8088d6137da1edfb38 100644 (file)
@@ -2,7 +2,7 @@
 history: usage: history [-c] [-d offset] [n] 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] [-lnr] [first] [last] or fc -s [pat=rep] [command]
+fc: usage: fc [-e ename] [-D] [-lnr] [first] [last] or fc -s [pat=rep] [command]
     1  for i in one two three; do echo $i; done
     2  /bin/sh -c 'echo this is $0'
     3  ls