Comment and test that we shouldn't copy for blocks

Seems important.
This commit is contained in:
Fabian Homborg 2017-06-22 11:11:12 +02:00 committed by Kurtis Rader
parent c1ea9c7025
commit 427b8f5c52
3 changed files with 14 additions and 0 deletions

View file

@ -183,6 +183,8 @@ void var_stack_t::push(bool new_scope) {
// Copy local-exported variables
auto top_node = top.get();
// Only if we introduce a new shadowing scope
// i.e. not if it's just `begin; end` or "--no-scope-shadowing".
if (new_scope) {
if (!(top_node == this->global_env)) {
for (auto& var : top_node->env) {

View file

@ -257,6 +257,15 @@ set -lx var wuwuwu
__fish_test_local_export
echo $var
# Test that we don't copy local-exports to blocks.
set -lx var foo
begin
echo $var
set var bar
echo $var
end
echo $var # should be "bar"
# clear for other shells
set -eU __fish_test_universal_variables_variable_foo

View file

@ -23,6 +23,9 @@ __fish_test_env17=UNSHADOWED
wuwuwu
boo
wuwuwu
foo
bar
bar
Testing Universal Startup
1
1