diff options
-rw-r--r-- | Completion/User/_hostports | 9 | ||||
-rw-r--r-- | Completion/User/_socket | 34 | ||||
-rw-r--r-- | Completion/User/_telnet | 21 |
3 files changed, 64 insertions, 0 deletions
diff --git a/Completion/User/_hostports b/Completion/User/_hostports new file mode 100644 index 000000000..9e331bb8a --- /dev/null +++ b/Completion/User/_hostports @@ -0,0 +1,9 @@ +#autoload + +# Usage: _hostport host + +local host="$1" +shift + +compadd "$@" - ${${(M)hosts\:#$host\:*}#*\:} + diff --git a/Completion/User/_socket b/Completion/User/_socket new file mode 100644 index 000000000..353a66fd5 --- /dev/null +++ b/Completion/User/_socket @@ -0,0 +1,34 @@ +#compdef socket + +local state line expl +typeset -A options + +_arguments -s \ + -{b,c,f,q,r,v,w} \ + -{s,l} \ + '-p:command:->command' \ + ':arg1:->arg1' \ + ':arg2:->arg2' + +case "$state" in +command) + compset -q + _normal + ;; + +arg1) + if (( $+options[-s] )); then + _message 'port' + else + _description expl 'host' + _hosts "$expl[@]" + fi + ;; + +arg2) + if (( ! $+options[-s] )); then + _description expl 'port' + _hostports $line[2] "$expl[@]" + fi + ;; +esac diff --git a/Completion/User/_telnet b/Completion/User/_telnet new file mode 100644 index 000000000..54d9a0a2d --- /dev/null +++ b/Completion/User/_telnet @@ -0,0 +1,21 @@ +#compdef telnet + +_arguments -s \ + -{F,f,x} \ + '-8[allow 8-Bit data]' \ + '-E[disable an escape character]' \ + '-K[no automatic login]' \ + '-L[allow 8-Bit data on output]' \ + '-S+:IP type-of-service:' \ + '-X+:authentication type to disable:' \ + '-a[attempt automatic login]' \ + '-c[disable .telnetrc]' \ + '-d[debug mode]' \ + '-e+[specify escape character]:escape character:' \ + '-k+:realm:' \ + '-l+[specify user]:user:' \ + '-n+[specify tracefile]:tracefile:_files' \ + '-r[rlogin like user interface]' \ + ':host:_hosts' \ + ':port:{ _hostports $line[2] "$expl[@]" }' + |