mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-06-05 00:01:15 -03:00
Make 'set -ql' search up to function scope
Previously 'set -ql' would only look for variables in the immediate local scope. This was not very useful. It's also arguably surprising, since a 'set -l' in a function, followed by a 'set -ql' in a child block, would fail. There was also no way to check for a function-scoped variable, since omitting the scope would also pull in global variables. We could revisit this and introduce an explicit function scope. Fixes #2502
This commit is contained in:
@@ -177,3 +177,14 @@ true ; set -NOT_AN_OPTION 2> /dev/null ; echo 9 $status # no passthrough
|
||||
false ; set foo (echo A; true) ; echo 10 $status $foo
|
||||
true ; set foo (echo B; false) ; echo 11 $status $foo
|
||||
true
|
||||
|
||||
echo "Verify set -ql behavior" # see 2502
|
||||
function setql_check
|
||||
set -l setql_foo val
|
||||
if set -ql setql_foo
|
||||
echo Pass
|
||||
else
|
||||
echo Fail
|
||||
end
|
||||
end
|
||||
setql_check
|
||||
|
||||
@@ -34,3 +34,5 @@ Verify that set passes through exit status, except when passed -n or -q or -e
|
||||
9 1
|
||||
10 0 A
|
||||
11 1 B
|
||||
Verify set -ql behavior
|
||||
Pass
|
||||
|
||||
Reference in New Issue
Block a user