commit bash-20150619 snapshot

This commit is contained in:
Chet Ramey
2015-06-23 15:32:39 -04:00
parent bd6a350e7e
commit 05d9462c4b
98 changed files with 30712 additions and 22401 deletions
+493
View File
@@ -1,3 +1,496 @@
This document details the changes between this version, bash-4.4-alpha, and
the previous version, bash-4.3-release. [THROUGH 4/2015]
1. Changes to Bash
a. A bug that caused pipelines to be corrupted while running the DEBUG trap
was fixed.
b. A bug that accidentally omitted the `-R' unary operator from `test' was
fixed.
c. A bug that could cause the shell to not restore the terminal's process
group on shell exit was fixed.
d. Several changes were made to programmable completion to accommodate
assumptions made by the bash-completion package.
e. Bash no longer inhibits C-style escape processing ($'...') while performing
pattern substitution word expansions.
f. Fixed a bug that caused `return' executed from a trap handler to use the
wrong return status when one was not supplied as an argument.
g. In Posix mode, defining a function with the same name as a special
builtin is now an error, fatal only when the shell is not interactive.
h. Fixed a bug that caused compound array assignments to discard unset or null
variables used as subscripts, thereby making it appear as if the index was
not present.
i. Fixed a bug that caused extended glob patterns to incorrectly match
filenames with a leading `.'.
j. Fixed a bug involving sign extension when reallocating the input line
after a history expansion, causing segmentation faults.
k. Bash now does a better job at identifying syntax errors during word
completion and tailoring completion appropriately.
l. Bash now uses the current locale's decimal point in comamnd timing output.
m. Fixed a bug that caused segmentation faults while reading here documents if
PS2 contains a command substitution.
n. There are several changes to how $@ is expanded when unquoted but in a
context where word splitting is not performed (e.g., on the rhs of an
assignment or in a conditional command).
o. Bash now quotes command hash table entries that contain shell metacharacters
when displaying hash table contents.
p. Fixed a potential file descriptor leak when dup2() fails while performing a
redirection.
q. Fixed a bug that caused directory names evaluated during word completion to
be dequoted twice.
r. Fixed several bugs which could result in indirect variable expansion and
namerefs creating variables with invalid names or referencing variables
set to the empty string.
s. Fixed a bug that caused bash to not expand $0 in word expansions where it
should.
t. Fixed a bug that caused bash to perform process substitution if <(
appeared inside an arithmetic context.
u. Fixed a bug in extglob pattern parsing that caused slashes in the pattern
to be confused as directory names.
v. Fixed several bugs with treatment of invisible variables (variables with
attributes that are unset because they have never been assigned values).
w. Fixed a bug that caused the `read' builtin to not clean up readline's
state when using the -e and -t options together and the read timed out.
x. Fixed a bug that caused the shell to exit with the wrong (but non-zero)
value if a command was not found or was not executable.
y. Fixed a bug that caused the `time' reserved word to not be recognized as
such in all contexts where it should have been.
z. Fixed a bug that caused the shell to close process subsitution file
descriptors when executing a script without the `#!' leading line.
aa. Fixed a typo that caused the `compat42' shell option to set the wrong
compatibility level.
bb. The shell now handles process substitution commands with embedded
parentheses the same way as it does when parsing command substitution.
cc. Fixed a bug that caused nested pipelines and the `lastpipe' shell option
to produce core dumps.
dd. Fixed a bug that caused patterns containing `*' to match pathnames in cases
where slashes must be matched explicitly.
ee. Fixed a problem with patterns containing `:' in colon-separated variables
lik GLOBIGNORE.
ff. Fixed a bug that caused indirect variable expansion using indexed arrays to
always use index 0.
gg. Fixed a parsing problem that caused quoted newlines immediately following a
command substitution to be mishandled in certain cases.
hh. Fixed a potential buffer overflow on systems without locale_charset or the
bash replacement.
ii. Fixed a bug that caused background processes to modify the terminal's
process group under certain circumstances.
jj. Asynchronous commands now always set $? to 0 and are not affected by
whether or not the command's exit status is being inverted.
kk. Fixed a problem that caused a line ending with an escaped newline and
containingh a prior `eval' to be incorrectly parsed.
ll. Fixed an issue with programmable completion and `!' in extglob patterns
used as arguments to `compgen -X'.
mm. Word completion now treats the two-character token `>|' as requiring
filename expansion.
nn. Bash no longer expands tildes in $PATH elements while in Posix mode.
oo. Fixed a bug that caused bash to not clean up readline's state, including
the terminal settings, if it received a fatal signal while in a readline()
call (including `read -e' and `read -s').
pp. Fixed bug that caused importing shell functions from the environment to
execute additional commands following the function.
qq. Fixed a bug that caused the parser to return a lookahead character pushed
back by a previous call, even when on another line.
rr. Fixed a bug that caused many here-documents or many nested case statements
to overflow an internal stack.
ss. Changed the way bash encodes exported functions for inclusion in the
environment to avoid name collisions with valid variable names and to
indicate that they are exported functions.
tt. Fixed a bug that could result in an invalid memory access when processing
a here document delimited by end of file or end of string.
uu. Fixed a bug that could cause an invalid memory access if a command was run
before initializing the job control framework.
vv. When in Posix mode, bash prints shell function definitions as Posix
specifies them, without the leading `function' keyword.
ww. The variable attribute display builtins no longer display variables with
invalid names that were imported from the environment.
xx. Fixed a bug that could allow `break' or `continue' executed from shell
functions to affect loops running outside of the function.
yy. Fixed a bug that could cause a restricted shell to attempt to import shell
functions from the environment.
zz. The shell now allows double-quoted identifiers in arithmetic expressions.
aaa. Fixed a bug that could allow scalar variables subscripted using [@] in
word expansions to be incorrectly quoted.
bbb. The shell now makes sure to ignore SIGTSTP/SIGTTIN/SIGTTOU in child
processes if they were ignored at shell startup, even if job control is
in effect.
ccc. Fixed a bug that could cause $* to be split on spaces when IFS is set to
the empty string.
ddd. Posix says that expanding $* in a pattern context where the expansion is
double-quoted should not treat $* as if it were double quoted.
eee. Bash now restores getopts' internal state between calls to getopts even if
a shell function declares a local copy of OPTIND.
fff. Fixed a bug that could cause `history -r' or `history -n' to read identical
lines from the history file more than once.
ggg. The commands executed by `bind -x' now redisplay at most the final line
of a multi-line prompt, and those commands may return 124 to indicate that
the entire prompt should be redrawn.
hhh. Fixed a bug that could cause `mapfile' to create variables with invalid
names.
iii. The shell only goes into debugging mode when --debugger is supplied if
the debugger initialization file is present.
jjj. Fixed a bug that disallowed an assignment to (implicit) subscript 0 of an
existing array in a declare command that set the readonly attribute.
kkk. Fixed a bug that inadvertently allowed assignments to FUNCNAME to disable
its special status.
lll. Appending to an existing array variable using the compound assignment
syntax (var+=(aaa)) should not affect assignments to existing subscripts
appearing in the compound assignment.
mmm. Fixed a bug that could cause the shell to crash when a variable with a
null value was passed in the temporary environment and the variable's
attributes are modified using `declare' while performing a redirection.
nnn. Fixed a bug in printf so that a missing precision specifier after a `.'
is treated as 0.
ooo. Fixed a bug that attempted to use the internal command timing to time
pipeline components if the pipeline elements are separated by newlines.
ppp. Fixed a bug that caused `declare -al foo=(ONE TWO THREE)' to not lowercase
the values on assignment.
qqq. Bash does a better job of determining whether or not files are executable
when running on Windows, since the X_OK flag to access(2) is not supported.
rrr. Fixed a bug that caused some of the shell's internal traps (e.g., ERR) to
be interrupted (and leave incorrect state) by pending SIGINTs.
sss. Fixed a bug in the bash interface to history expansion to avoid attempting
expansion if the history expansion character occurs in a command
substitution.
ttt. Fixed a bug that caused the select command to crash if the REPLY variable
ends up empty (e.g., if it's made readonly)
uuu. Bash handles backslash-quoting of multibyte characters better when quoting
output that is intended to be reused.
vvv. System-specific changes for: Windows, Cygwin.
www. Fixes for upper and lower-casing multibyte characters, some locales have
characters whose upper and lowercase versions have different numbers of
bytes.
xxx. Fixed a bug that caused the ERR trap in a shell function to have the
right value for $LINENO.
yyy. Fixed a bug that resulted in incorrect quoting of regexps for the =~
operator when an open brace appears without a close brace.
zzz. Fixed a bug in the array unset operation that caused it to attempt to
parse embedded single and double quotes.
aaaa. Fixed a bug that caused $* to not expand with the first character of
$IFS as a separator in a context where word splitting will not take
place.
bbbb. Fixed two bugs that could cause the shell to dereference a null pointer
while attempting to print an error message from arithmetic expansion.
cccc. Fixed a bug that resulted in short-circuited evaluation when reading
commands from a string ending in an unquoted backslash, or when sourcing
a file that ends with an unquoted backslash.
dddd. Fixed a bug that resulted in the no-fork optimization not cleaning up
any FIFOs created by process substitution.
eeee. If the -T option is not set, allow the source builtin and shell functions
to set a DEBUG trap that persists after the sourced file or function
returns, instead of restoring the old (unset) value unconditionally.
ffff. Fixed a bug that caused redirections to not be undone on some syntax
errors, e.g., when parsing a command substitution.
gggg. Bash only adds asynchronous commands to the table of background pids
whose status it remembers, to avoid it growing too large during scripts
that create and reap large numbers of child processes.
hhhh. Bash now checks whether or not a shell script argument is a directory
before trying to open it; Posix says implementations may allow open(2)
on a directory.
iiii. Fixed a bug that could cause the shell to set the terminal's process
group to a background process group when running as part of a pipeline.
jjjj. Made a few changes to strings to avoid possible potential negative effects
caused by malicious translations.
kkkk. Fixed a bug that caused the `unset' builtin to continue to treat its
arguments as functions after unsetting a function when invoked with no
options.
llll. Fixed a bug that would not replace empty strings using pattern
substitution even if the pattern matched the empty string.
mmmm. Fixed a bug with word completion that prevented some characters from
being backslash-quoted (backquote, dollar sign).
nnnn. Fixed a bug that prevented a command from the history re-executed by the
`fc' builtin from setting verbose mode.
oooo. Fixed a bug that caused the shell to not enable and disable function
tracing with changes to the `extdebug' shell option.
pppp. Fixed a bug that caused assignments to nameref variables pointing to
unset variables with attributes but no values to create variables with
incorrect names.
qqqq. Fixed a bug that caused `unset' on nameref variables (without -n) to
unset the wrong variable under certain circumstances.
rrrr. Fixed a bug that caused close braces occurring in brace expansions within
command substitutions to incorrectly terminate parameter expansions.
ssss. Fixed a bug that caused `command -p' to temporarily alter $PATH.
tttt. Fixed a bug that caused interactive shells compiled without job control
to return incorrect status values for child processes when running a
single command that creates enough children to use the entire PID space.
uuuu. `esac' should not be recognized as a reserved word when it appears as the
second or later pattern in a case statement pattern list.
2. Changes to Readline
a. A bug that caused vi-mode `.' to be unable to redo `c', `d', and `y'
commands with modifiers was fixed.
b. Fixed a bug that caused callback mode to dump core when reading a
multiple-key sequence (e.g., arrow keys).
c. Fixed a bug that caused the redisplay code to erase some of the line when
using horizontal scrolling with incremental search.
d. Readline's input handler now performs signal processing if read(2) is
interrupted by SIGALRM or SIGVTALRM.
e. Fixed a problem with revert-all-at-newline freeing freed memory.
f. Clarified the documentation for the history_quotes_inhibit_expansion
variable to note that it inhibits scanning for the history comment
character and that it only affects double-quoted strings.
g. Fixed an off-by-one error in the prompt printed when performing searches.
h. Use pselect(2), if available, to wait for input before calling read(2), so
a SIGWINCH can interrupt it, since it doesn't interrupt read(2).
i. Some memory leaks caused by signals interrupting filename completion have
been fixed.
j. Reading EOF twice on a non-empty line causes EOF to be returned, rather
than the partial line. This can cause partial lines to be executed on
SIGHUP, for example.
k. Fixed a bug concerning deleting multibyte characters from the search
string while performing an incremental search.
l. Fixed a bug with tilde expanding directory names in filename completion.
m. Fixed a bug that did not allow binding sequences beginning with a `\'.
n. Fixed a redisplay bug involving incorrect line wrapping when the prompt
contains a multibyte character in the last screen column.
o. Fixed a bug that caused history expansion to disregard characters that are
documented to delimit a history event specifier without requiring `:'.
p. Fixed a bug that could cause reading past the end of a string when reading
the value when binding the set of isearch terminators.
3. New Features in Bash
a. There is now a settable configuration #define that will cause the shell
to exit if the shell is running setuid without the -p option and setuid
to the real uid fails.
b. Command and process substitutions now turn off the `-v' option when
executing, as other shells seem to do.
c. The default value for the `checkhash' shell option may now be set at
compile time with a #define.
d. The `mapfile' builtin now has a -d option to use an arbitrary character
as the record delimiter, and a -t option to strip the delimiter as
supplied with -d.
e. The maximum number of nested recursive calls to `eval' is now settable in
config-top.h; the default is no limit.
f. The `-p' option to declare and similar builtins will display attributes for
named variables even when those variables have not been assigned values
(which are technically unset).
g. The maximum number of nested recursive calls to `source' is now settable
in config-top.h; the default is no limit.
h. All builtin commands recognize the `--help' option and print a usage
summary.
i. Bash does not allow function names containing `/' and `=' to be exported.
j. The `ulimit' builtin has new -k (kqueues) and -P (pseudoterminals) options.
k. The shell now allows `time ; othercommand' to time null commands.
l. There is a new `--enable-function-import' configuration option to allow
importing shell functions from the environment; import is enabled by
default.
m. `printf -v var ""' will now set `var' to the empty string, as if `var=""'
had been executed.
n. GLOBIGNORE, the pattern substitution word expansion, and programmable
completion match filtering now honor the value of the `nocasematch' option.
o. There is a new ${parameter@spec} family of operators to transform the
value of `parameter'.
p. Bash no longer attempts to perform compound assignment if a variable on the
rhs of an assignment statement argument to `declare' has the form of a
compound assignment (e.g., w='(word)' ; declare foo=$w); compound
assignments are accepted if the variable was already declared as an array,
but with a warning.
q. The declare builtin no longer displays array variables using the compound
assignment syntax with quotes; that will generate warnings when re-used as
input, and isn't necessary.
r. Executing the rhs of && and || will no longer cause the shell to fork if
it's not necessary.
s. The `local' builtin takes a new argument: `-', which will cause it to save
and the single-letter shell options and restore their previous values at
function return.
t. `complete' and `compgen' have a new `-o nosort' option, which forces
readline to not sort the completion matches.
u. Bash now allows waiting for the most recent process substitution, since it
appears as $!.
v. The `unset' builtin now unsets a scalar variable if it is subscripted with
a `0', analogous to the ${var[0]} expansion.
w. `set -i' is no longer valid, as in other shells.
x. BASH_SUBSHELL is now updated for process substitution and group commands
in pipelines, and is available with the same value when running any exit
trap.
y. Bash now checks $INSIDE_EMACS as well as $EMACS when deciding whether or
not bash is being run in a GNU Emacs shell window.
z. Bash now treats SIGINT received when running a non-builtin command in a
loop the way it has traditionally treated running a builtin command:
running any trap handler and breaking out of the loop.
aa. New variable: EXECIGNORE; a colon-separate list of patterns that will
cause matching filenames to be ignored when searching for commands.
bb. Aliases whose value ends in a shell metacharacter now expand in a way to
allow them to be `pasted' to the next token, which can potentially change
the meaning of a command (e.g., turning `&' into `&&').
4. New Features in Readline
a. The history truncation code now uses the same error recovery mechansim as
the history writing code, and restores the old version of the history file
on error. The error recovery mechanism handles symlinked history files.
b. There is a new bindable variable, `enable-bracketed-paste', which enables
support for a terminal's bracketed paste mode.
c. The editing mode indicators can now be strings and are user-settable
(new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string'
variables). Mode strings can contain invisible character sequences.
Setting mode strings to null strings restores the defaults.
d. Prompt expansion adds the mode string to the last line of a multi-line
prompt (one with embedded newlines).
e. There is a new bindable variable, `colored-completion-prefix', which, if
set, causes the common prefix of a set of possible completions to be
displayed in color.
f. There is a new bindable command `vi-yank-pop', a vi-mode version of emacs-
mode yank-pop.
g. The redisplay code underwent several efficiency improvements for multibyte
locales.
h. The insert-char function attempts to batch-insert all pending typeahead
that maps to self-insert, as long as it is coming from the terminal.
i. rl_callback_sigcleanup: a new application function that can clean up and
unset any state set by readline's callback mode. Intended to be used
after a signal.
------------------------------------------------------------------------------
This document details the changes between this version, bash-4.3-release, and
the previous version, bash-4.3-rc2.
+491
View File
@@ -0,0 +1,491 @@
This document details the changes between this version, bash-4.4-alpha, and
the previous version, bash-4.3-release.
1. Changes to Bash
a. A bug that caused pipelines to be corrupted while running the DEBUG trap
was fixed.
b. A bug that accidentally omitted the `-R' unary operator from `test' was
fixed.
c. A bug that could cause the shell to not restore the terminal's process
group on shell exit was fixed.
d. Several changes were made to programmable completion to accommodate
assumptions made by the bash-completion package.
e. Bash no longer inhibits C-style escape processing ($'...') while performing
pattern substitution word expansions.
f. Fixed a bug that caused `return' executed from a trap handler to use the
wrong return status when one was not supplied as an argument.
g. In Posix mode, defining a function with the same name as a special
builtin is now an error, fatal only when the shell is not interactive.
h. Fixed a bug that caused compound array assignments to discard unset or null
variables used as subscripts, thereby making it appear as if the index was
not present.
i. Fixed a bug that caused extended glob patterns to incorrectly match
filenames with a leading `.'.
j. Fixed a bug involving sign extension when reallocating the input line
after a history expansion, causing segmentation faults.
k. Bash now does a better job at identifying syntax errors during word
completion and tailoring completion appropriately.
l. Bash now uses the current locale's decimal point in comamnd timing output.
m. Fixed a bug that caused segmentation faults while reading here documents if
PS2 contains a command substitution.
n. There are several changes to how $@ is expanded when unquoted but in a
context where word splitting is not performed (e.g., on the rhs of an
assignment or in a conditional command).
o. Bash now quotes command hash table entries that contain shell metacharacters
when displaying hash table contents.
p. Fixed a potential file descriptor leak when dup2() fails while performing a
redirection.
q. Fixed a bug that caused directory names evaluated during word completion to
be dequoted twice.
r. Fixed several bugs which could result in indirect variable expansion and
namerefs creating variables with invalid names or referencing variables
set to the empty string.
s. Fixed a bug that caused bash to not expand $0 in word expansions where it
should.
t. Fixed a bug that caused bash to perform process substitution if <(
appeared inside an arithmetic context.
u. Fixed a bug in extglob pattern parsing that caused slashes in the pattern
to be confused as directory names.
v. Fixed several bugs with treatment of invisible variables (variables with
attributes that are unset because they have never been assigned values).
w. Fixed a bug that caused the `read' builtin to not clean up readline's
state when using the -e and -t options together and the read timed out.
x. Fixed a bug that caused the shell to exit with the wrong (but non-zero)
value if a command was not found or was not executable.
y. Fixed a bug that caused the `time' reserved word to not be recognized as
such in all contexts where it should have been.
z. Fixed a bug that caused the shell to close process subsitution file
descriptors when executing a script without the `#!' leading line.
aa. Fixed a typo that caused the `compat42' shell option to set the wrong
compatibility level.
bb. The shell now handles process substitution commands with embedded
parentheses the same way as it does when parsing command substitution.
cc. Fixed a bug that caused nested pipelines and the `lastpipe' shell option
to produce core dumps.
dd. Fixed a bug that caused patterns containing `*' to match pathnames in cases
where slashes must be matched explicitly.
ee. Fixed a problem with patterns containing `:' in colon-separated variables
lik GLOBIGNORE.
ff. Fixed a bug that caused indirect variable expansion using indexed arrays to
always use index 0.
gg. Fixed a parsing problem that caused quoted newlines immediately following a
command substitution to be mishandled in certain cases.
hh. Fixed a potential buffer overflow on systems without locale_charset or the
bash replacement.
ii. Fixed a bug that caused background processes to modify the terminal's
process group under certain circumstances.
jj. Asynchronous commands now always set $? to 0 and are not affected by
whether or not the command's exit status is being inverted.
kk. Fixed a problem that caused a line ending with an escaped newline and
containingh a prior `eval' to be incorrectly parsed.
ll. Fixed an issue with programmable completion and `!' in extglob patterns
used as arguments to `compgen -X'.
mm. Word completion now treats the two-character token `>|' as requiring
filename expansion.
nn. Bash no longer expands tildes in $PATH elements while in Posix mode.
oo. Fixed a bug that caused bash to not clean up readline's state, including
the terminal settings, if it received a fatal signal while in a readline()
call (including `read -e' and `read -s').
pp. Fixed bug that caused importing shell functions from the environment to
execute additional commands following the function.
qq. Fixed a bug that caused the parser to return a lookahead character pushed
back by a previous call, even when on another line.
rr. Fixed a bug that caused many here-documents or many nested case statements
to overflow an internal stack.
ss. Changed the way bash encodes exported functions for inclusion in the
environment to avoid name collisions with valid variable names and to
indicate that they are exported functions.
tt. Fixed a bug that could result in an invalid memory access when processing
a here document delimited by end of file or end of string.
uu. Fixed a bug that could cause an invalid memory access if a command was run
before initializing the job control framework.
vv. When in Posix mode, bash prints shell function definitions as Posix
specifies them, without the leading `function' keyword.
ww. The variable attribute display builtins no longer display variables with
invalid names that were imported from the environment.
xx. Fixed a bug that could allow `break' or `continue' executed from shell
functions to affect loops running outside of the function.
yy. Fixed a bug that could cause a restricted shell to attempt to import shell
functions from the environment.
zz. The shell now allows double-quoted identifiers in arithmetic expressions.
aaa. Fixed a bug that could allow scalar variables subscripted using [@] in
word expansions to be incorrectly quoted.
bbb. The shell now makes sure to ignore SIGTSTP/SIGTTIN/SIGTTOU in child
processes if they were ignored at shell startup, even if job control is
in effect.
ccc. Fixed a bug that could cause $* to be split on spaces when IFS is set to
the empty string.
ddd. Posix says that expanding $* in a pattern context where the expansion is
double-quoted should not treat $* as if it were double quoted.
eee. Bash now restores getopts' internal state between calls to getopts even if
a shell function declares a local copy of OPTIND.
fff. Fixed a bug that could cause `history -r' or `history -n' to read identical
lines from the history file more than once.
ggg. The commands executed by `bind -x' now redisplay at most the final line
of a multi-line prompt, and those commands may return 124 to indicate that
the entire prompt should be redrawn.
hhh. Fixed a bug that could cause `mapfile' to create variables with invalid
names.
iii. The shell only goes into debugging mode when --debugger is supplied if
the debugger initialization file is present.
jjj. Fixed a bug that disallowed an assignment to (implicit) subscript 0 of an
existing array in a declare command that set the readonly attribute.
kkk. Fixed a bug that inadvertently allowed assignments to FUNCNAME to disable
its special status.
lll. Appending to an existing array variable using the compound assignment
syntax (var+=(aaa)) should not affect assignments to existing subscripts
appearing in the compound assignment.
mmm. Fixed a bug that could cause the shell to crash when a variable with a
null value was passed in the temporary environment and the variable's
attributes are modified using `declare' while performing a redirection.
nnn. Fixed a bug in printf so that a missing precision specifier after a `.'
is treated as 0.
ooo. Fixed a bug that attempted to use the internal command timing to time
pipeline components if the pipeline elements are separated by newlines.
ppp. Fixed a bug that caused `declare -al foo=(ONE TWO THREE)' to not lowercase
the values on assignment.
qqq. Bash does a better job of determining whether or not files are executable
when running on Windows, since the X_OK flag to access(2) is not supported.
rrr. Fixed a bug that caused some of the shell's internal traps (e.g., ERR) to
be interrupted (and leave incorrect state) by pending SIGINTs.
sss. Fixed a bug in the bash interface to history expansion to avoid attempting
expansion if the history expansion character occurs in a command
substitution.
ttt. Fixed a bug that caused the select command to crash if the REPLY variable
ends up empty (e.g., if it's made readonly)
uuu. Bash handles backslash-quoting of multibyte characters better when quoting
output that is intended to be reused.
vvv. System-specific changes for: Windows, Cygwin.
www. Fixes for upper and lower-casing multibyte characters, some locales have
characters whose upper and lowercase versions have different numbers of
bytes.
xxx. Fixed a bug that caused the ERR trap in a shell function to have the
right value for $LINENO.
yyy. Fixed a bug that resulted in incorrect quoting of regexps for the =~
operator when an open brace appears without a close brace.
zzz. Fixed a bug in the array unset operation that caused it to attempt to
parse embedded single and double quotes.
aaaa. Fixed a bug that caused $* to not expand with the first character of
$IFS as a separator in a context where word splitting will not take
place.
bbbb. Fixed two bugs that could cause the shell to dereference a null pointer
while attempting to print an error message from arithmetic expansion.
cccc. Fixed a bug that resulted in short-circuited evaluation when reading
commands from a string ending in an unquoted backslash, or when sourcing
a file that ends with an unquoted backslash.
dddd. Fixed a bug that resulted in the no-fork optimization not cleaning up
any FIFOs created by process substitution.
eeee. If the -T option is not set, allow the source builtin and shell functions
to set a DEBUG trap that persists after the sourced file or function
returns, instead of restoring the old (unset) value unconditionally.
ffff. Fixed a bug that caused redirections to not be undone on some syntax
errors, e.g., when parsing a command substitution.
gggg. Bash only adds asynchronous commands to the table of background pids
whose status it remembers, to avoid it growing too large during scripts
that create and reap large numbers of child processes.
hhhh. Bash now checks whether or not a shell script argument is a directory
before trying to open it; Posix says implementations may allow open(2)
on a directory.
iiii. Fixed a bug that could cause the shell to set the terminal's process
group to a background process group when running as part of a pipeline.
jjjj. Made a few changes to strings to avoid possible potential negative effects
caused by malicious translations.
kkkk. Fixed a bug that caused the `unset' builtin to continue to treat its
arguments as functions after unsetting a function when invoked with no
options.
llll. Fixed a bug that would not replace empty strings using pattern
substitution even if the pattern matched the empty string.
mmmm. Fixed a bug with word completion that prevented some characters from
being backslash-quoted (backquote, dollar sign).
nnnn. Fixed a bug that prevented a command from the history re-executed by the
`fc' builtin from setting verbose mode.
oooo. Fixed a bug that caused the shell to not enable and disable function
tracing with changes to the `extdebug' shell option.
pppp. Fixed a bug that caused assignments to nameref variables pointing to
unset variables with attributes but no values to create variables with
incorrect names.
qqqq. Fixed a bug that caused `unset' on nameref variables (without -n) to
unset the wrong variable under certain circumstances.
rrrr. Fixed a bug that caused close braces occurring in brace expansions within
command substitutions to incorrectly terminate parameter expansions.
ssss. Fixed a bug that caused `command -p' to temporarily alter $PATH.
tttt. Fixed a bug that caused interactive shells compiled without job control
to return incorrect status values for child processes when running a
single command that creates enough children to use the entire PID space.
uuuu. `esac' should not be recognized as a reserved word when it appears as the
second or later pattern in a case statement pattern list.
2. Changes to Readline
a. A bug that caused vi-mode `.' to be unable to redo `c', `d', and `y'
commands with modifiers was fixed.
b. Fixed a bug that caused callback mode to dump core when reading a
multiple-key sequence (e.g., arrow keys).
c. Fixed a bug that caused the redisplay code to erase some of the line when
using horizontal scrolling with incremental search.
d. Readline's input handler now performs signal processing if read(2) is
interrupted by SIGALRM or SIGVTALRM.
e. Fixed a problem with revert-all-at-newline freeing freed memory.
f. Clarified the documentation for the history_quotes_inhibit_expansion
variable to note that it inhibits scanning for the history comment
character and that it only affects double-quoted strings.
g. Fixed an off-by-one error in the prompt printed when performing searches.
h. Use pselect(2), if available, to wait for input before calling read(2), so
a SIGWINCH can interrupt it, since it doesn't interrupt read(2).
i. Some memory leaks caused by signals interrupting filename completion have
been fixed.
j. Reading EOF twice on a non-empty line causes EOF to be returned, rather
than the partial line. This can cause partial lines to be executed on
SIGHUP, for example.
k. Fixed a bug concerning deleting multibyte characters from the search
string while performing an incremental search.
l. Fixed a bug with tilde expanding directory names in filename completion.
m. Fixed a bug that did not allow binding sequences beginning with a `\'.
n. Fixed a redisplay bug involving incorrect line wrapping when the prompt
contains a multibyte character in the last screen column.
o. Fixed a bug that caused history expansion to disregard characters that are
documented to delimit a history event specifier without requiring `:'.
p. Fixed a bug that could cause reading past the end of a string when reading
the value when binding the set of isearch terminators.
3. New Features in Bash
a. There is now a settable configuration #define that will cause the shell
to exit if the shell is running setuid without the -p option and setuid
to the real uid fails.
b. Command and process substitutions now turn off the `-v' option when
executing, as other shells seem to do.
c. The default value for the `checkhash' shell option may now be set at
compile time with a #define.
d. The `mapfile' builtin now has a -d option to use an arbitrary character
as the record delimiter, and a -t option to strip the delimiter as
supplied with -d.
e. The maximum number of nested recursive calls to `eval' is now settable in
config-top.h; the default is no limit.
f. The `-p' option to declare and similar builtins will display attributes for
named variables even when those variables have not been assigned values
(which are technically unset).
g. The maximum number of nested recursive calls to `source' is now settable
in config-top.h; the default is no limit.
h. All builtin commands recognize the `--help' option and print a usage
summary.
i. Bash does not allow function names containing `/' and `=' to be exported.
j. The `ulimit' builtin has new -k (kqueues) and -P (pseudoterminals) options.
k. The shell now allows `time ; othercommand' to time null commands.
l. There is a new `--enable-function-import' configuration option to allow
importing shell functions from the environment; import is enabled by
default.
m. `printf -v var ""' will now set `var' to the empty string, as if `var=""'
had been executed.
n. GLOBIGNORE, the pattern substitution word expansion, and programmable
completion match filtering now honor the value of the `nocasematch' option.
o. There is a new ${parameter@spec} family of operators to transform the
value of `parameter'.
p. Bash no longer attempts to perform compound assignment if a variable on the
rhs of an assignment statement argument to `declare' has the form of a
compound assignment (e.g., w='(word)' ; declare foo=$w); compound
assignments are accepted if the variable was already declared as an array,
but with a warning.
q. The declare builtin no longer displays array variables using the compound
assignment syntax with quotes; that will generate warnings when re-used as
input, and isn't necessary.
r. Executing the rhs of && and || will no longer cause the shell to fork if
it's not necessary.
s. The `local' builtin takes a new argument: `-', which will cause it to save
and the single-letter shell options and restore their previous values at
function return.
t. `complete' and `compgen' have a new `-o nosort' option, which forces
readline to not sort the completion matches.
u. Bash now allows waiting for the most recent process substitution, since it
appears as $!.
v. The `unset' builtin now unsets a scalar variable if it is subscripted with
a `0', analogous to the ${var[0]} expansion.
w. `set -i' is no longer valid, as in other shells.
x. BASH_SUBSHELL is now updated for process substitution and group commands
in pipelines, and is available with the same value when running any exit
trap.
y. Bash now checks $INSIDE_EMACS as well as $EMACS when deciding whether or
not bash is being run in a GNU Emacs shell window.
z. Bash now treats SIGINT received when running a non-builtin command in a
loop the way it has traditionally treated running a builtin command:
running any trap handler and breaking out of the loop.
aa. New variable: EXECIGNORE; a colon-separate list of patterns that will
cause matching filenames to be ignored when searching for commands.
bb. Aliases whose value ends in a shell metacharacter now expand in a way to
allow them to be `pasted' to the next token, which can potentially change
the meaning of a command (e.g., turning `&' into `&&').
4. New Features in Readline
a. The history truncation code now uses the same error recovery mechansim as
the history writing code, and restores the old version of the history file
on error. The error recovery mechanism handles symlinked history files.
b. There is a new bindable variable, `enable-bracketed-paste', which enables
support for a terminal's bracketed paste mode.
c. The editing mode indicators can now be strings and are user-settable
(new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string'
variables). Mode strings can contain invisible character sequences.
Setting mode strings to null strings restores the defaults.
d. Prompt expansion adds the mode string to the last line of a multi-line
prompt (one with embedded newlines).
e. There is a new bindable variable, `colored-completion-prefix', which, if
set, causes the common prefix of a set of possible completions to be
displayed in color.
f. There is a new bindable command `vi-yank-pop', a vi-mode version of emacs-
mode yank-pop.
g. The redisplay code underwent several efficiency improvements for multibyte
locales.
h. The insert-char function attempts to batch-insert all pending typeahead
that maps to self-insert, as long as it is coming from the terminal.
i. rl_callback_sigcleanup: a new application function that can clean up and
unset any state set by readline's callback mode. Intended to be used
after a signal.
+12 -3
View File
@@ -2,9 +2,9 @@ Compatibility with previous versions
====================================
This document details the incompatibilities between this version of bash,
bash-4.3, and the previous widely-available versions, bash-3.x (which is
still the `standard' version for Mac OS X), 4.0/4.1 (which are still
standard on a few Linux distributions), and bash-4.2, the current
bash-4.4, and the previous widely-available versions, bash-3.x (which is
still the `standard' version for Mac OS X), 4.1/4.2 (which are still
standard on a few Linux distributions), and bash-4.3, the current
widely-available version. These were discovered by users of bash-2.x
through 4.x, so this list is not comprehensive. Some of these
incompatibilities occur between the current version and versions 2.0 and
@@ -389,6 +389,9 @@ to this variable (a decimal version number like 4.2, or an integer
corresponding to the compatNN option, like 42) determines the compatibility
level.
Bash-4.4 has begun deprecating older compatibility levels. Eventually, the
options will be removed in favor of the BASH_COMPAT variable.
compat31 set
- the < and > operators to the [[ command do not consider the current
locale when comparing strings; they use ASCII ordering
@@ -417,6 +420,12 @@ compat41 set
compat42 set
- the replacement string in double-quoted pattern substitution is not
run through quote removal, as in previous versions
compat43 set
- the shell does not print a warning message if an attempt is made to
use a quoted compound assignment as an argument to declare
(declare -a foo='(1 2)')
-------------------------------------------------------------------------------
Copying and distribution of this file, with or without modification,
+152 -125
View File
@@ -6731,8 +6731,8 @@ builtins/read.def
----
builtins/read.def
- termsave: now global to file so other functions can use it
- read_tty_cleanup: if tty_modified is non-zero, call ttycleanup to restore
old terminal settings and turn off tty_modified
- read_tty_cleanup: if tty_modified is non-zero, call ttycleanup to
restore old terminal settings and turn off tty_modified
sig.c
- termsig_handler: call read_tty_cleanup if currently executing read
@@ -6742,8 +6742,8 @@ sig.c
9/11
----
general.c
- printable_filename: general function to return a printable representation
of a string (presumed to be a filename)
- printable_filename: general function to return a printable
representation of a string (presumed to be a filename)
general.h
- extern declaration for printable_filename
@@ -6889,7 +6889,7 @@ jobs.c
parse.y
- xparse_dolparen: don't set token_to_read to newline after calling
parse_string() and cleaning up when the shell is not interactive. This
makes the parser thing it's ok to read new commands even if it's not in
makes the parser think it's ok to read new commands even if it's not in
a state where that should be possible. Underlying fix for bug reported
by Michal Zalewski <lcamtuf@coredump.cx> and designated CVE-6278
- parser_remaining_input: new function, returns the portion of
@@ -6907,9 +6907,9 @@ builtins/evalstring.c
current_input_line_state. Part of fix for CVE-2014-6278
variables.c
- initialize_shell_variables: if we don't call parse_and_execute, free the
temporary string, since parse_and_execute won't. Report and fix from
Eric Kobrin <ekobrin@akamai.com>
- initialize_shell_variables: if we don't call parse_and_execute, free
the temporary string, since parse_and_execute won't. Report and fix
from Eric Kobrin <ekobrin@akamai.com>
10/4
----
@@ -6938,7 +6938,8 @@ builtins/setattr.def
- set_or_show_attributes: don't show identifiers that are invisible
and imported from the environment, since that combination of
attributes means that the imported variable is not a valid shell
identifier. Report from Stephane Chazelas <stephane.chazelas@gmail.com>
identifier. Report from Stephane Chazelas
<stephane.chazelas@gmail.com>
10/8
----
@@ -6961,38 +6962,40 @@ execute_cmd.c
10/13
-----
doc/Makefile.in
- bashref.pdf: create using texi2dvi --pdf rather than postprocessing the
dvi file, so we have PDF bookmarks and links. Fix from
- bashref.pdf: create using texi2dvi --pdf rather than postprocessing
the dvi file, so we have PDF bookmarks and links. Fix from
Siep Kroonenberg <siepo@cybercomm.nl>
10/14
-----
subst.h
- Q_ARITH: new quoting flag. Semantics are per Posix's spec for arithmetic
expansion: act as if string is quoted, but don't treat double quotes
specially (in this case, they will be removed by quote removal)
- Q_ARRAYSUB: new quoting flag, indicates we are expanding an indexed array
subscript
- Q_ARITH: new quoting flag. Semantics are per Posix's spec for
arithmetic expansion: act as if string is quoted, but don't treat
double quotes specially (in this case, they will be removed by quote
removal)
- Q_ARRAYSUB: new quoting flag, indicates we are expanding an indexed
array subscript
subst.c
- expand_arith_string: if we are not expanding the string, but we saw a quote
with Q_ARITH specified as one of quoting flags, perform quote removal even
if Q_DOUBLE_QUOTES is specified
- param_expand: change calls to expand_arith_string for $[ and $(( cases to
specify Q_ARITH. Now $(( "$x" )) and $(( "x" )) work if x has a value that
evaluates to a valid number, as Posix specifies
- expand_word_internal: add test for quoted&Q_ARITH to the tilde case, so we
continue to perform tilde expansion in arithmetic contexts
- expand_word_internal: if quoted&Q_ARITH, continue processing when we see a
`"', acting as if the double quote isn't present (already Q_DOUBLE_QUOTED)
- expand_arith_string: if we are not expanding the string, but we saw
a quote with Q_ARITH specified as one of quoting flags, perform
quote removal even if Q_DOUBLE_QUOTES is specified
- param_expand: change calls to expand_arith_string for $[ and $((
cases to specify Q_ARITH. Now $(( "$x" )) and $(( "x" )) work if x
has a value that evaluates to a valid number, as Posix specifies
- expand_word_internal: add test for quoted&Q_ARITH to the tilde case,
so we continue to perform tilde expansion in arithmetic contexts
- expand_word_internal: if quoted&Q_ARITH, continue processing when we
see a `"', acting as if the double quote isn't present (already
Q_DOUBLE_QUOTED)
arrayfunc.c
- array_expand_index: pass Q_DOUBLE_QUOTED|Q_ARITH|Q_ARRAYSUB as quoted argument
in call to expand_arith_string. This inhibits word splitting
(Q_DOUBLE_QUOTED) while discarding double quotes (Q_ARITH), identical to the
quote flags passed while expanding $(( )) and $[ ]. Q_ARRAYSUB reserved for
future use. Fixes problem reported by Stephane Chazelas
<stephane.chazelas@gmail.com>
- array_expand_index: pass Q_DOUBLE_QUOTED|Q_ARITH|Q_ARRAYSUB as quoted
argument in call to expand_arith_string. This inhibits word
splitting (Q_DOUBLE_QUOTED) while discarding double quotes (Q_ARITH),
identical to the quote flags passed while expanding $(( )) and $[ ].
Q_ARRAYSUB reserved for future use. Fixes problem reported by
Stephane Chazelas <stephane.chazelas@gmail.com>
10/16
-----
@@ -7116,11 +7119,13 @@ execute_cmd.c
function body iff the funtion declared a local copy of OPTIND
- execute_function: save sh_getopt state before executing function body
- execute_function: note in getopt_state->flags whether or not the
function declared a local copy of OPTIND; used by maybe_restore_getopt_state
function declared a local copy of OPTIND; used by
maybe_restore_getopt_state
- execute_function: maybe restore sh_getopt state before returning via
call to maybe_restore_getopt_state. Fixes bugs with getopts and
state between calls reported in 2011 by Bernd Eggink <monoped@sudrala.de>
and in 2014 by Oyvind Hvidsten <oyvind.hvidsten@dampir.no>
state between calls reported in 2011 by Bernd Eggink
<monoped@sudrala.de> and in 2014 by Oyvind Hvidsten
<oyvind.hvidsten@dampir.no>
configure.ac
- enable-function-import: new option, controls whether function imports
@@ -7131,8 +7136,8 @@ config.h.in
- FUNCTION_IMPORT: define controlled by enable-function-import above
variables.c
- initialize_shell_variables: include code to import function definitions
from the environment if FUNCTION_IMPORT is defined
- initialize_shell_variables: include code to import function
definitions from the environment if FUNCTION_IMPORT is defined
doc/bashref.texi
- --enable_function-import: document new configuration option
@@ -7779,8 +7784,8 @@ lib/readline/parens.c
<markkarpov@opmbx.org>
builtins/declare.def
- declare_internal: use get_current_options instead of get_current_flags,
so `local -' can be generalized
- declare_internal: use get_current_options instead of
get_current_flags, so `local -' can be generalized
variables.c
- push_func_var: use set_current_options instead of set_current_flags
@@ -7842,10 +7847,10 @@ bashhist.c
1/14
----
lib/readline/isearch.c
- _rl_isearch_dispatch: if we are in a multibyte locale, make sure to use
_rl_find_prev_mbchar when trying to delete characters from the search
string, instead of just chopping off the previous byte. Fixes bug
reported by Kyrylo Shpytsya <kshpitsa@gmail.com>
- _rl_isearch_dispatch: if we are in a multibyte locale, make sure to
use _rl_find_prev_mbchar when trying to delete characters from the
search string, instead of just chopping off the previous byte.
Fixes bug reported by Kyrylo Shpytsya <kshpitsa@gmail.com>
lib/readline/complete.c
- rl_filename_completion_function: if we tilde-expand `dirname', make
@@ -8117,13 +8122,13 @@ jobs.[ch]
jobs.c
- last_procsub_child: new variable, set and modified only by the process
substitution code
- find_pipeline: if the requested pid is in LAST_PROCSUB_CHILD, return it;
analogous to the way this code handles the_pipeline
- find_pipeline: if the requested pid is in LAST_PROCSUB_CHILD, return
it; analogous to the way this code handles the_pipeline
- waitchld: if we find a child via find_pipeline that is a part of the
last process substitution child, mark that child appropriately. If
the child is dead, add it to the bgp list. This and the previous change
allow waiting for the most recent process substitution (the one
corresponding to $!). Original report from Stephane Chazelas
the child is dead, add it to the bgp list. This and the previous
change allow waiting for the most recent process substitution (the
one corresponding to $!). Original report from Stephane Chazelas
<stephane.chazelas@gmail.com>
3/10
@@ -8138,24 +8143,24 @@ arrayfunc.c
3/17
----
jobs.c
- waitchld: move code that adds the last process substitution pid to the
bgpids array from waitchld (where it can call malloc in a signal handler
context) to cleanup_dead_jobs
- waitchld: move code that adds the last process substitution pid to
the bgpids array from waitchld (where it can call malloc in a signal
handler context) to cleanup_dead_jobs
3/19
----
subst.c
- parameter_brace_expand: if expanding an array in a context where word
splitting will not take place (W_ASSIGNRHS only for now), make sure to
pass the double-quoted flag to chk_atstar so we don't get the unquoted
$* behavior, which will cause unwanted word splitting. Fixes bug
reported by isabella parakiss <izaberina@gmail.com>
splitting will not take place (W_ASSIGNRHS only for now), make sure
to pass the double-quoted flag to chk_atstar so we don't get the
unquoted $* behavior, which will cause unwanted word splitting.
Fixes bug reported by isabella parakiss <izaberina@gmail.com>
arrayfunc.c
- unbind_array_element: don't assume that caller will check and pass only
array variables; don't allow non-array variables to be unset using the
`@' or `*' subscripts and don't allow any subscripts other than 0;
return -2 in those cases
- unbind_array_element: don't assume that caller will check and pass
only array variables; don't allow non-array variables to be unset
using the `@' or `*' subscripts and don't allow any subscripts other
than 0; return -2 in those cases
- unbind_array_element: unset a non-array variable if passed a subscript
of `0' (e.g., `unbind "scalar[0]"'). This is new functionality that
parallels the ${scalar[0]} expansion
@@ -8219,15 +8224,15 @@ doc/{bash.1,bashref.texi}
4/6
---
subst.c
- process_substitute: increment and decrement subshell_level around calls
to parse_and_execute, as in command substitution, so $BASH_SUBSHELL
gets new values in the subshell. Fixes inconsistency pointed out by
Peng Yu <pengyu.ut@gmail.com>
- process_substitute: increment and decrement subshell_level around
calls to parse_and_execute, as in command substitution, so
$BASH_SUBSHELL gets new values in the subshell. Fixes inconsistency
pointed out by Peng Yu <pengyu.ut@gmail.com>
doc/{bash.1,bashref.texi}
- read: add clarifying text to note that the -N option does not split on
$IFS, but does retain backslash as an escape character subject to -r.
Report from isabella parakiss <izaberina@gmail.com>
- read: add clarifying text to note that the -N option does not split
on $IFS, but does retain backslash as an escape character subject
to -r. Report from isabella parakiss <izaberina@gmail.com>
builtins/declare.def
- declare_internal: unless it's the last statement in a {...} block,
@@ -8273,16 +8278,16 @@ lib/readline/histfile.c
4/9
---
execute_cmd.c
- execute_simple_command: if we haven't already forked, and we have created
FIFOs, turn off the no-fork optimization in the simple command's flags.
Originally reported to savannah by Kuang-che Wu as
- execute_simple_command: if we haven't already forked, and we have
created FIFOs, turn off the no-fork optimization in the simple
command's flags. Originally reported to savannah by Kuang-che Wu as
https://savannah.gnu.org/support/index.php?108732
4/10
----
trap.c
- trap_if_untrapped: new function, sets a trap on a signal if that signal
is not already trapped
- trap_if_untrapped: new function, sets a trap on a signal if that
signal is not already trapped
- maybe_set_debug_trap: new function, sets DEBUG trap to command string
argument only if it's not already trapped
@@ -8291,11 +8296,12 @@ trap.h
builtins/source.def
- source_builtin: if the -T option isn't set, use maybe_set_debug_trap in
the unwind-protect instead of unconditionally restoring the old trap
string. That means if the sourced file changes the DEBUG trap, that new
trap will persist instead of being undone when the old value is restored.
Fixes bug reported by Scott Bronson <bronson@rinspin.com>
- source_builtin: if the -T option isn't set, use maybe_set_debug_trap
in the unwind-protect instead of unconditionally restoring the old
trap string. That means if the sourced file changes the DEBUG trap,
that new trap will persist instead of being undone when the old
value is restored. Fixes bug reported by Scott Bronson
<bronson@rinspin.com>
builtins/evalstring.c
- parse_string: before we jump to top_level, if we are at the `bottom'
@@ -8366,9 +8372,9 @@ shell.c
4/22
----
shell.c
- main: move cmd_init() (initialize word desc and word list object caches)
after startup files are read so the cache doesn't get filled up with
semi-permanent storage for shell functions and variables
- main: move cmd_init() (initialize word desc and word list object
caches) after startup files are read so the cache doesn't get filled
up with semi-permanent storage for shell functions and variables
execute_cmd.c
- execute_function: use maybe_set_debug_trap in the same way as source
@@ -8410,20 +8416,20 @@ configure.ac,config.h.in
- sys/ioctl.h: add check in AC_CHECK_HEADERS macro, define HAVE_SYS_IOCTL_H
lib/readline/{rltty,terminal}.c
- sys/ioctl.h: include unconditionally for ioctl declaration, avoid issues
with `implicit declaration' warnings. Issue originally raised on gdb
list by Chen Gang <xili_gchen_5257@hotmail.com>
- sys/ioctl.h: include unconditionally for ioctl declaration, avoid
issues with `implicit declaration' warnings. Issue originally
raised on gdb list by Chen Gang <xili_gchen_5257@hotmail.com>
4/27
----
lib/malloc/table.c
- mem_table: now a circular buffer showing the state of the last
REG_TABLE_SIZE allocations rather than a hash table that quickly fills
up
REG_TABLE_SIZE allocations rather than a hash table that quickly
fills up
builtins/declare.def
- typeset_builtin: add -n to list of supported options. Omission reported
by Valentin Bajrami <valentin.bajrami@gmail.com>
- typeset_builtin: add -n to list of supported options. Omission
reported by Valentin Bajrami <valentin.bajrami@gmail.com>
unwind_prot.c
- use object caches instead of malloc/free to allocate and deallocate
@@ -8548,9 +8554,9 @@ bashline.c
5/15
----
aclocal.m4
- BASH_CHECK_MULTIBYTE: when checking for locale_charset, add $LIBINTL to
$LIBS. If we're using the included lib/intl/libintl.a, it will include
a version of locale_charset
- BASH_CHECK_MULTIBYTE: when checking for locale_charset, add $LIBINTL
to $LIBS. If we're using the included lib/intl/libintl.a, it will
include a version of locale_charset
5/17
----
@@ -8568,16 +8574,16 @@ lib/sh/mbscmp.c
at beginning
lib/sh/mbscasecmp.c
- mbscasecmp: move calculation of MB_CUR_MAX out of loop; calculate it once
at beginning
- mbscasecmp: move calculation of MB_CUR_MAX out of loop; calculate it
once at beginning
lib/sh/shquote.c
- sh_backslash_quote: move calculation of MB_CUR_MAX out of loop;
calculate it once at beginning
lib/sh/casemod.c
- sh_modcase: move calculation of MB_CUR_MAX out of loop; calculate it once
at beginning
- sh_modcase: move calculation of MB_CUR_MAX out of loop; calculate it
once at beginning
subst.c
- expand_word_internal: move calculation of MB_CUR_MAX out of loops;
@@ -8639,15 +8645,16 @@ builtins/fc.def
builtins/shopt.def
- shopt_set_debug_mode: new function, called when the extdebug shell
option changes. Right now, it sets function_trace_mode when extdebug
is enabled, and turns off when extdebug is disabled. The documentation
has always said that shopt does this. Report from Peng Yu
<pengyu.ut@gmail.com>
is enabled, and turns off when extdebug is disabled. The
documentation has always said that shopt does this. Report from
Peng Yu <pengyu.ut@gmail.com>
5/27
----
findcmd.[ch]
- add support for EXECIGNORE shell variable, list of extglob patterns that
prevent matching filenames from being identified as executable files
- add support for EXECIGNORE shell variable, list of extglob patterns
that prevent matching filenames from being identified as executable
files
variables.c
- EXECIGNORE: arrange for findcmd.c:setup_exec_ignore to be called when
@@ -8692,10 +8699,10 @@ lib/readline/readline.h
5/29
----
builtins/declare.def
- declare_internal: if we are trying to change attributes or value for a
nameref variable whose value points to an unset variable, make sure we
create a new variable whose name is the value of the nameref variable.
That is,
- declare_internal: if we are trying to change attributes or value for
a nameref variable whose value points to an unset variable, make
sure we create a new variable whose name is the value of the nameref
variable. That is,
declare -n foo=bar
unset foo # unsets bar
@@ -8713,9 +8720,9 @@ builtins/set.def
find_variable. Fixes problem reported by Greg Wooledge
<wooledg@eeg.ccf.org>
- unset_builtin: if we try to unset a nameref variable whose value is
not a set variable, make sure we don't try to unset the nameref itself,
but rather the variable it points to. This ensures that the following
always works as it should
not a set variable, make sure we don't try to unset the nameref
itself, but rather the variable it points to. This ensures that the
following always works as it should
declare -n foo=bar
unset foo # unsets bar and leaves foo unchanged
@@ -8739,9 +8746,9 @@ general.h
---
parse.y
- parse_matched_pair: make sure that command substitution constructs
within ${...} expansions are parsed as such using parse_comsub, so the
P_FIRSTCLOSE flag doesn't stop parsing if a right brace appears within
the comsub. Report from Christos Zoulas <christos@zoulas.com>
within ${...} expansions are parsed as such using parse_comsub, so
the P_FIRSTCLOSE flag doesn't stop parsing if a right brace appears
within the comsub. Report from Christos Zoulas <christos@zoulas.com>
findcmd.c
- search_for_command: take two new flags for FLAGS arg: CMDSRCH_STDPATH,
@@ -8766,26 +8773,27 @@ execute_cmd.c
with CMDSRCH_STDPATH if it's set
builtins/command.def
- command_builtin: if -p given without -v or -V, set the CMD_STDPATH flag
in the simple command we construct from the rest of the argument list.
This fixes the command -p cmd issue with changing $PATH for the duration
of `cmd's execution reported by <sdowdy@rap.ucar.edu>
- command_builtin: if -p given without -v or -V, set the CMD_STDPATH
flag in the simple command we construct from the rest of the
argument list. This fixes the command -p cmd issue with changing
$PATH for the duration of `cmd's execution reported by
<sdowdy@rap.ucar.edu>
builtins/common.h
- CDESC_STDPATH: new flag for describe_command; means to use standard path
for command -pv or -pV
- CDESC_STDPATH: new flag for describe_command; means to use standard
path for command -pv or -pV
builtins/command.def
- command_builtin: if -p given with -v or -V, pass the CDESC_STDPATH flag
to describe_command
- command_builtin: if -p given with -v or -V, pass the CDESC_STDPATH
flag to describe_command
builtins/type.def
- describe_command: if given the CDESC_STDPATH flag, use find_in_path with
the conf_standard_path() result. Since `all' will never be on with this
flag, at least not yet, we can allocate and free the path list. Fixes
the bug of a temporary environment value for PATH preceding a
`command -pv' or `command -pV' persisting when the command finishes and
means we use fewer unwind-protects
- describe_command: if given the CDESC_STDPATH flag, use find_in_path
with the conf_standard_path() result. Since `all' will never be on
with this flag, at least not yet, we can allocate and free the path
list. Fixes the bug of a temporary environment value for PATH
preceding a `command -pv' or `command -pV' persisting when the
command finishes and means we use fewer unwind-protects
6/4
---
@@ -8865,8 +8873,27 @@ subst.c
results in x containing '\001' when IFS=$'\001'. See if this will
cause problems by adding a debugging statement in the code
6/15
----
parse.y
- CHECK_FOR_RESERVED_WORD: don't return ESAC when you read `esac'
after a `|' while in a case pattern list (parser_state & PST_CASEPAT).
This is Posix grammar rule 4
(http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02)
6/16
----
jobs.c
- wait_for: make sure we queue SIGCHLD signals if a SIGCHLD trap
handler is running (signal_in_progress or IMPOSSIBLE_TRAP_HANDLER),
since we allow recursive trap invocations now
- wait_for: make sure we treat SIGCHLD as trapped if the trap handler
is set to IMPOSSIBLE_TRAP_HANDLER so we don't miss signals during
calls to run_sigchld_trap()
trap.c
- run_pending_traps: since we allow recursive trap handler invocations,
make sure we set pending_traps[SIGCHLD] to 0 while we mark the
signal handler in progress (SIG_INPROGRESS) and don't reset it to 0
after run_sigchld_trap returns in case more SIGCHLDs have been
queued while it's running
+2 -2
View File
@@ -1,6 +1,6 @@
# Makefile for bash-4.3, version 4.13
# Makefile for bash-4.4, version 4.14
#
# Copyright (C) 1996-2012 Free Software Foundation, Inc.
# Copyright (C) 1996-2015 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
+5
View File
@@ -1,3 +1,8 @@
This is a terse description of the new features added to bash-4.4 since
the release of bash-4.3. As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.
-------------------------------------------------------------------------------
This is a terse description of the new features added to bash-4.3 since
the release of bash-4.2. As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.
+131
View File
@@ -0,0 +1,131 @@
This is a terse description of the new features added to bash-4.4 since
the release of bash-4.3. As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.
1. New Features in Bash
a. There is now a settable configuration #define that will cause the shell
to exit if the shell is running setuid without the -p option and setuid
to the real uid fails.
b. Command and process substitutions now turn off the `-v' option when
executing, as other shells seem to do.
c. The default value for the `checkhash' shell option may now be set at
compile time with a #define.
d. The `mapfile' builtin now has a -d option to use an arbitrary character
as the record delimiter, and a -t option to strip the delimiter as
supplied with -d.
e. The maximum number of nested recursive calls to `eval' is now settable in
config-top.h; the default is no limit.
f. The `-p' option to declare and similar builtins will display attributes for
named variables even when those variables have not been assigned values
(which are technically unset).
g. The maximum number of nested recursive calls to `source' is now settable
in config-top.h; the default is no limit.
h. All builtin commands recognize the `--help' option and print a usage
summary.
i. Bash does not allow function names containing `/' and `=' to be exported.
j. The `ulimit' builtin has new -k (kqueues) and -P (pseudoterminals) options.
k. The shell now allows `time ; othercommand' to time null commands.
l. There is a new `--enable-function-import' configuration option to allow
importing shell functions from the environment; import is enabled by
default.
m. `printf -v var ""' will now set `var' to the empty string, as if `var=""'
had been executed.
n. GLOBIGNORE, the pattern substitution word expansion, and programmable
completion match filtering now honor the value of the `nocasematch' option.
o. There is a new ${parameter@spec} family of operators to transform the
value of `parameter'.
p. Bash no longer attempts to perform compound assignment if a variable on the
rhs of an assignment statement argument to `declare' has the form of a
compound assignment (e.g., w='(word)' ; declare foo=$w); compound
assignments are accepted if the variable was already declared as an array,
but with a warning.
q. The declare builtin no longer displays array variables using the compound
assignment syntax with quotes; that will generate warnings when re-used as
input, and isn't necessary.
r. Executing the rhs of && and || will no longer cause the shell to fork if
it's not necessary.
s. The `local' builtin takes a new argument: `-', which will cause it to save
and the single-letter shell options and restore their previous values at
function return.
t. `complete' and `compgen' have a new `-o nosort' option, which forces
readline to not sort the completion matches.
u. Bash now allows waiting for the most recent process substitution, since it
appears as $!.
v. The `unset' builtin now unsets a scalar variable if it is subscripted with
a `0', analogous to the ${var[0]} expansion.
w. `set -i' is no longer valid, as in other shells.
x. BASH_SUBSHELL is now updated for process substitution and group commands
in pipelines, and is available with the same value when running any exit
trap.
y. Bash now checks $INSIDE_EMACS as well as $EMACS when deciding whether or
not bash is being run in a GNU Emacs shell window.
z. Bash now treats SIGINT received when running a non-builtin command in a
loop the way it has traditionally treated running a builtin command:
running any trap handler and breaking out of the loop.
aa. New variable: EXECIGNORE; a colon-separate list of patterns that will
cause matching filenames to be ignored when searching for commands.
bb. Aliases whose value ends in a shell metacharacter now expand in a way to
allow them to be `pasted' to the next token, which can potentially change
the meaning of a command (e.g., turning `&' into `&&').
2. New Features in Readline
a. The history truncation code now uses the same error recovery mechansim as
the history writing code, and restores the old version of the history file
on error. The error recovery mechanism handles symlinked history files.
b. There is a new bindable variable, `enable-bracketed-paste', which enables
support for a terminal's bracketed paste mode.
c. The editing mode indicators can now be strings and are user-settable
(new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string'
variables). Mode strings can contain invisible character sequences.
Setting mode strings to null strings restores the defaults.
d. Prompt expansion adds the mode string to the last line of a multi-line
prompt (one with embedded newlines).
e. There is a new bindable variable, `colored-completion-prefix', which, if
set, causes the common prefix of a set of possible completions to be
displayed in color.
f. There is a new bindable command `vi-yank-pop', a vi-mode version of emacs-
mode yank-pop.
g. The redisplay code underwent several efficiency improvements for multibyte
locales.
h. The insert-char function attempts to batch-insert all pending typeahead
that maps to self-insert, as long as it is coming from the terminal.
i. rl_callback_sigcleanup: a new application function that can clean up and
unset any state set by readline's callback mode. Intended to be used
after a signal.
+2 -2
View File
@@ -1,5 +1,5 @@
Platform-Specific Configuration and Operation Notes
===================================================
Platform-Specific Configuration and Operation Notes [somewhat dated]
====================================================================
1. configure --without-gnu-malloc on:
+3 -3
View File
@@ -1,7 +1,7 @@
Introduction
============
This is GNU Bash, version 4.3. Bash is the GNU Project's Bourne
This is GNU Bash, version 4.4. Bash is the GNU Project's Bourne
Again SHell, a complete implementation of the POSIX shell spec,
but also with interactive command line editing, job control on
architectures that support it, csh-like features such as history
@@ -15,8 +15,8 @@ See the file POSIX for a discussion of how the Bash defaults differ
from the POSIX spec and a description of the Bash `posix mode'.
There are some user-visible incompatibilities between this version
of Bash and previous widely-distributed versions, bash-4.1 and
bash-4.2. For details, see the file COMPAT. The NEWS file tersely
of Bash and previous widely-distributed versions, bash-4.2 and
bash-4.3. For details, see the file COMPAT. The NEWS file tersely
lists features that are new in this release.
Bash is free software, distributed under the terms of the [GNU] General
+9 -2
View File
@@ -139,6 +139,7 @@ static int shopt_compat32;
static int shopt_compat40;
static int shopt_compat41;
static int shopt_compat42;
static int shopt_compat43;
typedef int shopt_set_func_t __P((char *, int));
@@ -163,6 +164,7 @@ static struct {
{ "compat40", &shopt_compat40, set_compatibility_level },
{ "compat41", &shopt_compat41, set_compatibility_level },
{ "compat42", &shopt_compat42, set_compatibility_level },
{ "compat43", &shopt_compat43, set_compatibility_level },
#if defined (READLINE)
{ "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL},
{ "direxpand", &dircomplete_expand, shopt_set_complete_direxpand },
@@ -549,7 +551,7 @@ set_compatibility_level (option_name, mode)
if (mode)
{
shopt_compat31 = shopt_compat32 = 0;
shopt_compat40 = shopt_compat41 = shopt_compat42 = 0;
shopt_compat40 = shopt_compat41 = shopt_compat42 = shopt_compat43 = 0;
ind = find_shopt (option_name);
*shopt_vars[ind].value = mode;
}
@@ -565,6 +567,8 @@ set_compatibility_level (option_name, mode)
shell_compatibility_level = 41;
else if (shopt_compat42)
shell_compatibility_level = 42;
else if (shopt_compat43)
shell_compatibility_level = 43;
else
shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
@@ -576,11 +580,14 @@ set_compatibility_level (option_name, mode)
void
set_compatibility_opts ()
{
shopt_compat31 = shopt_compat32 = shopt_compat40 = shopt_compat41 = shopt_compat42 = 0;
shopt_compat31 = shopt_compat32 = 0;
shopt_compat40 = shopt_compat41 = shopt_compat42 = shopt_compat43 = 0;
switch (shell_compatibility_level)
{
case DEFAULT_COMPAT_LEVEL:
break;
case 43:
shopt_compat43 = 1; break;
case 42:
shopt_compat42 = 1; break;
case 41:
BIN
View File
Binary file not shown.
+113 -113
View File
@@ -1,12 +1,12 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.2
%%CreationDate: Fri Jun 5 14:38:33 2015
%%Creator: groff version 1.22.3
%%CreationDate: Wed Jun 17 11:41:56 2015
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Courier
%%+ font Symbol
%%DocumentSuppliedResources: procset grops 1.22 2
%%DocumentSuppliedResources: procset grops 1.22 3
%%Pages: 77
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
@@ -16,7 +16,7 @@
%%PageMedia: Default
%%EndDefaults
%%BeginProlog
%%BeginResource: procset grops 1.22 2
%%BeginResource: procset grops 1.22 3
%!PS-Adobe-3.0 Resource-ProcSet
/setpacking where{
pop
@@ -340,7 +340,7 @@ F .475(xtended deb)-.15 F(ug-)-.2 E
(~/.bashr)3.598 E(c)-.37 E F0 1.598(if the)4.408 F(shell is interacti)
144 710.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E
(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(1)204.835 E 0 Cg EP
(2015 June 11)148.175 E(1)202.335 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
@@ -462,8 +462,8 @@ F2(~/.bashr)108 691.2 Q(c)-.37 E F0 2.535(,i)C 2.535(ft)-2.535 G .035
Q F1(bash)5.306 E F0 2.806(is started non-interacti)5.306 F -.15(ve)-.25
G(ly).15 E 5.306(,t)-.65 G 5.306(or)-5.306 G 2.806
(un a shell script, for e)-5.306 F 2.805(xample, it looks for the v)-.15
F(ariable)-.25 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(2)204.835 E
0 Cg EP
F(ariable)-.25 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(2)202.335
E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
@@ -598,7 +598,7 @@ F .389(wed by)-.25 F F2(blank)2.889 E F0 .389(-separated w)B .389
-.15(xe)-.15 G(cuted,).15 E(and is passed as ar)108 722.4 Q
(gument zero.)-.18 E(The remaining w)5 E(ords are passed as ar)-.1 E
(guments to the in)-.18 E -.2(vo)-.4 G -.1(ke).2 G 2.5(dc).1 G(ommand.)
-2.5 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(3)204.835 E 0 Cg EP
-2.5 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(3)202.335 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
@@ -712,7 +712,7 @@ Q F1 1.054(compound command)3.554 F F0 1.054(is one of the follo)3.554 F
-3.553 F 1.026(separated from the rest of the command by one or more ne)
108 710.4 R 1.026(wlines, and may be follo)-.25 F 1.027(wed by a ne)-.25
F 1.027(wline in)-.25 F(place of a semicolon.)108 722.4 Q(GNU Bash 4.4)
72 768 Q(2015 June 5)150.675 E(4)204.835 E 0 Cg EP
72 768 Q(2015 June 11)148.175 E(4)202.335 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
@@ -845,7 +845,7 @@ E F0(th parenthesized sube)A(xpression.)-.15 E .786
(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 716.4 S(ue if either).35
E F1 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F0(or)2.5 E F1 -.2(ex)2.5 G(pr)
.2 E(ession2)-.37 E F0(is true.)2.52 E(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(5)204.835 E 0 Cg EP
(2015 June 11)148.175 E(5)202.335 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
@@ -1001,8 +1001,8 @@ F .204(The e)5.204 F .204(xit status of the)-.15 F F1(while)2.704 E F0
(and)2.704 E F1(until)2.704 E F0 .205(commands is the e)2.704 F .205
(xit status of the last command)-.15 F -.15(exe)144 700.8 S(cuted in).15
E F2(list-2)2.5 E F0 2.5(,o)C 2.5(rz)-2.5 G(ero if none w)-2.5 E(as e)
-.1 E -.15(xe)-.15 G(cuted.).15 E(GNU Bash 4.4)72 768 Q(2015 June 5)
150.675 E(6)204.835 E 0 Cg EP
-.1 E -.15(xe)-.15 G(cuted.).15 E(GNU Bash 4.4)72 768 Q(2015 June 11)
148.175 E(6)202.335 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
@@ -1139,7 +1139,7 @@ F0 1.336(option is on by def)3.836 F 1.336(ault in)-.1 F(interacti)108
-.25 F F2(history e)108 720 Q(xpansion)-.2 E F0(character)2.5 E 2.5(,u)
-.4 G(sually)-2.5 E F1(!)2.5 E F0 2.5(,m)C(ust be quoted to pre)-2.5 E
-.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(7)204.835 E 0 Cg EP
(2015 June 11)148.175 E(7)202.335 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
@@ -1246,7 +1246,7 @@ F(may be unset only by using the)108 703.2 Q F2(unset)2.5 E F0 -.2(bu)
2.5 G(iltin command \(see).2 E F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 720 Q F1(variable)2.79 E F0
(may be assigned to by a statement of the form)2.68 E(GNU Bash 4.4)72
768 Q(2015 June 5)150.675 E(8)204.835 E 0 Cg EP
768 Q(2015 June 11)148.175 E(8)202.335 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
@@ -1396,7 +1396,7 @@ ameter consisting of more than a single digit is e)108 612 R 1.404
(special v)3.14 F 3.39(ariable. That)-.25 F .891(is, ")3.391 F F3($*)A
F0 3.391("i)C 3.391(se)-3.391 G(qui)-3.391 E -.25(va)-.25 G .891
(lent to ").25 F F3($1)A F1(c)A F3($2)A F1(c)A F3(...)A F0(",)A
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(9)204.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(9)202.335 E 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
@@ -1523,8 +1523,8 @@ e top of the stack; the \214rst parameter of the initial)144 681.6 R
4.697 G(SH_ARGV).27 E F0 2.197(only when in e)4.447 F 2.197(xtended deb)
-.15 F 2.197(ugging mode \(see the)-.2 F(description of the)144 717.6 Q
F3(extdeb)2.5 E(ug)-.2 E F0(option to the)2.5 E F3(shopt)2.5 E F0 -.2
(bu)2.5 G(iltin belo).2 E(w\))-.25 E(GNU Bash 4.4)72 768 Q(2015 June 5)
150.675 E(10)199.835 E 0 Cg EP
(bu)2.5 G(iltin belo).2 E(w\))-.25 E(GNU Bash 4.4)72 768 Q(2015 June 11)
148.175 E(10)197.335 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
@@ -1628,7 +1628,7 @@ F .667(If the)5.667 F .535
F(in)144 714 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
(he programmable completion f)-2.5 E(acilities \(see)-.1 E F1(Pr)2.5 E
(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E(GNU Bash 4.4)72
768 Q(2015 June 5)150.675 E(11)199.835 E 0 Cg EP
768 Q(2015 June 11)148.175 E(11)197.335 E 0 Cg EP
%%Page: 12 12
%%BeginPageSetup
BP
@@ -1746,8 +1746,8 @@ Q F0 .355(The history number)144 618 R 2.855(,o)-.4 G 2.855(ri)-2.855 G
time this parameter is referenced, the shell substitutes a decimal num\
ber representing the)144 714 R .078(current sequential line number \(st\
arting with 1\) within a script or function.)144 726 R .078
(When not in a script or)5.078 F(GNU Bash 4.4)72 768 Q(2015 June 5)
150.675 E(12)199.835 E 0 Cg EP
(When not in a script or)5.078 F(GNU Bash 4.4)72 768 Q(2015 June 11)
148.175 E(12)197.335 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
@@ -1844,7 +1844,7 @@ E(.)-.65 E .993(The follo)108 688.8 R .993(wing v)-.25 F .994
(ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F2
(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .994
(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 700.8
Q -.65(w.)-.25 G(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(13)199.835
Q -.65(w.)-.25 G(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(13)197.335
E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
@@ -1965,7 +1965,7 @@ E F1(FIGNORE)108 684 Q F0 2.598(Ac)144 696 S .098
-.25 F F3(FIGNORE)2.705 E F0 .205(is e)2.455 F .204
(xcluded from the list)-.15 F(of matched \214lenames.)144 720 Q 2.5(As)5
G(ample v)-2.5 E(alue is)-.25 E F4(".o:~")2.5 E F0(.)A(GNU Bash 4.4)72
768 Q(2015 June 5)150.675 E(14)199.835 E 0 Cg EP
768 Q(2015 June 11)148.175 E(14)197.335 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
@@ -2093,7 +2093,7 @@ F1(HOME)108 624 Q F0 1.27
(does not name a readable \214le,)144 720 R F1(bash)4.456 E F0 1.956
(attempts to read)4.456 F F4(/etc/hosts)6.122 E F0 1.956
(to obtain the list of possible)6.122 F(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(15)199.835 E 0 Cg EP
(2015 June 11)148.175 E(15)197.335 E 0 Cg EP
%%Page: 16 16
%%BeginPageSetup
BP
@@ -2203,7 +2203,7 @@ F F1 .359(SHELL B)144 624 R(UIL)-.09 E .359(TIN COMMANDS)-.828 F F0
31.329(.A)C 26.328(common v)-2.501 F 26.328(alue is)-.25 F/F5 10
/Courier@0 SF
(/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)144 708 Q
F0(.)A(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(16)199.835 E 0 Cg EP
F0(.)A(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(16)197.335 E 0 Cg EP
%%Page: 17 17
%%BeginPageSetup
BP
@@ -2314,8 +2314,8 @@ R .53(ariable controls ho)-.25 F 3.03(wt)-.25 G .531
(he shell interacts with the user and job control.)-3.03 F .531
(If this v)5.531 F .531(ariable is set,)-.25 F .539(single w)144 728.4 R
.538(ord simple commands without redirections are treated as candidates\
for resumption of an)-.1 F(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E
(17)199.835 E 0 Cg EP
for resumption of an)-.1 F(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E
(17)197.335 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
@@ -2462,7 +2462,7 @@ F .228(to the e)108 722.4 R .228(xpansion of the special parameters)-.15
F F2(*)2.728 E F0(and)2.728 E F2(@)2.728 E F0(\(see)2.728 E F2 .228
(Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E -.15(ve)-.15 G 2.727
(\). ${#).15 F F1(name)A F0([)A F1(subscript)A F0(]})A(GNU Bash 4.4)72
768 Q(2015 June 5)150.675 E(18)199.835 E 0 Cg EP
768 Q(2015 June 11)148.175 E(18)197.335 E 0 Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
@@ -2614,7 +2614,7 @@ R .581(xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581
(It is strictly te)6.209 F(xtual.)-.15 E F2(Bash)6.209 E F0 1.209
(does not apply an)3.709 F 3.709(ys)-.15 G 1.208
(yntactic interpretation to the)-3.709 F(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(19)199.835 E 0 Cg EP
(2015 June 11)148.175 E(19)197.335 E 0 Cg EP
%%Page: 20 20
%%BeginPageSetup
BP
@@ -2742,7 +2742,7 @@ F1(!)A F0 .346(\), and)B F2(par)2.846 E(ameter)-.15 E F0 .346(is not a)
(ariable; this v)-.25 F 1.003(ariable is then e)-.25 F 1.003
(xpanded and that v)-.15 F 1.003
(alue is used in the rest of the substitution,)-.25 F(GNU Bash 4.4)72
768 Q(2015 June 5)150.675 E(20)199.835 E 0 Cg EP
768 Q(2015 June 11)148.175 E(20)197.335 E 0 Cg EP
%%Page: 21 21
%%BeginPageSetup
BP
@@ -2868,7 +2868,7 @@ n which case the)-.15 F(inde)144 698.4 Q .306(xing starts at 1 by def)
-.15 F 2.806(ault. If)-.1 F F1(of)2.807 E(fset)-.18 E F0 .307
(is 0, and the positional parameters are used,)2.807 F F2($0)2.807 E F0
.307(is pre\214x)2.807 F(ed)-.15 E(to the list.)144 710.4 Q
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(21)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(21)197.335 E 0 Cg EP
%%Page: 22 22
%%BeginPageSetup
BP
@@ -3006,7 +3006,7 @@ F0 2.963(,t)C .462
E(${)108 676.8 Q F2(par)A(ameter)-.15 E F1(^)A F2(pattern)A F0(})A(${)
108 688.8 Q F2(par)A(ameter)-.15 E F1(^^)A F2(pattern)A F0(})A(${)108
700.8 Q F2(par)A(ameter)-.15 E F1(,)A F2(pattern)A F0(})A(GNU Bash 4.4)
72 768 Q(2015 June 5)150.675 E(22)199.835 E 0 Cg EP
72 768 Q(2015 June 11)148.175 E(22)197.335 E 0 Cg EP
%%Page: 23 23
%%BeginPageSetup
BP
@@ -3116,8 +3116,8 @@ sub-)-5.315 F 3.886(stitution. When)108 652.8 R 1.386(using the $\()
(quotes with backslashes.)108 693.6 Q .422
(If the substitution appears within double quotes, w)108 710.4 R .422
(ord splitting and pathname e)-.1 F .423(xpansion are not performed)-.15
F(on the results.)108 722.4 Q(GNU Bash 4.4)72 768 Q(2015 June 5)150.675
E(23)199.835 E 0 Cg EP
F(on the results.)108 722.4 Q(GNU Bash 4.4)72 768 Q(2015 June 11)148.175
E(23)197.335 E 0 Cg EP
%%Page: 24 24
%%BeginPageSetup
BP
@@ -3258,8 +3258,8 @@ o matches one of the patterns in)4.565 F F3(GLOBIGNORE)4.816 E F0(is)
4.566 E(remo)108 724.8 Q -.15(ve)-.15 G 3.915(df).15 G 1.415
(rom the list of matches.)-3.915 F 1.415(If the)6.415 F F1(nocaseglob)
3.915 E F0 1.415(option is set, the matching ag)3.915 F 1.414
(ainst the patterns in)-.05 F(GNU Bash 4.4)72 768 Q(2015 June 5)150.675
E(24)199.835 E 0 Cg EP
(ainst the patterns in)-.05 F(GNU Bash 4.4)72 768 Q(2015 June 11)148.175
E(24)197.335 E 0 Cg EP
%%Page: 25 25
%%BeginPageSetup
BP
@@ -3372,7 +3372,7 @@ E F2(\)).833 E F0(Matches one of the gi)180 690 Q -.15(ve)-.25 G 2.5(np)
.15 G(atterns)-2.5 E F2(!\()144 702 Q F4(pattern-list).833 E F2(\)).833
E F0(Matches an)180 714 Q(ything e)-.15 E(xcept one of the gi)-.15 E
-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(25)199.835 E 0 Cg EP
(2015 June 11)148.175 E(25)197.335 E 0 Cg EP
%%Page: 26 26
%%BeginPageSetup
BP
@@ -3470,8 +3470,8 @@ an 9 should be used with care, as the)108 674.4 R 3.447(ym)-.15 G .947
(to be opened for read-)3.661 F(ing on \214le descriptor)108 727.2 Q F3
(n)2.5 E F0 2.5(,o).24 G 2.5(rt)-2.5 G
(he standard input \(\214le descriptor 0\) if)-2.5 E F3(n)2.86 E F0
(is not speci\214ed.)2.74 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E
(26)199.835 E 0 Cg EP
(is not speci\214ed.)2.74 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E
(26)197.335 E 0 Cg EP
%%Page: 27 27
%%BeginPageSetup
BP
@@ -3552,7 +3552,7 @@ F1(n)2.5 E F0(is speci\214ed\) for a command.)2.5 E
(The format of here-documents is:)108 681.6 Q([)144 698.4 Q F1(n)A F0(])
A F2(<<)A F0([)A F2<ad>A F0(])A F1(wor)A(d)-.37 E(her)164 710.4 Q
(e-document)-.37 E(delimiter)144 722.4 Q F0(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(27)199.835 E 0 Cg EP
(2015 June 11)148.175 E(27)197.335 E 0 Cg EP
%%Page: 28 28
%%BeginPageSetup
BP
@@ -3654,7 +3654,7 @@ ses that may be set and unset with the)108 708 R F2(alias)2.893 E F0
F(\(see)108 720 Q/F4 9/Times-Bold@0 SF 1.979(SHELL B)4.479 F(UIL)-.09 E
1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E 4.48(w\). The)-.25 F 1.98
(\214rst w)4.48 F 1.98(ord of each simple command, if unquoted, is)-.1 F
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(28)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(28)197.335 E 0 Cg EP
%%Page: 29 29
%%BeginPageSetup
BP
@@ -3805,8 +3805,8 @@ F0 1.297(option to the)3.797 F F1(export)3.798 E F0 -.2(bu)3.798 G 3.798
(that shell functions and v)2.661 F .16(ariables with the same name)-.25
F 1.325(may result in multiple identically-named entries in the en)108
724.8 R 1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G 3.825
(hildren. Care)-3.825 F(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(29)
199.835 E 0 Cg EP
(hildren. Care)-3.825 F(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(29)
197.335 E 0 Cg EP
%%Page: 30 30
%%BeginPageSetup
BP
@@ -3906,7 +3906,7 @@ R F3(n)3.012 E F0 3.012(,t)C .512
(\214le attrib)108 729.6 R .77
(utes and perform string and arithmetic comparisons.)-.2 F .77
(Expressions are formed from the follo)5.77 F(wing)-.25 E(GNU Bash 4.4)
72 768 Q(2015 June 5)150.675 E(30)199.835 E 0 Cg EP
72 768 Q(2015 June 11)148.175 E(30)197.335 E 0 Cg EP
%%Page: 31 31
%%BeginPageSetup
BP
@@ -4009,7 +4009,7 @@ E(string1)108 675.6 Q F2(=)2.5 E F1(string2)2.5 E F0 -.35(Tr)144 687.6 S
699.6 R F2([[)2.946 E F0 .446
(command, this performs pattern matching as described abo)2.946 F .746
-.15(ve \()-.15 H F2(Compound).15 E(Commands)144 711.6 Q F0(\).)A
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(31)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(31)197.335 E 0 Cg EP
%%Page: 32 32
%%BeginPageSetup
BP
@@ -4121,7 +4121,7 @@ e command name contains one or more slashes, the shell e)108 708 R -.15
(xe)-.15 G 1.089(cutes the).15 F 2.31(named program in a separate e)108
720 R -.15(xe)-.15 G 2.31(cution en).15 F 4.81(vironment. Ar)-.4 F 2.31
(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G 2.31(n, and the)
.15 F(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(32)199.835 E 0 Cg EP
.15 F(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(32)197.335 E 0 Cg EP
%%Page: 33 33
%%BeginPageSetup
BP
@@ -4227,7 +4227,7 @@ F2<ad65>3.877 E F0 1.377(option from the parent)3.877 F 2.5(shell. When)
(If a command is follo)108 722.4 R .405(wed by a)-.25 F F2(&)2.905 E F0
.404(and job control is not acti)2.905 F -.15(ve)-.25 G 2.904(,t).15 G
.404(he def)-2.904 F .404(ault standard input for the command)-.1 F
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(33)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(33)197.335 E 0 Cg EP
%%Page: 34 34
%%BeginPageSetup
BP
@@ -4363,7 +4363,7 @@ particular job, it should be remo).15 F -.15(ve)-.15 G 3.429(df).15 G
(SHELL B)3.856 F(UIL)-.09 E 1.356(TIN COMMANDS)-.828 F F0(belo)3.607 E
1.357(w\) or mark)-.25 F 1.357(ed to not recei)-.1 F -.15(ve)-.25 G F4
(SIGHUP)108 727.2 Q F0(using)2.25 E F3(diso)2.5 E(wn \255h)-.1 E F0(.)A
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(34)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(34)197.335 E 0 Cg EP
%%Page: 35 35
%%BeginPageSetup
BP
@@ -4504,8 +4504,8 @@ F4(curr)2.518 E .018(ent job)-.37 F F0 2.518(,w).23 G .018(hich is)
(prompt before reporting changes in a job')108 720 R 2.658(ss)-.55 G
.158(tatus so as to not interrupt an)-2.658 F 2.657(yo)-.15 G .157
(ther output.)-2.657 F .157(If the)5.157 F F1<ad62>2.657 E F0 .157
(option to)2.657 F(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(35)
199.835 E 0 Cg EP
(option to)2.657 F(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(35)
197.335 E 0 Cg EP
%%Page: 36 36
%%BeginPageSetup
BP
@@ -4610,8 +4610,8 @@ F2(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)
3.708(iltin. By).2 F(def)108 727.2 Q .851
(ault, the line editing commands are similar to those of Emacs.)-.1 F
3.351(Av)5.851 G .851(i-style line editing interf)-3.351 F .852
(ace is also)-.1 F(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(36)
199.835 E 0 Cg EP
(ace is also)-.1 F(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(36)
197.335 E 0 Cg EP
%%Page: 37 37
%%BeginPageSetup
BP
@@ -4734,8 +4734,8 @@ E F3(macr)2.66 E(o)-.45 E F0(,)A F3 -.1(ke)2.66 G(yname)-.2 E F0 .161
(C\255o)2.598 E F0 .258(is bound to run the macro e)2.938 F .259
(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
717.6 Q(xt)-.15 E/F4 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
(into the line\).)2.5 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(37)
199.835 E 0 Cg EP
(into the line\).)2.5 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(37)
197.335 E 0 Cg EP
%%Page: 38 38
%%BeginPageSetup
BP
@@ -4827,8 +4827,8 @@ E F0 2.51(,r)C .01(eadline ne)-2.51 F -.15(ve)-.25 G(r).15 E .94
s to bind the control characters treated specially by the k)-2.556 F
(ernel')-.1 E 2.555(st)-.55 G(ermi-)-2.555 E(nal dri)144 703.2 Q -.15
(ve)-.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va)
-.25 G(lents.).25 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(38)
199.835 E 0 Cg EP
-.25 G(lents.).25 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(38)
197.335 E 0 Cg EP
%%Page: 39 39
%%BeginPageSetup
BP
@@ -4931,7 +4931,7 @@ the same location on each history line)-3.838 F(retrie)144 684 Q -.15
(history entries are deleted and no ne)144 720 R 4.321(we)-.25 G 1.821
(ntries are sa)-4.321 F -.15(ve)-.2 G 4.321(d. If).15 F 1.821
(set to a v)4.321 F 1.821(alue less than zero, the)-.25 F(GNU Bash 4.4)
72 768 Q(2015 June 5)150.675 E(39)199.835 E 0 Cg EP
72 768 Q(2015 June 11)148.175 E(39)197.335 E 0 Cg EP
%%Page: 40 40
%%BeginPageSetup
BP
@@ -5034,8 +5034,8 @@ ta-)-3.006 F(pre\214x)144 660 Q(ed escape sequence.)-.15 E F1
3.308 E F0 3.308(,r)C .808(eadline uses an internal)-3.308 F F2(mor)
3.308 E(e)-.37 E F0(-lik)A 3.308(ep)-.1 G .808
(ager to display a screenful of possible comple-)-3.308 F
(tions at a time.)144 696 Q(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E
(40)199.835 E 0 Cg EP
(tions at a time.)144 696 Q(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E
(40)197.335 E 0 Cg EP
%%Page: 41 41
%%BeginPageSetup
BP
@@ -5143,7 +5143,7 @@ Q F1(term)144 703.2 Q F0(The)180 703.2 Q F1(term=)3.196 E F0 .696
(wo)3.154 G .654(rd on the right side of).1 F(the)180 727.2 Q F1(=)3.231
E F0 .731(is tested ag)3.231 F .732(ainst both the full name of the ter\
minal and the portion of the terminal)-.05 F(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(41)199.835 E 0 Cg EP
(2015 June 11)148.175 E(41)197.335 E 0 Cg EP
%%Page: 42 42
%%BeginPageSetup
BP
@@ -5240,7 +5240,7 @@ E(beginning\255of\255line \(C\255a\))108 664.8 Q F0(Mo)144 676.8 Q .3
-.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
(end\255of\255line \(C\255e\))108 688.8 Q F0(Mo)144 700.8 Q .3 -.15
(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E(GNU Bash 4.4)72 768
Q(2015 June 5)150.675 E(42)199.835 E 0 Cg EP
Q(2015 June 11)148.175 E(42)197.335 E 0 Cg EP
%%Page: 43 43
%%BeginPageSetup
BP
@@ -5316,7 +5316,7 @@ a non-incremental search for a string supplied by the)-.1 F(user)144
144 688.8 R .951(ard through the history for the string of characters b\
etween the start of the current)-.1 F(line and the point.)144 700.8 Q
(This is a non-incremental search.)5 E(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(43)199.835 E 0 Cg EP
(2015 June 11)148.175 E(43)197.335 E 0 Cg EP
%%Page: 44 44
%%BeginPageSetup
BP
@@ -5426,7 +5426,7 @@ H .492(hrough the history).15 F 5.491(.A)-.65 G(ne)-2.5 E -.05(ga)-.15 G
(erbatim. This)-.15 F .779(is ho)3.279 F 3.279(wt)-.25 G 3.279(oi)-3.279
G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.279 E F0 3.279
(,f)C(or)-3.279 E -.15(ex)144 712.8 S(ample.).15 E(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(44)199.835 E 0 Cg EP
(2015 June 11)148.175 E(44)197.335 E 0 Cg EP
%%Page: 45 45
%%BeginPageSetup
BP
@@ -5521,7 +5521,7 @@ F 5.364(.T)-.65 G .364(he killed te)-5.364 F .364(xt is sa)-.15 F -.15
(ord behind point, using white space and the slash character as the w)
-.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 712.8 Q
(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)-2.5 G(he kill-ring.)
-2.5 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(45)199.835 E 0 Cg EP
-2.5 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(45)197.335 E 0 Cg EP
%%Page: 46 46
%%BeginPageSetup
BP
@@ -5622,7 +5622,7 @@ F1(delete\255char\255or\255list)108 681.6 Q F0 .234
(ve)-.2 G 2.925(si).15 G .425(dentically to)-2.925 F F1
(possible\255completions)2.925 E F0 5.425(.T)C .425
(his command is unbound)-5.425 F(by def)144 717.6 Q(ault.)-.1 E
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(46)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(46)197.335 E 0 Cg EP
%%Page: 47 47
%%BeginPageSetup
BP
@@ -5709,7 +5709,7 @@ C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 681.6 R F2(x)
(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 717.6 Q
(xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0
(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(47)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(47)197.335 E 0 Cg EP
%%Page: 48 48
%%BeginPageSetup
BP
@@ -5814,8 +5814,8 @@ le completions.)2.5 E F1(glob\255expand\255w)108 504 Q(ord \(C\255x *\))
3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 708 Q
.528(gument is supplied, the output is formatted in such a w)-.18 F .528
(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
(\214le.)144 720 Q(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(48)
199.835 E 0 Cg EP
(\214le.)144 720 Q(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(48)
197.335 E 0 Cg EP
%%Page: 49 49
%%BeginPageSetup
BP
@@ -5954,7 +5954,7 @@ F .587(\214x speci\214ed with the)-.25 F F1<ad50>3.087 E F0(and)3.087 E
F1<ad53>3.087 E F0 .587(options are added to each member of the com-)
3.087 F(pletion list, and the result is returned to the readline comple\
tion code as the list of possible completions.)108 724.8 Q(GNU Bash 4.4)
72 768 Q(2015 June 5)150.675 E(49)199.835 E 0 Cg EP
72 768 Q(2015 June 11)148.175 E(49)197.335 E 0 Cg EP
%%Page: 50 50
%%BeginPageSetup
BP
@@ -6086,7 +6086,7 @@ F0 3.257(lines. If)3.007 F F5(HISTFILESIZE)3.257 E F0 .757
(is unset, or set to null, a non-)3.007 F(numeric v)108 722.4 Q
(alue, or a numeric v)-.25 E
(alue less than zero, the history \214le is not truncated.)-.25 E
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(50)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(50)197.335 E 0 Cg EP
%%Page: 51 51
%%BeginPageSetup
BP
@@ -6220,8 +6220,8 @@ Q F0 1.607(Start a history substitution, e)144 655.2 R 1.607
(This is a synon)5 E(ym for `!\2551'.)-.15 E F1(!)108 715.2 Q F4(string)
A F0 .865(Refer to the most recent command preceding the current positi\
on in the history list starting with)144 715.2 R F4(string)144 727.2 Q
F0(.).22 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(51)199.835 E 0 Cg
EP
F0(.).22 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(51)197.335 E 0
Cg EP
%%Page: 52 52
%%BeginPageSetup
BP
@@ -6340,8 +6340,8 @@ F1(test)2.534 E F0 -.2(bu)2.534 G .034(iltins do not accept options and)
724.8 R .319(ginning with)-.15 F F1<ad>2.819 E F0 .319
(without requiring)2.819 F F1<adad>2.819 E F0 5.319(.O)C .319(ther b)
-5.319 F .319(uiltins that accept ar)-.2 F .32(guments b)-.18 F .32
(ut are not speci\214ed as)-.2 F(GNU Bash 4.4)72 768 Q(2015 June 5)
150.675 E(52)199.835 E 0 Cg EP
(ut are not speci\214ed as)-.2 F(GNU Bash 4.4)72 768 Q(2015 June 11)
148.175 E(52)197.335 E 0 Cg EP
%%Page: 53 53
%%BeginPageSetup
BP
@@ -6475,7 +6475,7 @@ Q F0(List current)180 685.2 Q F1 -.18(re)2.5 G(adline).18 E F0
G 1.155(equences bound to macros and the strings the)-3.655 F 3.655(yo)
-.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 709.2 S 2.5(yt).1 G
(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E(GNU Bash 4.4)72 768
Q(2015 June 5)150.675 E(53)199.835 E 0 Cg EP
Q(2015 June 11)148.175 E(53)197.335 E 0 Cg EP
%%Page: 54 54
%%BeginPageSetup
BP
@@ -6608,7 +6608,7 @@ F0 .468(will return an unsuccessful status.)2.968 F .468(On systems)
144 720 R .71(gument of)-.18 F F1<ad>3.21 E F0 .71(is con)3.21 F -.15
(ve)-.4 G .71(rted to).15 F F3($OLDPWD)3.21 E F0 .71
(before the directory change is attempted.)2.96 F .71(If a non-)5.71 F
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(54)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(54)197.335 E 0 Cg EP
%%Page: 55 55
%%BeginPageSetup
BP
@@ -6725,7 +6725,7 @@ F0 .281(completions if the compspec generates no)2.781 F(matches.)224
674.4 Q F2(default)184 686.4 Q F0 2.876(Use readline')224 686.4 R 5.376
(sd)-.55 G(ef)-5.376 E 2.875
(ault \214lename completion if the compspec generates no)-.1 F(matches.)
224 698.4 Q(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(55)199.835 E 0
224 698.4 Q(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(55)197.335 E 0
Cg EP
%%Page: 56 56
%%BeginPageSetup
@@ -6797,7 +6797,7 @@ E F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
(command)2.5 E(command)184 684 Q F0 1.056(is e)3.556 F -.15(xe)-.15 G
1.056(cuted in a subshell en).15 F 1.056
(vironment, and its output is used as the possible)-.4 F(completions.)
184 696 Q(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(56)199.835 E 0 Cg
184 696 Q(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(56)197.335 E 0 Cg
EP
%%Page: 57 57
%%BeginPageSetup
@@ -6927,8 +6927,8 @@ of function de\214nitions; only the function)3.791 F .948
(shell option is enabled using)3.448 F F1(shopt)3.448 E F0 3.448(,t)C
.948(he source)-3.448 F 1.342(\214le name and line number where the fun\
ction is de\214ned are displayed as well.)144 727.2 R(The)6.342 E F1
<ad46>3.842 E F0(option)3.842 E(GNU Bash 4.4)72 768 Q(2015 June 5)
150.675 E(57)199.835 E 0 Cg EP
<ad46>3.842 E F0(option)3.842 E(GNU Bash 4.4)72 768 Q(2015 June 11)
148.175 E(57)197.335 E 0 Cg EP
%%Page: 58 58
%%BeginPageSetup
BP
@@ -7052,8 +7052,8 @@ F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
686.4 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
(lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe)
-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
.15 F(tory stack.)144 698.4 Q(GNU Bash 4.4)72 768 Q(2015 June 5)150.675
E(58)199.835 E 0 Cg EP
.15 F(tory stack.)144 698.4 Q(GNU Bash 4.4)72 768 Q(2015 June 11)148.175
E(58)197.335 E 0 Cg EP
%%Page: 59 59
%%BeginPageSetup
BP
@@ -7171,7 +7171,7 @@ E F0(...])2.5 E(The)144 686.4 Q F2(ar)3.17 E(g)-.37 E F0 3.17(sa)C .671
(ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 710.4 Q
(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(59)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(59)197.335 E 0 Cg EP
%%Page: 60 60
%%BeginPageSetup
BP
@@ -7312,7 +7312,7 @@ R .454(If the)5.454 F F1<ad65>2.954 E F0 .454
(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 715.2 Q
F0(does not specify a v)2.81 E(alid job or)-.25 E F2(jobspec)4.24 E F0
(speci\214es a job that w)2.81 E(as started without job control.)-.1 E
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(60)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(60)197.335 E 0 Cg EP
%%Page: 61 61
%%BeginPageSetup
BP
@@ -7429,8 +7429,8 @@ G 3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144
(ormat)-2.5 E F1<ad73>144 693.6 Q F0
(Display only a short usage synopsis for each)180 693.6 Q F2(pattern)2.5
E F0(The return status is 0 unless no command matches)144 710.4 Q F2
(pattern)2.5 E F0(.).24 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E
(61)199.835 E 0 Cg EP
(pattern)2.5 E F0(.).24 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E
(61)197.335 E 0 Cg EP
%%Page: 62 62
%%BeginPageSetup
BP
@@ -7463,13 +7463,13 @@ E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H(he follo).15 E
(Clear the history list by deleting all the entries.)180 228 Q F1<ad64>
144 240 Q F2(of)2.5 E(fset)-.18 E F0
(Delete the history entry at position)180 252 Q F2(of)2.5 E(fset)-.18 E
F0(.)A F1<ad61>144 264 Q F0 .598(Append the `)180 264 R(`ne)-.74 E(w')
-.25 E 3.098('h)-.74 G .598
(istory lines \(history lines entered since the be)-3.098 F .599
(ginning of the current)-.15 F F1(bash)180 276 Q F0
(session\) to the history \214le.)2.5 E F1<ad6e>144 288 Q F0 .854(Read \
the history lines not already read from the history \214le into the cur\
rent history list.)180 288 R .772
F0(.)A F1<ad61>144 264 Q F0 .564(Append the `)180 264 R(`ne)-.74 E(w')
-.25 E 3.064('h)-.74 G .564(istory lines to the history \214le.)-3.064 F
.565(These are history lines entered since)5.564 F(the be)180 276 Q
(ginning of the current)-.15 E F1(bash)2.5 E F0(session, b)2.5 E
(ut not already appended to the history \214le.)-.2 E F1<ad6e>144 288 Q
F0 .854(Read the history lines not already read from the history \214le\
into the current history list.)180 288 R .772
(These are lines appended to the history \214le since the be)180 300 R
.773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
(sion.)180 312 Q F1<ad72>144 324 Q F0(Read the contents of the history \
@@ -7545,7 +7545,7 @@ F1(kill)108 660 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
.15 F(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(62)199.835 E 0 Cg EP
.15 F(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(62)197.335 E 0 Cg EP
%%Page: 63 63
%%BeginPageSetup
BP
@@ -7683,7 +7683,7 @@ E F4(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144
(lid option is encountered, the directory stack is empty).25 F 2.915
(,an)-.65 G(on-e)-2.915 E .415(xistent direc-)-.15 F
(tory stack entry is speci\214ed, or the directory change f)144 715.2 Q
(ails.)-.1 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(63)199.835 E 0
(ails.)-.1 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(63)197.335 E 0
Cg EP
%%Page: 64 64
%%BeginPageSetup
@@ -7796,7 +7796,7 @@ E(ails.)-.1 E F1(pwd)108 660 Q F0([)2.5 E F1(\255LP)A F0(])A .844
F .764(The return)5.764 F 1.36(status is 0 unless an error occurs while\
reading the name of the current directory or an in)144 708 R -.25(va)
-.4 G(lid).25 E(option is supplied.)144 720 Q(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(64)199.835 E 0 Cg EP
(2015 June 11)148.175 E(64)197.335 E 0 Cg EP
%%Page: 65 65
%%BeginPageSetup
BP
@@ -7931,7 +7931,7 @@ F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A
-.1 F F1<ad61>4.902 E F0 2.403(option restricts the v)4.903 F 2.403
(ariables to inde)-.25 F -.15(xe)-.15 G 4.903(da).15 G 2.403(rrays; the)
-4.903 F F1<ad41>4.903 E F0 2.403(option restricts the)4.903 F
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(65)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(65)197.335 E 0 Cg EP
%%Page: 66 66
%%BeginPageSetup
BP
@@ -8073,8 +8073,8 @@ F0 .193(setting, e)2.693 F -.15(ve)-.25 G 2.693(ni).15 G(f)-2.693 E F1
<ad68>144 711.6 Q F0 2.239(Remember the location of commands as the)184
711.6 R 4.738(ya)-.15 G 2.238(re look)-4.738 F 2.238(ed up for e)-.1 F
-.15(xe)-.15 G 4.738(cution. This).15 F(is)4.738 E(enabled by def)184
723.6 Q(ault.)-.1 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(66)
199.835 E 0 Cg EP
723.6 Q(ault.)-.1 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(66)
197.335 E 0 Cg EP
%%Page: 67 67
%%BeginPageSetup
BP
@@ -8151,7 +8151,7 @@ F0(belo)3.463 E(w)-.25 E 2.307
(Use a vi-style command line editing interf)224 696 R 3.966(ace. This)
-.1 F 1.466(also af)3.966 F 1.466(fects the editing)-.25 F(interf)224
708 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(67)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(67)197.335 E 0 Cg EP
%%Page: 68 68
%%BeginPageSetup
BP
@@ -8277,7 +8277,7 @@ E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
.143(is greater than)2.883 F F1($#)2.643 E F0
(or less than zero; otherwise 0.)144 723.6 Q(GNU Bash 4.4)72 768 Q
(2015 June 5)150.675 E(68)199.835 E 0 Cg EP
(2015 June 11)148.175 E(68)197.335 E 0 Cg EP
%%Page: 69 69
%%BeginPageSetup
BP
@@ -8387,7 +8387,7 @@ F 1.409(ersion 3.2 with respect to locale-speci\214c)-.15 F .422
(string comparison when using the)184 692.4 R F1([[)2.922 E F0 .422
(conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>)
2.923 E F0 .423(operators \(see pre-)2.923 F(vious item\).)184 704.4 Q
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(69)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(69)197.335 E 0 Cg EP
%%Page: 70 70
%%BeginPageSetup
BP
@@ -8496,8 +8496,8 @@ s, and subshells)220 672 R(in)220 684 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw)
(If set, the e)184 696 R .4
(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 708 Q
F0(are enabled.)2.5 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(70)
199.835 E 0 Cg EP
F0(are enabled.)2.5 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(70)
197.335 E 0 Cg EP
%%Page: 71 71
%%BeginPageSetup
BP
@@ -8600,7 +8600,7 @@ Q F0 .325(If set, and)184 708 R F1 -.18(re)2.825 G(adline).18 E F0 .325
(will not attempt to search the)2.824 F F3 -.666(PA)2.824 G(TH)-.189 E
F0 .324(for possible)2.574 F
(completions when completion is attempted on an empty line.)184 720 Q
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(71)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(71)197.335 E 0 Cg EP
%%Page: 72 72
%%BeginPageSetup
BP
@@ -8695,7 +8695,7 @@ E F3 -.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 663.6 S
(ex)2.5 G(pr2).2 E F0(is true.)2.52 E F1(test)144 692.4 Q F0(and)2.5 E
F1([)2.5 E F0 -.25(eva)2.5 G(luate conditional e).25 E
(xpressions using a set of rules based on the number of ar)-.15 E
(guments.)-.18 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(72)199.835
(guments.)-.18 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(72)197.335
E 0 Cg EP
%%Page: 73 73
%%BeginPageSetup
@@ -8825,8 +8825,8 @@ turns a non\255zero e)144 663.6 R .184(xit status, subject to)-.15 F
-3.78 F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F
F1(!)3.78 E F0(.)A(These are the same conditions obe)144 723.6 Q
(yed by the)-.15 E F1(err)2.5 E(exit)-.18 E F0(\()2.5 E F1<ad65>A F0 2.5
(\)o)C(ption.)-2.5 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(73)
199.835 E 0 Cg EP
(\)o)C(ption.)-2.5 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(73)
197.335 E 0 Cg EP
%%Page: 74 74
%%BeginPageSetup
BP
@@ -8954,8 +8954,8 @@ F F1(limit)2.968 E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468
(hich is in units of 512-byte blocks;)-4.089 F F2<ad50>4.089 E F0(,)A F2
<ad54>4.089 E F0(,)A F2<ad62>4.089 E F0(,)A F2<ad6b>4.089 E F0(,)A F2
<ad6e>4.089 E F0 4.089(,a)C(nd)-4.089 E F2<ad75>4.089 E F0 4.089(,w)C
1.589(hich are)-4.089 F(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(74)
199.835 E 0 Cg EP
1.589(hich are)-4.089 F(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(74)
197.335 E 0 Cg EP
%%Page: 75 75
%%BeginPageSetup
BP
@@ -9078,7 +9078,7 @@ Q(adding or deleting b)144 696 Q(uiltin commands with the)-.2 E F1<ad66>
F0 -.2(bu)2.5 G(iltin command).2 E<83>108 712.8 Q(using the)144 712.8 Q
F1(enable)2.5 E F0 -.2(bu)2.5 G
(iltin command to enable disabled shell b).2 E(uiltins)-.2 E
(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(75)199.835 E 0 Cg EP
(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(75)197.335 E 0 Cg EP
%%Page: 76 76
%%BeginPageSetup
BP
@@ -9152,7 +9152,7 @@ E F0(.)A .411(Once you ha)108 571.2 R .711 -.15(ve d)-.2 H .411
2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E(Comments and b)108
710.4 Q(ug reports concerning this manual page should be directed to)-.2
E F4 -.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.)
.25 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E(76)199.835 E 0 Cg EP
.25 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E(76)197.335 E 0 Cg EP
%%Page: 77 77
%%BeginPageSetup
BP
@@ -9178,8 +9178,8 @@ place the sequence of commands between parentheses to force it into a)
-.25 F(subshell, which may be stopped as a unit.)108 211.2 Q(Array v)108
228 Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
(There may be only one acti)108 244.8 Q .3 -.15(ve c)-.25 H
(oprocess at a time.).15 E(GNU Bash 4.4)72 768 Q(2015 June 5)150.675 E
(77)199.835 E 0 Cg EP
(oprocess at a time.).15 E(GNU Bash 4.4)72 768 Q(2015 June 11)148.175 E
(77)197.335 E 0 Cg EP
%%Trailer
end
%%EOF
+6 -8
View File
@@ -1,10 +1,8 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/MacPorts 2014_8) (preloaded format=pdfetex 2014.11.4) 5 JUN 2015 14:39
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/MacPorts 2014_9) (preloaded format=pdftex 2014.11.4) 17 JUN 2015 11:42
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\catcode126=12 \def\normaltilde{~}\catcode126=13 \let~\normaltilde \input /u
sr/homes/chet/src/bash/src/doc/bashref.texi
**/usr/homes/chet/src/bash/src/doc/bashref.texi
(/usr/homes/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
Loading texinfo [version 2013-09-11.11]:
\bindingoffset=\dimen16
@@ -383,12 +381,12 @@ Appendix D [160] (./bashref.bts) [161] (./bashref.rws) (./bashref.vrs [162]
[163]) (./bashref.fns [164] [165]) (./bashref.cps [166] [167]) [168] )
Here is how much of TeX's memory you used:
2745 strings out of 497110
37296 string characters out of 6206872
151701 words of memory out of 5000000
37296 string characters out of 6206875
151703 words of memory out of 5000000
3523 multiletter control sequences out of 15000+600000
32896 words of font info for 113 fonts, out of 8000000 for 9000
51 hyphenation exceptions out of 8191
16i,6n,16p,394b,967s stack positions out of 5000i,500n,10000p,200000b,80000s
16i,6n,16p,319b,967s stack positions out of 5000i,500n,10000p,200000b,80000s
{/opt/loc
al/share/texmf-texlive/fonts/enc/dvips/cm-super/cm-super-t1.enc}</opt/local/sha
re/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbx12.pfb></opt/local/share/te
@@ -405,7 +403,7 @@ i10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt10.p
fb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt12.pfb></
opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt9.pfb></opt/lo
cal/share/texmf-texlive/fonts/type1/public/cm-super/sfrm1095.pfb>
Output written on bashref.pdf (174 pages, 728568 bytes).
Output written on bashref.pdf (174 pages, 728609 bytes).
PDF statistics:
2546 PDF objects out of 2984 (max. 8388607)
2328 compressed objects within 24 object streams
BIN
View File
Binary file not shown.
+6 -1
View File
@@ -3424,7 +3424,8 @@ itrace("waitchld: waitpid returns %d block = %d children_exited = %d", pid, bloc
}
/* Call a SIGCHLD trap handler for each child that exits, if one is set. */
if (job_control && signal_is_trapped (SIGCHLD) && children_exited &&
if (job_control && children_exited &&
(signal_is_trapped (SIGCHLD) || trap_list[SIGCHLD] == IMPOSSIBLE_TRAP_HANDLER) &&
trap_list[SIGCHLD] != (char *)IGNORE_SIG)
{
if (posixly_correct && this_shell_builtin && this_shell_builtin == wait_builtin)
@@ -3444,6 +3445,10 @@ itrace("waitchld: waitpid returns %d block = %d children_exited = %d", pid, bloc
executing the wait builtin, but don't break out of `wait'. */
else if (sigchld) /* called from signal handler */
queue_sigchld_trap (children_exited);
else if (signal_in_progress (SIGCHLD))
queue_sigchld_trap (children_exited);
else if (trap_list[SIGCHLD] == IMPOSSIBLE_TRAP_HANDLER)
queue_sigchld_trap (children_exited);
else if (running_trap)
queue_sigchld_trap (children_exited);
else if (this_shell_builtin == wait_builtin)
+2
View File
@@ -2732,6 +2732,8 @@ static int open_brace_count;
break; \
if (word_token_alist[i].token == TIME && time_command_acceptable () == 0) \
break; \
if ((parser_state & PST_CASEPAT) && last_read_token == '|' && word_token_alist[i].token == ESAC) \
break; /* Posix grammar rule 4 */ \
if (word_token_alist[i].token == ESAC) \
parser_state &= ~(PST_CASEPAT|PST_CASESTMT); \
else if (word_token_alist[i].token == CASE) \
BIN
View File
Binary file not shown.
+527 -475
View File
File diff suppressed because it is too large Load Diff
+530 -479
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1434 -891
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+981 -666
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+560 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+547 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+548 -479
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+536 -477
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
+657 -602
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+644 -589
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+560 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+553 -481
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+531 -476
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+544 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1987 -1148
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+913 -676
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+598 -479
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+556 -479
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+545 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1687 -1006
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+547 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1075 -709
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+532 -477
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1113 -727
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+562 -477
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1101 -720
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+527 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+533 -481
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1785 -1049
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+547 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+549 -477
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+564 -479
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+560 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1328 -839
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+566 -481
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+560 -475
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+818 -582
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+530 -478
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,4 +1,4 @@
BUILD_DIR=/usr/local/build/bash/bash-current
BUILD_DIR=/usr/local/build/chet/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
+1 -4
View File
@@ -1,11 +1,8 @@
84575
63 60
a b c
84577
63 60
flop
./coproc.tests: line 22: 84577 Terminated coproc REFLECT { cat -; }
84579
coproc.tests: REFLECT: status 143
63 60
FOO
63 60
+23 -4
View File
@@ -1,6 +1,13 @@
: ${TMPDIR:=/tmp}
TMPOUT=${TMPDIR}/coproc-wait-$BASHPID
coproc { echo a b c; sleep 2; }
echo $COPROC_PID
case $COPROC_PID in
[0-9]*) ;;
*) echo COPROC_PID not integer ;;
esac
echo ${COPROC[@]}
read LINE <&${COPROC[0]}
@@ -10,7 +17,11 @@ wait $COPROC_PID
coproc REFLECT { cat - ; }
echo $REFLECT_PID
case $REFLECT_PID in
[0-9]*) ;;
*) echo REFLECT_PID not integer ;;
esac
echo ${REFLECT[@]}
echo flop >&${REFLECT[1]}
@@ -19,11 +30,19 @@ read LINE <&${REFLECT[0]}
echo $LINE
kill $REFLECT_PID
wait $REFLECT_PID
wait $REFLECT_PID >$TMPOUT 2>&1 || echo "coproc.tests: REFLECT: status $?"
grep -q 'Terminated.*coproc.*REFLECT' < $TMPOUT || {
echo "coproc.tests: wait for REFLECT failed" >&2
}
rm -f $TMPOUT
coproc xcase -n -u
echo $COPROC_PID
case $COPROC_PID in
[0-9]*) ;;
*) echo COPROC_PID not integer ;;
esac
echo ${COPROC[@]}
echo foo >&${COPROC[1]}
+4
View File
@@ -1,2 +1,6 @@
Testing for POSIX.2 conformance
./posix2.tests: eval: line 182: syntax error near unexpected token `esac'
./posix2.tests: eval: line 182: `case esac in (esac) ;; *) echo "case esac test 3" ;; esac'
./posix2.tests: eval: line 184: syntax error near unexpected token `)'
./posix2.tests: eval: line 184: `case esac in esac) ;; *) echo "case esac test 4";; esac'
All tests passed
+12
View File
@@ -171,6 +171,18 @@ if [ "$val1" != "'#abcd'" ]; then
testfail "variable quoting 4"
fi
# these are Posix.2 shell grammar rule 4, problems through bash-4.3
newtest
case esac in (foo|esac) ;; *) testfail "case esac test 1" ;; esac
newtest
case esac in foo|esac) ;; *) testfail "case esac test 2" ;; esac
# these are supposed to be syntax errors
newtest
eval 'case esac in (esac) ;; *) echo "case esac test 3" ;; esac'
newtest
eval 'case esac in esac) ;; *) echo "case esac test 4";; esac'
if [ $exitval = 0 ]; then
echo "All tests passed"
else
-2
View File
@@ -1,4 +1,2 @@
echo "warning: the process IDs printed will differ on every run" >&2
echo "warning: and generate diffs" >&2
${THIS_SH} ./coproc.tests > /tmp/xx 2>&1
diff /tmp/xx coproc.right && rm -f /tmp/xx
+9 -2
View File
@@ -283,7 +283,7 @@ void
run_pending_traps ()
{
register int sig;
int old_exit_value;
int old_exit_value, x;
WORD_LIST *save_subst_varlist;
sh_parser_state_t pstate;
#if defined (ARRAY_VARS)
@@ -337,8 +337,15 @@ run_pending_traps ()
(sigmodes[SIGCHLD] & SIG_INPROGRESS) == 0)
{
sigmodes[SIGCHLD] |= SIG_INPROGRESS;
run_sigchld_trap (pending_traps[sig]); /* use as counter */
x = pending_traps[sig];
pending_traps[sig] = 0;
run_sigchld_trap (x); /* use as counter */
running_trap = 0;
sigmodes[SIGCHLD] &= ~SIG_INPROGRESS;
/* continue here rather than reset pending_traps[SIGCHLD] below in
case there are recursive calls to run_pending_traps and children
have been reaped while run_sigchld_trap was running. */
continue;
}
else if (sig == SIGCHLD &&
trap_list[SIGCHLD] == (char *)IMPOSSIBLE_TRAP_HANDLER &&