summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:26:25 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:26:25 +0000
commit80b7a7193a91e244ff0a74175cbbb98d63b64924 (patch)
tree7e8cbd034ab4106728551a0e2724307bad6ec6b7
parentd3e7021acce0cc6085534090e304581d50d5996e (diff)
downloadzsh-80b7a7193a91e244ff0a74175cbbb98d63b64924.tar.gz
zsh-80b7a7193a91e244ff0a74175cbbb98d63b64924.zip
moved to Completion/Zsh/Command/_cd
-rw-r--r--Completion/Builtins/_cd54
1 files changed, 0 insertions, 54 deletions
diff --git a/Completion/Builtins/_cd b/Completion/Builtins/_cd
deleted file mode 100644
index 05d5e6f88..000000000
--- a/Completion/Builtins/_cd
+++ /dev/null
@@ -1,54 +0,0 @@
-#compdef cd chdir pushd
-
-# Handling of cd.
-# - Normally just completes directories. Uses cdpath if that's set
-# and the string doesn't begin with ~, /, ./ or ../.
-# - In the second argument to cd for the form `cd old new', completes
-# possible `new' strings by examining `old' and $PWD.
-# - After - or +, completes numbers, but the listing
-# gives you the list of directories to complete. This turns on
-# menu-completion and lists the possibilities automatically, otherwise
-# it's not a lot of use. If you don't type the + or - it will
-# complete directories as normal.
-
-setopt localoptions nonomatch
-
-local expl ret=1
-
-if [[ CURRENT -eq 3 ]]; then
- # cd old new: look for old in $PWD and see what can replace it
- local rep
- # Get possible completions using word in position 2
- rep=(${~PWD/$words[2]/*}~$PWD(-/))
- # Now remove all the common parts of $PWD and the completions from this
- rep=(${${rep#${PWD%%$words[2]*}}%${PWD#*$words[2]}})
- (( $#rep )) && _wanted -C replacement strings expl replacement compadd -a rep
-else
- _popd && ret=0
-
- if [[ $PREFIX != (\~|/|./|../)* && $#cdpath -ne 0 ]]; then
- local tdir tdir2
-
- # With cdablevars, we can convert foo/bar/... to ~foo/bar/... if
- # there is no directory foo. In that case we could also complete
- # variable names, but it hardly seems worth it.
- # Note we need a tilde because cdablevars also allows user home
- # directories, hence we also need nonomatch to suppress error messages.
- if [[ -o cdablevars && -n "$PREFIX" && ! -d ${tdir::=${PREFIX%%/*}} &&
- -d ${~tdir2::="~$tdir"} ]]; then
- PREFIX="~$PREFIX"
- _wanted directories expl directory _path_files -/ && ret=0
- else
- local tmpcdpath
-
- tmpcdpath=(${${(@)cdpath:#.}:#$PWD})
- _alternative \
- 'local-directories:local directories:_path_files -/' \
- "path-directories:directories in cdpath:_path_files -W tmpcdpath -/" && ret=0
- fi
- else
- _wanted directories expl directory _path_files -/ && ret=0
- fi
-
- return ret
-fi