Fix to respect the order of paths in /etc/paths (oops)

This commit is contained in:
ridiculousfish 2013-08-25 14:00:56 -07:00
parent dead45fa67
commit 9f46881c16

View file

@ -60,12 +60,15 @@ end
# OS X-ism: Load the path files out of /etc/paths and /etc/paths.d/* # OS X-ism: Load the path files out of /etc/paths and /etc/paths.d/*
set -g __fish_tmp_path $PATH set -g __fish_tmp_path $PATH
function __fish_load_path_helper_paths function __fish_load_path_helper_paths
while read -l new_path_comp
# We want to rearrange the path to reflect this order. Delete that path component if it exists and then prepend it. # We want to rearrange the path to reflect this order. Delete that path component if it exists and then prepend it.
# Since we are prepending but want to preserve the order of the input file, we reverse the array, append, and then reverse it again
set __fish_tmp_path $__fish_tmp_path[-1..1]
while read -l new_path_comp
set -l where (contains -i $new_path_comp $__fish_tmp_path) set -l where (contains -i $new_path_comp $__fish_tmp_path)
and set -e __fish_tmp_path[$where] and set -e __fish_tmp_path[$where]
set __fish_tmp_path $new_path_comp $__fish_tmp_path set __fish_tmp_path $new_path_comp $__fish_tmp_path
end end
set __fish_tmp_path $__fish_tmp_path[-1..1]
end end
test -r /etc/paths ; and __fish_load_path_helper_paths < /etc/paths test -r /etc/paths ; and __fish_load_path_helper_paths < /etc/paths
for pathfile in /etc/paths.d/* ; __fish_load_path_helper_paths < $pathfile ; end for pathfile in /etc/paths.d/* ; __fish_load_path_helper_paths < $pathfile ; end