fish-shell/tests/function.in
Kevin Ballard cfc06203e7 Add new functions flag -V/--inherit-variable
--inherit-variable takes a variable name and snapshots its current
value. When the function is executed, it will have a local variable with
this value already defined. Printing the function source will include
synthesized `set -l` lines for the values.

This is primarily useful for functions that are created on the fly, such
as in `psub`.
2014-10-02 18:41:39 -07:00

32 lines
623 B
Fish

# vim: set filetype=fish:
#
# Test the `function` builtin
# utility function
function show_ary -a name --no-scope-shadowing
set -l count (count $$name)
echo "\$$name: ($count)"
if test $count -gt 0
for i in (seq $count)
echo "$i: '$$name[1][$i]'"
end
end
end
# Test the -V flag
set -g foo 'global foo'
set -l foo 'local foo'
set bar one 'two 2' \t '' 3
set baz
function frob -V foo -V bar -V baz
show_ary foo
show_ary bar
show_ary baz
end
echo "Testing -V"
frob
echo "Testing -V with changed variables"
set foo 'bad foo'
set bar 'bad bar'
set baz 'bad baz'
frob