From ed8b5c01b0622a95134155b85832b49bda241986 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Fri, 25 Feb 2000 14:41:48 +0000 Subject: zsh-workers/9876 --- Completion/Base/_combination | 7 +++++-- Completion/User/_rlogin | 8 ++++---- Completion/User/_ssh | 6 +++--- Completion/User/_user_at_host | 4 ++-- 4 files changed, 14 insertions(+), 11 deletions(-) (limited to 'Completion') diff --git a/Completion/Base/_combination b/Completion/Base/_combination index 875d3c2cb..6b9607a27 100644 --- a/Completion/Base/_combination +++ b/Completion/Base/_combination @@ -55,6 +55,9 @@ local sep tag style keys pats key num tmp if [[ "$1" = -s ]]; then sep="$2" shift 2 +elif [[ "$1" = -s* ]]; then + sep="${1[3,-1]}" + shift else sep=: fi @@ -81,9 +84,9 @@ shift if zstyle -a ":completion:${curcontext}:$tag" "$style" tmp; then eval "tmp=( \"\${(@M)tmp:#\${(j($sep))~pats}}\" )" if (( keys[(in:num:)$key] != 1 )); then - eval "tmp=( \${tmp#\${(j(${sep}))~\${(@)\${(@)keys[2,(rn:num:)\$key]}/*/*}}$sep} )" + eval "tmp=( \${tmp#\${(j(${sep}))~\${(@)\${(@)keys[2,(rn:num:)\$key]}/*/*}}${~sep}} )" fi - tmp=( ${tmp%%$sep*} ) + tmp=( ${tmp%%${~sep}*} ) compadd "$@" - $tmp || { (( $+functions[_$key] )) && "_$key" "$@" } else diff --git a/Completion/User/_rlogin b/Completion/User/_rlogin index 738b6225f..df78bd447 100644 --- a/Completion/User/_rlogin +++ b/Completion/User/_rlogin @@ -54,21 +54,21 @@ _rlogin () { } _rlogin_users () { - _tags users && _combination my-accounts users-hosts users "$@" + _tags users && _combination -s '[:@]' my-accounts users-hosts users "$@" } _rlogin_hosts () { _tags hosts && if [[ "$IPREFIX" == *@ ]]; then - _combination my-accounts users-hosts "users=${IPREFIX/@}" hosts "$@" + _combination -s '[:@]' my-accounts users-hosts "users=${IPREFIX/@}" hosts "$@" else - _combination my-accounts users-hosts \ + _combination -s '[:@]' my-accounts users-hosts \ ${opt_args[-l]:+"users=${opt_args[-l]:q}"} hosts "$@" fi } _rlogin_all_hosts () { - _tags hosts && _combination my-accounts users-hosts hosts "$@" + _tags hosts && _combination -s '[:@]' my-accounts users-hosts hosts "$@" } _rlogin "$@" diff --git a/Completion/User/_ssh b/Completion/User/_ssh index 82f959b37..ddfe6de63 100644 --- a/Completion/User/_ssh +++ b/Completion/User/_ssh @@ -223,14 +223,14 @@ _ssh () { } _ssh_users () { - _combination my-accounts users-hosts users "$@" + _combination -s '[:@]' my-accounts users-hosts users "$@" } _ssh_hosts () { if [[ "$IPREFIX" == *@ ]]; then - _combination my-accounts users-hosts "users=${IPREFIX/@}" hosts "$@" + _combination -s '[:@]' my-accounts users-hosts "users=${IPREFIX/@}" hosts "$@" else - _combination my-accounts users-hosts \ + _combination -s '[:@]' my-accounts users-hosts \ ${opt_args[-l]:+"users=${opt_args[-l]:q}"} hosts "$@" fi } diff --git a/Completion/User/_user_at_host b/Completion/User/_user_at_host index 1098d2342..c7b86d385 100644 --- a/Completion/User/_user_at_host +++ b/Completion/User/_user_at_host @@ -23,8 +23,8 @@ if [[ -prefix 1 *@ ]]; then compset -P 1 '*@' _wanted -C user-at hosts expl "host for $user" && - _combination "${tag}" users-hosts users="$user" hosts "$expl[@]" "$@" + _combination -s '[:@]' "${tag}" users-hosts users="$user" hosts "$expl[@]" "$@" else _wanted users expl "user" && - _combination "${tag}" users-hosts users -S@ -q "$expl[@]" "$@" + _combination -s '[:@]' "${tag}" users-hosts users -S@ -q "$expl[@]" "$@" fi -- cgit 1.4.1