diff options
-rw-r--r-- | env.cpp | 2 | ||||
-rw-r--r-- | tests/test3.in | 4 | ||||
-rw-r--r-- | tests/test3.out | 2 |
3 files changed, 7 insertions, 1 deletions
@@ -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 |