mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-09 13:10:50 +02:00
commit bash-20150619 snapshot
This commit is contained in:
@@ -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
@@ -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.
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
@@ -1,5 +1,5 @@
|
||||
Platform-Specific Configuration and Operation Notes
|
||||
===================================================
|
||||
Platform-Specific Configuration and Operation Notes [somewhat dated]
|
||||
====================================================================
|
||||
|
||||
1. configure --without-gnu-malloc on:
|
||||
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
Binary file not shown.
+113
-113
@@ -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
@@ -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
|
||||
|
||||
Binary file not shown.
@@ -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)
|
||||
|
||||
@@ -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) \
|
||||
|
||||
+530
-479
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+657
-602
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+644
-589
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+527
-475
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+818
-582
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+530
-478
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -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
@@ -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
@@ -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]}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 &&
|
||||
|
||||
Reference in New Issue
Block a user