diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-13 18:22:21 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-13 18:22:21 +0000 |
commit | 6818d4f69732c2547f589cba9d9c7e0b73ee6310 (patch) | |
tree | 9f79bd01cc6d0e86db57186815dbe4e3f0397f31 /Completion/User/_telnet | |
parent | f97255d093f9d67f76a7ded72d44e463d11a0f20 (diff) | |
download | zsh-6818d4f69732c2547f589cba9d9c7e0b73ee6310.tar.gz zsh-6818d4f69732c2547f589cba9d9c7e0b73ee6310.tar.xz zsh-6818d4f69732c2547f589cba9d9c7e0b73ee6310.zip |
zsh-workers/7815
Diffstat (limited to 'Completion/User/_telnet')
-rw-r--r-- | Completion/User/_telnet | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/Completion/User/_telnet b/Completion/User/_telnet index 594dcf2e5..82fd6b21c 100644 --- a/Completion/User/_telnet +++ b/Completion/User/_telnet @@ -2,9 +2,11 @@ # Parameter used: # -# telnet_ports -# The associative array that maps a host name to a space-separated list of -# ports. +# telnet_hosts_ports_users +# The array that contains 3-tuples `host:port:user'. + +local state line expl +typeset -A options _arguments -s \ -{F,f,x} \ @@ -19,9 +21,33 @@ _arguments -s \ '-d[debug mode]' \ '-e+[specify escape character]:escape character:' \ '-k+:realm:' \ - '-l+[specify user]:user:' \ + '-l+[specify user]:user:->users' \ '-n+[specify tracefile]:tracefile:_files' \ '-r[rlogin like user interface]' \ - ':host:{ compadd "$expl[@]" - ${(k)telnet_ports} || _hosts "$expl[@]" }' \ - ':port:{ if (( $+telnet_ports )); then compadd "$expl[@]" - ${=telnet_ports[$line[2]]}; else _message "port"; fi }' + ':host:->hosts' \ + ':port:->ports' + +case "$state" in +hosts) + _description expl 'host' + _combination telnet_hosts_ports_users \ + ${options[-l]:+users=${options[-l]:q}} \ + hosts "$expl[@]" + ;; + +ports) + _description expl 'port' + _combination telnet_hosts_ports_users \ + ${options[-l]:+users=${options[-l]:q}} \ + hosts="${line[2]:q}" \ + ports "$expl[@]" + ;; +users) + _description expl 'user' + _combination telnet_hosts_ports_users \ + ${line[2]:+hosts="${line[2]:q}"} \ + ${line[3]:+ports="${line[3]:q}"} \ + users "$expl[@]" + ;; +esac |