summary refs log tree commit diff
path: root/Src/subst.c
Commit message (Collapse)AuthorAgeFilesLines
* 39949: Special case for "-" in directory names.Peter Stephenson2016-11-151-8/+8
| | | | | It can be sh-tokenized to Dash to allow for appearing in ranges after substitution, so needs to be turned back to "-" in that case.
* 39579: Fix string calculation for parameter quoting.Julien Cretin2016-10-061-3/+3
| | | | | Where there was no closing quote the size or position of the null could be wrongly calculated.
* 34943: Fixes for "command" with multiple options.Peter Stephenson2016-09-291-1/+1
| | | | | | These need to combine properly, and alos "command -p" with either -v or -V needs to search for builtins and then using the default system path.
* zsh-users/21903: Fix ${...?...} in interactive shell.Peter Stephenson2016-09-141-0/+7
| | | | | On failure should abort back to top level, but we reset the error flag around commands. Add a hard error flag that's only reset at top level.
* 39252: internal: quotestring: Drop the 'e' parameter, which no caller uses.Daniel Shahaf2016-09-111-6/+6
|
* 39115: repair forced joining when (@) and (j) are used togetherBarton E. Schaefer2016-08-291-2/+3
|
* 39046 + 39061: New :P history modifier.Daniel Shahaf2016-08-221-0/+13
|
* 39035: ${(A)name=word} should expand as an array even when there is only one ↵Barton E. Schaefer2016-08-121-0/+1
| | | | element.
* 39028: more join/split cases fixed and tested.Barton E. Schaefer2016-08-121-3/+4
|
* 39019 (cf. PWS 39013): fix SHWORDSPLIT regression introduced by workers/29313Barton E. Schaefer2016-08-101-6/+15
| | | | Also add test cases for more join/split combinations
* 38973: Optimize indexing array parameters.Daniel Shahaf2016-08-011-4/+11
| | | | | | | | | | | % () { for 1 in $prefix/zsh/bin/zsh Src/zsh; do $1 -f -c 'a=( {1..1000000} ); repeat 3 time ( repeat 300 : $a[1] )'; done } ( repeat 300; do; : $a[1]; done; ) 1.68s user 0.01s system 98% cpu 1.718 total ( repeat 300; do; : $a[1]; done; ) 1.69s user 0.01s system 99% cpu 1.710 total ( repeat 300; do; : $a[1]; done; ) 1.69s user 0.01s system 99% cpu 1.714 total ( repeat 300; do; : $a[1]; done; ) 0.00s user 0.01s system 72% cpu 0.022 total ( repeat 300; do; : $a[1]; done; ) 0.00s user 0.01s system 72% cpu 0.022 total ( repeat 300; do; : $a[1]; done; ) 0.01s user 0.01s system 69% cpu 0.023 total
* 38599: skip the "no such named directory" warning when NO_EXEC is in effectBarton E. Schaefer2016-06-041-1/+1
|
* unposted: internal: Document modify().Daniel Shahaf2016-06-031-0/+13
|
* users/21352: ensure $'' doesn't get elided.Peter Stephenson2016-03-071-1/+5
| | | | | Assign nulstring to it if empty. Test for all forms of quotation marks.
* 37344: restore old printable quoting, add ${(q+)...}.Peter Stephenson2015-12-071-4/+10
| | | | | | The \C- form is only used inside quotedzputs(). ${(q+)...} outputs a quotedzputs() representation.
* 37206: fix ${(t)param} for "typeset -H param"Barton E. Schaefer2015-11-231-1/+1
|
* 37096: Another $${(P)...} tweak.Peter Stephenson2015-11-121-2/+17
| | | | Make a top level (P) work with nested ones, i.e. ${(P)${(P)...}...}
* 37094: Further tweaks to parameter name references.Peter Stephenson2015-11-111-3/+3
| | | | | | | | Safety in array test. Make nested references work. Add parameter tests.
* 37092: make nested ${(P)name} properly refer to parameter on returnPeter Stephenson2015-11-111-44/+70
|
* 37074: extend previous fix to over whitespace at endPeter Stephenson2015-11-071-14/+36
|
* 37073: another SH_WORD_SPLIT problem.Peter Stephenson2015-11-061-6/+34
| | | | | In cases like x${:- y} the space was simply removed instead of being used for splitting.
* 35694: fix handling of history modifiers applied across all elements of an ↵Barton E. Schaefer2015-07-061-2/+8
| | | | array parameter value
* 35343: Avoid $#name length handling for POSIX_IDENTIFIERSPeter Stephenson2015-05-311-1/+2
|
* 35326: $#- was misparsed as ${#-}Peter Stephenson2015-05-291-1/+1
|
* 35153: nested math substitutionPeter Stephenson2015-05-151-2/+11
|
* 35151: improved check for parameter q and b flagsPeter Stephenson2015-05-151-1/+2
|
* 35067: Add (b) parameter flag for pattern char backslashing.Peter Stephenson2015-05-101-2/+11
| | | | | | Doc tweak from Daniel in 35071. Includes test.
* 34606: fix up nested arithmetic substitutionPeter Stephenson2015-02-221-2/+18
| | | | | | | | Arithmetic within a parameter substitution is a special case that needs fixing with the introduction of the new Inparmath token. Add test.
* 34573: Safer failure to handle command substitutionPeter Stephenson2015-02-191-3/+7
|
* 34570: Another nasty command / math substituion thing.Peter Stephenson2015-02-191-11/+17
| | | | | | 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.
* 34322: bug with interface to parsestr() etc.Peter Stephenson2015-01-181-3/+5
| | | | | | | 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.
* 34105: subst: remove dead codeMikael Magnusson2015-01-061-1/+1
| | | | Found by Coverity (Issue 1255810).
* 34103: fix ancient double-quote handling thinko in subst_parse_str()Barton E. Schaefer2015-01-061-2/+4
| | | | This doesn't seem to have mattered, but must in some obscure cases
* 33976: fix overlapping strcpy()Barton E. Schaefer2014-12-151-1/+1
|
* 33876: etc.: Separate errors and keyboards interruptsPeter Stephenson2014-12-111-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* 33423: expand ${(p)...} to allow ${(ps.$param.)...}Peter Stephenson2014-10-121-5/+16
|
* 33118: record original param unset state when treating empty the same as unset,Barton E. Schaefer2014-09-061-6/+9
| | | | to avoid incorrect NO_UNSET errors
* unposted: remove unused variablesPeter Stephenson2014-08-041-1/+1
|
* 32949 (wip 32928, 32937): Add :^ syntax for zipping two arraysMikael Magnusson2014-08-041-0/+61
|
* 32932: add hmkarray() and use to fix leakPeter Stephenson2014-08-011-1/+1
|
* 32552 (updated by 32560): fix segfault when using process substitution in ↵Andrew Waldron2014-04-181-1/+1
| | | | | | anonymous function argument list Also disallow process substitution in function name position.
* 32299: add use of underscores on arithmetic output for spacingPeter Stephenson2014-01-231-4/+4
|
* 32001: fix crash on ${:*} and ${:|}Peter Stephenson2013-11-171-0/+8
|
* 30993: fix parameter modifier crash with :wq on empty stringPeter Stephenson2013-01-221-1/+9
|
* 30715: use enum lextok for variables containing lexical tokensPeter Stephenson2012-10-051-7/+7
|
* 30633: "functions -T" only traces marked function, not called functionsPeter Stephenson2012-08-211-0/+2
|
* unposted: add test for valid identifier to 30431Peter Stephenson2012-04-221-1/+8
|
* 30439: ${...:*...} with nonexistent or non-array after *Peter Stephenson2012-04-221-0/+13
| | | | should return no results
* 30431 with typo in _typeset fix:Peter Stephenson2012-04-221-0/+43
| | | | add ${...:|...} and ${...:*...} operators, as documented
* 30413: (q-) parameter flag should quote null stringPeter Stephenson2012-04-161-0/+4
| | | | (q-q) etc. should be treated as errors