-n/-N/-d options
- read_builtin: call check_read_input instead of input_avail if we
have a zero timeout
- From a report by pourko@tutamail.com
+ Report from pourko@tutamail.com
+
+bashline.c
+ - bash_quote_filename: if the user supplies an opening double quote
+ and the word being completed contains a `$' or ``', make sure there
+ is a single match and it doesn't exist as a filename before setting
+ the quoting style to COMPLETE_DQUOTE2.
+ This is similar to the change from 8/22.
+ Report from Koichi Murase <myoga.murase@gmail.com>
+
+ 9/25
+ ----
+builtins/printf.def
+ - printwidestr: handle precision < 0 as an overflow return from
+ decodeint; don't adjust pr in this case so the string gets printed.
+ Same as fix to printstr from 7/8
+ Report from pourko@tutamail.com
+
+ 9/29
+ ----
+execute_cmd.c
+ - time_command: if we don't have gettimeofday or getrusage, and we're
+ using times(3), make sure we convert from seconds to CLK_TCKs
+ when assigning tbefore from shell_start_time (use get_clk_tck())
+ Report from pourko2@tutamail.com
+
+parse.y
+ - reset_parser: reset shell_eof_token to 0, rely on callers to restore
+ it if they need to
+ Report from Grisha Levit <grishalevit@gmail.com>
cs = COMPLETE_SQUOTE;
else if (*qcp == '"')
{
- if ((expchar = bash_check_expchar (s, 0, &nextch, &closer)) == '$' || expchar == '`')
+ if (((expchar = bash_check_expchar (s, 0, &nextch, &closer)) == '$' || expchar == '`') && rtype == SINGLE_MATCH && file_exists (s) == 0)
cs = COMPLETE_DQUOTE2;
else
cs = COMPLETE_DQUOTE;
pr = decodeint (&fmt, 1, -1);
/* pr < precision means we adjusted precision in printf_builtin
for the quoted string length (%Q), so we use the adjusted value */
+#if 1 /*TAG:bash-5.4 20250702 */
+ if (pr >= 0 && pr < precision)
+#else
if (pr < precision)
+#endif
pr = precision;
}
else
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
-.\" Last Change: Fri Sep 19 12:19:06 EDT 2025
+.\" Last Change: Wed Sep 24 09:35:41 EDT 2025
.\"
.\" For bash_builtins, strip all but "SHELL BUILTIN COMMANDS" section
.\" For rbash, strip all but "RESTRICTED SHELL" section
.ds zY \" empty
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
-.TH BASH 1 "2025 September 19" "GNU Bash 5.3"
+.TH BASH 1 "2025 September 24" "GNU Bash 5.3"
.\"
.ie \n(.g \{\
.ds ' \(aq
.IP
The sorting order of characters in range expressions,
and the characters included in the range,
-are determined by the current locale and the values of the
+are determined by the collating sequence of the
+current locale and the values of the
.SM
.B LC_COLLATE
or
.SM
.B LC_ALL
shell variables, if set.
+.IP
+For example, in the C locale,
+.B [a\-d]
+is equivalent to
+.BR [abcd] .
+Many locales sort characters in dictionary order, and in these locales
+.B [a\-d]
+is typically not equivalent to
+.BR [abcd] ;
+it might be equivalent to
+.B [aBbCcDd]
+or
+.BR [aAbBcCd] .
To obtain the traditional interpretation of range expressions, where
.B [a\-d]
is equivalent to
The sorting order of characters in range expressions,
and the characters included in the range,
-are determined by the current locale and the values of the
+are determined by the collating sequence of the
+current locale and the values of the
@env{LC_COLLATE} and @env{LC_ALL} shell variables, if set.
-For example, in the default C locale, @samp{[a-dx-z]} is equivalent to
+For example, in the default C locale,
+@samp{[a-dx-z]}
+is equivalent to
@samp{[abcdxyz]}.
Many locales sort characters in dictionary order, and in these locales
-@samp{[a-dx-z]} is typically not equivalent to @samp{[abcdxyz]};
-it might be equivalent to @samp{[aBbCcDdxYyZz]}, for example.
-To obtain
-the traditional interpretation of ranges in bracket expressions, you can
-force the use of the C locale by setting the @env{LC_COLLATE} or
-@env{LC_ALL} environment variable to the value @samp{C}, or enable the
+@samp{[a-dx-z]}
+is typically not equivalent to
+@samp{[abcdxyz]};
+it might be equivalent to
+@samp{[aBbCcDdxYyZz]}
+or
+@samp{[aAbBcCdxXyYz]}.
+To obtain the traditional interpretation of ranges in bracket expressions,
+you can force the use of the C locale by setting the
+@env{LC_COLLATE} or @env{LC_ALL}
+environment variables to the value @samp{C}, or enable the
@code{globasciiranges} shell option.
Within a bracket expression, @dfn{character classes} can be specified
Copyright (C) 1988-2025 Free Software Foundation, Inc.
@end ignore
-@set LASTCHANGE Fri Sep 19 12:19:29 EDT 2025
+@set LASTCHANGE Wed Sep 24 09:35:21 EDT 2025
@set EDITION 5.3
@set VERSION 5.3
-@set UPDATED 19 September 2025
+@set UPDATED 24 September 2025
@set UPDATED-MONTH September 2025
char *fltexpr_doc[] =
{
- "Evaluate floating-point arithmetic expression.",
+ "Evaluate a floating-point arithmetic expression.",
"",
"Evaluate EXPRESSION as a floating-point arithmetic expression and,",
"if the -p option is supplied, print the value to the standard output.",
"",
+ "Operators and precedence are similar to the let builtin (bitwise",
+ "operators and the modulus operator are not available). Calculations",
+ "are performed using C double-precision floating point values.",
+ "",
"Exit Status:",
"If the EXPRESSION evaluates to 0, the return status is 1; 0 otherwise.",
(char *)NULL
before = shellstart;
#else
before.tms_utime = before.tms_stime = before.tms_cutime = before.tms_cstime = 0;
- tbefore = shell_start_time;
+ tbefore = shell_start_time * get_clk_tck ();
#endif
}
simplecmd_lineno = line_number;
+ shell_eof_token = 0; /* no longer parsing command substitution */
+
current_token = '\n'; /* XXX */
last_read_token = '\n';
token_to_read = '\n';
exec /var/empty/nosuch
echo bad
) 2>/dev/null
-[ $? = 127 ] || echo FAIL: bad exit status $? at $LINENO
+r=$?
+[ $r = 127 ] || echo FAIL: bad exit status $r at $LINENO
unset FALSE
if [ -x /bin/false ]; then