summaryrefslogtreecommitdiff
path: root/Src/subst.c
AgeCommit message (Collapse)AuthorFilesLines
2019-12-1145004: Fix typos in commentsMartijn Dekker1-6/+6
2019-06-2044435: Handling digita arguments for :h and :t.Peter Stephenson1-10/+27
Pick number of leading or trailing path components to substitute. Active in history, brace parameters, glob qualifiers. Add tests for all three environments.
2018-12-2143921: ${\var} should be an errorBart Schaefer1-1/+1
2018-11-2143837 plus test from Daniel: Empty string in nested subst.Peter Stephenson1-0/+2
Skip Nularg or there is a bogus character at the start.
2018-10-0843616: Various parameter setting and display fixes.Peter Stephenson1-2/+2
Mostly to do with typeset -p and tied variables and their interaction. Some general tied variable fixes.
2018-07-3143219 (except term{cap,info}.c): fix several memory leaksJun-ichi Takimoto1-1/+1
2018-01-2342313: avoid null-pointer deref when using ${(PA)...} on an empty array resultJoey Pabalinas1-1/+1
2017-10-1341877: Separate out SH_FILE_EXPANSION loop from parameter substitution.Peter Stephenson1-16/+23
Parameter substitution can add nodes that need to be rescanned by it, but not by file expansion, so the two don't play well together.
2017-10-0841828, 41830: skip SHFILEEXPANSION for new nodes added by stringsubst() in ↵Barton E. Schaefer1-2/+17
prefork()
2017-10-01Add typeset -p1, like typeset -p with newlinesPeter Stephenson1-1/+3
2017-09-2741764 (test tweaked): allow [key]+=value when modifying arraysPeter Stephenson1-4/+13
2017-09-2541747: Don't create hash entry if just checking existence.Peter Stephenson1-4/+8
Pass a flag in indicating this case.
2017-09-24Updates for ksh array element syntax.Peter Stephenson1-7/+64
Move detection of key/value pairs down into prefork(). Detect normal array assignment and [key]=val array assignemnt separately. Mark key / value pairs with Marker and pass up flag. Deal with marked triads specially later on.
2017-09-1041661: Need to remove tokens before using bufferwords() for (z)Peter Stephenson1-2/+6
2017-04-0240929 (replaces 40598): paramsubst() should always return scalar when ↵Barton E. Schaefer1-13/+8
PREFORK_SINGLE was passed in from prefork() Previous commit (74fe4d09) consumed too much of the input linked list, leading to later expansions being skipped. This commit converts from array to string sooner, but may thereby alter rc_expand_param and array element uniqueness behavior.
2017-03-1140832: fix $x:P when PWD=/Barton E. Schaefer1-2/+10
2017-03-0740760: Always tokenize unquoted - to Dash.Peter Stephenson1-17/+24
This fixes use of pattern match character ranges in unusual contexts. Attempt to detect a tokenized - in cases where we don't care.
2017-02-2540640: the (A) parameter flag forces array result even if assignment syntax ↵Barton E. Schaefer1-0/+11
is not used
2017-02-2040598: paramsubst() should always return scalar when PREFORK_SINGLE was passedBarton E. Schaefer1-1/+14
2017-02-2040593: SHWORDSPLIT + unset IFS should cause default splitting of $@Barton E. Schaefer1-1/+2
2017-01-1840375: autoload with explicit path mustn't trash already loaded function.Peter Stephenson1-4/+4
Also remove unnecessary dupstring() on already duplicated string when expanding =cmd.
2017-01-03users/22319: ${ary1:^ary2} should not change isarr state of expansion of ary1Barton E. Schaefer1-2/+4
Unless ary1 is made from a scalar, semantics of (@) in double quotes is lost.
2016-12-0340071: change Dash back to "-" before evaluating named directory expansionsBarton E. Schaefer1-0/+2
2016-11-2940034: clear badcshglob when ignoring errorsBarton E. Schaefer1-1/+3
2016-11-2940035: Cosmetic fixes for comments and documentation.Eitan Adler1-1/+1
Mostly fixes to doubled words.
2016-11-1539949: Special case for "-" in directory names.Peter Stephenson1-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.
2016-10-0639579: Fix string calculation for parameter quoting.Julien Cretin1-3/+3
Where there was no closing quote the size or position of the null could be wrongly calculated.
2016-09-2934943: Fixes for "command" with multiple options.Peter Stephenson1-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.
2016-09-14zsh-users/21903: Fix ${...?...} in interactive shell.Peter Stephenson1-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.
2016-09-1139252: internal: quotestring: Drop the 'e' parameter, which no caller uses.Daniel Shahaf1-6/+6
2016-08-2939115: repair forced joining when (@) and (j) are used togetherBarton E. Schaefer1-2/+3
2016-08-2239046 + 39061: New :P history modifier.Daniel Shahaf1-0/+13
2016-08-1239035: ${(A)name=word} should expand as an array even when there is only one ↵Barton E. Schaefer1-0/+1
element.
2016-08-1239028: more join/split cases fixed and tested.Barton E. Schaefer1-3/+4
2016-08-1039019 (cf. PWS 39013): fix SHWORDSPLIT regression introduced by workers/29313Barton E. Schaefer1-6/+15
Also add test cases for more join/split combinations
2016-08-0138973: Optimize indexing array parameters.Daniel Shahaf1-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
2016-06-0438599: skip the "no such named directory" warning when NO_EXEC is in effectBarton E. Schaefer1-1/+1
2016-06-03unposted: internal: Document modify().Daniel Shahaf1-0/+13
2016-03-07users/21352: ensure $'' doesn't get elided.Peter Stephenson1-1/+5
Assign nulstring to it if empty. Test for all forms of quotation marks.
2015-12-0737344: restore old printable quoting, add ${(q+)...}.Peter Stephenson1-4/+10
The \C- form is only used inside quotedzputs(). ${(q+)...} outputs a quotedzputs() representation.
2015-11-2337206: fix ${(t)param} for "typeset -H param"Barton E. Schaefer1-1/+1
2015-11-1237096: Another $${(P)...} tweak.Peter Stephenson1-2/+17
Make a top level (P) work with nested ones, i.e. ${(P)${(P)...}...}
2015-11-1137094: Further tweaks to parameter name references.Peter Stephenson1-3/+3
Safety in array test. Make nested references work. Add parameter tests.
2015-11-1137092: make nested ${(P)name} properly refer to parameter on returnPeter Stephenson1-44/+70
2015-11-0737074: extend previous fix to over whitespace at endPeter Stephenson1-14/+36
2015-11-0637073: another SH_WORD_SPLIT problem.Peter Stephenson1-6/+34
In cases like x${:- y} the space was simply removed instead of being used for splitting.
2015-07-0635694: fix handling of history modifiers applied across all elements of an ↵Barton E. Schaefer1-2/+8
array parameter value
2015-05-3135343: Avoid $#name length handling for POSIX_IDENTIFIERSPeter Stephenson1-1/+2
2015-05-2935326: $#- was misparsed as ${#-}Peter Stephenson1-1/+1
2015-05-1535153: nested math substitutionPeter Stephenson1-2/+11