diff options
Diffstat (limited to 'Completion/User')
-rw-r--r-- | Completion/User/_combination | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/Completion/User/_combination b/Completion/User/_combination deleted file mode 100644 index a122bd86f..000000000 --- a/Completion/User/_combination +++ /dev/null @@ -1,85 +0,0 @@ -#autoload - -# Usage: -# _combination [-s SEP] VARIABLE KEYi=PATi KEYj=PATj ... KEYm=PATm KEY EXPL... -# -# VARIABLE must be formd as PREFIX_KEY1_..._KEYn. -# -# Example: telnet -# -# Assume an user sets the variable `telnet_hosts_ports_users' as: -# -# telnet_hosts_ports_users=( -# host0:: host1::user1 host2::user2 -# mail-server:{smtp,pop3}: -# news-server:nntp: -# proxy-server:8000: -# ) -# -# `_telnet completes' hosts as: -# -# _combination telnet_hosts_ports_users \ -# ${options[-l]:+users=${options[-l]:q}} \ -# hosts "$expl[@]" -# -# This completes `host1', `host2', `mail-server', `news-server' and -# `proxy-server' according to the user given with `-l' if it is exists. -# And if it is failed, `_hosts' is called. -# -# `_telnet' completes ports as: -# -# _combination telnet_hosts_ports_users \ -# ${options[-l]:+users=${options[-l]:q}} \ -# hosts="${line[2]:q}" \ -# ports "$expl[@]" -# -# This completes `smtp', `pop3', `nntp' and `8000' according to the -# host argument --- $line[2] and the user option argument if it is -# exists. And if it is failed, `_ports' is called. -# -# `_telnet' completes users for an argument of option `-l' as: -# -# _combination telnet_hosts_ports_users \ -# ${line[2]:+hosts="${line[2]:q}"} \ -# ${line[3]:+ports="${line[3]:q}"} \ -# users "$expl[@]" -# -# This completes `user1' and `user2' according to the host argument and -# the port argument if they are exist. And if it is failed, `_users' is -# called. - -local sep var keys pats key tmp - -if [[ "$1" = -s ]]; then - sep="$2" - shift 2 -else - sep=: -fi - -var=$1 -shift - -keys=( "${(@s:_:)${var#*_}}" ) -pats=( "${(@)keys/*/*}" ) - -while [[ "$1" = *=* ]]; do - pats[$keys[(i)${1%%\=*}]]="${1#*\=}" - shift -done - -key="$1" -shift - -if (( ${(P)+${var}} )); then - eval "tmp=( \"\${(@M)${var}:#\${(j!$sep!)~pats}}\" )" - if (( keys[(i)$key] != 1 )); then - eval "tmp=( \${tmp#\${(j!${sep}!)~\${(@)\${(@)keys[2,(r)\$key]}/*/*}}$sep} )" - fi - tmp=( ${tmp%%$sep*} ) - - compadd "$@" - $tmp || { builtin functions _$key >&- && _$key "$@" } -else - builtin functions _$key >&- && _$key "$@" -fi - |