]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
minor portability fixes; printf now uses double for floating point conversions by...
authorChet Ramey <chet.ramey@case.edu>
Tue, 12 Apr 2022 13:57:43 +0000 (09:57 -0400)
committerChet Ramey <chet.ramey@case.edu>
Tue, 12 Apr 2022 13:57:43 +0000 (09:57 -0400)
14 files changed:
CWRU/CWRU.chlog
MANIFEST
POSIX
builtins/printf.def
configure
configure.ac
doc/bash.info
doc/bashref.info
doc/bashref.texi
doc/version.texi
examples/loadables/seq.c
lib/readline/input.c
m4/strtoimax.m4 [new file with mode: 0644]
tests/unicode1.sub

index 66d3cd6b43b1f4da78eb6eed911f083a75e5f232..185272bf67066c65a5836e13ceb6bb48f2dec498 100644 (file)
@@ -3449,3 +3449,30 @@ lib/readline/{complete,histfile,histsearch,isearch,terminal}.c
                                    ---
 configure.ac
        - bumped version to bash-5.2-beta
+
+[bash-5.2-beta frozen]
+
+                                   4/8
+                                   ---
+lib/readline/input.c
+       - _rl_orig_sigset: need extern declaration if HAVE_SELECT is defined.
+         From https://savannah.gnu.org/support/?110634
+
+examples/loadables/seq.c
+       - PRIdMAX: redefine if PRI_MACROS_BROKEN is defined.
+         From https://savannah.gnu.org/support/index.php?110635
+
+                                  4/11
+                                  ----
+configure.ac
+       - BASH_FUNC_STRTOIMAX: replace strtoimax if the system doesn't provide
+         a declaration in a standard header file. Uses new m4/strtoimax.m4.
+         From https://savannah.gnu.org/support/index.php?110633
+
+builtins/printf.def
+       - getdouble: new function, parses string into `double' using strtod
+       - printf_builtin: check for the `L' length modifier and use long
+         doubles for the floating point conversion specifiers. If it's not
+         supplied, use `double' when in posix mode (as posix specifies) and
+         long double (if it's available, double if not) in default mode.
+         From a report from Paul Eggert <eggert@cs.ucla.edu>
index 4fe2e46c373347c486f65659b9e9aa68608b6f69..fef7eb1d52327cfb8b96215a47597e12a38676d7 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -484,6 +484,7 @@ lib/tilde/Makefile.in       f
 lib/tilde/tilde.c      f
 lib/tilde/tilde.h      f
 lib/tilde/shell.c      f
+m4/strtoimax.m4                f
 m4/stat-time.m4                f
 m4/timespec.m4         f
 m4/codeset.m4          f
diff --git a/POSIX b/POSIX
index d9368a2ff0132bb3cd4f790eaed8fe6caed9daf4..3fd3c8828e0942ce0981dae351e8417d4da53c3c 100644 (file)
--- a/POSIX
+++ b/POSIX
@@ -240,7 +240,12 @@ The following list is what's changed when 'POSIX mode' is in effect:
      'read', the trap handler executes and 'read' returns an exit status
      greater than 128.
 
-  60. Bash removes an exited background process's status from the list
+  60. The 'printf' builting uses 'double' (via 'strtod') to convert
+     arguments corresponding to floating point conversion specifiers,
+     instead of 'long double' if it's available.  The 'L' length
+     modifier forces 'printf' to use 'long double' if it's available.
+
+  61. Bash removes an exited background process's status from the list
      of such statuses after the 'wait' builtin is used to obtain it.
 
 There is other POSIX behavior that Bash does not implement by default
index 251454480c350681998db40d96bd868eedc31be8..22560991ded38c190adc17715ccf0e06af8debf4 100644 (file)
@@ -215,13 +215,16 @@ static uintmax_t getuintmax PARAMS((void));
 
 #if defined (HAVE_LONG_DOUBLE) && HAVE_DECL_STRTOLD && !defined(STRTOLD_BROKEN)
 typedef long double floatmax_t;
+#  define USE_LONG_DOUBLE 1
 #  define FLOATMAX_CONV        "L"
 #  define strtofltmax  strtold
 #else
 typedef double floatmax_t;
+#  define USE_LONG_DOUBLE 0
 #  define FLOATMAX_CONV        ""
 #  define strtofltmax  strtod
 #endif
+static double getdouble PARAMS((void));
 static floatmax_t getfloatmax PARAMS((void));
 
 static intmax_t asciicode PARAMS((void));
@@ -247,7 +250,7 @@ printf_builtin (list)
      WORD_LIST *list;
 {
   int ch, fieldwidth, precision;
-  int have_fieldwidth, have_precision;
+  int have_fieldwidth, have_precision, use_Lmod;
   char convch, thisch, nextch, *format, *modstart, *precstart, *fmt, *start;
 #if defined (HANDLE_MULTIBYTE)
   char mbch[25];               /* 25 > MB_LEN_MAX, plus can handle 4-byte UTF-8 and large Unicode characters*/
@@ -422,8 +425,12 @@ printf_builtin (list)
 
          /* skip possible format modifiers */
          modstart = fmt;
+         use_Lmod = 0;
          while (*fmt && strchr (LENMODS, *fmt))
-           fmt++;
+           {
+             use_Lmod |= USE_LONG_DOUBLE && *fmt == 'L';
+             fmt++;
+           }
            
          if (*fmt == 0)
            {
@@ -694,11 +701,24 @@ printf_builtin (list)
 #endif
              {
                char *f;
-               floatmax_t p;
 
-               p = getfloatmax ();
-               f = mklong (start, FLOATMAX_CONV, sizeof(FLOATMAX_CONV) - 1);
-               PF (f, p);
+               if (use_Lmod || posixly_correct == 0)
+                 {
+                   floatmax_t p;
+
+                   p = getfloatmax ();
+                   f = mklong (start, "L", 1);
+                   PF (f, p);
+                 }
+               else            /* posixly_correct */
+                 {
+                   double p;
+
+                   p = getdouble ();
+                   f = mklong (start, "", 0);
+                   PF (f, p);
+                 }
+
                break;
              }
 
@@ -1248,6 +1268,33 @@ getuintmax ()
   return (ret);
 }
 
+static double
+getdouble ()
+{
+  double ret;
+  char *ep;
+
+  if (garglist == 0)
+    return (0);
+
+  if (garglist->word->word[0] == '\'' || garglist->word->word[0] == '"')
+    return asciicode ();
+
+  errno = 0;
+  ret = strtod (garglist->word->word, &ep);
+
+  if (*ep)
+    {
+      sh_invalidnum (garglist->word->word);
+      conversion_error = 1;
+    }
+  else if (errno == ERANGE)
+    printf_erange (garglist->word->word);
+
+  garglist = garglist->next;
+  return (ret);
+}
+
 static floatmax_t
 getfloatmax ()
 {
index 0835ffa43cb6b1507c14963a905289d5fb8a2a0a..792e922abdae190aeffacf820e831c866be9e26b 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac for Bash 5.2, version 5.039.
+# From configure.ac for Bash 5.2, version 5.040.
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.71 for bash 5.2-beta.
 #
@@ -6659,6 +6659,11 @@ fi
 
 
 
+
+
+
+
+
 # codeset.m4 serial 5 (gettext-0.18.2)
 
 
@@ -15503,19 +15508,6 @@ else $as_nop
  ;;
 esac
 
-fi
-ac_fn_c_check_func "$LINENO" "strtoimax" "ac_cv_func_strtoimax"
-if test "x$ac_cv_func_strtoimax" = xyes
-then :
-  printf "%s\n" "#define HAVE_STRTOIMAX 1" >>confdefs.h
-
-else $as_nop
-  case " $LIBOBJS " in
-  *" strtoimax.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strtoimax.$ac_objext"
- ;;
-esac
-
 fi
 ac_fn_c_check_func "$LINENO" "strtoumax" "ac_cv_func_strtoumax"
 if test "x$ac_cv_func_strtoumax" = xyes
@@ -15711,15 +15703,6 @@ printf "%s\n" "$bash_cv_strtold_broken" >&6; }
 fi
 
 
-ac_fn_check_decl "$LINENO" "strtoimax" "ac_cv_have_decl_strtoimax" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_strtoimax" = xyes
-then :
-  ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_STRTOIMAX $ac_have_decl" >>confdefs.h
-
 ac_fn_check_decl "$LINENO" "strtol" "ac_cv_have_decl_strtol" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
 if test "x$ac_cv_have_decl_strtol" = xyes
 then :
@@ -20417,6 +20400,60 @@ printf "%s\n" "#define HAVE_VSNPRINTF 0" >>confdefs.h
 
 
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for usable strtoimax" >&5
+printf %s "checking for usable strtoimax... " >&6; }
+if test ${bash_cv_func_strtoimax+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+
+  HAVE_STRTOIMAX=0 HAVE_DECL_STRTOIMAX=0
+
+  ac_fn_c_check_func "$LINENO" "strtoimax" "ac_cv_func_strtoimax"
+if test "x$ac_cv_func_strtoimax" = xyes
+then :
+  printf "%s\n" "#define HAVE_STRTOIMAX 1" >>confdefs.h
+
+fi
+
+  ac_fn_check_decl "$LINENO" "strtoimax" "ac_cv_have_decl_strtoimax" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_strtoimax" = xyes
+then :
+  ac_have_decl=1
+else $as_nop
+  ac_have_decl=0
+fi
+printf "%s\n" "#define HAVE_DECL_STRTOIMAX $ac_have_decl" >>confdefs.h
+
+
+  if test "$ac_cv_func_strtoimax" = "yes" ; then
+    HAVE_STRTOIMAX=1
+  fi
+  if test "$ac_cv_have_decl_strtoimax" = "yes" ; then
+    HAVE_DECL_STRTOIMAX=1
+  fi
+
+  if test "$HAVE_STRTOIMAX" = 0 || test "$HAVE_DECL_STRTOIMAX" = 0 ; then
+    bash_cv_func_strtoimax=no REPLACE_STRTOIMAX=1
+  else
+    bash_cv_func_strtoimax=yes
+  fi
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_strtoimax" >&5
+printf "%s\n" "$bash_cv_func_strtoimax" >&6; }
+if test $bash_cv_func_strtoimax = yes; then
+case " $LIBOBJS " in
+  *" strtoimax.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS strtoimax.$ac_objext"
+ ;;
+esac
+
+fi
+
+
+
 if test "$ac_cv_func_putenv" = "yes"; then
 
 
index 2cae05e34d443fce9a0016ca5d61490d84d4bf04..aee938a310b011785aa79f43c342d820be7409d9 100644 (file)
@@ -21,7 +21,7 @@ dnl Process this file with autoconf to produce a configure script.
 #   You should have received a copy of the GNU General Public License
 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_REVISION([for Bash 5.2, version 5.039])dnl
+AC_REVISION([for Bash 5.2, version 5.040])dnl
 
 define(bashvers, 5.2)
 define(relstatus, beta)
@@ -713,6 +713,8 @@ AC_SUBST(SIZE)
 m4_include([m4/stat-time.m4])
 m4_include([m4/timespec.m4])
 
+m4_include([m4/strtoimax.m4])
+
 dnl include files for gettext
 
 m4_include([m4/codeset.m4])
@@ -859,7 +861,7 @@ AC_CHECK_FUNCS(arc4random)
 
 AC_REPLACE_FUNCS(getcwd memset)
 AC_REPLACE_FUNCS(strcasecmp strcasestr strerror strftime strnlen strpbrk strstr)
-AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
+AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoumax)
 AC_REPLACE_FUNCS(dprintf)
 AC_REPLACE_FUNCS(strchrnul)
 AC_REPLACE_FUNCS(strdup)
@@ -894,7 +896,6 @@ AC_CHECK_DECLS([strtold], [
     fi
 ])
 
-AC_CHECK_DECLS(strtoimax)
 AC_CHECK_DECLS(strtol)
 AC_CHECK_DECLS(strtoll)
 AC_CHECK_DECLS(strtoul)
@@ -1068,6 +1069,8 @@ BASH_FUNC_STRCOLL
 BASH_FUNC_SNPRINTF
 BASH_FUNC_VSNPRINTF
 
+BASH_FUNC_STRTOIMAX
+
 dnl If putenv or unsetenv is not present, set the right define so the
 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
 
index fcc7bbcf5cd1e6f52bc891acbcc0c148283ca9ec..832c2507c5165d9a16075c454af4823c16ca53dc 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.2, 5 February 2022).
+Bash shell (version 5.2, 11 April 2022).
 
-   This is Edition 5.2, last updated 5 February 2022, of 'The GNU Bash
+   This is Edition 5.2, last updated 11 April 2022, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Copyright (C) 1988-2022 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.2, 5 February 2022).  The Bash home page is
+Bash shell (version 5.2, 11 April 2022).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.2, last updated 5 February 2022, of 'The GNU Bash
+   This is Edition 5.2, last updated 11 April 2022, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Bash contains features that appear in other popular shells, and some
@@ -1367,9 +1367,17 @@ status; otherwise the function's return status is the exit status of the
 last command executed before the 'return'.
 
    Variables local to the function may be declared with the 'local'
-builtin.  These variables are visible only to the function and the
-commands it invokes.  This is particularly important when a shell
-function calls other functions.
+builtin ("local variables").  Ordinarily, variables and their values are
+shared between a function and its caller.  These variables are visible
+only to the function and the commands it invokes.  This is particularly
+important when a shell function calls other functions.
+
+   In the following description, the "current scope" is a currently-
+executing function.  Previous scopes consist of that function's caller
+and so on, back to the "global" scope, where the shell is not executing
+any shell function.  Consequently, a local variable at the current local
+scope is a variable declared using the 'local' or 'declare' builtins in
+the function that is currently executing.
 
    Local variables "shadow" variables with the same name declared at
 previous scopes.  For instance, a local variable declared in a function
@@ -1414,11 +1422,12 @@ script displays
 variable is local to the current scope, 'unset' will unset it; otherwise
 the unset will refer to the variable found in any calling scope as
 described above.  If a variable at the current local scope is unset, it
-will remain so until it is reset in that scope or until the function
-returns.  Once the function returns, any instance of the variable at a
-previous scope will become visible.  If the unset acts on a variable at
-a previous scope, any instance of a variable with that name that had
-been shadowed will become visible.
+will remain so (appearing as unset) until it is reset in that scope or
+until the function returns.  Once the function returns, any instance of
+the variable at a previous scope will become visible.  If the unset acts
+on a variable at a previous scope, any instance of a variable with that
+name that had been shadowed will become visible (see below how
+'localvar_unset'shell option changes this behavior).
 
    Function names and definitions may be listed with the '-f' option to
 the 'declare' ('typeset') builtin command (*note Bash Builtins::).  The
@@ -1867,11 +1876,11 @@ omitted, the operator tests only for existence.
 '${PARAMETER:OFFSET:LENGTH}'
      This is referred to as Substring Expansion.  It expands to up to
      LENGTH characters of the value of PARAMETER starting at the
-     character specified by OFFSET.  If PARAMETER is '@', an indexed
-     array subscripted by '@' or '*', or an associative array name, the
-     results differ as described below.  If LENGTH is omitted, it
-     expands to the substring of the value of PARAMETER starting at the
-     character specified by OFFSET and extending to the end of the
+     character specified by OFFSET.  If PARAMETER is '@' or '*', an
+     indexed array subscripted by '@' or '*', or an associative array
+     name, the results differ as described below.  If LENGTH is omitted,
+     it expands to the substring of the value of PARAMETER starting at
+     the character specified by OFFSET and extending to the end of the
      value.  LENGTH and OFFSET are arithmetic expressions (*note Shell
      Arithmetic::).
 
@@ -1939,11 +1948,11 @@ omitted, the operator tests only for existence.
      $ echo ${array[0]: -7:-2}
      bcdef
 
-     If PARAMETER is '@', the result is LENGTH positional parameters
-     beginning at OFFSET.  A negative OFFSET is taken relative to one
-     greater than the greatest positional parameter, so an offset of -1
-     evaluates to the last positional parameter.  It is an expansion
-     error if LENGTH evaluates to a number less than zero.
+     If PARAMETER is '@' or '*', the result is LENGTH positional
+     parameters beginning at OFFSET.  A negative OFFSET is taken
+     relative to one greater than the greatest positional parameter, so
+     an offset of -1 evaluates to the last positional parameter.  It is
+     an expansion error if LENGTH evaluates to a number less than zero.
 
      The following examples illustrate substring expansion using
      positional parameters:
@@ -6660,6 +6669,10 @@ negative number, that number is interpreted as relative to one greater
 than the maximum index of NAME, so negative indices count back from the
 end of the array, and an index of -1 references the last element.
 
+   The '+=' operator will append to an array variable when assigning
+using the compound assignment syntax; see *note Shell Parameters::
+above.
+
    Any element of an array may be referenced using '${NAME[SUBSCRIPT]}'.
 The braces are required to avoid conflicts with the shell's filename
 expansion operators.  If the SUBSCRIPT is '@' or '*', the word expands
@@ -7235,7 +7248,12 @@ startup files.
      'read', the trap handler executes and 'read' returns an exit status
      greater than 128.
 
-  60. Bash removes an exited background process's status from the list
+  60. The 'printf' builting uses 'double' (via 'strtod') to convert
+     arguments corresponding to floating point conversion specifiers,
+     instead of 'long double' if it's available.  The 'L' length
+     modifier forces 'printf' to use 'long double' if it's available.
+
+  61. Bash removes an exited background process's status from the list
      of such statuses after the 'wait' builtin is used to obtain it.
 
    There is other POSIX behavior that Bash does not implement by default
@@ -8156,12 +8174,13 @@ Variable Settings
           non-incremental history searches.  The default is 'On'.
 
      'enable-bracketed-paste'
-          When set to 'On', Readline will configure the terminal in a
-          way that will enable it to insert each paste into the editing
-          buffer as a single string of characters, instead of treating
-          each character as if it had been read from the keyboard.  This
-          can prevent pasted characters from being interpreted as
-          editing commands.  The default is 'On'.
+          When set to 'On', Readline configures the terminal to insert
+          each paste into the editing buffer as a single string of
+          characters, instead of treating each character as if it had
+          been read from the keyboard.  This is called putting the
+          terminal into "bracketed paste mode"; it prevents Readline
+          from executing any editing commands bound to key sequences
+          appearing in the pasted text.  The default is 'On'.
 
      'enable-keypad'
           When set to 'on', Readline will try to enable the application
@@ -11967,14 +11986,14 @@ D.3 Parameter and Variable Index
 * enable-bracketed-paste:                Readline Init File Syntax.
                                                               (line 185)
 * enable-keypad:                         Readline Init File Syntax.
-                                                              (line 193)
+                                                              (line 194)
 * ENV:                                   Bash Variables.      (line 279)
 * EPOCHREALTIME:                         Bash Variables.      (line 284)
 * EPOCHSECONDS:                          Bash Variables.      (line 292)
 * EUID:                                  Bash Variables.      (line 299)
 * EXECIGNORE:                            Bash Variables.      (line 303)
 * expand-tilde:                          Readline Init File Syntax.
-                                                              (line 204)
+                                                              (line 205)
 * FCEDIT:                                Bash Variables.      (line 316)
 * FIGNORE:                               Bash Variables.      (line 320)
 * FUNCNAME:                              Bash Variables.      (line 326)
@@ -11988,15 +12007,15 @@ D.3 Parameter and Variable Index
 * HISTFILESIZE:                          Bash Variables.      (line 402)
 * HISTIGNORE:                            Bash Variables.      (line 413)
 * history-preserve-point:                Readline Init File Syntax.
-                                                              (line 208)
+                                                              (line 209)
 * history-size:                          Readline Init File Syntax.
-                                                              (line 214)
+                                                              (line 215)
 * HISTSIZE:                              Bash Variables.      (line 433)
 * HISTTIMEFORMAT:                        Bash Variables.      (line 440)
 * HOME:                                  Bourne Shell Variables.
                                                               (line  13)
 * horizontal-scroll-mode:                Readline Init File Syntax.
-                                                              (line 223)
+                                                              (line 224)
 * HOSTFILE:                              Bash Variables.      (line 448)
 * HOSTNAME:                              Bash Variables.      (line 459)
 * HOSTTYPE:                              Bash Variables.      (line 462)
@@ -12004,13 +12023,13 @@ D.3 Parameter and Variable Index
                                                               (line  18)
 * IGNOREEOF:                             Bash Variables.      (line 465)
 * input-meta:                            Readline Init File Syntax.
-                                                              (line 232)
+                                                              (line 233)
 * INPUTRC:                               Bash Variables.      (line 475)
 * INSIDE_EMACS:                          Bash Variables.      (line 479)
 * isearch-terminators:                   Readline Init File Syntax.
-                                                              (line 240)
+                                                              (line 241)
 * keymap:                                Readline Init File Syntax.
-                                                              (line 247)
+                                                              (line 248)
 * LANG:                                  Creating Internationalized Scripts.
                                                               (line  51)
 * LANG <1>:                              Bash Variables.      (line 485)
@@ -12032,15 +12051,15 @@ D.3 Parameter and Variable Index
                                                               (line  27)
 * MAPFILE:                               Bash Variables.      (line 540)
 * mark-modified-lines:                   Readline Init File Syntax.
-                                                              (line 277)
+                                                              (line 278)
 * mark-symlinked-directories:            Readline Init File Syntax.
-                                                              (line 282)
+                                                              (line 283)
 * match-hidden-files:                    Readline Init File Syntax.
-                                                              (line 287)
+                                                              (line 288)
 * menu-complete-display-prefix:          Readline Init File Syntax.
-                                                              (line 294)
+                                                              (line 295)
 * meta-flag:                             Readline Init File Syntax.
-                                                              (line 232)
+                                                              (line 233)
 * OLDPWD:                                Bash Variables.      (line 544)
 * OPTARG:                                Bourne Shell Variables.
                                                               (line  34)
@@ -12049,9 +12068,9 @@ D.3 Parameter and Variable Index
                                                               (line  38)
 * OSTYPE:                                Bash Variables.      (line 551)
 * output-meta:                           Readline Init File Syntax.
-                                                              (line 299)
+                                                              (line 300)
 * page-completions:                      Readline Init File Syntax.
-                                                              (line 305)
+                                                              (line 306)
 * PATH:                                  Bourne Shell Variables.
                                                               (line  42)
 * PIPESTATUS:                            Bash Variables.      (line 554)
@@ -12074,19 +12093,19 @@ D.3 Parameter and Variable Index
 * READLINE_POINT:                        Bash Variables.      (line 626)
 * REPLY:                                 Bash Variables.      (line 630)
 * revert-all-at-newline:                 Readline Init File Syntax.
-                                                              (line 315)
+                                                              (line 316)
 * SECONDS:                               Bash Variables.      (line 633)
 * SHELL:                                 Bash Variables.      (line 642)
 * SHELLOPTS:                             Bash Variables.      (line 647)
 * SHLVL:                                 Bash Variables.      (line 656)
 * show-all-if-ambiguous:                 Readline Init File Syntax.
-                                                              (line 321)
+                                                              (line 322)
 * show-all-if-unmodified:                Readline Init File Syntax.
-                                                              (line 327)
+                                                              (line 328)
 * show-mode-in-prompt:                   Readline Init File Syntax.
-                                                              (line 336)
+                                                              (line 337)
 * skip-completed-text:                   Readline Init File Syntax.
-                                                              (line 342)
+                                                              (line 343)
 * SRANDOM:                               Bash Variables.      (line 661)
 * TEXTDOMAIN:                            Creating Internationalized Scripts.
                                                               (line  51)
@@ -12097,11 +12116,11 @@ D.3 Parameter and Variable Index
 * TMPDIR:                                Bash Variables.      (line 720)
 * UID:                                   Bash Variables.      (line 724)
 * vi-cmd-mode-string:                    Readline Init File Syntax.
-                                                              (line 355)
+                                                              (line 356)
 * vi-ins-mode-string:                    Readline Init File Syntax.
-                                                              (line 366)
+                                                              (line 367)
 * visible-stats:                         Readline Init File Syntax.
-                                                              (line 377)
+                                                              (line 378)
 
 \1f
 File: bash.info,  Node: Function Index,  Next: Concept Index,  Prev: Variable Index,  Up: Indexes
@@ -12480,138 +12499,138 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f892
-Node: Introduction\7f2807
-Node: What is Bash?\7f3020
-Node: What is a shell?\7f4131
-Node: Definitions\7f6666
-Node: Basic Shell Features\7f9614
-Node: Shell Syntax\7f10830
-Node: Shell Operation\7f11853
-Node: Quoting\7f13143
-Node: Escape Character\7f14444
-Node: Single Quotes\7f14926
-Node: Double Quotes\7f15271
-Node: ANSI-C Quoting\7f16546
-Node: Locale Translation\7f17853
-Node: Creating Internationalized Scripts\7f19161
-Node: Comments\7f23275
-Node: Shell Commands\7f23890
-Node: Reserved Words\7f24825
-Node: Simple Commands\7f25578
-Node: Pipelines\7f26229
-Node: Lists\7f29185
-Node: Compound Commands\7f30977
-Node: Looping Constructs\7f31986
-Node: Conditional Constructs\7f34478
-Node: Command Grouping\7f48819
-Node: Coprocesses\7f50294
-Node: GNU Parallel\7f52954
-Node: Shell Functions\7f53868
-Node: Shell Parameters\7f61156
-Node: Positional Parameters\7f65541
-Node: Special Parameters\7f66440
-Node: Shell Expansions\7f69651
-Node: Brace Expansion\7f71775
-Node: Tilde Expansion\7f74506
-Node: Shell Parameter Expansion\7f77124
-Node: Command Substitution\7f95458
-Node: Arithmetic Expansion\7f96810
-Node: Process Substitution\7f97775
-Node: Word Splitting\7f98892
-Node: Filename Expansion\7f100833
-Node: Pattern Matching\7f103579
-Node: Quote Removal\7f108184
-Node: Redirections\7f108476
-Node: Executing Commands\7f118133
-Node: Simple Command Expansion\7f118800
-Node: Command Search and Execution\7f120907
-Node: Command Execution Environment\7f123282
-Node: Environment\7f126314
-Node: Exit Status\7f127974
-Node: Signals\7f129755
-Node: Shell Scripts\7f133201
-Node: Shell Builtin Commands\7f136225
-Node: Bourne Shell Builtins\7f138260
-Node: Bash Builtins\7f159718
-Node: Modifying Shell Behavior\7f190571
-Node: The Set Builtin\7f190913
-Node: The Shopt Builtin\7f201511
-Node: Special Builtins\7f217420
-Node: Shell Variables\7f218396
-Node: Bourne Shell Variables\7f218830
-Node: Bash Variables\7f220931
-Node: Bash Features\7f253744
-Node: Invoking Bash\7f254754
-Node: Bash Startup Files\7f260764
-Node: Interactive Shells\7f265864
-Node: What is an Interactive Shell?\7f266271
-Node: Is this Shell Interactive?\7f266917
-Node: Interactive Shell Behavior\7f267729
-Node: Bash Conditional Expressions\7f271355
-Node: Shell Arithmetic\7f275994
-Node: Aliases\7f278935
-Node: Arrays\7f281545
-Node: The Directory Stack\7f287789
-Node: Directory Stack Builtins\7f288570
-Node: Controlling the Prompt\7f292827
-Node: The Restricted Shell\7f295789
-Node: Bash POSIX Mode\7f298396
-Node: Shell Compatibility Mode\7f310043
-Node: Job Control\7f318069
-Node: Job Control Basics\7f318526
-Node: Job Control Builtins\7f323525
-Node: Job Control Variables\7f328922
-Node: Command Line Editing\7f330075
-Node: Introduction and Notation\7f331743
-Node: Readline Interaction\7f333363
-Node: Readline Bare Essentials\7f334551
-Node: Readline Movement Commands\7f336331
-Node: Readline Killing Commands\7f337288
-Node: Readline Arguments\7f339203
-Node: Searching\7f340244
-Node: Readline Init File\7f342427
-Node: Readline Init File Syntax\7f343685
-Node: Conditional Init Constructs\7f366808
-Node: Sample Init File\7f371001
-Node: Bindable Readline Commands\7f374122
-Node: Commands For Moving\7f375323
-Node: Commands For History\7f377371
-Node: Commands For Text\7f382362
-Node: Commands For Killing\7f386008
-Node: Numeric Arguments\7f389038
-Node: Commands For Completion\7f390174
-Node: Keyboard Macros\7f394362
-Node: Miscellaneous Commands\7f395046
-Node: Readline vi Mode\7f400982
-Node: Programmable Completion\7f401886
-Node: Programmable Completion Builtins\7f409663
-Node: A Programmable Completion Example\7f420355
-Node: Using History Interactively\7f425599
-Node: Bash History Facilities\7f426280
-Node: Bash History Builtins\7f429282
-Node: History Interaction\7f434287
-Node: Event Designators\7f437904
-Node: Word Designators\7f439255
-Node: Modifiers\7f441012
-Node: Installing Bash\7f442820
-Node: Basic Installation\7f443954
-Node: Compilers and Options\7f447673
-Node: Compiling For Multiple Architectures\7f448411
-Node: Installation Names\7f450101
-Node: Specifying the System Type\7f452207
-Node: Sharing Defaults\7f452920
-Node: Operation Controls\7f453590
-Node: Optional Features\7f454545
-Node: Reporting Bugs\7f465760
-Node: Major Differences From The Bourne Shell\7f467032
-Node: GNU Free Documentation License\7f483879
-Node: Indexes\7f509053
-Node: Builtin Index\7f509504
-Node: Reserved Word Index\7f516328
-Node: Variable Index\7f518773
-Node: Function Index\7f535544
-Node: Concept Index\7f549325
+Node: Top\7f888
+Node: Introduction\7f2799
+Node: What is Bash?\7f3012
+Node: What is a shell?\7f4123
+Node: Definitions\7f6658
+Node: Basic Shell Features\7f9606
+Node: Shell Syntax\7f10822
+Node: Shell Operation\7f11845
+Node: Quoting\7f13135
+Node: Escape Character\7f14436
+Node: Single Quotes\7f14918
+Node: Double Quotes\7f15263
+Node: ANSI-C Quoting\7f16538
+Node: Locale Translation\7f17845
+Node: Creating Internationalized Scripts\7f19153
+Node: Comments\7f23267
+Node: Shell Commands\7f23882
+Node: Reserved Words\7f24817
+Node: Simple Commands\7f25570
+Node: Pipelines\7f26221
+Node: Lists\7f29177
+Node: Compound Commands\7f30969
+Node: Looping Constructs\7f31978
+Node: Conditional Constructs\7f34470
+Node: Command Grouping\7f48811
+Node: Coprocesses\7f50286
+Node: GNU Parallel\7f52946
+Node: Shell Functions\7f53860
+Node: Shell Parameters\7f61742
+Node: Positional Parameters\7f66127
+Node: Special Parameters\7f67026
+Node: Shell Expansions\7f70237
+Node: Brace Expansion\7f72361
+Node: Tilde Expansion\7f75092
+Node: Shell Parameter Expansion\7f77710
+Node: Command Substitution\7f96058
+Node: Arithmetic Expansion\7f97410
+Node: Process Substitution\7f98375
+Node: Word Splitting\7f99492
+Node: Filename Expansion\7f101433
+Node: Pattern Matching\7f104179
+Node: Quote Removal\7f108784
+Node: Redirections\7f109076
+Node: Executing Commands\7f118733
+Node: Simple Command Expansion\7f119400
+Node: Command Search and Execution\7f121507
+Node: Command Execution Environment\7f123882
+Node: Environment\7f126914
+Node: Exit Status\7f128574
+Node: Signals\7f130355
+Node: Shell Scripts\7f133801
+Node: Shell Builtin Commands\7f136825
+Node: Bourne Shell Builtins\7f138860
+Node: Bash Builtins\7f160318
+Node: Modifying Shell Behavior\7f191171
+Node: The Set Builtin\7f191513
+Node: The Shopt Builtin\7f202111
+Node: Special Builtins\7f218020
+Node: Shell Variables\7f218996
+Node: Bourne Shell Variables\7f219430
+Node: Bash Variables\7f221531
+Node: Bash Features\7f254344
+Node: Invoking Bash\7f255354
+Node: Bash Startup Files\7f261364
+Node: Interactive Shells\7f266464
+Node: What is an Interactive Shell?\7f266871
+Node: Is this Shell Interactive?\7f267517
+Node: Interactive Shell Behavior\7f268329
+Node: Bash Conditional Expressions\7f271955
+Node: Shell Arithmetic\7f276594
+Node: Aliases\7f279535
+Node: Arrays\7f282145
+Node: The Directory Stack\7f288533
+Node: Directory Stack Builtins\7f289314
+Node: Controlling the Prompt\7f293571
+Node: The Restricted Shell\7f296533
+Node: Bash POSIX Mode\7f299140
+Node: Shell Compatibility Mode\7f311061
+Node: Job Control\7f319087
+Node: Job Control Basics\7f319544
+Node: Job Control Builtins\7f324543
+Node: Job Control Variables\7f329940
+Node: Command Line Editing\7f331093
+Node: Introduction and Notation\7f332761
+Node: Readline Interaction\7f334381
+Node: Readline Bare Essentials\7f335569
+Node: Readline Movement Commands\7f337349
+Node: Readline Killing Commands\7f338306
+Node: Readline Arguments\7f340221
+Node: Searching\7f341262
+Node: Readline Init File\7f343445
+Node: Readline Init File Syntax\7f344703
+Node: Conditional Init Constructs\7f367899
+Node: Sample Init File\7f372092
+Node: Bindable Readline Commands\7f375213
+Node: Commands For Moving\7f376414
+Node: Commands For History\7f378462
+Node: Commands For Text\7f383453
+Node: Commands For Killing\7f387099
+Node: Numeric Arguments\7f390129
+Node: Commands For Completion\7f391265
+Node: Keyboard Macros\7f395453
+Node: Miscellaneous Commands\7f396137
+Node: Readline vi Mode\7f402073
+Node: Programmable Completion\7f402977
+Node: Programmable Completion Builtins\7f410754
+Node: A Programmable Completion Example\7f421446
+Node: Using History Interactively\7f426690
+Node: Bash History Facilities\7f427371
+Node: Bash History Builtins\7f430373
+Node: History Interaction\7f435378
+Node: Event Designators\7f438995
+Node: Word Designators\7f440346
+Node: Modifiers\7f442103
+Node: Installing Bash\7f443911
+Node: Basic Installation\7f445045
+Node: Compilers and Options\7f448764
+Node: Compiling For Multiple Architectures\7f449502
+Node: Installation Names\7f451192
+Node: Specifying the System Type\7f453298
+Node: Sharing Defaults\7f454011
+Node: Operation Controls\7f454681
+Node: Optional Features\7f455636
+Node: Reporting Bugs\7f466851
+Node: Major Differences From The Bourne Shell\7f468123
+Node: GNU Free Documentation License\7f484970
+Node: Indexes\7f510144
+Node: Builtin Index\7f510595
+Node: Reserved Word Index\7f517419
+Node: Variable Index\7f519864
+Node: Function Index\7f536635
+Node: Concept Index\7f550416
 \1f
 End Tag Table
 
index 4cbaf021e53cf1f1ddaa7fc3a0ec1c5293a67e58..cd44fc024ebc939b2926dbd36d07b8fafc1d4bfd 100644 (file)
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.8 from
 bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.2, 24 February 2022).
+Bash shell (version 5.2, 11 April 2022).
 
-   This is Edition 5.2, last updated 24 February 2022, of 'The GNU Bash
+   This is Edition 5.2, last updated 11 April 2022, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Copyright (C) 1988-2022 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.2, 24 February 2022).  The Bash home page is
+Bash shell (version 5.2, 11 April 2022).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.2, last updated 24 February 2022, of 'The GNU Bash
+   This is Edition 5.2, last updated 11 April 2022, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Bash contains features that appear in other popular shells, and some
@@ -7249,7 +7249,12 @@ startup files.
      'read', the trap handler executes and 'read' returns an exit status
      greater than 128.
 
-  60. Bash removes an exited background process's status from the list
+  60. The 'printf' builting uses 'double' (via 'strtod') to convert
+     arguments corresponding to floating point conversion specifiers,
+     instead of 'long double' if it's available.  The 'L' length
+     modifier forces 'printf' to use 'long double' if it's available.
+
+  61. Bash removes an exited background process's status from the list
      of such statuses after the 'wait' builtin is used to obtain it.
 
    There is other POSIX behavior that Bash does not implement by default
@@ -12495,138 +12500,138 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f897
-Node: Introduction\7f2817
-Node: What is Bash?\7f3033
-Node: What is a shell?\7f4147
-Node: Definitions\7f6685
-Node: Basic Shell Features\7f9636
-Node: Shell Syntax\7f10855
-Node: Shell Operation\7f11881
-Node: Quoting\7f13174
-Node: Escape Character\7f14478
-Node: Single Quotes\7f14963
-Node: Double Quotes\7f15311
-Node: ANSI-C Quoting\7f16589
-Node: Locale Translation\7f17899
-Node: Creating Internationalized Scripts\7f19210
-Node: Comments\7f23327
-Node: Shell Commands\7f23945
-Node: Reserved Words\7f24883
-Node: Simple Commands\7f25639
-Node: Pipelines\7f26293
-Node: Lists\7f29252
-Node: Compound Commands\7f31047
-Node: Looping Constructs\7f32059
-Node: Conditional Constructs\7f34554
-Node: Command Grouping\7f48898
-Node: Coprocesses\7f50376
-Node: GNU Parallel\7f53039
-Node: Shell Functions\7f53956
-Node: Shell Parameters\7f61841
-Node: Positional Parameters\7f66229
-Node: Special Parameters\7f67131
-Node: Shell Expansions\7f70345
-Node: Brace Expansion\7f72472
-Node: Tilde Expansion\7f75206
-Node: Shell Parameter Expansion\7f77827
-Node: Command Substitution\7f96178
-Node: Arithmetic Expansion\7f97533
-Node: Process Substitution\7f98501
-Node: Word Splitting\7f99621
-Node: Filename Expansion\7f101565
-Node: Pattern Matching\7f104314
-Node: Quote Removal\7f108922
-Node: Redirections\7f109217
-Node: Executing Commands\7f118877
-Node: Simple Command Expansion\7f119547
-Node: Command Search and Execution\7f121657
-Node: Command Execution Environment\7f124035
-Node: Environment\7f127070
-Node: Exit Status\7f128733
-Node: Signals\7f130517
-Node: Shell Scripts\7f133966
-Node: Shell Builtin Commands\7f136993
-Node: Bourne Shell Builtins\7f139031
-Node: Bash Builtins\7f160492
-Node: Modifying Shell Behavior\7f191348
-Node: The Set Builtin\7f191693
-Node: The Shopt Builtin\7f202294
-Node: Special Builtins\7f218206
-Node: Shell Variables\7f219185
-Node: Bourne Shell Variables\7f219622
-Node: Bash Variables\7f221726
-Node: Bash Features\7f254542
-Node: Invoking Bash\7f255555
-Node: Bash Startup Files\7f261568
-Node: Interactive Shells\7f266671
-Node: What is an Interactive Shell?\7f267081
-Node: Is this Shell Interactive?\7f267730
-Node: Interactive Shell Behavior\7f268545
-Node: Bash Conditional Expressions\7f272174
-Node: Shell Arithmetic\7f276816
-Node: Aliases\7f279760
-Node: Arrays\7f282373
-Node: The Directory Stack\7f288764
-Node: Directory Stack Builtins\7f289548
-Node: Controlling the Prompt\7f293808
-Node: The Restricted Shell\7f296773
-Node: Bash POSIX Mode\7f299383
-Node: Shell Compatibility Mode\7f311033
-Node: Job Control\7f319062
-Node: Job Control Basics\7f319522
-Node: Job Control Builtins\7f324524
-Node: Job Control Variables\7f329924
-Node: Command Line Editing\7f331080
-Node: Introduction and Notation\7f332751
-Node: Readline Interaction\7f334374
-Node: Readline Bare Essentials\7f335565
-Node: Readline Movement Commands\7f337348
-Node: Readline Killing Commands\7f338308
-Node: Readline Arguments\7f340226
-Node: Searching\7f341270
-Node: Readline Init File\7f343456
-Node: Readline Init File Syntax\7f344717
-Node: Conditional Init Constructs\7f367916
-Node: Sample Init File\7f372112
-Node: Bindable Readline Commands\7f375236
-Node: Commands For Moving\7f376440
-Node: Commands For History\7f378491
-Node: Commands For Text\7f383485
-Node: Commands For Killing\7f387134
-Node: Numeric Arguments\7f390167
-Node: Commands For Completion\7f391306
-Node: Keyboard Macros\7f395497
-Node: Miscellaneous Commands\7f396184
-Node: Readline vi Mode\7f402123
-Node: Programmable Completion\7f403030
-Node: Programmable Completion Builtins\7f410810
-Node: A Programmable Completion Example\7f421505
-Node: Using History Interactively\7f426752
-Node: Bash History Facilities\7f427436
-Node: Bash History Builtins\7f430441
-Node: History Interaction\7f435449
-Node: Event Designators\7f439069
-Node: Word Designators\7f440423
-Node: Modifiers\7f442183
-Node: Installing Bash\7f443994
-Node: Basic Installation\7f445131
-Node: Compilers and Options\7f448853
-Node: Compiling For Multiple Architectures\7f449594
-Node: Installation Names\7f451287
-Node: Specifying the System Type\7f453396
-Node: Sharing Defaults\7f454112
-Node: Operation Controls\7f454785
-Node: Optional Features\7f455743
-Node: Reporting Bugs\7f466961
-Node: Major Differences From The Bourne Shell\7f468236
-Node: GNU Free Documentation License\7f485086
-Node: Indexes\7f510263
-Node: Builtin Index\7f510717
-Node: Reserved Word Index\7f517544
-Node: Variable Index\7f519992
-Node: Function Index\7f536766
-Node: Concept Index\7f550550
+Node: Top\7f891
+Node: Introduction\7f2805
+Node: What is Bash?\7f3021
+Node: What is a shell?\7f4135
+Node: Definitions\7f6673
+Node: Basic Shell Features\7f9624
+Node: Shell Syntax\7f10843
+Node: Shell Operation\7f11869
+Node: Quoting\7f13162
+Node: Escape Character\7f14466
+Node: Single Quotes\7f14951
+Node: Double Quotes\7f15299
+Node: ANSI-C Quoting\7f16577
+Node: Locale Translation\7f17887
+Node: Creating Internationalized Scripts\7f19198
+Node: Comments\7f23315
+Node: Shell Commands\7f23933
+Node: Reserved Words\7f24871
+Node: Simple Commands\7f25627
+Node: Pipelines\7f26281
+Node: Lists\7f29240
+Node: Compound Commands\7f31035
+Node: Looping Constructs\7f32047
+Node: Conditional Constructs\7f34542
+Node: Command Grouping\7f48886
+Node: Coprocesses\7f50364
+Node: GNU Parallel\7f53027
+Node: Shell Functions\7f53944
+Node: Shell Parameters\7f61829
+Node: Positional Parameters\7f66217
+Node: Special Parameters\7f67119
+Node: Shell Expansions\7f70333
+Node: Brace Expansion\7f72460
+Node: Tilde Expansion\7f75194
+Node: Shell Parameter Expansion\7f77815
+Node: Command Substitution\7f96166
+Node: Arithmetic Expansion\7f97521
+Node: Process Substitution\7f98489
+Node: Word Splitting\7f99609
+Node: Filename Expansion\7f101553
+Node: Pattern Matching\7f104302
+Node: Quote Removal\7f108910
+Node: Redirections\7f109205
+Node: Executing Commands\7f118865
+Node: Simple Command Expansion\7f119535
+Node: Command Search and Execution\7f121645
+Node: Command Execution Environment\7f124023
+Node: Environment\7f127058
+Node: Exit Status\7f128721
+Node: Signals\7f130505
+Node: Shell Scripts\7f133954
+Node: Shell Builtin Commands\7f136981
+Node: Bourne Shell Builtins\7f139019
+Node: Bash Builtins\7f160480
+Node: Modifying Shell Behavior\7f191336
+Node: The Set Builtin\7f191681
+Node: The Shopt Builtin\7f202282
+Node: Special Builtins\7f218194
+Node: Shell Variables\7f219173
+Node: Bourne Shell Variables\7f219610
+Node: Bash Variables\7f221714
+Node: Bash Features\7f254530
+Node: Invoking Bash\7f255543
+Node: Bash Startup Files\7f261556
+Node: Interactive Shells\7f266659
+Node: What is an Interactive Shell?\7f267069
+Node: Is this Shell Interactive?\7f267718
+Node: Interactive Shell Behavior\7f268533
+Node: Bash Conditional Expressions\7f272162
+Node: Shell Arithmetic\7f276804
+Node: Aliases\7f279748
+Node: Arrays\7f282361
+Node: The Directory Stack\7f288752
+Node: Directory Stack Builtins\7f289536
+Node: Controlling the Prompt\7f293796
+Node: The Restricted Shell\7f296761
+Node: Bash POSIX Mode\7f299371
+Node: Shell Compatibility Mode\7f311295
+Node: Job Control\7f319324
+Node: Job Control Basics\7f319784
+Node: Job Control Builtins\7f324786
+Node: Job Control Variables\7f330186
+Node: Command Line Editing\7f331342
+Node: Introduction and Notation\7f333013
+Node: Readline Interaction\7f334636
+Node: Readline Bare Essentials\7f335827
+Node: Readline Movement Commands\7f337610
+Node: Readline Killing Commands\7f338570
+Node: Readline Arguments\7f340488
+Node: Searching\7f341532
+Node: Readline Init File\7f343718
+Node: Readline Init File Syntax\7f344979
+Node: Conditional Init Constructs\7f368178
+Node: Sample Init File\7f372374
+Node: Bindable Readline Commands\7f375498
+Node: Commands For Moving\7f376702
+Node: Commands For History\7f378753
+Node: Commands For Text\7f383747
+Node: Commands For Killing\7f387396
+Node: Numeric Arguments\7f390429
+Node: Commands For Completion\7f391568
+Node: Keyboard Macros\7f395759
+Node: Miscellaneous Commands\7f396446
+Node: Readline vi Mode\7f402385
+Node: Programmable Completion\7f403292
+Node: Programmable Completion Builtins\7f411072
+Node: A Programmable Completion Example\7f421767
+Node: Using History Interactively\7f427014
+Node: Bash History Facilities\7f427698
+Node: Bash History Builtins\7f430703
+Node: History Interaction\7f435711
+Node: Event Designators\7f439331
+Node: Word Designators\7f440685
+Node: Modifiers\7f442445
+Node: Installing Bash\7f444256
+Node: Basic Installation\7f445393
+Node: Compilers and Options\7f449115
+Node: Compiling For Multiple Architectures\7f449856
+Node: Installation Names\7f451549
+Node: Specifying the System Type\7f453658
+Node: Sharing Defaults\7f454374
+Node: Operation Controls\7f455047
+Node: Optional Features\7f456005
+Node: Reporting Bugs\7f467223
+Node: Major Differences From The Bourne Shell\7f468498
+Node: GNU Free Documentation License\7f485348
+Node: Indexes\7f510525
+Node: Builtin Index\7f510979
+Node: Reserved Word Index\7f517806
+Node: Variable Index\7f520254
+Node: Function Index\7f537028
+Node: Concept Index\7f550812
 \1f
 End Tag Table
 
index c5e7e2b5ba7362747d87a82b1bbeb600eba9d140..75e291b19077f1fdb5f70ea2d03ef97b793c24cd 100644 (file)
@@ -8398,6 +8398,12 @@ has been set.
 If Bash receives a trapped signal while executing @code{read}, the trap
 handler executes and @code{read} returns an exit status greater than 128.
 
+@item
+The @code{printf} builting uses @code{double} (via @code{strtod}) to convert
+arguments corresponding to floating point conversion specifiers, instead of
+@code{long double} if it's available. The @samp{L} length modifier forces
+@code{printf} to use @code{long double} if it's available.
+
 @item
 Bash removes an exited background process's status from the list of such
 statuses after the @code{wait} builtin is used to obtain it.
index 78e22b8e40ede3c27679e3a805dad965cfa9277e..c04e2a7294fb5484c3ffbb04e12428b5eb17355e 100644 (file)
@@ -2,10 +2,10 @@
 Copyright (C) 1988-2022 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Thu Feb 24 14:43:35 EST 2022
+@set LASTCHANGE Mon Apr 11 17:04:12 EDT 2022
 
 @set EDITION 5.2
 @set VERSION 5.2
 
-@set UPDATED 24 February 2022
-@set UPDATED-MONTH February 2022
+@set UPDATED 11 April 2022
+@set UPDATED-MONTH April 2022
index e56240791f9510d078db01ac7d92480a82905891..f8eec5bbae65587560ea0a7aa57e75c31bdc8cdb 100644 (file)
 extern int errno;
 #endif
 
+#if defined (PRI_MACROS_BROKEN)
+#  undef PRIdMAX
+#endif
+
+#if !defined (PRIdMAX)
+#  if HAVE_LONG_LONG
+#    define PRIdMAX     "lld"
+#  else
+#    define PRIdMAX     "ld"
+#  endif
+#endif
+
 #if defined (HAVE_LONG_DOUBLE) && HAVE_DECL_STRTOLD && !defined(STRTOLD_BROKEN)
 typedef long double floatmax_t;
 #  define FLOATMAX_CONV "L"
index 44d148726993016c7d9a20f2713d3b163231217f..6f038d4508a457d8a52f24ab65a51a61cd5af4c7 100644 (file)
@@ -79,7 +79,7 @@ extern int errno;
 #  define O_NDELAY O_NONBLOCK  /* Posix style */
 #endif
 
-#if defined (HAVE_PSELECT)
+#if defined (HAVE_PSELECT) || defined (HAVE_SELECT)
 extern sigset_t _rl_orig_sigset;
 #endif
 
diff --git a/m4/strtoimax.m4 b/m4/strtoimax.m4
new file mode 100644 (file)
index 0000000..3098572
--- /dev/null
@@ -0,0 +1,35 @@
+dnl Copyright (C) 2022 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Make sure we replace strtoimax if we don't have a declaration
+dnl We can use this as a template for future function checks
+
+AC_DEFUN([BASH_FUNC_STRTOIMAX], [
+AC_MSG_CHECKING([for usable strtoimax])
+AC_CACHE_VAL(bash_cv_func_strtoimax,
+[
+  HAVE_STRTOIMAX=0 HAVE_DECL_STRTOIMAX=0
+
+  AC_CHECK_FUNCS([strtoimax])
+  AC_CHECK_DECLS([strtoimax])
+
+  if test "$ac_cv_func_strtoimax" = "yes" ; then
+    HAVE_STRTOIMAX=1
+  fi
+  if test "$ac_cv_have_decl_strtoimax" = "yes" ; then
+    HAVE_DECL_STRTOIMAX=1
+  fi
+
+  if test "$HAVE_STRTOIMAX" = 0 || test "$HAVE_DECL_STRTOIMAX" = 0 ; then
+    bash_cv_func_strtoimax=no REPLACE_STRTOIMAX=1
+  else
+    bash_cv_func_strtoimax=yes
+  fi
+])
+AC_MSG_RESULT($bash_cv_func_strtoimax)
+if test $bash_cv_func_strtoimax = yes; then
+AC_LIBOBJ(strtoimax)
+fi
+])
index 0debe3d8968426a6942d22aa4222ebb425ccb2a5..6fa5ffcca242914438e43b7e83ea8a591bf2cf68 100644 (file)
@@ -110,11 +110,11 @@ fr_FR_ISO_8859_1=(
 )
 
 # this locale causes problems all over the place
-if locale -a | grep -i '^fr_FR\.ISO8859.*1' >/dev/null ; then
+if locale -a | grep -i '^fr_FR\.ISO8859.*1$' >/dev/null ; then
        TestCodePage fr_FR.ISO8859-1 fr_FR_ISO_8859_1
 else
        echo "unicode1.sub: warning: you do not have the fr_FR.ISO8859-1 locale installed;" >&2
-       echo "unicode1.sub: that will cause some of these tests to fail." >&2
+       echo "unicode1.sub: that will cause some of these tests to be skipped." >&2
 fi