Bart Schaefer
1becbba0b6
users/29160, workers/52156: Fix repetition of substitution modifier.
2023-09-16 20:51:27 -07:00
Bart Schaefer
3aaef16569
52154, 52155: Implement, document, and test non-forking command substitution.
...
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-16 17:34:39 -07:00
Jun-ichi Takimoto
0eab788437
52122 + 52129: fix (#) parameter expansion flag
...
Without the X flag, null string "" is substituted for bad math expression.
2023-09-13 09:59:42 +09:00
Peter Stephenson
78102120b9
51816: add :S history modifier with pattern match
2023-06-06 09:16:46 +01:00
Bart Schaefer
0562be0af8
51509 (+ fix typo): Add ${(!)name} for the referred-to name of a named reference
...
Extend ${!name} in ksh emulation for same
2023-03-06 19:54:48 -08:00
Bart Schaefer
a9ba166216
51483: Enable assignment and expansion of parameters with ksh-like namespace prefixes.
2023-03-05 14:03:42 -08:00
Bart Schaefer
511e020c68
51360: Initial implementation of named references.
2023-02-12 11:21:23 -08:00
Peter Stephenson
d6b027c3c1
51350: ${(S)...//#%...} didn't match the whole string
2023-02-06 14:16:17 +00:00
Peter Stephenson
76d095df9d
51306: error message in ${unset?error} should be expanded
2023-02-02 10:12:17 +00:00
Oliver Kiddle
667ead3a64
51258, 51272: refactor handling of terminal attributes, removing OFF flags in zattr
2023-01-10 20:53:17 +01:00
Oliver Kiddle
a73c705b0c
51212: remove STOUC() macro
...
This served as a workaround for ancient compilers where casts to
unsigned char were broken.
2022-12-16 23:28:10 +01:00
Jun-ichi Takimoto
8154ddc62d
49853 + 49882/49883: make "${arr[*]:off}" compatible with ksh/bash
2022-03-29 11:09:36 +09:00
Jun-ichi Takimoto
9b3a292410
49166: fix coredump in ${name:offset:length} with ill-formatted length
2021-07-19 09:13:03 +09:00
Peter Stephenson
d293c12de6
49102: Ignore dynamic directory name failure if NO_EXEC
2021-06-28 15:42:01 +01:00
Bart Schaefer
82ff9f24f1
48560: add TYPESET_TO_UNSET option to remove initialization of parameters
...
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-18 13:58:09 -07:00
Daniel Shahaf
4ba9008ec7
48379: Make the parameter expansion subscript flags parse error message, "error in flags", identify the location of the parse error.
2021-04-08 02:19:39 +00:00
Bart Schaefer
04bd9a44a7
Unposted - fix comment
2020-09-13 17:13:51 -07:00
Bart Schaefer
63b6398b70
47364: Enable extendedglob in pattern with ${(*)name/pattern/replacement}
...
Mikael Magnusson: 47382: Completion for 47364
2020-09-13 16:19:52 -07:00
Peter Stephenson
4e0058afc5
users/24971: ${(-)var} sorts on signed integers
2020-07-03 21:05:46 +01:00
Peter Stephenson
7865486994
46100: Fix =subst before =(subst)
...
This occurs with SH file expansion ordering.
Add test.
2020-06-26 17:32:02 +01:00
Mikael Magnusson
817d461932
Support ${name:offset:length} with an empty offset
2020-05-12 10:13:02 +02:00
Daniel Shahaf
12414d8052
45583/0003: chrealpath: Let caller decide how the return value should be allocated.
2020-03-25 23:49:01 +00:00
Daniel Shahaf
38b0e1ff7e
45583/0002: chrealpath: Make symlink resolution optional.
2020-03-25 23:49:01 +00:00
Daniel Shahaf
8bc4400762
45058: internal: Add symbolic names to possible values of zexit()'s "from_where" parameter. No functional change.
2019-12-17 05:12:36 +00:00
Martijn Dekker
c578f0a08b
45004: Fix typos in comments
2019-12-11 02:37:39 +00:00
Peter Stephenson
b8dc5a7f6d
44435: Handling digita arguments for :h and :t.
...
Pick number of leading or trailing path components to substitute.
Active in history, brace parameters, glob qualifiers.
Add tests for all three environments.
2019-06-20 11:13:05 +01:00
Bart Schaefer
c19a0927e1
43921: ${\var} should be an error
2018-12-21 11:41:07 -08:00
Peter Stephenson
50f8fa972c
43837 plus test from Daniel: Empty string in nested subst.
...
Skip Nularg or there is a bogus character at the start.
2018-11-21 10:10:03 +00:00
Peter Stephenson
f99f7dca75
43616: Various parameter setting and display fixes.
...
Mostly to do with typeset -p and tied variables and their interaction.
Some general tied variable fixes.
2018-10-08 10:10:42 +01:00
Jun-ichi Takimoto
baedd62f0d
43219 (except term{cap,info}.c): fix several memory leaks
2018-07-31 22:15:58 +09:00
Joey Pabalinas
110b13e109
42313: avoid null-pointer deref when using ${(PA)...} on an empty array result
2018-01-23 22:28:08 -08:00
Peter Stephenson
b3fa5c528c
41877: Separate out SH_FILE_EXPANSION loop from parameter substitution.
...
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-13 18:17:09 +01:00
Barton E. Schaefer
b84d69cf52
41828, 41830: skip SHFILEEXPANSION for new nodes added by stringsubst() in prefork()
2017-10-08 18:08:09 -07:00
Peter Stephenson
728f2adfc8
Add typeset -p1, like typeset -p with newlines
2017-10-01 17:53:56 +01:00
Peter Stephenson
6230e82d44
41764 (test tweaked): allow [key]+=value when modifying arrays
2017-09-27 09:41:50 +01:00
Peter Stephenson
7d4b41b52a
41747: Don't create hash entry if just checking existence.
...
Pass a flag in indicating this case.
2017-09-25 20:03:05 +01:00
Peter Stephenson
85b0dd7133
Updates for ksh array element syntax.
...
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-24 17:33:07 +01:00
Peter Stephenson
e44600d9aa
41661: Need to remove tokens before using bufferwords() for (z)
2017-09-10 18:01:39 +01:00
Barton E. Schaefer
207263a61e
40929 (replaces 40598): paramsubst() should always return scalar when 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-04-02 14:43:27 -07:00
Barton E. Schaefer
420fc41b7c
40832: fix $x:P when PWD=/
2017-03-11 14:40:12 -08:00
Peter Stephenson
f3f8537cfa
40760: Always tokenize unquoted - to Dash.
...
This fixes use of pattern match character ranges in unusual contexts.
Attempt to detect a tokenized - in cases where we don't care.
2017-03-07 10:43:58 +00:00
Barton E. Schaefer
4b8db48c6b
40640: the (A) parameter flag forces array result even if assignment syntax is not used
2017-02-25 15:56:50 -08:00
Barton E. Schaefer
74fe4d0950
40598: paramsubst() should always return scalar when PREFORK_SINGLE was passed
2017-02-20 13:26:49 -08:00
Barton E. Schaefer
b3c186028e
40593: SHWORDSPLIT + unset IFS should cause default splitting of $@
2017-02-20 13:26:49 -08:00
Peter Stephenson
4d6097657c
40375: autoload with explicit path mustn't trash already loaded function.
...
Also remove unnecessary dupstring() on already duplicated string
when expanding =cmd.
2017-01-18 09:57:55 +00:00
Barton E. Schaefer
c4dba4f2e6
users/22319: ${ary1:^ary2} should not change isarr state of expansion of ary1
...
Unless ary1 is made from a scalar, semantics of (@) in double quotes is lost.
2017-01-03 14:44:12 -08:00
Barton E. Schaefer
a409adc33b
40071: change Dash back to "-" before evaluating named directory expansions
2016-12-03 15:00:46 -08:00
Barton E. Schaefer
3ba86f4db4
40034: clear badcshglob when ignoring errors
2016-11-29 12:35:57 -08:00
Eitan Adler
110ffae9fe
40035: Cosmetic fixes for comments and documentation.
...
Mostly fixes to doubled words.
2016-11-29 17:13:52 +00:00
Peter Stephenson
921b39ac6b
39949: Special case for "-" in directory names.
...
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-11-15 18:01:32 +00:00