Seen with magic-space.
If there's a parse error in command subtitution we need to complete
reading history to ensure the command line buffer is finished.
This was problematic if the expansion landed you back in
command position.
Delay marking the alias as out of use until the text that
caused the expansion is finished.
The completion result is still in need of some repair; e.g., if the first
thing on the line is the redirection, completion before it is not taken
to be in command position, and in this and other cases a necessary space
is not inserted between the completed word and the redirection.
Typeset assignments now work like raw assignments except
for no "+=" and no GLOB_ASSIGN.
Documented in typeset builtin doc and mentioned in release notes.
Tests to ensure basic sanity.
Enabled by default, can be turned off by "disable -r" with typeset
family of commands.
"|" is now found properly by looking for words that come
from the lexical analyser, rather than hacking a pattern
returned in one dollop.
Update some completion functions that need extra quoting
as a result.
Add test for new parsing.
Update version number to 5.0.8-dev-3 because of wordcode
incompatibility.
Handled generally, though only showing up in special nested
cases.
Also fix ZLE so it doesn't cancel the interrupt flag when
not actually returning from a local keymap.
Mostly for the case of an interrupt.
Don't try to process words when we know something's gone wrong.
Also abort history reading earlier on an interrupt.
In general we need to wind back over the history text input
inside command substitution because there's no level of
the input mechanism between history and the lexer.
restrict token aliasing (34641) to global aliases; tighten up POSIX_ALIASES to better match spec; update Aliasing doc to cover this and clarify older behavior
2015-03-18 Peter Stephenson <p.stephenson@samsung.com>
* 34723: configure.ac: turn off fixed site function directory if
Mark arithmetic substitutions with tokens to make sure the substitution
go knows what to do. Before it was guessing by counting the
parentheses at the end.
Garbage input (nul bytes, etc.) can cause the $(...) parser to become
confused during look-ahead and attempt to back up the input too far.
This commit catches the error but does not fix the underlying cause.
Was showing up in places like ${(e)...} where command substitution
could reallocate the token string, but actually there was never any
guarantee that the lexer wouldn't do that, so this was always
a bit iffy.