From 9034c9de51b059dd4f84e7f25a6e55bcd9ad9dea Mon Sep 17 00:00:00 2001 From: Bruno Pinto Date: Tue, 24 Jul 2012 23:48:52 -0300 Subject: [PATCH] Fixing 'cd' function to use fish's 'cd' function and not the builtin command --- plugins/cd/cd.fish | 48 +++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/plugins/cd/cd.fish b/plugins/cd/cd.fish index 65fa455..abad820 100644 --- a/plugins/cd/cd.fish +++ b/plugins/cd/cd.fish @@ -1,26 +1,34 @@ -function cd --description "Change working directory" - # Source a .rvmrc file in a directory after changing to it, if it exists. - # To disable this feature, set rvm_project_rvmrc=0 in $HOME/.rvmrc +# +# Source a .rvmrc file in a directory after changing to it, if it exists. +# To disable this feature, set rvm_project_rvmrc=0 in $HOME/.rvmrc +# +function cd --description "Change directory" + redefine_function 'cd' "$__fish_datadir/functions/cd.fish" ' + function cd --description "Change working directory" + old_cd "$argv" - builtin cd "$argv" - if test "$rvm_project_rvmrc" != 0 - set -l cwd $PWD - while true - if contains $cwd "" $HOME "/" - if test "$rvm_project_rvmrc_default" = 1 - rvm default 1>/dev/null 2>&1 - end - break - else - if test -s ".rvmrc" - eval "rvm reload" > /dev/null - break - else - set cwd (dirname "$cwd") + if test "$rvm_project_rvmrc" != 0 + set -l cwd $PWD + while true + if contains $cwd "" $HOME "/" + if test "$rvm_project_rvmrc_default" = 1 + rvm default 1>/dev/null 2>&1 + end + break + else + if test -s ".rvmrc" + eval "rvm reload" > /dev/null + break + else + set cwd (dirname "$cwd") + end + end end + + set -e cwd end end +' - set -e cwd - end + cd "$argv" end