aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--env.cpp2
-rw-r--r--tests/test3.in4
-rw-r--r--tests/test3.out2
3 files changed, 7 insertions, 1 deletions
diff --git a/env.cpp b/env.cpp
index 167e0a36..814ae303 100644
--- a/env.cpp
+++ b/env.cpp
@@ -487,7 +487,7 @@ void env_init(const struct config_paths_t *paths /* or NULL */)
wcstring key = key_and_val.substr(0, eql);
if (is_read_only(key) || is_electric(key)) continue;
wcstring val = key_and_val.substr(eql + 1);
- if (variable_can_be_array(val))
+ if (variable_can_be_array(key))
{
std::replace(val.begin(), val.end(), L':', ARRAY_SEP);
}
diff --git a/tests/test3.in b/tests/test3.in
index b83b69c0..816e94ec 100644
--- a/tests/test3.in
+++ b/tests/test3.in
@@ -244,4 +244,8 @@ env SHLVL=3foo ../fish -c 'echo SHLVL: $SHLVL'
env SHLVL="3 " ../fish -c 'echo SHLVL: $SHLVL'
env SHLVL=" 3" ../fish -c 'echo SHLVL: $SHLVL'
+# Test transformation of inherited variables
+env DISPLAY="localhost:0.0" ../fish -c 'echo Elements in DISPLAY: (count $DISPLAY)'
+env PATH="/bin:/sbin:/usr/bin:/usr/sbin" ../fish -c 'echo Elements in PATH: (count $PATH)'
+
true
diff --git a/tests/test3.out b/tests/test3.out
index c6a21905..31ad6cb2 100644
--- a/tests/test3.out
+++ b/tests/test3.out
@@ -28,3 +28,5 @@ SHLVL: 1
SHLVL: 1
SHLVL: 4
SHLVL: 4
+Elements in DISPLAY: 1
+Elements in PATH: 4