mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-20 05:53:52 +01:00
32 lines
724 B
Plaintext
32 lines
724 B
Plaintext
#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
|