diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-04-02 11:43:27 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-04-02 11:43:27 +0000 |
commit | 5af07c76cabe919de61ee09bd65b6a54ec163b85 (patch) | |
tree | 0e09e90036cb12dda3c516a2787a24dd527857ce | |
parent | 3dc051089213cc24a1dac02005d558f62a43e6bf (diff) | |
download | zsh-5af07c76cabe919de61ee09bd65b6a54ec163b85.tar.gz zsh-5af07c76cabe919de61ee09bd65b6a54ec163b85.tar.xz zsh-5af07c76cabe919de61ee09bd65b6a54ec163b85.zip |
moved from Completion/User/_user_at_host
-rw-r--r-- | Completion/Unix/Type/_user_at_host | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Completion/Unix/Type/_user_at_host b/Completion/Unix/Type/_user_at_host new file mode 100644 index 000000000..b652242d3 --- /dev/null +++ b/Completion/Unix/Type/_user_at_host @@ -0,0 +1,31 @@ +#autoload + +# Complete user/host combinations. Normally this looks for the style +# `users-hosts' for the tag `accounts'. A different tag may be given +# with `-t tag'. +# A `-' or `--' as the first argument is ignored. + +local suf tag=accounts + +if [[ "$1" = -t?* ]]; then + tag="${1[3,-1]}" + shift +elif [[ "$1" = -t ]]; then + tag="$2" + shift 2 +fi + +[[ "$1" = -(|-) ]] && shift + +if [[ -prefix 1 *@ ]]; then + local user=${PREFIX%%@*} + + compset -P 1 '*@' + + _wanted -C user-at hosts expl "host for $user" \ + _combination -s '[:@]' "${tag}" users-hosts users="$user" hosts "$@" - +else + compset -S '@*' || suf="@" + _wanted users expl "user" \ + _combination -s '[:@]' "${tag}" users-hosts users -S "$suf" -q "$@" - +fi |