]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
fix minor mem leaks; fix problem with parser state during a DEBUG trap with -T enable...
authorChet Ramey <chet.ramey@case.edu>
Wed, 28 Jun 2023 18:48:09 +0000 (14:48 -0400)
committerChet Ramey <chet.ramey@case.edu>
Wed, 28 Jun 2023 18:48:09 +0000 (14:48 -0400)
15 files changed:
CWRU/CWRU.chlog
arrayfunc.c
bashline.c
bashline.h
builtins/setattr.def
doc/bash.0
doc/bash.1
doc/bash.html
doc/bash.info
doc/bashref.info
doc/bashref.texi
doc/version.texi
pcomplete.c
subst.c
trap.c

index 2dfd28d1fee2b2436d751ebc022eceba8af18f15..5529c78ef93da8507c3ecd2eb238af103be57835 100644 (file)
@@ -6918,3 +6918,58 @@ print_cmd.c
          for characters that need $'...' printing over shell metacharacters
          so that strings containing both get the $'...' treatment
          From a report by Grisha Levit <grishalevit@gmail.com>
+
+                                  6/27
+                                  ----
+subst.c
+       - skip_double_quoted: make sure to call extract_function_subst with
+         the SX_NOALLOC flag
+         From a report by Grisha Levit <grishalevit@gmail.com>
+
+trap.c
+       - _run_trap_internal: if we're running a trap but shell_eof_token is
+         set, this means we're somehow running a trap while parsing a
+         command substitution (weird set of circumstances). Call
+         reset_parser and unset shell_eof_token if shell_eof_token is set
+         From a report by Wiley Young <wyeth2485@gmail.com>
+
+builtins/setattr.def
+       - set_var_attribute: don't set the att_propagate attribute unless the
+         variable whose attribute is being modified is in the temporary
+         environment for this builtin, not any previous temporary environments
+         (like the temp env for a function call, or a special builtin like
+         `.')
+
+variables.c
+       - push_posix_temp_var: if we have an array variable we're trying to
+         push up here, use arrayvar_copyval to copy the value correctly
+
+arrayfunc.c
+       - arrayvar_copyval: make sure that V2 ends up being the same type of
+         array as V1 (att_array or att_assoc), since we're copying the value.
+         Fixes issue reported by Grisha Levit <grishalevit@gmail.com>, but
+         with the previous fix to set_var_attribute, it's not needed
+       - assign_compound_array_list: check for integer overflow if the max
+         index of the array is already INT_MAX.
+         From a report from Emanuele Torre <torreemanuele6@gmail.com>
+
+                                  6/28
+                                  ----
+pcomplete.c,bashline.c
+       - uw_restore_parser_state,uw_rl_set_signals: move to bashline.c so the
+         general readline support can use them
+
+bashline.h
+       - uw_restore_parser_state,uw_rl_set_signals: extern declarations
+
+bashline.c
+       - unset_readline_variables,uw_unset_readline_variables: function to
+         unset READLINE_{LINE,POINT,MARK,ARGUMENT} and its unwind-protect
+         counterpart
+       - bash_execute_unix_command: add unwind-protect to free up allocated
+         memory
+         Report and patch by Grisha Levit <grishalevit@gmail.com>
+
+doc/bash.1,doc/bashref.texi
+       - BASH_ARGC,BASH_ARGV,BASH_SOURCE,BASH_LINENO: note that these variables
+         may not be assigned to or unset
index 03eefe5ae4e780d8bef69ebb0396645f55529b73..a92063bc15b3846d2ca79175b6b5440a40ccde98 100644 (file)
@@ -148,10 +148,17 @@ SHELL_VAR *
 arrayvar_copyval (SHELL_VAR *v1, SHELL_VAR *v2)
 {
   FREE (value_cell (v2));
+  VUNSETATTR (v2, (att_array | att_assoc));
   if (array_p (v1))
-    var_setarray (v2, array_copy (array_cell (v1)));
+    {
+      var_setarray (v2, array_copy (array_cell (v1)));
+      VSETATTR (v2, att_array);
+    }
   else if (assoc_p (v1))
-    var_setassoc (v2, assoc_copy (assoc_cell (v1)));
+    {
+      var_setassoc (v2, assoc_copy (assoc_cell (v1)));
+      VSETATTR (v2, att_assoc);
+    }
   return v2;
 }
 
@@ -698,7 +705,16 @@ assign_compound_array_list (SHELL_VAR *var, WORD_LIST *nlist, int flags)
     }
 
   last_ind = (a && (flags & ASS_APPEND)) ? array_max_index (a) + 1 : 0;
+  if (a && last_ind < 0)       /* overflow */
+    {
+      char *num;
 
+      num = itos (last_ind);
+      report_error ("%s[%s]: %s", var->name, num, bash_badsub_errmsg);
+      free (num);
+      return;
+    }
+  
 #if ASSOC_KVPAIR_ASSIGNMENT
   if (assoc_p (var) && kvpair_assignment_p (nlist))
     {
index 02f36e3ac28a720ac2ee012f82c1c9455d9b414b..0e5373ab43faca0fc5371645eb49aa52d8e0e6b6 100644 (file)
@@ -4428,6 +4428,34 @@ readline_set_char_offset (int ind, int *varp)
     }
 }
 
+void
+uw_restore_parser_state (void *ps)
+{
+  restore_parser_state (ps);
+}
+
+void
+uw_rl_set_signals (void *ignore)
+{
+  rl_set_signals ();
+}
+
+static void
+unbind_readline_variables (void)
+{
+  check_unbind_variable ("READLINE_LINE");
+  check_unbind_variable ("READLINE_POINT");
+  check_unbind_variable ("READLINE_MARK");
+  check_unbind_variable ("READLINE_ARGUMENT");
+  array_needs_making = 1;
+}
+
+static void
+uw_unbind_readline_variables (void *ignore)
+{
+  unbind_readline_variables ();
+}
+   
 int
 bash_execute_unix_command (int count, int key)
 {
@@ -4507,8 +4535,12 @@ bash_execute_unix_command (int count, int key)
     }
   array_needs_making = 1;
 
+  begin_unwind_frame ("execute-unix-command");
   save_parser_state (&ps);
   rl_clear_signals ();
+  add_unwind_protect (uw_unbind_readline_variables, 0);
+  add_unwind_protect (uw_restore_parser_state, &ps);
+  add_unwind_protect (uw_rl_set_signals, 0);
   r = parse_and_execute (savestring (cmd), "bash_execute_unix_command", SEVAL_NOHIST);
   rl_set_signals ();
   restore_parser_state (&ps);
@@ -4524,11 +4556,8 @@ bash_execute_unix_command (int count, int key)
   if (v && legal_number (value_cell (v), &mi))
     readline_set_char_offset (mi, &rl_mark);
 
-  check_unbind_variable ("READLINE_LINE");
-  check_unbind_variable ("READLINE_POINT");
-  check_unbind_variable ("READLINE_MARK");
-  check_unbind_variable ("READLINE_ARGUMENT");
-  array_needs_making = 1;
+  unbind_readline_variables ();
+  discard_unwind_frame ("execute-unix-command");
 
   /* and restore the readline buffer and display after command execution. */
   /* If we clear the last line of the prompt above, redraw only that last
index d9fb7379b1fa3bb23e2374dd2ba133981bcd9cfd..d1ef55e811668a53dec5bf3e5ab3282b6d8b1831 100644 (file)
@@ -46,6 +46,9 @@ extern int bash_re_edit (const char *);
 extern void bashline_set_event_hook (void);
 extern void bashline_reset_event_hook (void);
 
+extern void uw_restore_parser_state (void *);
+extern void uw_rl_set_signals (void *);
+
 extern int bind_keyseq_to_unix_command (char *);
 extern int bash_execute_unix_command (int, int);
 extern int print_unix_command_map (void);
index 4520c9e55e187cc88f94901371319c0e73f52d60..3e33a42d656052322c404e96df5eeeb131d684e3 100644 (file)
@@ -1,7 +1,7 @@
 This file is setattr.def, from which is created setattr.c.
 It implements the builtins "export" and "readonly", in Bash.
 
-Copyright (C) 1987-2022 Free Software Foundation, Inc.
+Copyright (C) 1987-2023 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -588,9 +588,6 @@ set_var_attribute (char *name, int attribute, int undo)
     {
       /* var=value readonly var */
       tv = find_tempenv_variable (name);
-      /* XXX -- need to handle case where tv is a temp variable in a
-        function-scope context, since function_env has been merged into
-        the local variables table. */
       if (tv && tempvar_p (tv))
        {
          tvalue = var_isset (tv) ? savestring (value_cell (tv)) : savestring ("");
@@ -629,6 +626,9 @@ set_var_attribute (char *name, int attribute, int undo)
        }
       else
        {
+         /* Handle case where var is a temp variable in a function-scope
+            context, since function_env has been merged into the local 
+            variables table (see below). */
          var = find_variable_notempenv (name);
          if (var == 0)
            {
@@ -648,7 +648,13 @@ set_var_attribute (char *name, int attribute, int undo)
              if (var)
                VSETATTR (var, att_invisible);
            }
+         /* We don't want to do this for local variables or variables we found
+            in previous temporary environment contexts. */
+#if 0
          else if (var->context != 0 && local_p (var) == 0)
+#else
+         else if (var->context != 0 && local_p (var) == 0 && tempvar_p (var) == 0)
+#endif
            VSETATTR (var, att_propagate);
        }
     }
index a71efb11b48f1a8528ac408ab7bd1a3d091cf28a..6c0df04ab4b2b477dd29763ce07f091468fb11fa 100644 (file)
@@ -856,18 +856,20 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               tion to the s\bsh\bho\bop\bpt\bt builtin below).  Setting  e\bex\bxt\btd\bde\beb\bbu\bug\bg  after  the
               shell has started to execute a script, or referencing this vari-
               able when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set, may result in  inconsistent  val-
-              ues.
+              ues.  Assignments to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC have no effect, and it may not be
+              unset.
        B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
-              An  array  variable containing all of the parameters in the cur-
+              An array variable containing all of the parameters in  the  cur-
               rent b\bba\bas\bsh\bh execution call stack.  The final parameter of the last
-              subroutine  call is at the top of the stack; the first parameter
+              subroutine call is at the top of the stack; the first  parameter
               of the initial call is at the bottom.  When a subroutine is exe-
-              cuted,  the  parameters supplied are pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV.  The
-              shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging  mode  (see
-              the  description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the s\bsh\bho\bop\bpt\bt builtin be-
+              cuted, the parameters supplied are pushed onto  B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV.   The
+              shell  sets  B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging mode (see
+              the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the s\bsh\bho\bop\bpt\bt builtin  be-
               low).  Setting e\bex\bxt\btd\bde\beb\bbu\bug\bg after the shell has started to execute a
-              script,  or  referencing this variable when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set,
-              may result in inconsistent values.
+              script, or referencing this variable when e\bex\bxt\btd\bde\beb\bbu\bug\bg is  not  set,
+              may  result  in  inconsistent  values.  Assignments to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
+              have no effect, and it may not be unset.
        B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0
               When referenced, this variable expands to the name of the  shell
               or shell script (identical to $\b$0\b0; see the description of special
@@ -896,29 +898,31 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}  is  the  line  number  in  the  source  file
               ($\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b})  where  $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b}  was  called  (or
               $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b} if referenced within  another  shell  func-
-              tion).  Use L\bLI\bIN\bNE\bEN\bNO\bO to obtain the current line number.
+              tion).   Use  L\bLI\bIN\bNE\bEN\bNO\bO to obtain the current line number.  Assign-
+              ments to B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO have no effect, and it may not be unset.
        B\bBA\bAS\bSH\bH_\b_L\bLO\bOA\bAD\bDA\bAB\bBL\bLE\bES\bS_\b_P\bPA\bAT\bTH\bH
-              A  colon-separated  list of directories in which the shell looks
-              for dynamically loadable builtins specified by the  e\ben\bna\bab\bbl\ble\b com-
+              A colon-separated list of directories in which the  shell  looks
+              for  dynamically  loadable builtins specified by the e\ben\bna\bab\bbl\ble\be com-
               mand.
        B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH
-              An  array  variable  whose members are assigned by the =\b=~\b~ binary
-              operator to the [\b[[\b[ conditional command.  The element with  index
-              0  is  the portion of the string matching the entire regular ex-
+              An array variable whose members are assigned by  the  =\b=~\b binary
+              operator  to the [\b[[\b[ conditional command.  The element with index
+              0 is the portion of the string matching the entire  regular  ex-
               pression.  The element with index _\bn is the portion of the string
               matching the _\bnth parenthesized subexpression.
        B\bBA\bAS\bSH\bH_\b_M\bMO\bON\bNO\bOS\bSE\bEC\bCO\bON\bND\bDS\bS
-              Each  time  this variable is referenced, it expands to the value
-              returned by the system's monotonic clock, if one  is  available.
-              If  there is no monotonic clock, this is equivalent to E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bC-\b-
-              O\bON\bND\bDS\bS.  If B\bBA\bAS\bSH\bH_\b_M\bMO\bON\bNO\bOS\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special  prop-
+              Each time this variable is referenced, it expands to  the  value
+              returned  by  the system's monotonic clock, if one is available.
+              If there is no monotonic clock, this is equivalent to  E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bC-\b-
+              O\bON\bND\bDS\bS.   If B\bBA\bAS\bSH\bH_\b_M\bMO\bON\bNO\bOS\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special prop-
               erties, even if it is subsequently reset.
        B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE
-              An  array  variable whose members are the source filenames where
-              the corresponding shell function names  in  the  F\bFU\bUN\bNC\bCN\bNA\bAM\bME\b array
+              An array variable whose members are the source  filenames  where
+              the  corresponding  shell  function  names in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array
               variable are defined.  The shell function $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} is de-
-              fined  in  the   file   $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}   and   called   from
-              $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}.
+              fined   in   the   file   $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}   and  called  from
+              $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}.  Assignments to B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE  have  no  ef-
+              fect, and it may not be unset.
        B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL
               Incremented  by one within each subshell or subshell environment
               when the shell begins executing in that environment.   The  ini-
@@ -6795,4 +6799,4 @@ B\bBU\bUG\bGS\bS
 
 
 
-GNU Bash 5.3                     2023 June 16                          BASH(1)
+GNU Bash 5.3                     2023 June 28                          BASH(1)
index 444bd215055c2c458d05405e23bcf61f1f6ae5c5..69aa1b7da72f1970d92a1d5c470aeedf239f9ee6 100644 (file)
@@ -5,12 +5,12 @@
 .\"    Case Western Reserve University
 .\"    chet.ramey@case.edu
 .\"
-.\"    Last Change: Fri Jun 16 11:36:28 EDT 2023
+.\"    Last Change: Wed Jun 28 14:06:27 EDT 2023
 .\"
 .\" bash_builtins, strip all but Built-Ins section
 .if \n(zZ=1 .ig zZ
 .if \n(zY=1 .ig zY
-.TH BASH 1 "2023 June 16" "GNU Bash 5.3"
+.TH BASH 1 "2023 June 28" "GNU Bash 5.3"
 .\"
 .\" There's some problem with having a `@'
 .\" in a tagged paragraph with the BSD man macros.
@@ -1569,6 +1569,10 @@ builtin below).
 Setting \fBextdebug\fP after the shell has started to execute a script,
 or referencing this variable when \fBextdebug\fP is not set,
 may result in inconsistent values.
+Assignments to
+.SM
+.B BASH_ARGC
+have no effect, and it may not be unset.
 .TP
 .B BASH_ARGV
 An array variable containing all of the parameters in the current \fBbash\fP
@@ -1590,6 +1594,10 @@ builtin below).
 Setting \fBextdebug\fP after the shell has started to execute a script,
 or referencing this variable when \fBextdebug\fP is not set,
 may result in inconsistent values.
+Assignments to
+.SM
+.B BASH_ARGV
+have no effect, and it may not be unset.
 .TP
 .B BASH_ARGV0
 When referenced, this variable expands to the name of the shell or shell
@@ -1642,6 +1650,10 @@ Use
 .SM
 .B LINENO
 to obtain the current line number.
+Assignments to
+.SM
+.B BASH_LINENO
+have no effect, and it may not be unset.
 .TP
 .B BASH_LOADABLES_PATH
 A colon-separated list of directories in which the shell looks for
@@ -1676,6 +1688,10 @@ The shell function
 \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP is defined in the file
 \fB${BASH_SOURCE[\fP\fI$i\fP\fB]}\fP and called from
 \fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP.
+Assignments to
+.SM
+.B BASH_SOURCE
+have no effect, and it may not be unset.
 .TP
 .B BASH_SUBSHELL
 Incremented by one within each subshell or subshell environment when
index 68a8f412d1dbaf11b358504fdf448676c36e60c4..fe7dd99243e64ddd03a21ece867a2503da0a80d1 100644 (file)
@@ -3,7 +3,7 @@
 </HEAD>
 <BODY><TABLE WIDTH=100%>
 <TR>
-<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2023 June 16<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2023 June 28<TH ALIGN=RIGHT width=33%>BASH(1)
 </TR>
 </TABLE>
 <BR><A HREF="#index">Index</A>
@@ -2004,6 +2004,11 @@ builtin below).
 Setting <B>extdebug</B> after the shell has started to execute a script,
 or referencing this variable when <B>extdebug</B> is not set,
 may result in inconsistent values.
+Assignments to
+<FONT SIZE=-1><B>BASH_ARGC</B>
+
+</FONT>
+have no effect, and it may not be unset.
 <DT><B>BASH_ARGV</B>
 
 <DD>
@@ -2030,6 +2035,11 @@ builtin below).
 Setting <B>extdebug</B> after the shell has started to execute a script,
 or referencing this variable when <B>extdebug</B> is not set,
 may result in inconsistent values.
+Assignments to
+<FONT SIZE=-1><B>BASH_ARGV</B>
+
+</FONT>
+have no effect, and it may not be unset.
 <DT><B>BASH_ARGV0</B>
 
 <DD>
@@ -2094,6 +2104,11 @@ Use
 
 </FONT>
 to obtain the current line number.
+Assignments to
+<FONT SIZE=-1><B>BASH_LINENO</B>
+
+</FONT>
+have no effect, and it may not be unset.
 <DT><B>BASH_LOADABLES_PATH</B>
 
 <DD>
@@ -2135,6 +2150,11 @@ The shell function
 <B>${FUNCNAME[</B><I>$i</I><B>]}</B> is defined in the file
 <B>${BASH_SOURCE[</B><I>$i</I><B>]}</B> and called from
 <B>${BASH_SOURCE[</B><I>$i+1</I><B>]}</B>.
+Assignments to
+<FONT SIZE=-1><B>BASH_SOURCE</B>
+
+</FONT>
+have no effect, and it may not be unset.
 <DT><B>BASH_SUBSHELL</B>
 
 <DD>
@@ -15030,7 +15050,7 @@ There may be only one active coprocess at a time.
 <HR>
 <TABLE WIDTH=100%>
 <TR>
-<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2023 June 16<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2023 June 28<TH ALIGN=RIGHT width=33%>BASH(1)
 </TR>
 </TABLE>
 <HR>
@@ -15136,7 +15156,7 @@ There may be only one active coprocess at a time.
 <DT><A HREF="#lbDI">BUGS</A><DD>
 </DL>
 <HR>
-This document was created by man2html from /usr/local/src/bash/bash-20230616/doc/bash.1.<BR>
-Time: 16 June 2023 12:13:33 EDT
+This document was created by man2html from /usr/local/src/bash/bash-20230626/doc/bash.1.<BR>
+Time: 28 June 2023 14:10:33 EDT
 </BODY>
 </HTML>
index 0136f1298283661e1eaf7803b5e87f2b5cdae049..e9d8669257f40e0368372f91e7a680c640b5fb7b 100644 (file)
@@ -1,9 +1,9 @@
 This is bash.info, produced by makeinfo version 6.8 from bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 16 June 2023).
+Bash shell (version 5.3, 28 June 2023).
 
-   This is Edition 5.3, last updated 16 June 2023, of 'The GNU Bash
+   This is Edition 5.3, last updated 28 June 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.3.
 
    Copyright (C) 1988-2023 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, 16 June 2023).  The Bash home page is
+Bash shell (version 5.3, 28 June 2023).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.3, last updated 16 June 2023, of 'The GNU Bash
+   This is Edition 5.3, last updated 28 June 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.3.
 
    Bash contains features that appear in other popular shells, and some
@@ -5331,7 +5331,8 @@ Variables::).
      the 'extdebug' option to the 'shopt' builtin).  Setting 'extdebug'
      after the shell has started to execute a script, or referencing
      this variable when 'extdebug' is not set, may result in
-     inconsistent values.
+     inconsistent values.  Assignments to 'BASH_ARGC' have no effect,
+     and it may not be unset.
 
 'BASH_ARGV'
      An array variable containing all of the parameters in the current
@@ -5344,6 +5345,7 @@ Variables::).
      the 'shopt' builtin).  Setting 'extdebug' after the shell has
      started to execute a script, or referencing this variable when
      'extdebug' is not set, may result in inconsistent values.
+     Assignments to 'BASH_ARGV' have no effect, and it may not be unset.
 
 'BASH_ARGV0'
      When referenced, this variable expands to the name of the shell or
@@ -5401,6 +5403,8 @@ Variables::).
      ('${BASH_SOURCE[$i+1]}') where '${FUNCNAME[$i]}' was called (or
      '${BASH_LINENO[$i-1]}' if referenced within another shell
      function).  Use 'LINENO' to obtain the current line number.
+     Assignments to 'BASH_LINENO' have no effect, and it may not be
+     unset.
 
 'BASH_LOADABLES_PATH'
      A colon-separated list of directories in which the shell looks for
@@ -5426,7 +5430,8 @@ Variables::).
      corresponding shell function names in the 'FUNCNAME' array variable
      are defined.  The shell function '${FUNCNAME[$i]}' is defined in
      the file '${BASH_SOURCE[$i]}' and called from
-     '${BASH_SOURCE[$i+1]}'
+     '${BASH_SOURCE[$i+1]}' Assignments to 'BASH_SOURCE' have no effect,
+     and it may not be unset.
 
 'BASH_SUBSHELL'
      Incremented by one within each subshell or subshell environment
@@ -12200,23 +12205,23 @@ D.3 Parameter and Variable Index
 * BASHPID:                               Bash Variables.      (line  35)
 * BASH_ALIASES:                          Bash Variables.      (line  42)
 * BASH_ARGC:                             Bash Variables.      (line  51)
-* BASH_ARGV:                             Bash Variables.      (line  64)
-* BASH_ARGV0:                            Bash Variables.      (line  76)
-* BASH_CMDS:                             Bash Variables.      (line  84)
-* BASH_COMMAND:                          Bash Variables.      (line  93)
-* BASH_COMPAT:                           Bash Variables.      (line 100)
-* BASH_ENV:                              Bash Variables.      (line 116)
-* BASH_EXECUTION_STRING:                 Bash Variables.      (line 122)
-* BASH_LINENO:                           Bash Variables.      (line 125)
-* BASH_LOADABLES_PATH:                   Bash Variables.      (line 133)
-* BASH_MONOSECONDS:                      Bash Variables.      (line 137)
-* BASH_REMATCH:                          Bash Variables.      (line 144)
-* BASH_SOURCE:                           Bash Variables.      (line 152)
-* BASH_SUBSHELL:                         Bash Variables.      (line 159)
-* BASH_TRAPSIG:                          Bash Variables.      (line 165)
-* BASH_VERSINFO:                         Bash Variables.      (line 171)
-* BASH_VERSION:                          Bash Variables.      (line 194)
-* BASH_XTRACEFD:                         Bash Variables.      (line 197)
+* BASH_ARGV:                             Bash Variables.      (line  65)
+* BASH_ARGV0:                            Bash Variables.      (line  78)
+* BASH_CMDS:                             Bash Variables.      (line  86)
+* BASH_COMMAND:                          Bash Variables.      (line  95)
+* BASH_COMPAT:                           Bash Variables.      (line 102)
+* BASH_ENV:                              Bash Variables.      (line 118)
+* BASH_EXECUTION_STRING:                 Bash Variables.      (line 124)
+* BASH_LINENO:                           Bash Variables.      (line 127)
+* BASH_LOADABLES_PATH:                   Bash Variables.      (line 137)
+* BASH_MONOSECONDS:                      Bash Variables.      (line 141)
+* BASH_REMATCH:                          Bash Variables.      (line 148)
+* BASH_SOURCE:                           Bash Variables.      (line 156)
+* BASH_SUBSHELL:                         Bash Variables.      (line 164)
+* BASH_TRAPSIG:                          Bash Variables.      (line 170)
+* BASH_VERSINFO:                         Bash Variables.      (line 176)
+* BASH_VERSION:                          Bash Variables.      (line 199)
+* BASH_XTRACEFD:                         Bash Variables.      (line 202)
 * bell-style:                            Readline Init File Syntax.
                                                               (line  64)
 * bind-tty-special-chars:                Readline Init File Syntax.
@@ -12225,12 +12230,12 @@ D.3 Parameter and Variable Index
                                                               (line  76)
 * CDPATH:                                Bourne Shell Variables.
                                                               (line   9)
-* CHILD_MAX:                             Bash Variables.      (line 208)
+* CHILD_MAX:                             Bash Variables.      (line 213)
 * colored-completion-prefix:             Readline Init File Syntax.
                                                               (line  81)
 * colored-stats:                         Readline Init File Syntax.
                                                               (line  91)
-* COLUMNS:                               Bash Variables.      (line 215)
+* COLUMNS:                               Bash Variables.      (line 220)
 * comment-begin:                         Readline Init File Syntax.
                                                               (line  97)
 * completion-display-width:              Readline Init File Syntax.
@@ -12243,25 +12248,25 @@ D.3 Parameter and Variable Index
                                                               (line 120)
 * completion-query-items:                Readline Init File Syntax.
                                                               (line 127)
-* COMPREPLY:                             Bash Variables.      (line 267)
-* COMP_CWORD:                            Bash Variables.      (line 221)
-* COMP_KEY:                              Bash Variables.      (line 250)
-* COMP_LINE:                             Bash Variables.      (line 227)
-* COMP_POINT:                            Bash Variables.      (line 232)
-* COMP_TYPE:                             Bash Variables.      (line 240)
-* COMP_WORDBREAKS:                       Bash Variables.      (line 254)
-* COMP_WORDS:                            Bash Variables.      (line 260)
+* COMPREPLY:                             Bash Variables.      (line 272)
+* COMP_CWORD:                            Bash Variables.      (line 226)
+* COMP_KEY:                              Bash Variables.      (line 255)
+* COMP_LINE:                             Bash Variables.      (line 232)
+* COMP_POINT:                            Bash Variables.      (line 237)
+* COMP_TYPE:                             Bash Variables.      (line 245)
+* COMP_WORDBREAKS:                       Bash Variables.      (line 259)
+* COMP_WORDS:                            Bash Variables.      (line 265)
 * convert-meta:                          Readline Init File Syntax.
                                                               (line 138)
-* COPROC:                                Bash Variables.      (line 273)
-* DIRSTACK:                              Bash Variables.      (line 277)
+* COPROC:                                Bash Variables.      (line 278)
+* DIRSTACK:                              Bash Variables.      (line 282)
 * disable-completion:                    Readline Init File Syntax.
                                                               (line 148)
 * echo-control-characters:               Readline Init File Syntax.
                                                               (line 153)
 * editing-mode:                          Readline Init File Syntax.
                                                               (line 158)
-* EMACS:                                 Bash Variables.      (line 287)
+* EMACS:                                 Bash Variables.      (line 292)
 * emacs-mode-string:                     Readline Init File Syntax.
                                                               (line 164)
 * enable-active-region:                  Readline Init File Syntax.
@@ -12270,70 +12275,70 @@ D.3 Parameter and Variable Index
                                                               (line 187)
 * enable-keypad:                         Readline Init File Syntax.
                                                               (line 196)
-* ENV:                                   Bash Variables.      (line 292)
-* EPOCHREALTIME:                         Bash Variables.      (line 297)
-* EPOCHSECONDS:                          Bash Variables.      (line 305)
-* EUID:                                  Bash Variables.      (line 312)
-* EXECIGNORE:                            Bash Variables.      (line 316)
+* ENV:                                   Bash Variables.      (line 297)
+* EPOCHREALTIME:                         Bash Variables.      (line 302)
+* EPOCHSECONDS:                          Bash Variables.      (line 310)
+* EUID:                                  Bash Variables.      (line 317)
+* EXECIGNORE:                            Bash Variables.      (line 321)
 * expand-tilde:                          Readline Init File Syntax.
                                                               (line 207)
-* FCEDIT:                                Bash Variables.      (line 329)
-* FIGNORE:                               Bash Variables.      (line 333)
-* FUNCNAME:                              Bash Variables.      (line 339)
-* FUNCNEST:                              Bash Variables.      (line 356)
-* GLOBIGNORE:                            Bash Variables.      (line 361)
-* GLOBSORT:                              Bash Variables.      (line 368)
-* GROUPS:                                Bash Variables.      (line 394)
-* histchars:                             Bash Variables.      (line 400)
-* HISTCMD:                               Bash Variables.      (line 415)
-* HISTCONTROL:                           Bash Variables.      (line 421)
-* HISTFILE:                              Bash Variables.      (line 437)
-* HISTFILESIZE:                          Bash Variables.      (line 441)
-* HISTIGNORE:                            Bash Variables.      (line 452)
+* FCEDIT:                                Bash Variables.      (line 334)
+* FIGNORE:                               Bash Variables.      (line 338)
+* FUNCNAME:                              Bash Variables.      (line 344)
+* FUNCNEST:                              Bash Variables.      (line 361)
+* GLOBIGNORE:                            Bash Variables.      (line 366)
+* GLOBSORT:                              Bash Variables.      (line 373)
+* GROUPS:                                Bash Variables.      (line 399)
+* histchars:                             Bash Variables.      (line 405)
+* HISTCMD:                               Bash Variables.      (line 420)
+* HISTCONTROL:                           Bash Variables.      (line 426)
+* HISTFILE:                              Bash Variables.      (line 442)
+* HISTFILESIZE:                          Bash Variables.      (line 446)
+* HISTIGNORE:                            Bash Variables.      (line 457)
 * history-preserve-point:                Readline Init File Syntax.
                                                               (line 211)
 * history-size:                          Readline Init File Syntax.
                                                               (line 217)
-* HISTSIZE:                              Bash Variables.      (line 472)
-* HISTTIMEFORMAT:                        Bash Variables.      (line 479)
+* HISTSIZE:                              Bash Variables.      (line 477)
+* HISTTIMEFORMAT:                        Bash Variables.      (line 484)
 * HOME:                                  Bourne Shell Variables.
                                                               (line  13)
 * horizontal-scroll-mode:                Readline Init File Syntax.
                                                               (line 226)
-* HOSTFILE:                              Bash Variables.      (line 487)
-* HOSTNAME:                              Bash Variables.      (line 498)
-* HOSTTYPE:                              Bash Variables.      (line 501)
+* HOSTFILE:                              Bash Variables.      (line 492)
+* HOSTNAME:                              Bash Variables.      (line 503)
+* HOSTTYPE:                              Bash Variables.      (line 506)
 * IFS:                                   Bourne Shell Variables.
                                                               (line  18)
-* IGNOREEOF:                             Bash Variables.      (line 504)
+* IGNOREEOF:                             Bash Variables.      (line 509)
 * input-meta:                            Readline Init File Syntax.
                                                               (line 235)
-* INPUTRC:                               Bash Variables.      (line 514)
-* INSIDE_EMACS:                          Bash Variables.      (line 518)
+* INPUTRC:                               Bash Variables.      (line 519)
+* INSIDE_EMACS:                          Bash Variables.      (line 523)
 * isearch-terminators:                   Readline Init File Syntax.
                                                               (line 245)
 * keymap:                                Readline Init File Syntax.
                                                               (line 252)
 * LANG:                                  Creating Internationalized Scripts.
                                                               (line  51)
-* LANG <1>:                              Bash Variables.      (line 524)
-* LC_ALL:                                Bash Variables.      (line 528)
-* LC_COLLATE:                            Bash Variables.      (line 532)
-* LC_CTYPE:                              Bash Variables.      (line 539)
+* LANG <1>:                              Bash Variables.      (line 529)
+* LC_ALL:                                Bash Variables.      (line 533)
+* LC_COLLATE:                            Bash Variables.      (line 537)
+* LC_CTYPE:                              Bash Variables.      (line 544)
 * LC_MESSAGES:                           Creating Internationalized Scripts.
                                                               (line  51)
-* LC_MESSAGES <1>:                       Bash Variables.      (line 544)
-* LC_NUMERIC:                            Bash Variables.      (line 548)
-* LC_TIME:                               Bash Variables.      (line 552)
-* LINENO:                                Bash Variables.      (line 556)
-* LINES:                                 Bash Variables.      (line 561)
-* MACHTYPE:                              Bash Variables.      (line 567)
+* LC_MESSAGES <1>:                       Bash Variables.      (line 549)
+* LC_NUMERIC:                            Bash Variables.      (line 553)
+* LC_TIME:                               Bash Variables.      (line 557)
+* LINENO:                                Bash Variables.      (line 561)
+* LINES:                                 Bash Variables.      (line 566)
+* MACHTYPE:                              Bash Variables.      (line 572)
 * MAIL:                                  Bourne Shell Variables.
                                                               (line  22)
-* MAILCHECK:                             Bash Variables.      (line 571)
+* MAILCHECK:                             Bash Variables.      (line 576)
 * MAILPATH:                              Bourne Shell Variables.
                                                               (line  27)
-* MAPFILE:                               Bash Variables.      (line 579)
+* MAPFILE:                               Bash Variables.      (line 584)
 * mark-modified-lines:                   Readline Init File Syntax.
                                                               (line 282)
 * mark-symlinked-directories:            Readline Init File Syntax.
@@ -12344,46 +12349,46 @@ D.3 Parameter and Variable Index
                                                               (line 299)
 * meta-flag:                             Readline Init File Syntax.
                                                               (line 235)
-* OLDPWD:                                Bash Variables.      (line 583)
+* OLDPWD:                                Bash Variables.      (line 588)
 * OPTARG:                                Bourne Shell Variables.
                                                               (line  34)
-* OPTERR:                                Bash Variables.      (line 586)
+* OPTERR:                                Bash Variables.      (line 591)
 * OPTIND:                                Bourne Shell Variables.
                                                               (line  38)
-* OSTYPE:                                Bash Variables.      (line 590)
+* OSTYPE:                                Bash Variables.      (line 595)
 * output-meta:                           Readline Init File Syntax.
                                                               (line 304)
 * page-completions:                      Readline Init File Syntax.
                                                               (line 312)
 * PATH:                                  Bourne Shell Variables.
                                                               (line  42)
-* PIPESTATUS:                            Bash Variables.      (line 593)
-* POSIXLY_CORRECT:                       Bash Variables.      (line 598)
-* PPID:                                  Bash Variables.      (line 608)
-* PROMPT_COMMAND:                        Bash Variables.      (line 612)
-* PROMPT_DIRTRIM:                        Bash Variables.      (line 618)
-* PS0:                                   Bash Variables.      (line 624)
+* PIPESTATUS:                            Bash Variables.      (line 598)
+* POSIXLY_CORRECT:                       Bash Variables.      (line 603)
+* PPID:                                  Bash Variables.      (line 613)
+* PROMPT_COMMAND:                        Bash Variables.      (line 617)
+* PROMPT_DIRTRIM:                        Bash Variables.      (line 623)
+* PS0:                                   Bash Variables.      (line 629)
 * PS1:                                   Bourne Shell Variables.
                                                               (line  48)
 * PS2:                                   Bourne Shell Variables.
                                                               (line  53)
-* PS3:                                   Bash Variables.      (line 629)
-* PS4:                                   Bash Variables.      (line 634)
-* PWD:                                   Bash Variables.      (line 642)
-* RANDOM:                                Bash Variables.      (line 645)
-* READLINE_ARGUMENT:                     Bash Variables.      (line 651)
-* READLINE_LINE:                         Bash Variables.      (line 655)
-* READLINE_MARK:                         Bash Variables.      (line 659)
-* READLINE_POINT:                        Bash Variables.      (line 665)
-* REPLY:                                 Bash Variables.      (line 669)
+* PS3:                                   Bash Variables.      (line 634)
+* PS4:                                   Bash Variables.      (line 639)
+* PWD:                                   Bash Variables.      (line 647)
+* RANDOM:                                Bash Variables.      (line 650)
+* READLINE_ARGUMENT:                     Bash Variables.      (line 656)
+* READLINE_LINE:                         Bash Variables.      (line 660)
+* READLINE_MARK:                         Bash Variables.      (line 664)
+* READLINE_POINT:                        Bash Variables.      (line 670)
+* REPLY:                                 Bash Variables.      (line 674)
 * revert-all-at-newline:                 Readline Init File Syntax.
                                                               (line 322)
 * search-ignore-case:                    Readline Init File Syntax.
                                                               (line 329)
-* SECONDS:                               Bash Variables.      (line 672)
-* SHELL:                                 Bash Variables.      (line 681)
-* SHELLOPTS:                             Bash Variables.      (line 686)
-* SHLVL:                                 Bash Variables.      (line 695)
+* SECONDS:                               Bash Variables.      (line 677)
+* SHELL:                                 Bash Variables.      (line 686)
+* SHELLOPTS:                             Bash Variables.      (line 691)
+* SHLVL:                                 Bash Variables.      (line 700)
 * show-all-if-ambiguous:                 Readline Init File Syntax.
                                                               (line 334)
 * show-all-if-unmodified:                Readline Init File Syntax.
@@ -12392,15 +12397,15 @@ D.3 Parameter and Variable Index
                                                               (line 349)
 * skip-completed-text:                   Readline Init File Syntax.
                                                               (line 355)
-* SRANDOM:                               Bash Variables.      (line 700)
+* SRANDOM:                               Bash Variables.      (line 705)
 * TEXTDOMAIN:                            Creating Internationalized Scripts.
                                                               (line  51)
 * TEXTDOMAINDIR:                         Creating Internationalized Scripts.
                                                               (line  51)
-* TIMEFORMAT:                            Bash Variables.      (line 709)
-* TMOUT:                                 Bash Variables.      (line 747)
-* TMPDIR:                                Bash Variables.      (line 759)
-* UID:                                   Bash Variables.      (line 763)
+* TIMEFORMAT:                            Bash Variables.      (line 714)
+* TMOUT:                                 Bash Variables.      (line 752)
+* TMPDIR:                                Bash Variables.      (line 764)
+* UID:                                   Bash Variables.      (line 768)
 * vi-cmd-mode-string:                    Readline Init File Syntax.
                                                               (line 368)
 * vi-ins-mode-string:                    Readline Init File Syntax.
@@ -12852,77 +12857,77 @@ Node: Special Builtins\7f223181
 Node: Shell Variables\7f224157
 Node: Bourne Shell Variables\7f224591
 Node: Bash Variables\7f226692
-Node: Bash Features\7f261344
-Node: Invoking Bash\7f262354
-Node: Bash Startup Files\7f268364
-Node: Interactive Shells\7f273492
-Node: What is an Interactive Shell?\7f273900
-Node: Is this Shell Interactive?\7f274546
-Node: Interactive Shell Behavior\7f275358
-Node: Bash Conditional Expressions\7f278984
-Node: Shell Arithmetic\7f283623
-Node: Aliases\7f286581
-Node: Arrays\7f289472
-Node: The Directory Stack\7f296032
-Node: Directory Stack Builtins\7f296813
-Node: Controlling the Prompt\7f301070
-Node: The Restricted Shell\7f304032
-Node: Bash POSIX Mode\7f306639
-Node: Shell Compatibility Mode\7f322552
-Node: Job Control\7f330793
-Node: Job Control Basics\7f331250
-Node: Job Control Builtins\7f336249
-Node: Job Control Variables\7f342041
-Node: Command Line Editing\7f343194
-Node: Introduction and Notation\7f344862
-Node: Readline Interaction\7f346482
-Node: Readline Bare Essentials\7f347670
-Node: Readline Movement Commands\7f349456
-Node: Readline Killing Commands\7f350413
-Node: Readline Arguments\7f352331
-Node: Searching\7f353372
-Node: Readline Init File\7f355555
-Node: Readline Init File Syntax\7f356813
-Node: Conditional Init Constructs\7f380601
-Node: Sample Init File\7f384794
-Node: Bindable Readline Commands\7f387915
-Node: Commands For Moving\7f389116
-Node: Commands For History\7f391164
-Node: Commands For Text\7f396155
-Node: Commands For Killing\7f399801
-Node: Numeric Arguments\7f402831
-Node: Commands For Completion\7f403967
-Node: Keyboard Macros\7f408155
-Node: Miscellaneous Commands\7f408840
-Node: Readline vi Mode\7f414875
-Node: Programmable Completion\7f415779
-Node: Programmable Completion Builtins\7f423556
-Node: A Programmable Completion Example\7f434673
-Node: Using History Interactively\7f439918
-Node: Bash History Facilities\7f440599
-Node: Bash History Builtins\7f443601
-Node: History Interaction\7f448622
-Node: Event Designators\7f452239
-Node: Word Designators\7f453590
-Node: Modifiers\7f455347
-Node: Installing Bash\7f457152
-Node: Basic Installation\7f458286
-Node: Compilers and Options\7f462005
-Node: Compiling For Multiple Architectures\7f462743
-Node: Installation Names\7f464432
-Node: Specifying the System Type\7f466538
-Node: Sharing Defaults\7f467252
-Node: Operation Controls\7f467922
-Node: Optional Features\7f468877
-Node: Reporting Bugs\7f480093
-Node: Major Differences From The Bourne Shell\7f481424
-Node: GNU Free Documentation License\7f498270
-Node: Indexes\7f523444
-Node: Builtin Index\7f523895
-Node: Reserved Word Index\7f530993
-Node: Variable Index\7f533438
-Node: Function Index\7f550569
-Node: Concept Index\7f564350
+Node: Bash Features\7f261646
+Node: Invoking Bash\7f262656
+Node: Bash Startup Files\7f268666
+Node: Interactive Shells\7f273794
+Node: What is an Interactive Shell?\7f274202
+Node: Is this Shell Interactive?\7f274848
+Node: Interactive Shell Behavior\7f275660
+Node: Bash Conditional Expressions\7f279286
+Node: Shell Arithmetic\7f283925
+Node: Aliases\7f286883
+Node: Arrays\7f289774
+Node: The Directory Stack\7f296334
+Node: Directory Stack Builtins\7f297115
+Node: Controlling the Prompt\7f301372
+Node: The Restricted Shell\7f304334
+Node: Bash POSIX Mode\7f306941
+Node: Shell Compatibility Mode\7f322854
+Node: Job Control\7f331095
+Node: Job Control Basics\7f331552
+Node: Job Control Builtins\7f336551
+Node: Job Control Variables\7f342343
+Node: Command Line Editing\7f343496
+Node: Introduction and Notation\7f345164
+Node: Readline Interaction\7f346784
+Node: Readline Bare Essentials\7f347972
+Node: Readline Movement Commands\7f349758
+Node: Readline Killing Commands\7f350715
+Node: Readline Arguments\7f352633
+Node: Searching\7f353674
+Node: Readline Init File\7f355857
+Node: Readline Init File Syntax\7f357115
+Node: Conditional Init Constructs\7f380903
+Node: Sample Init File\7f385096
+Node: Bindable Readline Commands\7f388217
+Node: Commands For Moving\7f389418
+Node: Commands For History\7f391466
+Node: Commands For Text\7f396457
+Node: Commands For Killing\7f400103
+Node: Numeric Arguments\7f403133
+Node: Commands For Completion\7f404269
+Node: Keyboard Macros\7f408457
+Node: Miscellaneous Commands\7f409142
+Node: Readline vi Mode\7f415177
+Node: Programmable Completion\7f416081
+Node: Programmable Completion Builtins\7f423858
+Node: A Programmable Completion Example\7f434975
+Node: Using History Interactively\7f440220
+Node: Bash History Facilities\7f440901
+Node: Bash History Builtins\7f443903
+Node: History Interaction\7f448924
+Node: Event Designators\7f452541
+Node: Word Designators\7f453892
+Node: Modifiers\7f455649
+Node: Installing Bash\7f457454
+Node: Basic Installation\7f458588
+Node: Compilers and Options\7f462307
+Node: Compiling For Multiple Architectures\7f463045
+Node: Installation Names\7f464734
+Node: Specifying the System Type\7f466840
+Node: Sharing Defaults\7f467554
+Node: Operation Controls\7f468224
+Node: Optional Features\7f469179
+Node: Reporting Bugs\7f480395
+Node: Major Differences From The Bourne Shell\7f481726
+Node: GNU Free Documentation License\7f498572
+Node: Indexes\7f523746
+Node: Builtin Index\7f524197
+Node: Reserved Word Index\7f531295
+Node: Variable Index\7f533740
+Node: Function Index\7f550871
+Node: Concept Index\7f564652
 \1f
 End Tag Table
 
index 033ecca3485e89f9a34268af042ed646fc39ba6e..f7d8edcae3aec7aef605710a9346560171abca56 100644 (file)
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.8 from
 bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 16 June 2023).
+Bash shell (version 5.3, 28 June 2023).
 
-   This is Edition 5.3, last updated 16 June 2023, of 'The GNU Bash
+   This is Edition 5.3, last updated 28 June 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.3.
 
    Copyright (C) 1988-2023 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 16 June 2023).  The Bash home page is
+Bash shell (version 5.3, 28 June 2023).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.3, last updated 16 June 2023, of 'The GNU Bash
+   This is Edition 5.3, last updated 28 June 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.3.
 
    Bash contains features that appear in other popular shells, and some
@@ -5332,7 +5332,8 @@ Variables::).
      the 'extdebug' option to the 'shopt' builtin).  Setting 'extdebug'
      after the shell has started to execute a script, or referencing
      this variable when 'extdebug' is not set, may result in
-     inconsistent values.
+     inconsistent values.  Assignments to 'BASH_ARGC' have no effect,
+     and it may not be unset.
 
 'BASH_ARGV'
      An array variable containing all of the parameters in the current
@@ -5345,6 +5346,7 @@ Variables::).
      the 'shopt' builtin).  Setting 'extdebug' after the shell has
      started to execute a script, or referencing this variable when
      'extdebug' is not set, may result in inconsistent values.
+     Assignments to 'BASH_ARGV' have no effect, and it may not be unset.
 
 'BASH_ARGV0'
      When referenced, this variable expands to the name of the shell or
@@ -5402,6 +5404,8 @@ Variables::).
      ('${BASH_SOURCE[$i+1]}') where '${FUNCNAME[$i]}' was called (or
      '${BASH_LINENO[$i-1]}' if referenced within another shell
      function).  Use 'LINENO' to obtain the current line number.
+     Assignments to 'BASH_LINENO' have no effect, and it may not be
+     unset.
 
 'BASH_LOADABLES_PATH'
      A colon-separated list of directories in which the shell looks for
@@ -5427,7 +5431,8 @@ Variables::).
      corresponding shell function names in the 'FUNCNAME' array variable
      are defined.  The shell function '${FUNCNAME[$i]}' is defined in
      the file '${BASH_SOURCE[$i]}' and called from
-     '${BASH_SOURCE[$i+1]}'
+     '${BASH_SOURCE[$i+1]}' Assignments to 'BASH_SOURCE' have no effect,
+     and it may not be unset.
 
 'BASH_SUBSHELL'
      Incremented by one within each subshell or subshell environment
@@ -12201,23 +12206,23 @@ D.3 Parameter and Variable Index
 * BASHPID:                               Bash Variables.      (line  35)
 * BASH_ALIASES:                          Bash Variables.      (line  42)
 * BASH_ARGC:                             Bash Variables.      (line  51)
-* BASH_ARGV:                             Bash Variables.      (line  64)
-* BASH_ARGV0:                            Bash Variables.      (line  76)
-* BASH_CMDS:                             Bash Variables.      (line  84)
-* BASH_COMMAND:                          Bash Variables.      (line  93)
-* BASH_COMPAT:                           Bash Variables.      (line 100)
-* BASH_ENV:                              Bash Variables.      (line 116)
-* BASH_EXECUTION_STRING:                 Bash Variables.      (line 122)
-* BASH_LINENO:                           Bash Variables.      (line 125)
-* BASH_LOADABLES_PATH:                   Bash Variables.      (line 133)
-* BASH_MONOSECONDS:                      Bash Variables.      (line 137)
-* BASH_REMATCH:                          Bash Variables.      (line 144)
-* BASH_SOURCE:                           Bash Variables.      (line 152)
-* BASH_SUBSHELL:                         Bash Variables.      (line 159)
-* BASH_TRAPSIG:                          Bash Variables.      (line 165)
-* BASH_VERSINFO:                         Bash Variables.      (line 171)
-* BASH_VERSION:                          Bash Variables.      (line 194)
-* BASH_XTRACEFD:                         Bash Variables.      (line 197)
+* BASH_ARGV:                             Bash Variables.      (line  65)
+* BASH_ARGV0:                            Bash Variables.      (line  78)
+* BASH_CMDS:                             Bash Variables.      (line  86)
+* BASH_COMMAND:                          Bash Variables.      (line  95)
+* BASH_COMPAT:                           Bash Variables.      (line 102)
+* BASH_ENV:                              Bash Variables.      (line 118)
+* BASH_EXECUTION_STRING:                 Bash Variables.      (line 124)
+* BASH_LINENO:                           Bash Variables.      (line 127)
+* BASH_LOADABLES_PATH:                   Bash Variables.      (line 137)
+* BASH_MONOSECONDS:                      Bash Variables.      (line 141)
+* BASH_REMATCH:                          Bash Variables.      (line 148)
+* BASH_SOURCE:                           Bash Variables.      (line 156)
+* BASH_SUBSHELL:                         Bash Variables.      (line 164)
+* BASH_TRAPSIG:                          Bash Variables.      (line 170)
+* BASH_VERSINFO:                         Bash Variables.      (line 176)
+* BASH_VERSION:                          Bash Variables.      (line 199)
+* BASH_XTRACEFD:                         Bash Variables.      (line 202)
 * bell-style:                            Readline Init File Syntax.
                                                               (line  64)
 * bind-tty-special-chars:                Readline Init File Syntax.
@@ -12226,12 +12231,12 @@ D.3 Parameter and Variable Index
                                                               (line  76)
 * CDPATH:                                Bourne Shell Variables.
                                                               (line   9)
-* CHILD_MAX:                             Bash Variables.      (line 208)
+* CHILD_MAX:                             Bash Variables.      (line 213)
 * colored-completion-prefix:             Readline Init File Syntax.
                                                               (line  81)
 * colored-stats:                         Readline Init File Syntax.
                                                               (line  91)
-* COLUMNS:                               Bash Variables.      (line 215)
+* COLUMNS:                               Bash Variables.      (line 220)
 * comment-begin:                         Readline Init File Syntax.
                                                               (line  97)
 * completion-display-width:              Readline Init File Syntax.
@@ -12244,25 +12249,25 @@ D.3 Parameter and Variable Index
                                                               (line 120)
 * completion-query-items:                Readline Init File Syntax.
                                                               (line 127)
-* COMPREPLY:                             Bash Variables.      (line 267)
-* COMP_CWORD:                            Bash Variables.      (line 221)
-* COMP_KEY:                              Bash Variables.      (line 250)
-* COMP_LINE:                             Bash Variables.      (line 227)
-* COMP_POINT:                            Bash Variables.      (line 232)
-* COMP_TYPE:                             Bash Variables.      (line 240)
-* COMP_WORDBREAKS:                       Bash Variables.      (line 254)
-* COMP_WORDS:                            Bash Variables.      (line 260)
+* COMPREPLY:                             Bash Variables.      (line 272)
+* COMP_CWORD:                            Bash Variables.      (line 226)
+* COMP_KEY:                              Bash Variables.      (line 255)
+* COMP_LINE:                             Bash Variables.      (line 232)
+* COMP_POINT:                            Bash Variables.      (line 237)
+* COMP_TYPE:                             Bash Variables.      (line 245)
+* COMP_WORDBREAKS:                       Bash Variables.      (line 259)
+* COMP_WORDS:                            Bash Variables.      (line 265)
 * convert-meta:                          Readline Init File Syntax.
                                                               (line 138)
-* COPROC:                                Bash Variables.      (line 273)
-* DIRSTACK:                              Bash Variables.      (line 277)
+* COPROC:                                Bash Variables.      (line 278)
+* DIRSTACK:                              Bash Variables.      (line 282)
 * disable-completion:                    Readline Init File Syntax.
                                                               (line 148)
 * echo-control-characters:               Readline Init File Syntax.
                                                               (line 153)
 * editing-mode:                          Readline Init File Syntax.
                                                               (line 158)
-* EMACS:                                 Bash Variables.      (line 287)
+* EMACS:                                 Bash Variables.      (line 292)
 * emacs-mode-string:                     Readline Init File Syntax.
                                                               (line 164)
 * enable-active-region:                  Readline Init File Syntax.
@@ -12271,70 +12276,70 @@ D.3 Parameter and Variable Index
                                                               (line 187)
 * enable-keypad:                         Readline Init File Syntax.
                                                               (line 196)
-* ENV:                                   Bash Variables.      (line 292)
-* EPOCHREALTIME:                         Bash Variables.      (line 297)
-* EPOCHSECONDS:                          Bash Variables.      (line 305)
-* EUID:                                  Bash Variables.      (line 312)
-* EXECIGNORE:                            Bash Variables.      (line 316)
+* ENV:                                   Bash Variables.      (line 297)
+* EPOCHREALTIME:                         Bash Variables.      (line 302)
+* EPOCHSECONDS:                          Bash Variables.      (line 310)
+* EUID:                                  Bash Variables.      (line 317)
+* EXECIGNORE:                            Bash Variables.      (line 321)
 * expand-tilde:                          Readline Init File Syntax.
                                                               (line 207)
-* FCEDIT:                                Bash Variables.      (line 329)
-* FIGNORE:                               Bash Variables.      (line 333)
-* FUNCNAME:                              Bash Variables.      (line 339)
-* FUNCNEST:                              Bash Variables.      (line 356)
-* GLOBIGNORE:                            Bash Variables.      (line 361)
-* GLOBSORT:                              Bash Variables.      (line 368)
-* GROUPS:                                Bash Variables.      (line 394)
-* histchars:                             Bash Variables.      (line 400)
-* HISTCMD:                               Bash Variables.      (line 415)
-* HISTCONTROL:                           Bash Variables.      (line 421)
-* HISTFILE:                              Bash Variables.      (line 437)
-* HISTFILESIZE:                          Bash Variables.      (line 441)
-* HISTIGNORE:                            Bash Variables.      (line 452)
+* FCEDIT:                                Bash Variables.      (line 334)
+* FIGNORE:                               Bash Variables.      (line 338)
+* FUNCNAME:                              Bash Variables.      (line 344)
+* FUNCNEST:                              Bash Variables.      (line 361)
+* GLOBIGNORE:                            Bash Variables.      (line 366)
+* GLOBSORT:                              Bash Variables.      (line 373)
+* GROUPS:                                Bash Variables.      (line 399)
+* histchars:                             Bash Variables.      (line 405)
+* HISTCMD:                               Bash Variables.      (line 420)
+* HISTCONTROL:                           Bash Variables.      (line 426)
+* HISTFILE:                              Bash Variables.      (line 442)
+* HISTFILESIZE:                          Bash Variables.      (line 446)
+* HISTIGNORE:                            Bash Variables.      (line 457)
 * history-preserve-point:                Readline Init File Syntax.
                                                               (line 211)
 * history-size:                          Readline Init File Syntax.
                                                               (line 217)
-* HISTSIZE:                              Bash Variables.      (line 472)
-* HISTTIMEFORMAT:                        Bash Variables.      (line 479)
+* HISTSIZE:                              Bash Variables.      (line 477)
+* HISTTIMEFORMAT:                        Bash Variables.      (line 484)
 * HOME:                                  Bourne Shell Variables.
                                                               (line  13)
 * horizontal-scroll-mode:                Readline Init File Syntax.
                                                               (line 226)
-* HOSTFILE:                              Bash Variables.      (line 487)
-* HOSTNAME:                              Bash Variables.      (line 498)
-* HOSTTYPE:                              Bash Variables.      (line 501)
+* HOSTFILE:                              Bash Variables.      (line 492)
+* HOSTNAME:                              Bash Variables.      (line 503)
+* HOSTTYPE:                              Bash Variables.      (line 506)
 * IFS:                                   Bourne Shell Variables.
                                                               (line  18)
-* IGNOREEOF:                             Bash Variables.      (line 504)
+* IGNOREEOF:                             Bash Variables.      (line 509)
 * input-meta:                            Readline Init File Syntax.
                                                               (line 235)
-* INPUTRC:                               Bash Variables.      (line 514)
-* INSIDE_EMACS:                          Bash Variables.      (line 518)
+* INPUTRC:                               Bash Variables.      (line 519)
+* INSIDE_EMACS:                          Bash Variables.      (line 523)
 * isearch-terminators:                   Readline Init File Syntax.
                                                               (line 245)
 * keymap:                                Readline Init File Syntax.
                                                               (line 252)
 * LANG:                                  Creating Internationalized Scripts.
                                                               (line  51)
-* LANG <1>:                              Bash Variables.      (line 524)
-* LC_ALL:                                Bash Variables.      (line 528)
-* LC_COLLATE:                            Bash Variables.      (line 532)
-* LC_CTYPE:                              Bash Variables.      (line 539)
+* LANG <1>:                              Bash Variables.      (line 529)
+* LC_ALL:                                Bash Variables.      (line 533)
+* LC_COLLATE:                            Bash Variables.      (line 537)
+* LC_CTYPE:                              Bash Variables.      (line 544)
 * LC_MESSAGES:                           Creating Internationalized Scripts.
                                                               (line  51)
-* LC_MESSAGES <1>:                       Bash Variables.      (line 544)
-* LC_NUMERIC:                            Bash Variables.      (line 548)
-* LC_TIME:                               Bash Variables.      (line 552)
-* LINENO:                                Bash Variables.      (line 556)
-* LINES:                                 Bash Variables.      (line 561)
-* MACHTYPE:                              Bash Variables.      (line 567)
+* LC_MESSAGES <1>:                       Bash Variables.      (line 549)
+* LC_NUMERIC:                            Bash Variables.      (line 553)
+* LC_TIME:                               Bash Variables.      (line 557)
+* LINENO:                                Bash Variables.      (line 561)
+* LINES:                                 Bash Variables.      (line 566)
+* MACHTYPE:                              Bash Variables.      (line 572)
 * MAIL:                                  Bourne Shell Variables.
                                                               (line  22)
-* MAILCHECK:                             Bash Variables.      (line 571)
+* MAILCHECK:                             Bash Variables.      (line 576)
 * MAILPATH:                              Bourne Shell Variables.
                                                               (line  27)
-* MAPFILE:                               Bash Variables.      (line 579)
+* MAPFILE:                               Bash Variables.      (line 584)
 * mark-modified-lines:                   Readline Init File Syntax.
                                                               (line 282)
 * mark-symlinked-directories:            Readline Init File Syntax.
@@ -12345,46 +12350,46 @@ D.3 Parameter and Variable Index
                                                               (line 299)
 * meta-flag:                             Readline Init File Syntax.
                                                               (line 235)
-* OLDPWD:                                Bash Variables.      (line 583)
+* OLDPWD:                                Bash Variables.      (line 588)
 * OPTARG:                                Bourne Shell Variables.
                                                               (line  34)
-* OPTERR:                                Bash Variables.      (line 586)
+* OPTERR:                                Bash Variables.      (line 591)
 * OPTIND:                                Bourne Shell Variables.
                                                               (line  38)
-* OSTYPE:                                Bash Variables.      (line 590)
+* OSTYPE:                                Bash Variables.      (line 595)
 * output-meta:                           Readline Init File Syntax.
                                                               (line 304)
 * page-completions:                      Readline Init File Syntax.
                                                               (line 312)
 * PATH:                                  Bourne Shell Variables.
                                                               (line  42)
-* PIPESTATUS:                            Bash Variables.      (line 593)
-* POSIXLY_CORRECT:                       Bash Variables.      (line 598)
-* PPID:                                  Bash Variables.      (line 608)
-* PROMPT_COMMAND:                        Bash Variables.      (line 612)
-* PROMPT_DIRTRIM:                        Bash Variables.      (line 618)
-* PS0:                                   Bash Variables.      (line 624)
+* PIPESTATUS:                            Bash Variables.      (line 598)
+* POSIXLY_CORRECT:                       Bash Variables.      (line 603)
+* PPID:                                  Bash Variables.      (line 613)
+* PROMPT_COMMAND:                        Bash Variables.      (line 617)
+* PROMPT_DIRTRIM:                        Bash Variables.      (line 623)
+* PS0:                                   Bash Variables.      (line 629)
 * PS1:                                   Bourne Shell Variables.
                                                               (line  48)
 * PS2:                                   Bourne Shell Variables.
                                                               (line  53)
-* PS3:                                   Bash Variables.      (line 629)
-* PS4:                                   Bash Variables.      (line 634)
-* PWD:                                   Bash Variables.      (line 642)
-* RANDOM:                                Bash Variables.      (line 645)
-* READLINE_ARGUMENT:                     Bash Variables.      (line 651)
-* READLINE_LINE:                         Bash Variables.      (line 655)
-* READLINE_MARK:                         Bash Variables.      (line 659)
-* READLINE_POINT:                        Bash Variables.      (line 665)
-* REPLY:                                 Bash Variables.      (line 669)
+* PS3:                                   Bash Variables.      (line 634)
+* PS4:                                   Bash Variables.      (line 639)
+* PWD:                                   Bash Variables.      (line 647)
+* RANDOM:                                Bash Variables.      (line 650)
+* READLINE_ARGUMENT:                     Bash Variables.      (line 656)
+* READLINE_LINE:                         Bash Variables.      (line 660)
+* READLINE_MARK:                         Bash Variables.      (line 664)
+* READLINE_POINT:                        Bash Variables.      (line 670)
+* REPLY:                                 Bash Variables.      (line 674)
 * revert-all-at-newline:                 Readline Init File Syntax.
                                                               (line 322)
 * search-ignore-case:                    Readline Init File Syntax.
                                                               (line 329)
-* SECONDS:                               Bash Variables.      (line 672)
-* SHELL:                                 Bash Variables.      (line 681)
-* SHELLOPTS:                             Bash Variables.      (line 686)
-* SHLVL:                                 Bash Variables.      (line 695)
+* SECONDS:                               Bash Variables.      (line 677)
+* SHELL:                                 Bash Variables.      (line 686)
+* SHELLOPTS:                             Bash Variables.      (line 691)
+* SHLVL:                                 Bash Variables.      (line 700)
 * show-all-if-ambiguous:                 Readline Init File Syntax.
                                                               (line 334)
 * show-all-if-unmodified:                Readline Init File Syntax.
@@ -12393,15 +12398,15 @@ D.3 Parameter and Variable Index
                                                               (line 349)
 * skip-completed-text:                   Readline Init File Syntax.
                                                               (line 355)
-* SRANDOM:                               Bash Variables.      (line 700)
+* SRANDOM:                               Bash Variables.      (line 705)
 * TEXTDOMAIN:                            Creating Internationalized Scripts.
                                                               (line  51)
 * TEXTDOMAINDIR:                         Creating Internationalized Scripts.
                                                               (line  51)
-* TIMEFORMAT:                            Bash Variables.      (line 709)
-* TMOUT:                                 Bash Variables.      (line 747)
-* TMPDIR:                                Bash Variables.      (line 759)
-* UID:                                   Bash Variables.      (line 763)
+* TIMEFORMAT:                            Bash Variables.      (line 714)
+* TMOUT:                                 Bash Variables.      (line 752)
+* TMPDIR:                                Bash Variables.      (line 764)
+* UID:                                   Bash Variables.      (line 768)
 * vi-cmd-mode-string:                    Readline Init File Syntax.
                                                               (line 368)
 * vi-ins-mode-string:                    Readline Init File Syntax.
@@ -12853,77 +12858,77 @@ Node: Special Builtins\7f223355
 Node: Shell Variables\7f224334
 Node: Bourne Shell Variables\7f224771
 Node: Bash Variables\7f226875
-Node: Bash Features\7f261530
-Node: Invoking Bash\7f262543
-Node: Bash Startup Files\7f268556
-Node: Interactive Shells\7f273687
-Node: What is an Interactive Shell?\7f274098
-Node: Is this Shell Interactive?\7f274747
-Node: Interactive Shell Behavior\7f275562
-Node: Bash Conditional Expressions\7f279191
-Node: Shell Arithmetic\7f283833
-Node: Aliases\7f286794
-Node: Arrays\7f289688
-Node: The Directory Stack\7f296251
-Node: Directory Stack Builtins\7f297035
-Node: Controlling the Prompt\7f301295
-Node: The Restricted Shell\7f304260
-Node: Bash POSIX Mode\7f306870
-Node: Shell Compatibility Mode\7f322786
-Node: Job Control\7f331030
-Node: Job Control Basics\7f331490
-Node: Job Control Builtins\7f336492
-Node: Job Control Variables\7f342287
-Node: Command Line Editing\7f343443
-Node: Introduction and Notation\7f345114
-Node: Readline Interaction\7f346737
-Node: Readline Bare Essentials\7f347928
-Node: Readline Movement Commands\7f349717
-Node: Readline Killing Commands\7f350677
-Node: Readline Arguments\7f352598
-Node: Searching\7f353642
-Node: Readline Init File\7f355828
-Node: Readline Init File Syntax\7f357089
-Node: Conditional Init Constructs\7f380880
-Node: Sample Init File\7f385076
-Node: Bindable Readline Commands\7f388200
-Node: Commands For Moving\7f389404
-Node: Commands For History\7f391455
-Node: Commands For Text\7f396449
-Node: Commands For Killing\7f400098
-Node: Numeric Arguments\7f403131
-Node: Commands For Completion\7f404270
-Node: Keyboard Macros\7f408461
-Node: Miscellaneous Commands\7f409149
-Node: Readline vi Mode\7f415187
-Node: Programmable Completion\7f416094
-Node: Programmable Completion Builtins\7f423874
-Node: A Programmable Completion Example\7f434994
-Node: Using History Interactively\7f440242
-Node: Bash History Facilities\7f440926
-Node: Bash History Builtins\7f443931
-Node: History Interaction\7f448955
-Node: Event Designators\7f452575
-Node: Word Designators\7f453929
-Node: Modifiers\7f455689
-Node: Installing Bash\7f457497
-Node: Basic Installation\7f458634
-Node: Compilers and Options\7f462356
-Node: Compiling For Multiple Architectures\7f463097
-Node: Installation Names\7f464789
-Node: Specifying the System Type\7f466898
-Node: Sharing Defaults\7f467615
-Node: Operation Controls\7f468288
-Node: Optional Features\7f469246
-Node: Reporting Bugs\7f480465
-Node: Major Differences From The Bourne Shell\7f481799
-Node: GNU Free Documentation License\7f498648
-Node: Indexes\7f523825
-Node: Builtin Index\7f524279
-Node: Reserved Word Index\7f531380
-Node: Variable Index\7f533828
-Node: Function Index\7f550962
-Node: Concept Index\7f564746
+Node: Bash Features\7f261832
+Node: Invoking Bash\7f262845
+Node: Bash Startup Files\7f268858
+Node: Interactive Shells\7f273989
+Node: What is an Interactive Shell?\7f274400
+Node: Is this Shell Interactive?\7f275049
+Node: Interactive Shell Behavior\7f275864
+Node: Bash Conditional Expressions\7f279493
+Node: Shell Arithmetic\7f284135
+Node: Aliases\7f287096
+Node: Arrays\7f289990
+Node: The Directory Stack\7f296553
+Node: Directory Stack Builtins\7f297337
+Node: Controlling the Prompt\7f301597
+Node: The Restricted Shell\7f304562
+Node: Bash POSIX Mode\7f307172
+Node: Shell Compatibility Mode\7f323088
+Node: Job Control\7f331332
+Node: Job Control Basics\7f331792
+Node: Job Control Builtins\7f336794
+Node: Job Control Variables\7f342589
+Node: Command Line Editing\7f343745
+Node: Introduction and Notation\7f345416
+Node: Readline Interaction\7f347039
+Node: Readline Bare Essentials\7f348230
+Node: Readline Movement Commands\7f350019
+Node: Readline Killing Commands\7f350979
+Node: Readline Arguments\7f352900
+Node: Searching\7f353944
+Node: Readline Init File\7f356130
+Node: Readline Init File Syntax\7f357391
+Node: Conditional Init Constructs\7f381182
+Node: Sample Init File\7f385378
+Node: Bindable Readline Commands\7f388502
+Node: Commands For Moving\7f389706
+Node: Commands For History\7f391757
+Node: Commands For Text\7f396751
+Node: Commands For Killing\7f400400
+Node: Numeric Arguments\7f403433
+Node: Commands For Completion\7f404572
+Node: Keyboard Macros\7f408763
+Node: Miscellaneous Commands\7f409451
+Node: Readline vi Mode\7f415489
+Node: Programmable Completion\7f416396
+Node: Programmable Completion Builtins\7f424176
+Node: A Programmable Completion Example\7f435296
+Node: Using History Interactively\7f440544
+Node: Bash History Facilities\7f441228
+Node: Bash History Builtins\7f444233
+Node: History Interaction\7f449257
+Node: Event Designators\7f452877
+Node: Word Designators\7f454231
+Node: Modifiers\7f455991
+Node: Installing Bash\7f457799
+Node: Basic Installation\7f458936
+Node: Compilers and Options\7f462658
+Node: Compiling For Multiple Architectures\7f463399
+Node: Installation Names\7f465091
+Node: Specifying the System Type\7f467200
+Node: Sharing Defaults\7f467917
+Node: Operation Controls\7f468590
+Node: Optional Features\7f469548
+Node: Reporting Bugs\7f480767
+Node: Major Differences From The Bourne Shell\7f482101
+Node: GNU Free Documentation License\7f498950
+Node: Indexes\7f524127
+Node: Builtin Index\7f524581
+Node: Reserved Word Index\7f531682
+Node: Variable Index\7f534130
+Node: Function Index\7f551264
+Node: Concept Index\7f565048
 \1f
 End Tag Table
 
index c37300d5244d743002046e5a70d20fa6bfc5a71a..b8cf474ed8cdc1ce3a403aaafc164fbfb27f92b6 100644 (file)
@@ -6217,6 +6217,7 @@ builtin).
 Setting @code{extdebug} after the shell has started to execute a script,
 or referencing this variable when @code{extdebug} is not set,
 may result in inconsistent values.
+Assignments to @env{BASH_ARGC} have no effect, and it may not be unset.
 
 @item BASH_ARGV
 An array variable containing all of the parameters in the current Bash
@@ -6231,6 +6232,7 @@ builtin).
 Setting @code{extdebug} after the shell has started to execute a script,
 or referencing this variable when @code{extdebug} is not set,
 may result in inconsistent values.
+Assignments to @env{BASH_ARGV} have no effect, and it may not be unset.
 
 @item BASH_ARGV0
 When referenced, this variable expands to the name of the shell or shell
@@ -6295,6 +6297,7 @@ where each corresponding member of @env{FUNCNAME} was invoked.
 @code{$@{FUNCNAME[$i]@}} was called (or @code{$@{BASH_LINENO[$i-1]@}} if
 referenced within another shell function). 
 Use @code{LINENO} to obtain the current line number.
+Assignments to @env{BASH_LINENO} have no effect, and it may not be unset.
 
 @item BASH_LOADABLES_PATH
 A colon-separated list of directories in which the shell looks for
@@ -6324,6 +6327,7 @@ corresponding shell function names in the @code{FUNCNAME} array
 variable are defined.
 The shell function @code{$@{FUNCNAME[$i]@}} is defined in the file
 @code{$@{BASH_SOURCE[$i]@}} and called from @code{$@{BASH_SOURCE[$i+1]@}}
+Assignments to @env{BASH_SOURCE} have no effect, and it may not be unset.
 
 @item BASH_SUBSHELL
 Incremented by one within each subshell or subshell environment when
index 7454fe584bf6d10e2139ea12d0a5ed04504d0884..b9bc389b3803fd9fd5efd257cf7a9ed9b9fff4d7 100644 (file)
@@ -2,10 +2,10 @@
 Copyright (C) 1988-2023 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Fri Jun 16 11:35:19 EDT 2023
+@set LASTCHANGE Wed Jun 28 14:06:44 EDT 2023
 
 @set EDITION 5.3
 @set VERSION 5.3
 
-@set UPDATED 16 June 2023
+@set UPDATED 28 June 2023
 @set UPDATED-MONTH June 2023
index 410a7b7db14914ec7b34c1b58ce5650d8e745884..717a147952457c9162344adcc18ae165cf331b20 100644 (file)
@@ -1030,18 +1030,6 @@ build_arg_list (const char *cmd, const char *cname, const char *text, WORD_LIST
   return ret;
 }
 
-static void
-uw_restore_parser_state (void *ps)
-{
-  restore_parser_state (ps);
-}
-
-static void
-uw_rl_set_signals (void *ignore)
-{
-  rl_set_signals ();
-}
-
 /* Build a command string with
        $0 == cs->funcname      (function to execute for completion list)
        $1 == command name      (command being completed)
diff --git a/subst.c b/subst.c
index 215e346948893341d03df923cb53be2c843356f6..349f8a17c69b461a39c722efbaa6ec72d5ca9b35 100644 (file)
--- a/subst.c
+++ b/subst.c
@@ -1042,7 +1042,7 @@ skip_double_quoted (const char *string, size_t slen, int sind, int flags)
          if (string[i + 1] == LPAREN)
            ret = extract_command_subst (string, &si, SX_NOALLOC|(flags&SX_COMPLETE));
          else if (string[i + 1] == LBRACE && FUNSUB_CHAR (string[si]))
-           ret = extract_function_subst (string, &si, Q_DOUBLE_QUOTES, (flags & SX_COMPLETE));
+           ret = extract_function_subst (string, &si, Q_DOUBLE_QUOTES, SX_NOALLOC|(flags & SX_COMPLETE));
          else
            ret = extract_dollar_brace_string (string, &si, Q_DOUBLE_QUOTES, SX_NOALLOC|(flags&SX_COMPLETE));
 
diff --git a/trap.c b/trap.c
index 78065644c65f75cb3c28ff1545df9fc7456c3e1f..d7754943764a25e5b9c25e078e9b9bc6f5de4c32 100644 (file)
--- a/trap.c
+++ b/trap.c
@@ -1148,6 +1148,13 @@ _run_trap_internal (int sig, char *tag)
       save_tempenv = temporary_env;
       temporary_env = 0;       /* traps should not run with temporary env */
 
+      /* Will be restored by restore_parser_state */
+      if (shell_eof_token)
+       {
+         reset_parser ();              /* resets parser-private state */
+         shell_eof_token = 0;
+       }
+
 #if defined (JOB_CONTROL)
       if (sig != DEBUG_TRAP)   /* run_debug_trap does this */
        save_pipeline (1);      /* XXX only provides one save level */