diff options
author | Bart Schaefer <barts@users.sourceforge.net> | 2001-10-16 17:19:18 +0000 |
---|---|---|
committer | Bart Schaefer <barts@users.sourceforge.net> | 2001-10-16 17:19:18 +0000 |
commit | 5437faa28c0cf86c7241f523909ce33ad4839672 (patch) | |
tree | 6f18a5cfe4047d32986ff3a7714ec1178929e3c3 /Completion/Zsh/Context | |
parent | 6cdd20e367e465bdc70e0616aa2dfbcfd05b1222 (diff) | |
download | zsh-5437faa28c0cf86c7241f523909ce33ad4839672.tar.gz zsh-5437faa28c0cf86c7241f523909ce33ad4839672.tar.xz zsh-5437faa28c0cf86c7241f523909ce33ad4839672.zip |
Merge assorted patches from the dev. version, as approved by PWS.
Read ChangeLog for details.
Diffstat (limited to 'Completion/Zsh/Context')
-rw-r--r-- | Completion/Zsh/Context/_tilde | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Completion/Zsh/Context/_tilde b/Completion/Zsh/Context/_tilde new file mode 100644 index 000000000..5fad92da3 --- /dev/null +++ b/Completion/Zsh/Context/_tilde @@ -0,0 +1,32 @@ +#compdef -tilde- + +# We use all named directories and user names here. If this is too slow +# for you or if there are too many of them, you may want to use +# `compadd -qS/ -a friends' or something like that. + +[[ -n "$compstate[quote]" ]] && return 1 + +local expl suf dirs list lines revlines i ret=1 disp nm="$compstate[nmatches]" + +if [[ "$SUFFIX" = */* ]]; then + ISUFFIX="/${SUFFIX#*/}$ISUFFIX" + SUFFIX="${SUFFIX%%/*}" + suf=(-S '') +else + suf=(-qS/) +fi + +_tags users named-directories directory-stack + +while _tags; do + _requested users && _users "$suf[@]" "$@" && ret=0 + + _requested named-directories expl 'named directory' \ + compadd "$suf[@]" "$@" -k nameddirs + + _requested directory-stack && _directory_stack "$suf[@]" && ret=0 + + (( ret )) || return 0 +done + +return ret |