From e995cc9329faf2d7cbd071c591fe21282e4ef7b8 Mon Sep 17 00:00:00 2001 From: maxfl Date: Tue, 26 Jun 2012 04:01:35 +0400 Subject: [PATCH] fix #177 (complete 'cd' only with paths) --- share/functions/__fish_complete_cd.fish | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/share/functions/__fish_complete_cd.fish b/share/functions/__fish_complete_cd.fish index 5e5198350..73307e5ee 100644 --- a/share/functions/__fish_complete_cd.fish +++ b/share/functions/__fish_complete_cd.fish @@ -1,11 +1,8 @@ function __fish_complete_cd -d "Completions for the cd command" - # # We can't simply use __fish_complete_directories because of the CDPATH # - set -l wd $PWD - set -l owd $OLDPWD # Check if CDPATH is set @@ -17,10 +14,10 @@ function __fish_complete_cd -d "Completions for the cd command" set mycdpath $CDPATH end - - if echo '(commandline -ct)'|sgrep '^/\|^\./\|^\.\./' >/dev/null + set -l ctoken (commandline -ct) + if echo $ctoken | sgrep '^/\|^\./\|^\.\./\|^~/' >/dev/null # This is an absolute search path - eval printf '\%s\\tDirectory\\n' '(commandline -ct)'\*/ + eval printf '\%s\\tDirectory\\n' $ctoken\*/ else # This is a relative search path # Iterate over every directory in CDPATH @@ -33,11 +30,10 @@ function __fish_complete_cd -d "Completions for the cd command" builtin cd $wd eval builtin cd $i - eval printf '"%s\tDirectory in "'$i'"\n"' '(commandline -ct)'\*/ + eval printf '"%s\tDirectory in "'$i'"\n"' $ctoken\*/ end end builtin cd $wd - set OLDPWD $owd end