Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Pass the character index, not the character, to parse_util_expand_variable_error | ridiculousfish | 2015-05-15 |
| | | | | Fixes #2067 | ||
* | Parse slices even for empty variables | Kevin Ballard | 2014-08-20 |
| | | | | | | | | | | | | | When a variable is parsed as being empty, parse out the slice and validate the indexes anyway, behaving for slicing purposes as if the variable had a single empty value. Besides providing errors when expected, this also fixes the following: set -l foo echo "$foo[1]" This used to print "[1]", now it properly prints nothing. | ||
* | Fix double expansions (`$$foo`) | Kevin Ballard | 2014-08-20 |
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 |