---
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>
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
'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
#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));
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*/
/* 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)
{
#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;
}
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 ()
{
#! /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.
#
+
+
+
+
+
# codeset.m4 serial 5 (gettext-0.18.2)
;;
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
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 :
+{ 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
# 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)
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])
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)
fi
])
-AC_CHECK_DECLS(strtoimax)
AC_CHECK_DECLS(strtol)
AC_CHECK_DECLS(strtoll)
AC_CHECK_DECLS(strtoul)
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
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.
*************
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
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
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
'${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::).
$ 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:
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
'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
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
* 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)
* 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)
(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)
(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)
(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)
* 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)
* 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
\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
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.
*************
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
'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
\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
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.
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
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"
# 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
--- /dev/null
+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
+])
)
# 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