summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 12:02:12 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 12:02:12 +0000
commitbdb1c1b92d26cd630716e0fe107545819be78d4c (patch)
treeed73d2b1aac5722befc612208f8a7fd6c97f6777
parentb90ecd936fc6640472b356e263613a7b550860eb (diff)
downloadzsh-bdb1c1b92d26cd630716e0fe107545819be78d4c.tar.gz
zsh-bdb1c1b92d26cd630716e0fe107545819be78d4c.zip
moved from Completion/User/_socket
-rw-r--r--Completion/Unix/Command/_socket56
1 files changed, 56 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_socket b/Completion/Unix/Command/_socket
new file mode 100644
index 000000000..9db31c9ae
--- /dev/null
+++ b/Completion/Unix/Command/_socket
@@ -0,0 +1,56 @@
+#compdef socket
+
+# Style used:
+#
+# hosts-ports
+# The style that contains pairs `host:port'.
+
+local curcontext="$curcontext" state line expl ret=1
+typeset -A opt_args
+
+[[ $CURRENT -eq 2 ]] &&
+ { ! zstyle -T ":completion:${curcontext}:options" prefix-needed ||
+ [[ "$PREFIX" = -* ]] } &&
+ _wanted options expl option compadd - -version
+
+_arguments -C -s \
+ '-b[background]' \
+ '-c[crlf]' \
+ '-f[fork]' \
+ '-q[quit]' \
+ '-r[read only]' \
+ '-v[verbose]' \
+ '-w[write only]' \
+ '-s[server]' \
+ '-l[loop]' \
+ '-p[program]:command:->command' \
+ ':arg1:->arg1' \
+ ':arg2:->arg2' && ret=0
+
+case "$state" in
+command)
+ compset -q
+ if [[ $CURRENT -eq 1 ]]; then
+ _command_names -e "$@" && ret=0
+ else
+ _normal && ret=0
+ fi
+ ;;
+
+arg1)
+ if (( $+opt_args[-s] )); then
+ _ports && ret=0
+ else
+ _wanted hosts expl 'host' _combination '' hosts-ports hosts - && ret=0
+ fi
+ ;;
+
+arg2)
+ if (( ! $+opt_args[-s] )); then
+ _wanted ports expl 'port to connect' \
+ _combination '' hosts-ports hosts="${line[1]:q}" ports - && ret=0
+ fi
+ ;;
+esac
+
+return ret