diff options
author | Kevin Ballard <kevin@sb.org> | 2014-08-20 21:19:08 -0700 |
---|---|---|
committer | Kevin Ballard <kevin@sb.org> | 2014-08-20 21:45:07 -0700 |
commit | 3981b644d68f6b6947b4a12810c2fa5e09da4e58 (patch) | |
tree | fd00d82b90283ba3810eb04ffc40b1632fc1e155 /tests/expansion.status | |
parent | d0c85471b40fee548efc35a370f5d5c4b656f66a (diff) |
Fix double expansions (`$$foo`)
Double expansions of variables had the following issues:
* `"$$foo"` threw an error no matter what the value of `$foo` was.
* `set -l foo ''; echo $$foo` threw an error because of the expansion of
`$foo` to `''`.
With this change, double expansion always works properly. When
double-expanding a multi-valued variable, in a double-quoted string the
first word of the inner expansion is used for the outer expansion, and
outside of a quoted string every word is used for the double-expansion
in each of the arguments.
> set -l foo bar baz
> set -l bar one two
> set -l baz three four
> echo "$$foo"
one two baz
> echo $$foo
one two three four
Diffstat (limited to 'tests/expansion.status')
-rw-r--r-- | tests/expansion.status | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tests/expansion.status b/tests/expansion.status new file mode 100644 index 00000000..573541ac --- /dev/null +++ b/tests/expansion.status @@ -0,0 +1 @@ +0 |