From 4353b05cf141acd3ad34f8eeafb1bac5d6c11107 Mon Sep 17 00:00:00 2001 From: Sergii Fesenko Date: Sat, 16 May 2020 16:52:09 +0300 Subject: [PATCH] io.standard-paths: fix standard-login-paths for fish shell Fish shell automatically split variables whose name ends in "PATH" into lists, and uses space as separator for output Colons force fish to use standard $PATH representation --- basis/io/standard-paths/unix/unix-tests.factor | 5 +++++ basis/io/standard-paths/unix/unix.factor | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/basis/io/standard-paths/unix/unix-tests.factor b/basis/io/standard-paths/unix/unix-tests.factor index 986c0564d2..221a8ac855 100644 --- a/basis/io/standard-paths/unix/unix-tests.factor +++ b/basis/io/standard-paths/unix/unix-tests.factor @@ -14,3 +14,8 @@ sequences tools.test ; { "/bin/ps" "/sbin/ps" "/usr/bin/ps" } member? ] with-os-env ] unit-test + +{ t } [ + "ls" find-in-standard-login-path + { "/bin/ls" "/usr/bin/ls" } member? +] unit-test diff --git a/basis/io/standard-paths/unix/unix.factor b/basis/io/standard-paths/unix/unix.factor index af9c35369a..107f28a05a 100644 --- a/basis/io/standard-paths/unix/unix.factor +++ b/basis/io/standard-paths/unix/unix.factor @@ -16,7 +16,7 @@ M: unix find-in-path* utf8 decode [ blank? ] trim ":" split ; : standard-login-paths ( -- strings ) - { "-l" "-c" "echo $PATH" } + { "-l" "-c" "echo \"$PATH\"" } effective-user-id user-passwd shell>> prefix binary stream-contents parse-login-paths ;