]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20150626 snapshot
authorChet Ramey <chet.ramey@case.edu>
Thu, 9 Jul 2015 15:18:25 +0000 (11:18 -0400)
committerChet Ramey <chet.ramey@case.edu>
Thu, 9 Jul 2015 15:18:25 +0000 (11:18 -0400)
13 files changed:
CHANGES
CHANGES-4.3 [deleted file]
CHANGES-4.4
CWRU/CWRU.chlog
NEWS-4.3 [deleted file]
bashline.c
lib/readline/input.c
lib/readline/parens.c
lib/readline/readline.c
parse.y
tests/RUN-ONE-TEST
tests/comsub-posix.tests
tests/shopt.right

diff --git a/CHANGES b/CHANGES
index 1925f673e718fd40c9b6bae5d4a896d243bbc54a..4898c268ed2f05d42c7b1b87b4458f147e5e42d3 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,5 @@
 This document details the changes between this version, bash-4.4-alpha, and
-the previous version, bash-4.3-release. [THROUGH 4/2015]
+the previous version, bash-4.3-release.
 
 1.  Changes to Bash
 
@@ -267,7 +267,9 @@ ffff. Fixed a bug that caused redirections to not be undone on some syntax
 
 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.
+      that create and reap large numbers of child processes.  This means that
+      `wait' no longer works on synchronous jobs, but $? can be used to get
+      the exit status in those cases.
 
 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)
@@ -314,6 +316,10 @@ tttt. Fixed a bug that caused interactive shells compiled without job control
 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.
 
+vvvv. Fixed a bug that caused the completion code to read past the end of the
+      readline line buffer while skipping assignment statements to find the
+      command name.
+
 2.  Changes to Readline
 
 a.  A bug that caused vi-mode `.' to be unable to redo `c', `d', and `y'
@@ -362,6 +368,12 @@ o.  Fixed a bug that caused history expansion to disregard characters that are
 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.
 
+q.  Fixed a bug that caused readline commands that depend on knowing which
+    key invoked them to misbehave when dispatching key sequences that are
+    prefixes of other key bindings.
+
+r.  Paren matching now works in vi insert mode.
+
 3.  New Features in Bash
 
 a.  There is now a settable configuration #define that will cause the shell
diff --git a/CHANGES-4.3 b/CHANGES-4.3
deleted file mode 100644 (file)
index 172b897..0000000
+++ /dev/null
@@ -1,845 +0,0 @@
-This document details the changes between this version, bash-4.3-release, and
-the previous version, bash-4.3-rc2.
-
-1.  Changes to Bash
-
-a.  Only Posix-mode shells should exit on an assignment failure in the
-    temporary environment preceding a special builtin.  This is how it's been
-    documented.
-
-b.  Fixed a bug that caused a failed special builtin to not exit a posix-mode
-    shell if the failing builtin was on the LHS of a && or ||.
-
-c.  Changed the handling of unquoted backslashes in regular expressions to be
-    closer to bash-4.2.
-
-d.  globstar (**) no longer traverses symbolic links that resolve to
-    directories.  This eliminates some duplicate entries.
-
-e.  Fixed a bug that caused a SIGCHLD trap handler to not be able to change the
-    SIGCHLD disposition.
-
-f.  Fixed a bug that caused a crash when -x was enabled and a command
-    contained a printable multibyte (wide) character.
-
-g.  Fixed a bug that caused an interactive shell without line editing enabled
-    to read invalid data after receiving a SIGINT.
-
-h.  Fixed a bug that caused command word completion to fail if the directory in
-    $PATH where the completion would be found contained single or double quotes.
-
-i.  Fixed a bug that caused a shell with -v enabled to print commands in $()
-    multiple times.
-
-2.  Changes to Readline
-
-a.  Fixed a bug that caused `undo' to reference freed memory or null pointers.
-
-3.  New Features in Bash
-
-a.  The [[ -v ]] option now understands array references (foo[1]) and returns
-    success if the referenced element has a value.
-
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-rc2, and the
-previous version, bash-4.3-rc1.
-
-1.  Changes to Bash
-
-a. Fixed a bug that left variables set by printf -v marked as invisible.
-
-b. Fixed an off-by-one error in a job control warning message.
-
-c. Fixed a bug that caused the shell to crash after declaring a nameref variable
-   without a value.
-
-d. Fixed a bug that caused asynchronous commands to not set $? correctly.
-
-e. Fixed a bug that caused out-of-order execution when executing aliases with
-   embedded newlines containing `.' commands.
-
-f. Fixed a bug that caused error messages generated by expansion errors in
-   `for' commands to have the wrong line number.
-
-g. Fixed a bug that caused the `wait' builtin to not be interruptible in an
-   interactive shell with job control enabled.
-
-h. Fixed a bug that caused SIGINT and SIGQUIT to not be trappable in
-   asynchronous subshell commands.
-
-i. Bash now requires that the value assigned to a nameref variable be a valid
-   shell identifier (variable name or array reference).
-
-j. Converting an existing variable to a nameref variable now turns off the
-   -i/-l/-u/-c attributes.
-
-k. Displaying a nameref variable with `declare -p' now displays the nameref
-   variable and its value rather than following the nameref chain.
-
-l. Fixed a problem with interrupt handling that caused a second and subsequent
-   SIGINT to be ignored by interactive shells.
-
-m. Fixed a bug that caused certain positional parameter and array expansions
-   to mishandle (discard) null positional parameters and array elements.
-
-n. The shell no longer blocks receipt of signals while running trap handlers
-   for those signals, and allows most trap handlers to be run recursively
-   (running trap handlers while a trap handler is executing).
-
-o. The shell now handles backslashes in regular expression arguments to the
-   [[ command's =~ operator slightly differently, resulting in more
-   consistent behavior.
-
-2.  Changes to Readline
-
-a. Fixed a bug that could cause readline to crash and seg fault attempting to
-   expand an empty history entry.
-
-b. Fixed a bug that caused a bad entry in the $LS_COLORS variable to abort all
-   color processing but leave color enabled.
-
-c. Fixed a bug that caused display problems with multi-line prompts containing
-   invisible characters on multiple lines.
-
-d. Fixed a bug that caused effects made by undoing changes to a history line to
-   be discarded.
-
-3.  New Features in Bash
-
-4.  New Features in Readline
-
-a.  When creating shared libraries on Mac OS X, the pathname written into the
-    library (install_name) no longer includes the minor version number.
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-rc1, and the
-previous version, bash-4.3-beta2.
-
-1.  Changes to Bash
-
-a. Fixed a bug in bash completion that caused a tilde to be expanded even if
-   the `direxpand' option was not enabled.
-
-b. Fixed a potential bug that could cause corrupted input in interactive shells
-   running without line editing and with `ignoreeof' enabled.
-
-c. Fixed a bug that could cause failures when opening pipes back to shells
-   created to run process substitutions.
-
-d. Fixed a bug that caused an assignment to TEXTDOMAIN to require TEXTDOMAINDIR
-   to be set in order to actually change the current text domain.
-
-e. Changed the way redirections are printed to avoid confusion when the target
-   of an output redirection is a process substitution beginning with `>'.
-
-2.  Changes to Readline
-
-a. Shared library building is now supported on Mac OS X 10.9 (Darwin 13).
-
-3.  New Features in Bash
-
-a. `cd' has a new `-@' option to browse a file's extended attributes on
-   systems that support O_XATTR.
-
-4.  New Features in Readline
-
-a. There are additional default key bindings for MinGW32
-
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-beta2, and the
-previous version, bash-4.3-beta.
-
-1.  Changes to Bash
-
-a.  Fixed a bug that caused assignment to an unset variable using a negative
-    subscript to result in a segmentation fault.
-
-b.  Fixed a bug that caused assignment to a string variable using a negative
-    subscript to use the incorrect index.
-
-c.  Fixed a bug that caused some strings to be interpreted as invalid
-    extended globbing expressions when used with the help builtin.
-
-d.  Fixed a bug that caused an attempt to trap a signal whose disposition
-    cannot be changed to reference uninitialized memory.
-
-e.  Command completion now skips assignment statements preceding a command
-    name and completes the command.
-
-f.  Fixed a bug that caused `compgen -f' in a non-interactive shell to dump
-    core under certain circumstances.
-
-g.  Fixed a bug that caused the `read -N' to misbehave when the input stream
-    contains 0xff.
-
-2.  Changes to Readline
-
-a.  Changed message when an incremental search fails to include "failed" in
-    the prompt and display the entire search string instead of just the last
-    matching portion.
-
-b.  Fixed a bug that caused an arrow key typed to an incremental search prompt
-    to process the key sequence incorrectly.
-
-c.  Additional key bindings for arrow keys on MinGW.
-
-3.  New Features in Bash
-
-a.  The help builtin now attempts substring matching (as it did through
-    bash-4.2) if exact string matching fails.
-
-b.  The fc builtin now interprets -0 as the current command line.
-
-c.  Completing directory names containing shell variables now adds a trailing
-    slash if the expanded result is a directory.
-
-4.  New Features in Readline
-
-a.  rl_change_environment: new application-settable variable that controls
-    whether or not Readline modifies the environment (currently readline
-    modifies only LINES and COLUMNS).
-
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-beta, and the
-previous version, bash-4.3-alpha.
-
-1.  Changes to Bash
-
-a.  Fixed a bug in the prompt directory name "trimming" code that caused
-    memory corruption and garbled the results.
-
-b.  Fixed a bug that caused single quotes that resulted from $'...' quoting
-    in the replacement portion of a double-quoted ${word/pat/rep} expansion
-    to be treated as quote characters.
-
-c.  Fixed a bug that caused assignment statements preceding a command word to
-    result in assignment statements following a declaration command to not be
-    expanded like assignment statements.
-
-d.  Fixed a bug with variable search order in the presence of local variables
-    with the same name as variables in the temporary environment supplied to
-    a shell function.
-
-e.  Fixed a bug that caused constructs like 1<(2) to be interpreted as process
-    substitutions even in an arithmetic context.
-
-f.  Fixed several cases where `invisible' variables (variables with attributes
-    but no values, which are technically unset) were treated incorrectly.
-
-g.  Fixed a bug that caused group commands in pipelines that were not the
-    last element to not run the EXIT trap.
-
-h.  Fixed a bug that caused `unset -n' to not unset a nameref variable in
-    certain cases.
-
-i.  Fixed the nameref circular reference checking to be less strict and only
-    disallow a nameref variable with the same value as its name at the global
-    scope.
-
-j.  Fixed a bug that caused trap handlers to be executed recursively,
-    corrupting internal data structures.
-
-k.  Fixed a bug that could result in bash not compiling if certain options were
-    not enabled.
-
-l.  Fixed a bug that caused the arithmetic expansion code to attempt variable
-    assignments when operator precedence prohibited them.
-
-m.  Word expansions like ${foo##bar} now understand indirect variable references.
-
-n.  Fixed a bug that caused `declare -fp name' to not display a function 
-    definition.
-
-o.  Fixed a bug that caused asynchronous child processes to modify the stdin
-    file pointer when bash was using it to read a script, which modified the
-    parent's value as well.
-
-2.  Changes to Readline
-
-a.  Fixed a bug in vi mode that caused the arrow keys to set the saved last
-    vi-mode command to the wrong value.
-
-b.  Fixed a bug that caused double-quoted strings to be scanned incorrectly
-    when being used as the value of a readline variable assignment.
-
-c.  Fixed a bug with vi mode that prevented `.' from repeating a command
-    entered on a previous line (command).
-
-d.  Fixed a bug that could cause completion to core dump if it was interrupted
-    by a signal.
-
-e.  Readline now sends the meta-key enable string to the terminal if the
-    terminal has been successfully initialized.
-
-f.  Readline now calls the signal hook after resizing the terminal when it
-    receives a SIGWINCH.
-
-g.  Fixed a bug that could cause the history list code to perform an out-of-
-    bounds array reference if the history list is empty.
-
-3.  New Features in Bash
-
-a.  Shells started to run process substitutions now run any trap set on EXIT.
-
-b.  There is now a configure-time option to enable the globasciiranges option
-    by default.
-
-c.  The read builtin now checks its first variable argument for validity before
-    trying to read any input.
-
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-alpha,
-and the previous version, bash-4.2-release.
-
-1.  Changes to Bash
-
-a.  Fixed several bugs concerning incomplete bracket expressions in filename
-    generation (globbing) patterns.
-
-b.  Fixed a bug with single quotes and WORD in ${param op WORD} when running
-    in Posix mode.
-
-c.  Fixed a bug that caused the pattern removal and pattern substitution word
-    expansions and case statement word expansion to not match the empty string.
-
-d.  Fixed a bug that caused the tzset() function to not work after changing
-    the TZ enviroment variable.
-
-e.  Fixed a bug that caused the RHS of an assignment statement to undergo
-    word splitting when it contained an unquoted $@.
-
-f.  Fixed bugs that caused the shell to not react to a SIGINT sent while
-    waiting for a child process to exit.
-
-g.  Bash doesn't try to run things in a signal handler context when it gets a
-    signal (SIGINT/SIGHUP/etc) while reading input using readline but still
-    be responsive to terminating signals.
-
-h.  Fixed a bug that caused bash to go into an infinite loop if a filename
-    to be matched contained an invalid multibyte character.
-
-i.  Fixed a bug that caused PS4 to end up being truncated if it is longer
-    than 128 bytes.
-
-j.  Fixed a bug that caused brace expansion to not skip over double-quoted
-    command substitution.
-
-k.  System-specific updates for: DJGPP, HP/UX, Mac OS X
-
-l.  Fixed a bug in displaying commands that caused redirections to be associated
-    with the wrong part of the command.
-
-m.  Fixed the coproc cleanup to unset the appropriate shell variables when a
-    coproc terminates.
-
-n.  Fixed a bug that caused `fc' to dump core due to incorrect calculation of
-    the last history entry.
-
-o.  Added workarounds for FreeBSD's implementation of faccessat/eaccess and
-    `test -x'.
-
-p.  Fixed a bug that caused the shell to not match patterns containing
-    control-A.
-
-q.  Fixed a bug that could result in doubled error messages when the `printf'
-    builtin got a write error.
-
-r.  Fixed a bug that caused the shell to not correctly expand words containing
-    multiple consecutive quoted empty strings (""""""aa).
-
-s.  Fixed a bug that caused the shell to not correctly parse multi-line
-    process substitutions containing comments and quoted strings.
-
-t.  Fixed a problem with the bash malloc's internal idea of the top of the
-    memory heap that resulted in incorrect decisions to try to reduce the
-    break and give memory back to the kernel.
-
-u.  There are changes to the expansions peformed on compound array assignments,
-    in an effort to make foo=( [ind1]=bar [ind2]=baz ) identical to
-    foo[ind1]=bar foo[ind2]=baz.
-
-v.  Bash now reports an error if `read -a name' is used when `name' is an
-    existing associative array.
-
-w.  Fixed a bug that allowed an attempted assignment to a readonly variable
-    in an arithmetic expression to not return failure.
-
-x.  Fixed several bugs that caused completion functions to be invoked even when
-    the cursor was before the first word in the command.
-
-y.  Fixed a bug that caused parsing a command substitution to overwrite the
-    parsing state associated with the complete input line.
-
-z.  Fixed several bugs with the built-in snprintf replacement and field widths
-    and floating point.
-
-aa. Fixed a bug that caused incorrect offset calculations and input buffer
-    corruption when reading files longer than 2^31 bytes.
-
-bb. Fixed several bugs where bash performed arithmetic evaluation in contexts
-    where evaluation is suppressed.
-
-cc. Fixed a bug that caused bash to close FIFOs used for process substitution
-    too early when a shell function was executing, but protect against using
-    all file descriptors when the shell functions are invoked inside loops.
-
-dd. Added checks for printable (and non-printable) multibyte characters for
-    use in error messages.
-
-ee. Fixed a bug that caused ^O (operate-and-get-next) to not work correctly
-    at the end of the history list.
-
-ff. Fixed a bug that caused command-oriented history to incorrectly combine
-    here documents into one line.
-
-gg. Fixed a bug that caused importing SHELLOPTS from the environment into a
-    Posix-mode shell to print an error message and refuse to parse it.
-
-hh. Fixed a bug that caused the shell to delete an extra history entry when
-    using `history -s'.
-
-ii. Fixed a bug that caused floating-point exceptions and overflow errors
-    for the / and % arithmetic operators when using INTMAX_MIN and -1.
-
-jj. Fixed a bug that caused parsing errors when reading an arithmetic for
-    loop inside a command substitution.
-
-kk. Fixed a bug that caused a readonly function to be unset when unset was
-    called without the -f or -v option.
-
-ll. Fixed several bugs in the code that quotes characters special to regular
-    expressions when used in a quoted string on the RHS of the =~ operator
-    to the [[ command.
-
-mm. Fixed a bug that caused redirections to fail because the file descriptor
-    limit was set to a value less than 10.
-
-nn. Fixed a bug that caused the `read' builtin to execute code in a signal
-    handler context if read timed out.
-
-oo. Fixed a bug that caused extended globbing patterns to not match files
-    beginning with `.' correctly when a `.' was explicitly supplied in the
-    pattern.
-
-pp. Fixed a bug that caused key sequences longer than two characters to not
-    work when used with `bind -x'.
-
-qq. Fixed a bug that resulted in redefined functions having the wrong source
-    file names in BASH_SOURCE.
-
-rr. Fixed a bug that caused the read builtin to assign null strings to variables
-    when using `read -N', which caused core dumps when referenced
-
-ss. Fixed a bug that caused `bash -m script' to not enable job control while
-    running the script.
-
-tt. Fixed a bug that caused `printf -v var' to dump core when used with the
-    %b format code.
-
-uu. Fixed a bug that caused the shell to exit with the wrong status if -e was
-    active and the shell exited on a substitution error.
-
-vv. Fixed a bug that caused the shell to seg fault if an array variable with
-    the same name as an existing associative array was implicitly created by
-    an assignment (declare a[n]=b).
-
-ww. Fixed a bug that caused a redirection to misbehave if the number specified
-    for a file descriptor overflows an intmax_t.
-
-xx. Fixed several bugs with the handling of valid and invalid unicode character
-    values when used with the \u and \U escape sequences to printf and $'...'.
-
-yy. Fixed a bug that caused tildes to not be escaped in expanded filenames,
-    making them subject to later expansion.
-
-zz. When using the pattern substitution word expansion, bash now runs the
-    replacement string through quote removal, since it allows quotes in that
-    string to act as escape characters.  This is not backwards compatible, so
-    it can be disabled by setting the bash compatibility mode to 4.2.
-
-aaa. Fixed the rest of the cases where the shell runs non-allowed code in a
-     signal handler context.
-
-bbb. Fixed a bug that caused spurious DEL characters (\177) to appear in
-     double-quoted expansion where the RHS is evaluated to the empty string.
-
-ccc. Fixed a bug that caused the use of the shell's internal random number
-     generator for temporary file names to perturb the random number
-     sequence.
-
-ddd. Fixed several bugs that caused `declare -g' to not set the right global
-     variables or to misbehave when declaring global indexed arrays.
-
-eee. Fixed a logic bug that caused extended globbing in a multibyte locale to
-     cause failures when using the pattern substititution word expansions.
-
-fff. Fixed a bug that caused the `lastpipe' option to corrupt the file
-     descriptor used to read the script.
-
-ggg. Fixed a bug that causes the shell to delete DEL characters in the
-     expanded value of variables used in the same quoted string as variables
-     that expand to nothing.
-
-hhh. Fixed a bug that caused the shell to assign the wrong value from an
-     assignment like (( x=7 )) when `x' was an existing array variable.
-
-iii. Fixed a bug that caused the shell to misbehave when generating sequences
-     and the boundary values overflow an intmax_t.
-
-jjj. Fixed a bug caused expansion errors if an expansion of "$@" appeared
-     next to another expansion (e.g.. "${@}${x}").
-
-kkk. Fixed a potential buffer overflow bug when performing /dev/fd expansion.
-
-lll. Fixed a bug that resulted in an extra semicolon being added to compound
-     assignments when they were added to the history list.
-
-mmm. Fixed a bug that caused mapfile to read one extra line from the input.
-
-nnn. Fixed a bug that caused the mail checking code to use uninitialized
-     values.
-
-ooo. Fixed a bug that prevented history timestamps from being saved if the
-     history comment character is unset.
-
-ppp. Fixed a bug that caused the case-modifying expansions to not work with
-     multibyte characters.
-
-qqq. Fixed a bug that caused the edit-and-execute bindable readline command
-     to see the wrong data if invoked in the middle of a multi-line quoted
-     string.
-
-rrr. Fixed a bug that resulted in the shell returning the wrong exit status
-     for a background command on systems that recycle PIDs very quickly.
-
-sss. Fixed a bug that caused asynchronous group commands to not run any EXIT
-     trap defined in the body of the command.
-
-ttt. Fixed a bug that caused `eval "... ; return"' to not clean up properly.
-
-uuu. Fixed a bug that caused the shell to dump core if `read' reads an escaped
-     IFS whitespace character.
-
-vvv. Fixed a bug that caused BASH_COMMAND to be set to an incorrect value when
-     executing a (...) subshell.
-
-www. Fixed a couple of pointer aliasing bugs with the token string in arithmetic
-     evaluation.
-
-xxx. Fixed a bug with parsing multi-line command substitutions when reading
-     the `do' keyword followed by whitespace.
-
-yyy. Fixed a bug that caused the shell to seg fault if the time given to the
-     printf %(...)T format overflowed the value accepted by localtime(3).
-
-zzz. Fixed a problem with displaying help topics in two columns when the
-     translated text contained multibyte characters.
-
-aaaa. Fixed a bug with the extended globbing pattern matcher where a `*' was
-      followed by a negated extended glob pattern.
-
-bbbb. Fixed a race condition with short-lived coproc creation and reaping that
-      caused the child process to be reaped before the various coproc shell
-      variables were initialized.
-
-cccc. Fixed a bug where turning off `errexit' in command substitution subshells
-      was not reflected in $SHELLOPTS.
-
-dddd. Partially fixed an inconsistency in how the shell treated shell
-      functions run from an EXIT trap.
-
-eeee. Fixed a bug in how the shell invalidated FIFOs used for process
-      substitution when executing a pipeline (once rather than in every child).
-
-ffff. Fixed a bug that occurred when expanding a special variable ($@, $*)
-      within double quotes and the expansion resulted in an empty string.
-
-gggg. Fixed bugs with executing a SIGCHLD trap handler to make sure that it's
-      executed once per exited child.
-
-hhhh. Fixed a bug that caused `declare' and `test' to find variables that
-      had been given attributes but not assigned values.  Such variables are
-      not set.
-
-iiii. Fixed a bug that caused commands in process substitutions to not look in
-      the local temporary environment when performing word expansions.
-
-jjjj. Fixed several problems with globstar expansions (**/**) returning null
-      filenames and multiple instances of the same pathname.
-
-kkkk. Fixed an oversight that did not allow the exit status of `coproc' to
-      be inverted using `!'.
-
-llll. Fixed a bug that caused the -e option to be re-enabled using `set -e'
-      even when executing in a context where -e is ignored.
-
-mmmm. Fixed a (mostly theoretical) bug with input lines longer than SIZE_MAX.
-
-nnnn. Fixed a bug that could result in double evaluation of command
-      substitutions when they appear in failed redirections.
-
-oooo. Fixed a bug that could cause seg faults during `mapfile' callbacks if
-      the callback unsets the array variable mapfile is using.
-
-pppp. Fixed several problems with variable assignments using ${var:=value}
-      when the variable assignment is supposed to have side effects.
-
-qqqq. Fixed a bug that caused a failure of an assignment statement preceding a
-      builtin caused the next invocation of a special builtin to exit the shell.
-
-rrrr. Fixed several problems with IFS when it appears in the temporary environment
-      and is used in redirections.
-
-ssss. Fixed a problem that caused IFS changes using ${IFS:=value} to modify
-      how preceding expansions were split.
-
-tttt. Fixed a problem that caused subshells to not run an EXIT trap they set.
-
-uuuu. Fixed a problem that caused shells started in posix mode to attempt to
-      import shell functions with invalid names from the environment.  We now
-      print a warning.
-
-vvvv. Worked around a kernel problem that caused SIGCHLD to interrupt open(2)
-      on a FIFO used for process substitution, even if the SIGCHLD handler was
-      installed with the SA_RESTART flag.
-
-wwww. Fixed a problem that resulted in inconsistent expansion of $* and ${a[*]}.
-
-xxxx. Fixed a problem that caused `read -t' to crash when interrupted by
-      SIGINT.
-
-yyyy. Fixed a problem that caused pattern removal to fail randomly because the
-      pattern matcher read beyond the end of a string.
-
-zzzz. Fixed a bug that caused core dumps when shell functions tried to create
-      local shadow copies of special variables like GROUPS.
-
-aaaaa. Fixed a bug that caused SIGTERM to be occasionally lost by children of
-       interactive shells when it arrived before the child process reset the
-       handler from SIG_DFL.
-
-bbbbb. Fixed a bug that caused redirections like <&n- to leave file descriptor
-       n closed if executed with a builtin command.
-
-ccccc. Fixed a bug that caused incorrect completion quoting when completing a
-       word containing a globbing character with `show-all-if-ambiguous' set.
-
-ddddd. Fixed a bug that caused printf's %q format specifier not to quote a
-       tilde even if it appeared in a location where it would be subject to
-       tilde expansion.
-
-2.  Changes to Readline
-
-a.  Fixed a bug that did not allow the `dd', `cc', or `yy' vi editing mode
-    commands to work on the entire line.
-
-b.  Fixed a bug that caused redisplay problems with prompts longer than 128
-    characters and history searches.
-
-c.  Fixed a bug that caused readline to try and run code to modify its idea
-    of the screen size in a signal handler context upon receiving a SIGWINCH.
-
-d.  Fixed a bug that caused the `meta' key to be enabled beyond the duration
-    of an individual call top readline().
-    
-e.  Added a workaround for a wcwidth bug in Mac OS X that caused readline's
-    redisplay to mishandle zero-width combining characters.
-
-f.  Fixed a bug that caused readline to `forget' part of a key sequence when
-    a multiple-key sequence caused it to break out of an incremental search.
-
-g.  Fixed bugs that caused readline to execute code in a signal handler
-    context if interrupted while reading from the file system during completion.
-
-h.  Fixed a bug that caused readline to `forget' part of a key sequence when
-    reading an unbound multi-character key sequence.
-
-i.  Fixed a bug that caused Readline's signal handlers to be installed beyond
-    the bounds of a single call to readline().
-
-j.  Fixed a bug that caused the `.' command to not redo the most recent `R'
-    command in vi mode.
-
-k.  Fixed a bug that caused ignoring case in completion matches to result in
-    readline using the wrong match.
-
-l.  Paren matching now works in vi insert mode.
-
-m.  Fix menu-completion to make show-all-if-ambiguous and menu-complete-display-prefix
-    work together.
-
-n.  Fixed a bug that didn't allow the `cc', `dd', or `yy' commands to be redone
-    in vi editing mode.
-
-o.  Fixed a bug that caused the filename comparison code to not compare
-    multibyte characters correctly when using case-sensitive or case-mapping
-    comparisons.
-
-p.  Fixed the input reading loop to call the input hook function only when there
-    is no terminal input available.
-
-q.  Fixed a bug that caused binding a macro to a multi-character key sequence
-    where the sequence and macro value share a common prefix to not perform
-    the macro replacement.
-
-r.  Fixed several redisplay errors with multibyte characters and prompts
-    containing invisible characters when using horizontal scrolling.
-
-s.  Fixed a bug that caused redisplay errors when trying to overwrite
-    existing characters using multibyte characters.
-
-3.  New Features in Bash
-
-a.  The `helptopic' completion action now maps to all the help topics, not just
-    the shell builtins.
-
-b.  The `help' builtin no longer does prefix substring matching, so `help read'
-    does not match `readonly'.
-
-c.  The shell can be compiled to not display a message about processes that
-    terminate due to SIGTERM.
-
-d.  Non-interactive shells now react to the setting of checkwinsize and set
-    LINES and COLUMNS after a foreground job exits.
-
-e.  There is a new shell option, `globasciiranges', which, when set to on,
-    forces globbing range comparisons to use character ordering as if they
-    were run in the C locale.
-
-f.  There is a new shell option, `direxpand', which makes filename completion
-    expand variables in directory names in the way bash-4.1 did.
-
-g.  In Posix mode, the `command' builtin does not change whether or not a
-    builtin it shadows is treated as an assignment builtin.
-
-h.  The `return' and `exit' builtins accept negative exit status arguments.
-
-i.  The word completion code checks whether or not a filename containing a
-    shell variable expands to a directory name and appends `/' to the word
-    as appropriate.  The same code expands shell variables in command names
-    when performing command completion.
-
-j.  In Posix mode, it is now an error to attempt to define a shell function
-    with the same name as a Posix special builtin.
-
-k.  When compiled for strict Posix conformance, history expansion is disabled
-    by default.
-
-l.  The history expansion character (!) does not cause history expansion when
-    followed by the closing quote in a double-quoted string.
-
-m.  `complete' and its siblings compgen/compopt now takes a new `-o noquote'
-    option to inhibit quoting of the completions.
-
-n.  Setting HISTSIZE to a value less than zero causes the history list to be
-    unlimited (setting it 0 zero disables the history list).
-
-o.  Setting HISTFILESIZE to a value less than zero causes the history file size
-    to be unlimited (setting it to 0 causes the history file to be truncated
-    to zero size).
-
-p.  The `read' builtin now skips NUL bytes in the input.
-
-q.  There is a new `bind -X' option to print all key sequences bound to Unix
-    commands.
-
-r.  When in Posix mode, `read' is interruptible by a trapped signal.  After
-    running the trap handler, read returns 128+signal and throws away any
-    partially-read input.
-
-s.  The command completion code skips whitespace and assignment statements
-    before looking for the command name word to be completed.
-
-t.  The build process has a new mechanism for constructing separate help files
-    that better reflects the current set of compilation options.
-
-u.  The -nt and -ot options to test now work with files with nanosecond
-    timestamp resolution.
-
-v.  The shell saves the command history in any shell for which history is
-    enabled and HISTFILE is set, not just interactive shells.
-
-w.  The shell has `nameref' variables and new -n(/+n) options to declare and
-    unset to use them, and a `test -R' option to test for them.
-
-x.  The shell now allows assigning, referencing, and unsetting elements of
-    indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which
-    count back from the last element of the array.
-
-y.  The {x}<word redirection feature now allows words like {array[ind]} and
-    can use variables with special meanings to the shell (e.g., BASH_XTRACEFD).
-
-z.  There is a new CHILD_MAX special shell variable; its value controls the
-    number of exited child statues the shell remembers.
-
-aa. There is a new configuration option (--enable-direxpand-default) that
-    causes the `direxpand' shell option to be enabled by default.
-
-bb. Bash does not do anything special to ensure that the file descriptor
-    assigned to X in {x}<foo remains open after the block containing it
-    completes.
-
-cc. The `wait' builtin has a new `-n' option to wait for the next child to
-    change status.
-
-dd. The `printf' %(...)T format specifier now uses the current time if no
-    argument is supplied.
-
-ee. There is a new variable, BASH_COMPAT, that controls the current shell
-    compatibility level.
-
-ff. The `popd' builtin now treats additional arguments as errors.
-
-gg. The brace expansion code now treats a failed sequence expansion as a
-    simple string and will continue to expand brace terms in the remainder
-    of the word.
-
-4.  New Features in Readline
-
-a.  Readline is now more responsive to SIGHUP and other fatal signals when
-    reading input from the terminal or performing word completion but no
-    longer attempts to run any not-allowable functions from a signal handler
-    context.
-
-b.  There are new bindable commands to search the history for the string of
-    characters between the beginning of the line and the point
-    (history-substring-search-forward, history-substring-search-backward)
-
-c.  Readline allows quoted strings as the values of variables when setting
-    them with `set'.  As a side effect, trailing spaces and tabs are ignored
-    when setting a string variable's value.
-
-d.  The history library creates a backup of the history file when writing it
-    and restores the backup on a write error.
-
-e.  New application-settable variable: rl_filename_stat_hook: a function called
-    with a filename before using it in a call to stat(2).  Bash uses it to
-    expand shell variables so things like $HOME/Downloads have a slash
-    appended.
-
-f.  New bindable function `print-last-kbd-macro', prints the most-recently-
-    defined keyboard macro in a reusable format.
-
-g.  New user-settable variable `colored-stats', enables use of colored text
-    to denote file types when displaying possible completions (colored analog
-    of visible-stats).
-
-h.  New user-settable variable `keyseq-timout', acts as an inter-character
-    timeout when reading input or incremental search strings.
-
-i.  New application-callable function: rl_clear_history. Clears the history list
-    and frees all readline-associated private data.
-
-j.  New user-settable variable, show-mode-in-prompt, adds a characters to the
-    beginning of the prompt indicating the current editing mode.
-
-k.  New application-settable variable: rl_input_available_hook; function to be
-    called when readline needs to check whether there is data available on its
-    input source.  The default hook checks rl_instream.
-
-l.  Readline calls an application-set event hook (rl_signal_event_hook) after
-    it gets a signal while reading input (read returns -1/EINTR but readline
-    does not handle the signal immediately) to allow the application to handle
-    or otherwise note it.  Not currently called for SIGHUP or SIGTERM.
-
-m.  If the user-settable variable `history-size' is set to a value less than
-    0, the history list size is unlimited.
index cbde3f83b54b764d69b86ccc6bd2982a5d63d417..36205be1dfee213df8326082d63d4ed4e2b2e304 100644 (file)
@@ -267,7 +267,9 @@ ffff. Fixed a bug that caused redirections to not be undone on some syntax
 
 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.
+      that create and reap large numbers of child processes.  This means that
+      `wait' no longer works on synchronous jobs, but $? can be used to get
+      the exit status in those cases.
 
 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)
@@ -314,6 +316,10 @@ tttt. Fixed a bug that caused interactive shells compiled without job control
 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.
 
+vvvv. Fixed a bug that caused the completion code to read past the end of the
+      readline line buffer while skipping assignment statements to find the
+      command name.
+
 2.  Changes to Readline
 
 a.  A bug that caused vi-mode `.' to be unable to redo `c', `d', and `y'
@@ -362,6 +368,12 @@ o.  Fixed a bug that caused history expansion to disregard characters that are
 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.
 
+q.  Fixed a bug that caused readline commands that depend on knowing which  
+    key invoked them to misbehave when dispatching key sequences that are
+    prefixes of other key bindings. 
+
+r.  Paren matching now works in vi insert mode.
+
 3.  New Features in Bash
 
 a.  There is now a settable configuration #define that will cause the shell
index 6698375e91cfb169f4351fd3da36c539abe75b91..be0fb8731c7448e77ae43ca79dd80aa7349f38fb 100644 (file)
@@ -8897,3 +8897,33 @@ trap.c
          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
+
+                                  6/22
+                                  ----
+lib/readline/readline.c
+       - _rl_dispatch_subseq: if we shadowed any function, not just self-
+         insert, bind that function to the key we shadowed and dispatch on it.
+         This preserves and dispatches off the original key, not ANYOTHERKEY,
+         and makes sure we are dispatching from a keymap with the right key
+         binding.  Fixes bug reported by Carlos Pita
+         <carlosjosepita@gmail.com>
+
+                                  6/23
+                                  ----
+bashline.c
+       - attempt_shell_completion: don't read past the end of rl_line_buffer
+         while skipping assignment statements before command names.  Fix for
+         bug reported by Hanno Böck <hanno@hboeck.de>
+
+lib/readline/parens.c
+       - _rl_enable_paren_matching: make paren matching work in vi insert
+         mode. Really, this time.  Bug report from Carlos Pita
+         <carlosjosepita@gmail.com>
+
+                                  6/29
+                                  ----
+parse.y
+       - parse_comsub: when starting to parse a word, make sure that we set
+         lex_rwlen to 0 along with lex_wlen if we are in a position where we
+         can read a reserved word.  Fixes bug reported by  Nathan Neulinger
+         <nneul@neulinger.org>
diff --git a/NEWS-4.3 b/NEWS-4.3
deleted file mode 100644 (file)
index 4cc2aa5..0000000
--- a/NEWS-4.3
+++ /dev/null
@@ -1,182 +0,0 @@
-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.
-
-1.  New Features in Bash
-
-a.  The `helptopic' completion action now maps to all the help topics, not just
-    the shell builtins.
-
-b.  The `help' builtin no longer does prefix substring matching first, so
-    `help read' does not match `readonly', but will do it if exact string
-    matching fails.
-
-c.  The shell can be compiled to not display a message about processes that
-    terminate due to SIGTERM.
-
-d.  Non-interactive shells now react to the setting of checkwinsize and set
-    LINES and COLUMNS after a foreground job exits.
-
-e.  There is a new shell option, `globasciiranges', which, when set to on,
-    forces globbing range comparisons to use character ordering as if they
-    were run in the C locale.
-
-f.  There is a new shell option, `direxpand', which makes filename completion
-    expand variables in directory names in the way bash-4.1 did.
-
-g.  In Posix mode, the `command' builtin does not change whether or not a
-    builtin it shadows is treated as an assignment builtin.
-
-h.  The `return' and `exit' builtins accept negative exit status arguments.
-
-i.  The word completion code checks whether or not a filename containing a
-    shell variable expands to a directory name and appends `/' to the word
-    as appropriate.  The same code expands shell variables in command names
-    when performing command completion.
-
-j.  In Posix mode, it is now an error to attempt to define a shell function
-    with the same name as a Posix special builtin.
-
-k.  When compiled for strict Posix conformance, history expansion is disabled
-    by default.
-
-l.  The history expansion character (!) does not cause history expansion when
-    followed by the closing quote in a double-quoted string.
-
-m.  `complete' and its siblings compgen/compopt now takes a new `-o noquote'
-    option to inhibit quoting of the completions.
-
-n.  Setting HISTSIZE to a value less than zero causes the history list to be
-    unlimited (setting it 0 zero disables the history list).
-
-o.  Setting HISTFILESIZE to a value less than zero causes the history file size
-    to be unlimited (setting it to 0 causes the history file to be truncated
-    to zero size).
-
-p.  The `read' builtin now skips NUL bytes in the input.
-
-q.  There is a new `bind -X' option to print all key sequences bound to Unix
-    commands.
-
-r.  When in Posix mode, `read' is interruptible by a trapped signal.  After
-    running the trap handler, read returns 128+signal and throws away any
-    partially-read input.
-
-s.  The command completion code skips whitespace and assignment statements
-    before looking for the command name word to be completed.
-
-t.  The build process has a new mechanism for constructing separate help files
-    that better reflects the current set of compilation options.
-
-u.  The -nt and -ot options to test now work with files with nanosecond
-    timestamp resolution.
-
-v.  The shell saves the command history in any shell for which history is
-    enabled and HISTFILE is set, not just interactive shells.
-
-w.  The shell has `nameref' variables and new -n(/+n) options to declare and
-    unset to use them, and a `test -R' option to test for them.
-
-x.  The shell now allows assigning, referencing, and unsetting elements of
-    indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which
-    count back from the last element of the array.
-
-y.  The {x}<word redirection feature now allows words like {array[ind]} and
-    can use variables with special meanings to the shell (e.g., BASH_XTRACEFD).
-
-z.  There is a new CHILD_MAX special shell variable; its value controls the
-    number of exited child statues the shell remembers.
-
-aa. There is a new configuration option (--enable-direxpand-default) that
-    causes the `direxpand' shell option to be enabled by default.
-
-bb. Bash does not do anything special to ensure that the file descriptor
-    assigned to X in {x}<foo remains open after the block containing it
-    completes.
-
-cc. The `wait' builtin has a new `-n' option to wait for the next child to
-    change status.
-
-dd. The `printf' %(...)T format specifier now uses the current time if no
-    argument is supplied.
-
-ee. There is a new variable, BASH_COMPAT, that controls the current shell
-    compatibility level.
-
-ff. The `popd' builtin now treats additional arguments as errors.
-
-gg. The brace expansion code now treats a failed sequence expansion as a
-    simple string and will continue to expand brace terms in the remainder
-    of the word.
-
-hh. Shells started to run process substitutions now run any trap set on EXIT.
-
-ii. The fc builtin now interprets -0 as the current command line.
-
-jj. Completing directory names containing shell variables now adds a trailing
-    slash if the expanded result is a directory.
-
-kk. `cd' has a new `-@' option to browse a file's extended attributes on
-   systems that support O_XATTR.
-
-ll. The test/[/[[ `-v variable' binary operator now understands array
-    references.
-
-2.  New Features in Readline
-
-a.  Readline is now more responsive to SIGHUP and other fatal signals when
-    reading input from the terminal or performing word completion but no
-    longer attempts to run any not-allowable functions from a signal handler
-    context.
-
-b.  There are new bindable commands to search the history for the string of
-    characters between the beginning of the line and the point
-    (history-substring-search-forward, history-substring-search-backward)
-
-c.  Readline allows quoted strings as the values of variables when setting
-    them with `set'.  As a side effect, trailing spaces and tabs are ignored
-    when setting a string variable's value.
-
-d.  The history library creates a backup of the history file when writing it
-    and restores the backup on a write error.
-
-e.  New application-settable variable: rl_filename_stat_hook: a function called
-    with a filename before using it in a call to stat(2).  Bash uses it to
-    expand shell variables so things like $HOME/Downloads have a slash
-    appended.
-
-f.  New bindable function `print-last-kbd-macro', prints the most-recently-
-    defined keyboard macro in a reusable format.
-
-g.  New user-settable variable `colored-stats', enables use of colored text
-    to denote file types when displaying possible completions (colored analog
-    of visible-stats).
-
-h.  New user-settable variable `keyseq-timout', acts as an inter-character
-    timeout when reading input or incremental search strings.
-
-i.  New application-callable function: rl_clear_history. Clears the history list
-    and frees all readline-associated private data.
-
-j.  New user-settable variable, show-mode-in-prompt, adds a characters to the
-    beginning of the prompt indicating the current editing mode.
-
-k.  New application-settable variable: rl_input_available_hook; function to be
-    called when readline detects there is data available on its input file
-    descriptor.
-
-l.  Readline calls an application-set event hook (rl_event_hook) after it gets
-    a signal while reading input (read returns -1/EINTR but readline does not
-    handle the signal immediately) to allow the application to handle or
-    otherwise note it.
-
-m.  If the user-settable variable `history-size' is set to a value less than
-    0, the history list size is unlimited.
-
-n.  New application-settable variable: rl_signal_event_hook; function that is
-    called when readline is reading terminal input and read(2) is interrupted
-    by a signal.  Currently not called for SIGHUP or SIGTERM.
-
-o.  rl_change_environment: new application-settable variable that controls
-    whether or not Readline modifies the environment (currently readline
-    modifies only LINES and COLUMNS).
index 1cef29efad1cf2207fca5635041f4c5d0570e037..626c19bb0540939810873bdd4bd0098f1d66a404 100644 (file)
@@ -1527,6 +1527,12 @@ attempt_shell_completion (text, start, end)
       e = find_cmd_end (end);
       do
        {
+         /* Don't read past the end of rl_line_buffer */
+         if (s > rl_end)
+           {
+             s1 = s = e1;
+             break;
+           }
          /* Skip over assignment statements preceding a command name.  If we
             don't find a command name at all, we can perform command name
             completion.  If we find a partial command name, we should perform
index 186443da803edaf44a5624eaf44d1f52793aad7e..bbb39478f94544be28664b24e73b2e820f97352e 100644 (file)
@@ -105,7 +105,7 @@ static int rl_gather_tyi PARAMS((void));
 int
 win32_isatty (int fd)
 {
-  return (_isatty (fd) ? ((((long) (HANDLE) _get_osfhandle (fd)) & 3) == 3) ? 0);
+  return (_isatty (fd) ? ((((long) (HANDLE) _get_osfhandle (fd)) & 3) == 3) : 0);
 }
 
 #define isatty(x)      win32_isatty(x)
index 6c8289b510a12cc46fc09d20174a464f03af0f4c..d77297e6b113e2aa1e5d45fe016528c42410c0db 100644 (file)
@@ -68,16 +68,32 @@ _rl_enable_paren_matching (on_or_off)
      int on_or_off;
 {
   if (on_or_off)
-    {  /* ([{ */
+    {
+      /* ([{ */
       rl_bind_key_in_map (')', rl_insert_close, emacs_standard_keymap);
       rl_bind_key_in_map (']', rl_insert_close, emacs_standard_keymap);
       rl_bind_key_in_map ('}', rl_insert_close, emacs_standard_keymap);
+
+#if defined (VI_MODE)
+      /* ([{ */
+      rl_bind_key_in_map (')', rl_insert_close, vi_insertion_keymap);
+      rl_bind_key_in_map (']', rl_insert_close, vi_insertion_keymap);
+      rl_bind_key_in_map ('}', rl_insert_close, vi_insertion_keymap);
+#endif
     }
   else
-    {  /* ([{ */
+    {
+      /* ([{ */
       rl_bind_key_in_map (')', rl_insert, emacs_standard_keymap);
       rl_bind_key_in_map (']', rl_insert, emacs_standard_keymap);
       rl_bind_key_in_map ('}', rl_insert, emacs_standard_keymap);
+
+#if defined (VI_MODE)
+      /* ([{ */
+      rl_bind_key_in_map (')', rl_insert, vi_insertion_keymap);
+      rl_bind_key_in_map (']', rl_insert, vi_insertion_keymap);
+      rl_bind_key_in_map ('}', rl_insert, vi_insertion_keymap);
+#endif
     }
 }
 
index b0f2191aeeefb24e0d9b23a3048ac7c3ce2b12f1..146330816dbd08662b8077428b245c1b8215e571 100644 (file)
@@ -1023,11 +1023,13 @@ _rl_subseq_result (r, map, key, got_subseq)
       func = m[ANYOTHERKEY].function;
       if (type == ISFUNC && func == rl_do_lowercase_version)
        r = _rl_dispatch (_rl_to_lower (key), map);
-      else if (type == ISFUNC && func == rl_insert)
+      else if (type == ISFUNC)
        {
-         /* If the function that was shadowed was self-insert, we
-            somehow need a keymap with map[key].func == self-insert.
-            Let's use this one. */
+         /* If we shadowed a function, whatever it is, we somehow need a
+            keymap with map[key].func == shadowed-function.
+            Let's use this one.  Then we can dispatch using the original
+            key, since there are commands (e.g., in vi mode) for which it
+            matters. */
          nt = m[key].type;
          nf = m[key].function;
 
@@ -1038,6 +1040,7 @@ _rl_subseq_result (r, map, key, got_subseq)
          m[key].function = nf;
        }
       else
+       /* We probably shadowed a keymap, so keep going. */
        r = _rl_dispatch (ANYOTHERKEY, m);
     }
   else if (r && map[ANYOTHERKEY].function)
diff --git a/parse.y b/parse.y
index a94d3e5f623ab3d26fcd462787ea58bba5a83041..9e88629163673e20d9fd1bf4b407b2b0d4414d86 100644 (file)
--- a/parse.y
+++ b/parse.y
@@ -3747,6 +3747,8 @@ eof_error:
 /*itrace("parse_comsub:%d: lex_inword -> 1 ch = `%c' (%d)", line_number, ch, __LINE__);*/
              tflags |= LEX_INWORD;
              lex_wlen = 0;
+             if (tflags & LEX_RESWDOK)
+               lex_rwlen = 0;
            }
        }
 
@@ -3868,7 +3870,7 @@ eof_error:
                          lex_rwlen == 2 &&
                          STREQN (ret + retind - 2, "do", 2))
            {
-/*itrace("parse_comsub:%d: lex_incase == 1 found `%c', found \"do\"", line_number, ch);*/
+/*itrace("parse_comsub:%d: lex_incase == 0 found `%c', found \"do\"", line_number, ch);*/
              lex_rwlen = 0;
            }
          else if MBTEST((tflags & LEX_INCASE) && ch != '\n')
index 3efcf32d68e9722024b6ca9d67f9e81b2aa5ac04..72ec06a2c1fd8dde92acea5e8ac773e35f1d061b 100755 (executable)
@@ -1,4 +1,4 @@
-BUILD_DIR=/usr/local/build/chet/bash/bash-current
+BUILD_DIR=/usr/local/build/bash/bash-current
 THIS_SH=$BUILD_DIR/bash
 PATH=$PATH:$BUILD_DIR
 
index b2cb4418207c1bbf32f060c5b7cf5ae396dd1155..0650ca987fc04822673d81d011597d894e8b09c9 100644 (file)
@@ -218,5 +218,15 @@ unset x
 : $(case a in a) echo ;; # comment
 esac)
 
+# fixed after bash-4.3 released
+testing=$(
+    echo test | while read line; do
+        case $line in
+             test)  echo saw test ;;
+             *)     echo other ;;
+        esac
+    done
+)
+
 # recommended to be parsed as a nested comsub instead of arithsub
 echo $(( echo ab cde ) )
index 950305238cb01cafab90cf5e4393087d6ec8b79b..819f65e0cc1dae2bad3a430e895bd1367c09d75e 100644 (file)
@@ -13,6 +13,7 @@ shopt -u compat32
 shopt -u compat40
 shopt -u compat41
 shopt -u compat42
+shopt -u compat43
 shopt -s complete_fullquote
 shopt -u direxpand
 shopt -u dirspell
@@ -74,6 +75,7 @@ shopt -u compat32
 shopt -u compat40
 shopt -u compat41
 shopt -u compat42
+shopt -u compat43
 shopt -u direxpand
 shopt -u dirspell
 shopt -u dotglob
@@ -110,6 +112,7 @@ compat32            off
 compat40               off
 compat41               off
 compat42               off
+compat43               off
 direxpand              off
 dirspell               off
 dotglob                off