summary refs log tree commit diff
path: root/Src/parse.c
Commit message (Collapse)AuthorAgeFilesLines
* unposted: fix up for 5.0.8-test-2 zsh-5.0.8-test-2Peter Stephenson2015-08-211-1/+1
|
* 36265 plus FAQ: fix alias expansion after "function"Peter Stephenson2015-08-211-2/+3
| | | | | | | Owing to interesting historical parsing, names after the first were treated as command words so had non-global aliases expanded. Add an FAQ note that use of the function keyword works around other alias problems
* 36022 fix bug that some loop constructs could not be interrupted, revise ↵Barton E. Schaefer2015-08-091-0/+8
| | | | | | | | | | | signal queueing There are two underlying ideas here: (1) Keeping signals queued around anything that's doing memory management (including push/pop of the heap) has become crucial. (2) Anytime the shell is going to run a command, be it buitin or external, it must be both safe and necessary to process any queued signals, so that the apparent order of signal arrival and command execution is preserved.
* 35643: Redirections after typeset assignments were broken.Peter Stephenson2015-06-281-0/+2
|
* various posts: Implement assignment parsing for typeset.Peter Stephenson2015-06-241-21/+110
| | | | | | | | | | | | 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.
* 35306: "test -z \(" failed due to parse confusionPeter Stephenson2015-05-271-8/+17
|
* 35250: Fix case documentation (SH_GLOB)Peter Stephenson2015-05-211-2/+2
|
* 35248: treat fully parenthised zsh patterns as complete case patterns againPeter Stephenson2015-05-211-10/+85
|
* 35184: Additional case fix for 35168.Peter Stephenson2015-05-181-2/+0
| | | | | Lexical analysis flags got screwed up after a "|", so we didn't parse patterns properly, in particular those with parentheses.
* 35168: Improve parsing of case patterns.Peter Stephenson2015-05-181-66/+23
| | | | | | | | | | | | | | "|" 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.
* 34921: handle error in recursive par_event().Peter Stephenson2015-04-171-0/+1
| | | | Here documents in an interrupted list caused bad juju.
* 34905: no parse error after keyboard interrupt.Peter Stephenson2015-04-171-1/+1
| | | | | | | | 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.
* 34514: Back out 34485, an alternate solution needs to be worked out.Barton E. Schaefer2015-02-121-2/+4
| | | | (Tweaked to keep the unrelated hunk of the E01 test.)
* 34485: More rationalisation for anonymous functions.Peter Stephenson2015-02-091-4/+2
| | | | | | | | Don't attempt to treat as "simple" case as there are too many hidden problems. Pull out some post-execution functions to a common case in execcmd().
* Rearrange context saving.Peter Stephenson2015-01-091-3/+80
| | | | | | | Variables are now associated with the module that declares them, being initialised and saved/restored there. However, as many variables are used for communication between modules, many of them are set in multiple places, so the assignment is ambiguous.
* Fix command substitutions to parse contents as they are read in.Peter Stephenson2015-01-081-9/+20
| | | | | | | Do this by refactoring misnamed lexsave()/lexrestore() to allow continuity of history and input. Add test.
* 33876: etc.: Separate errors and keyboards interruptsPeter Stephenson2014-12-111-15/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Combination of 12 commits from interrupt_abort branch. Basic strategy is to introduce bits to errflag and to set and reset them separately. Remove interrupt status on return to main keymap. Turn off ERRFLAG_INT for always block. Restore bit thereafter: we probably need a new variable in order to allow user interrupts to be reset in the always block. Add TRY_BLOCK_INTERRUPT This works the same as TRY_BLOCK_ERROR, but for a SIGINT, too. Ensure propagation of SIGINT from exited job. If received by foreground job, shell uses ERRFLAG_INT, not ERRFLAG_ERROR, to set the new state. Reset errflag before precmd() Add always block in _main_completion to fix ZLS_COLORS Ensures we get the right state of $ZLS_COLORS at the end of _main_complete even if there's an interrupt. However, the "right state" is a bit messy as it depends on styles.
* unposted: fix compiler set-but-not-used warning.Wayne Davison2014-11-281-2/+4
|
* 33346: another bit of the 33345 repairBart Schaefer2014-10-031-1/+2
|
* 33345: fix anonymous function complex command handling.Peter Stephenson2014-10-031-83/+84
| | | | | | Longstanding problem caused simple anonymous function incorrectly to reset the overall "complext" state, causing wordcode to be diverted into execsimple(), which caused a crash 'cos ist wasn't simple.
* unposted: comments in previous commit were reversedPeter Stephenson2014-10-031-4/+4
|
* 33343: Variant anonymous function synax with arguments.Peter Stephenson2014-10-031-7/+24
| | | | Don't expand arguments as if in command position. Test.
* 33285: apply function definition redirections at executionPeter Stephenson2014-09-291-9/+78
|
* 33242: tokens following if, for, repeat, while aren't in command positionPeter Stephenson2014-09-261-2/+14
|
* 32609: [[ $var ]] behaves as [[ -n $var ]] for bash/ksh compatibilityBarton E. Schaefer2014-05-131-13/+28
| | | | | | Also restore ksh [ -t ] compatibility when POSIX_BUILTINS is not set, and allow operators defined by modules to be called with no arguments, although this affects only runtime interpretation, not parsing.
* 32552 (updated by 32560): fix segfault when using process substitution in ↵Andrew Waldron2014-04-181-2/+2
| | | | | | anonymous function argument list Also disallow process substitution in function name position.
* 31696: In "test" No One Can Hear If You Shriek.Peter Stephenson2013-09-041-3/+11
| | | | Treat ! as a string in "test ! -a ..." and "test ! -o ...".
* 31574: alternative fix for bad fd if no FD_CLOEXEC.Peter Stephenson2013-07-251-8/+16
| | | | Remove dump records more consistently in that case.
* 31545: Use of FD_CLOEXEC to remove possibility of fd reuse.Peter Stephenson2013-07-201-0/+7
| | | | | File descriptors of mmap'd dump files are closed if and only if an exec is performed.
* this prevent process-based features from working in their argumentsPeter Stephenson2012-12-211-2/+4
|
* 30735: array substitutions aren't simple:Peter Stephenson2012-10-251-0/+5
| | | | prevent crash on process substitution therein
* 30726: make shell options passed to emulate stick along with the emulationPeter Stephenson2012-10-111-1/+1
|
* 30715: use enum lextok for variables containing lexical tokensPeter Stephenson2012-10-051-22/+25
|
* 29633: more care with anonymous and other functionsPeter Stephenson2011-08-031-2/+8
|
* 29626: arguments to anonymous functions shouldn't be parsed as command wordsPeter Stephenson2011-07-281-0/+2
|
* 29492: add argument handling to anonymous functionsPeter Stephenson2011-06-191-2/+28
|
* 29491: remove some variables set but not usedPeter Stephenson2011-06-191-2/+2
|
* Paul 28538 / me 28540 / couple of unposted casts:Peter Stephenson2010-12-201-4/+4
| | | | use char * for pointer arithmetic rather than void *
* 28338: keep =~ from inverting sense of subsequent tests (after &&/||)pdpennock2010-10-101-1/+2
|
* 28259: Finally fix some ancient problems with here-documentsPeter Stephenson2010-09-141-7/+24
|
* Check the return value of all pipe(), read(), and write() calls.Wayne Davison2009-12-161-5/+5
| | | | | | Gets rid of all the remaining "ignoring return value" compiler warnings, and makes some read/write operations safer by ensuring that an EINTR is handled.
* 27284: better use of movefd()Peter Stephenson2009-09-221-0/+2
|
* users/14240: assignment before a function definition is an errorPeter Stephenson2009-07-171-1/+7
|
* 27092: missing then-clause for if wasn't an errorPeter Stephenson2009-07-061-0/+4
|
* c.f. 26586: rename yylex to zshlex and yytext to zshlextextPeter Stephenson2009-02-251-98/+98
|
* 26546, 26556: sticky emulation for functions defined in emulate ... -c ...Peter Stephenson2009-02-111-0/+1
| | | | environments, plus documentation
* 26061: fix clash between process subst and numeric globPeter Stephenson2008-11-181-4/+5
| | | | 26062: additional compmatch change, missed from 26047
* users/13295, tweaked: dont reset line numbers when parsing strings, sometimesPeter Stephenson2008-09-291-1/+1
|
* users/13288: Src/parse.c: don't report parse errors on aborted linesPeter Stephenson2008-09-241-6/+8
|
* 25641: add emulation option (NO_)MULTI_FUNC_DEFPeter Stephenson2008-09-111-0/+3
|