Kevin Ballard 3981b644d6 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
2014-08-20 21:45:07 -07:00
..
2014-08-20 21:45:07 -07:00
2014-08-20 21:45:07 -07:00
2014-08-20 21:45:07 -07:00
2014-08-20 21:45:07 -07:00
2010-09-18 10:18:26 +08:00
2013-03-03 00:45:34 +05:30
2013-04-03 18:04:17 -07:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2010-09-18 10:18:26 +08:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2014-07-06 18:12:18 -07:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2005-09-20 23:31:55 +10:00
2012-07-08 09:19:11 +08:00
2012-07-08 09:19:11 +08:00
2014-08-20 21:45:07 -07:00