about summary refs log tree commit diff
path: root/Src/lex.c
Commit message (Collapse)AuthorAgeFilesLines
* 40995: Don't disable alias expansion when finding command substitution limitsPeter Stephenson2017-04-231-3/+0
| | | | | This is needed in some unusual cases in order to identify the exit condition without encountering a parse error.
* 40760: Always tokenize unquoted - to Dash.Peter Stephenson2017-03-071-10/+6
| | | | | | This fixes use of pattern match character ranges in unusual contexts. Attempt to detect a tokenized - in cases where we don't care.
* 39815: Read input to end on parse error in $(...) inside a string.Peter Stephenson2016-11-031-2/+11
| | | | | This allows ${(z)} to output the whole string, although we can't do word splitting from the error onwards.
* 39185: Only set word begin for completion word if not alias.Peter Stephenson2016-09-071-1/+1
| | | | | This is consistent with other ZLE code in lex.c and fixes a crash in some completions involving aliases, e.g. if uncompleted quotes.
* unposted: remove flag unneded from previous fixPeter Stephenson2016-06-221-2/+1
|
* 38746: Fix suffix alias expansion recursion.Peter Stephenson2016-06-221-3/+4
| | | | | | | | 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.
* 38468: wb,we values in gotword() needed assignment in additional case to ↵Barton E. Schaefer2016-05-101-0/+4
| | | | | | | | avoid core dump Bug introduced by 38248. Also fix ChangeLog entry for 38248 to correctly reference Src/lex.c
* 38248: fix word position calculation when completing on or just before a ↵Barton E. Schaefer2016-04-071-3/+7
| | | | | | | | | redirection operator 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.
* 37700: Teach ${(z)} the 'repeat WORD SUBLIST' syntax.Daniel Shahaf2016-01-291-2/+7
|
* 37705: don't turn - to Dash after start of brace parameterPeter Stephenson2016-01-201-2/+4
|
* 37682: when SH_GLOB is set, do not parse bare parentheses in arguments as a ↵Barton E. Schaefer2016-01-191-1/+1
| | | | pattern grouping.
* 37689: ! and ^ need to be tokenised in character setsPeter Stephenson2016-01-191-11/+20
|
* 37678: Now possible to quote "-" in pattern rangePeter Stephenson2016-01-191-6/+24
|
* 37145: suppress alias expansion in skipcomm()Barton E. Schaefer2015-11-181-0/+3
| | | | Thus defer parsing aliases in $(...) et al. into the subshell
* 37128: work around alias expansion trashing subscript parsingPeter Stephenson2015-11-171-6/+22
|
* 36669: fix ${(z)...} of an an incomplete math expression by restoring "((" ↵Barton E. Schaefer2015-09-271-0/+9
| | | | at the front of the token
* 35953: fix handling of command substitution in math contextBarton E. Schaefer2015-07-291-1/+5
|
* 35668: Improved fix for command/proc subst starting in alias.Peter Stephenson2015-07-021-10/+16
| | | | | | Use input flag to suppress the unwanted backtracking. Add test for the extra case covered.
* 35667: fix command substitution that starts but doesn't finish in aliasPeter Stephenson2015-07-011-4/+10
|
* 35615: fix completion after tyepsetPeter Stephenson2015-06-261-0/+1
|
* various posts: Implement assignment parsing for typeset.Peter Stephenson2015-06-241-2/+2
| | | | | | | | | | | | 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.
* 35248: treat fully parenthised zsh patterns as complete case patterns againPeter Stephenson2015-05-211-2/+0
|
* 35168: Improve parsing of case patterns.Peter Stephenson2015-05-181-0/+2
| | | | | | | | | | | | | | "|" 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.
* 35155: cmdpop() could be called erroneously on errorPeter Stephenson2015-05-151-2/+4
|
* 35046: unwind cmdstack when erroring out of lexing a parameter expansion in ↵Barton E. Schaefer2015-05-061-1/+4
| | | | braces
* 34905: no parse error after keyboard interrupt.Peter Stephenson2015-04-171-4/+6
| | | | | | | | 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.
* 34817: Catch some errors earlier when reading history.Peter Stephenson2015-03-291-0/+2
| | | | | | | | 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.
* 34781: add implicit space after alias expansion of tokens that form words ↵Barton E. Schaefer2015-03-281-0/+10
| | | | | | without spacing fixes crash when using completion immediately following such an alias
* 34804: refine POSIX_ALIAS change to preserve old behavior of [[ ]] conditionalsBarton E. Schaefer2015-03-281-4/+1
|
* 34788: refine errflag handling in cmd_or_math()Barton E. Schaefer2015-03-271-1/+1
|
* 34759: improve implementation of last commitPeter Stephenson2015-03-221-6/+6
|
* 34758: fix yet more history / command subst interaction.Peter Stephenson2015-03-221-0/+19
| | | | | | 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.
* 34734: further aliasing adjustments and docBarton E. Schaefer2015-03-181-2/+8
| | | | | | | | 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
* 34651: Avoid core dump if no lexical tokenPeter Stephenson2015-03-051-0/+3
|
* 34641: make it possible to alias tokensPeter Stephenson2015-03-041-30/+41
|
* 34570: Another nasty command / math substituion thing.Peter Stephenson2015-02-191-19/+45
| | | | | | 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.
* 34560: Fix $(( that's actually a multiline cmd subst.Peter Stephenson2015-02-161-0/+4
|
* 34543: Prevent crash on garbage bytes inside $(...)Barton E. Schaefer2015-02-141-2/+4
| | | | | | 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.
* 34322: bug with interface to parsestr() etc.Peter Stephenson2015-01-181-9/+21
| | | | | | | 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.
* 34319: fix alias expansion in history for command substitutionPeter Stephenson2015-01-181-1/+1
|
* 32413: turn off history word marking in cmd substPeter Stephenson2015-01-161-0/+2
|
* 34304: improve use of new cmd subst in completionPeter Stephenson2015-01-161-10/+103
|
* 34234: use structures for normal and raw lexical buffer statePeter Stephenson2015-01-111-110/+95
|
* Rearrange context saving.Peter Stephenson2015-01-091-261/+60
| | | | | | | 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-178/+320
| | | | | | | 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-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* 33940: handle backslash-meta correctly in lexerJun-ichi Takimoto2014-12-101-1/+13
|
* 33298: make lexrestore() more signal-safeBarton E. Schaefer2014-09-301-53/+57
|
* 32789: --enable-zsh-valgrind allows analysis of heap allocationPeter Stephenson2014-06-241-4/+6
|
* unposted: fix previous commit: ihwend -> hwendPeter Stephenson2013-07-221-1/+1
|