summary refs log tree commit diff
path: root/Completion/Base
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:10:00 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:10:00 +0000
commit1282ff3a2da4c53384945cf9c78c4870f21e55af (patch)
tree0d8a9f7f80c150f0e46df887dc7dd9c80074c937 /Completion/Base
parenta5509ebb04f1f045e285af849bbf1cbe865a1a33 (diff)
downloadzsh-1282ff3a2da4c53384945cf9c78c4870f21e55af.tar.gz
zsh-1282ff3a2da4c53384945cf9c78c4870f21e55af.tar.xz
zsh-1282ff3a2da4c53384945cf9c78c4870f21e55af.zip
moved to Completion/Base/Utility/_combination
Diffstat (limited to 'Completion/Base')
-rw-r--r--Completion/Base/_combination94
1 files changed, 0 insertions, 94 deletions
diff --git a/Completion/Base/_combination b/Completion/Base/_combination
deleted file mode 100644
index dcb3269cd..000000000
--- a/Completion/Base/_combination
+++ /dev/null
@@ -1,94 +0,0 @@
-#autoload
-
-# Usage:
-#   _combination [-s S] TAG STYLE \
-#     Ki1[:Ni1]=Pi1 Ki2[:Ni2]=Pi2 ... Kim[:Nim]=Pim Kj[:Nj] EXPL...
-#
-#  STYLE should be of the form K1-K2-...-Kn.
-#
-# Example: telnet
-#
-#  Assume an user sets the style `users-hosts-ports' as for the my-accounts
-#  tag:
-#
-#    zstyle ':completion:*:*:telnet:*:my-accounts' users-hosts-ports \
-#      @host0: user1@host1: user2@host2:
-#      @mail-server:{smtp,pop3}
-#      @news-server:nntp
-#      @proxy-server:8000
-# 
-#
-#  `_telnet' completes hosts as:
-#
-#    _combination my-accounts users-hosts-ports \
-#      ${opt_args[-l]:+users=${opt_args[-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 my-accounts users-hosts-ports \
-#      ${opt_args[-l]:+users=${opt_args[-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 my-accounts users-hosts-ports \
-#      ${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 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
-
-tag="$1"
-style="$2"
-shift 2
-
-keys=( ${(s/-/)style} )
-pats=( "${(@)keys/*/*}" )
-
-while [[ "$1" = *=* ]]; do
-  tmp="${1%%\=*}"
-  key="${tmp%:*}"
-  num="${${tmp##*:}:-1}"
-  pats[$keys[(in:num:)$key]]="${1#*\=}"
-  shift
-done
-
-key="${1%:*}"
-num="${${1##*:}:-1}"
-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}} )"
-  fi
-  tmp=( ${tmp%%${~sep}*} )
-
-  compadd "$@" -a tmp || { (( $+functions[_$key] )) && "_$key" "$@" }
-else
-  (( $+functions[_$key] )) && "_$key" "$@"
-fi