aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/test3.in
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2014-10-12 15:01:35 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2014-10-12 15:01:44 -0700
commitc0b8e81b023bf1f118311a060662bea1ad565a19 (patch)
treeb6ff9a2ea7490f7447ba0eaedf21d335c5f1909d /tests/test3.in
parentc3bacc78c7105e7675e605319c5b21f4f5533388 (diff)
Change how arrays and environment variables interact.
Prior to this change, inherited environment variables would be split on colons, becoming an array. This change eliminates that behavior. Now environment variables are always split on the record separator character (ASCII 0x1e), with the exception of a short whitelist of PATH, MANPATH, CDPATH. Likewise, exported variables are also exported delimited by rs, with the exception of the above whitelist. Fixes #1374, also see #1656
Diffstat (limited to 'tests/test3.in')
-rw-r--r--tests/test3.in6
1 files changed, 4 insertions, 2 deletions
diff --git a/tests/test3.in b/tests/test3.in
index 4dec9a83..b162939d 100644
--- a/tests/test3.in
+++ b/tests/test3.in
@@ -248,7 +248,9 @@ env SHLVL=" 3" ../fish -c 'echo SHLVL: $SHLVL'
env DISPLAY="localhost:0.0" ../fish -c 'echo Elements in DISPLAY: (count $DISPLAY)'
# We can't use PATH for this because the global configuration will modify PATH
# based on /etc/paths and /etc/paths.d.
-# At the moment, most variables split on :. So we can use an arbitrary variable for this.
-env FOO="one:two:three:four" ../fish -c 'echo Elements in FOO: (count $FOO)'
+# Exported arrays should use record separator, with a few exceptions. So we can use an arbitrary variable for this.
+env FOO=one\x1etwo\x1ethree\x1efour ../fish -c 'echo Elements in FOO: (count $FOO)'
+# some must use colon separators!
+set -lx MANPATH man1 man2 man3 ; env | grep MANPATH
true