summaryrefslogtreecommitdiff
path: root/Src/subst.c
AgeCommit message (Collapse)AuthorFilesLines
2024-04-0752878: Fix ${foo:^bar} where bar is an associative arrayMikael Magnusson1-0/+3
2024-04-0152864: Change ${|var|...} to ${{var} ...}, limit local REPLY to ${|...}Bart Schaefer1-44/+96
2024-03-1752759: ${ ... } trims one trailing newline; "${ ... }" preserves that newline.Bart Schaefer1-2/+6
2024-03-0252612: %l replacment of zwarning() does literal string outputBart Schaefer1-1/+3
2024-01-2452482: strip trailing newlines in emulation modes of ${ command; }Bart Schaefer1-0/+6
2023-11-2352325: Clarify doc for edge cases of named references and nofork substitutionBart Schaefer1-1/+1
Unposted whitespace change avoids a parse error in ${ ... } with comments.
2023-11-1552202: improve handling of quoting in ${var/pattern/replacement}Bart Schaefer1-0/+7
2023-10-1152214: allow extra byte for nul terminator in allocationOliver Kiddle1-1/+1
2023-09-2752169: a few more improvements of (#) flagJun-ichi Takimoto1-8/+7
fix (#X) in C locale in FreeBSD, DragonFly, NetBSD. Negative values such as ${(#X):--1} are now error. UCS4 is limited to < 0x8000_0000 (in OSes without __STDC_ISO_10646__).
2023-09-2252176: metafy return from ${ ... } substitutionBart Schaefer1-3/+4
2023-09-16users/29160, workers/52156: Fix repetition of substitution modifier.Bart Schaefer1-2/+4
2023-09-1652154, 52155: Implement, document, and test non-forking command substitution.Bart Schaefer1-7/+150
Comprises workers/51957, 51985, 51987, 51988, 51993, 52131, 52139, plus fixes for return values, parse errors, and trailing newlines (which were incorrectly removed) in ${ ... }
2023-09-1352122 + 52129: fix (#) parameter expansion flagJun-ichi Takimoto1-3/+10
Without the X flag, null string "" is substituted for bad math expression.
2023-06-0651816: add :S history modifier with pattern matchPeter Stephenson1-3/+9
2023-03-0651509 (+ fix typo): Add ${(!)name} for the referred-to name of a named referenceBart Schaefer1-7/+31
Extend ${!name} in ksh emulation for same
2023-03-0551483: Enable assignment and expansion of parameters with ksh-like namespace ↵Bart Schaefer1-6/+9
prefixes.
2023-02-1251360: Initial implementation of named references.Bart Schaefer1-1/+2
2023-02-0651350: ${(S)...//#%...} didn't match the whole stringPeter Stephenson1-0/+3
2023-02-0251306: error message in ${unset?error} should be expandedPeter Stephenson1-1/+5
2023-01-1051258, 51272: refactor handling of terminal attributes, removing OFF flags ↵Oliver Kiddle1-2/+9
in zattr
2022-12-1651212: remove STOUC() macroOliver Kiddle1-3/+3
This served as a workaround for ancient compilers where casts to unsigned char were broken.
2022-03-2949853 + 49882/49883: make "${arr[*]:off}" compatible with ksh/bashJun-ichi Takimoto1-3/+18
2021-07-1949166: fix coredump in ${name:offset:length} with ill-formatted lengthJun-ichi Takimoto1-5/+7
2021-06-2849102: Ignore dynamic directory name failure if NO_EXECPeter Stephenson1-1/+1
2021-04-1848560: add TYPESET_TO_UNSET option to remove initialization of parametersBart Schaefer1-1/+2
Changes typeset such that ${newparam-notset} yields "notset" and "typeset -p newparam" does not show an assignment to the parameter. This is similar to the default behavior of bash and ksh, with minor differences in typeset output. Also add tests for some POSIX incompatibilities plus minor changes for test harness robustness.
2021-04-0848379: Make the parameter expansion subscript flags parse error message, ↵Daniel Shahaf1-3/+25
"error in flags", identify the location of the parse error.
2020-09-13Unposted - fix commentBart Schaefer1-1/+1
2020-09-1347364: Enable extendedglob in pattern with ${(*)name/pattern/replacement}Bart Schaefer1-4/+15
Mikael Magnusson: 47382: Completion for 47364
2020-07-03users/24971: ${(-)var} sorts on signed integersPeter Stephenson1-0/+4
2020-06-2646100: Fix =subst before =(subst)Peter Stephenson1-1/+1
This occurs with SH file expansion ordering. Add test.
2020-05-12Support ${name:offset:length} with an empty offsetMikael Magnusson1-5/+15
2020-03-2545583/0003: chrealpath: Let caller decide how the return value should be ↵Daniel Shahaf1-2/+2
allocated.
2020-03-2545583/0002: chrealpath: Make symlink resolution optional.Daniel Shahaf1-2/+2
2019-12-1745058: internal: Add symbolic names to possible values of zexit()'s ↵Daniel Shahaf1-1/+1
"from_where" parameter. No functional change.
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