aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/test3.in
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2015-06-12 16:05:59 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2015-06-12 16:05:59 -0700
commitf3560b8e626a528f2b5cc167c00d610ab9546b82 (patch)
tree665ba82b461fcd545b8d8e064eb077e5e9cf6511 /tests/test3.in
parent18d74655925eb7afb133b1b1437b901ae816e33e (diff)
Correctly un-export an env var when it is shadowed
Prior to this fix, if you exported a variable in one scope and then unexported it in the next, it would remain exported. Example: set -gx VAR 1 function foo; set -l VAR; env; end foo Here 'VAR' would be exported to 'env' because we failed to notice that the env var is shadowed by an unexported variable. This occurred at env var computation time, not in env_set! Fixes #2132
Diffstat (limited to 'tests/test3.in')
-rw-r--r--tests/test3.in8
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/test3.in b/tests/test3.in
index 970741d1..fe20928c 100644
--- a/tests/test3.in
+++ b/tests/test3.in
@@ -227,6 +227,14 @@ else
echo Test 16 fail
end
+# Test that shadowing with a non-exported variable works
+set -gx __fish_test_env17 UNSHADOWED
+env | sgrep __fish_test_env17
+function __fish_test_shadow
+ set -l __fish_test_env17
+ env | sgrep __fish_test_env17 ; or echo SHADOWED
+end
+__fish_test_shadow
# clear for other shells
set -eU __fish_test_universal_variables_variable_foo