From 14724401ff82eeb569df8b9b291b4670e80c35d8 Mon Sep 17 00:00:00 2001 From: David Adam Date: Wed, 8 Oct 2014 09:51:49 +0800 Subject: [PATCH] env.cpp: correctly check variable_can_be_array Closes #1746. --- env.cpp | 2 +- tests/test3.in | 4 ++++ tests/test3.out | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/env.cpp b/env.cpp index 167e0a362..814ae303c 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 b83b69c04..816e94ec3 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 c6a21905a..31ad6cb2e 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