summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:33:55 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:33:55 +0000
commit363f759ed08953a892485cbe19298dc54e1f8478 (patch)
treed36741b8de87bb86cea64cf5f70d398554d5fd28
parentf3ca0c284e917772fc7fc6a39c4047efb2ffa631 (diff)
downloadzsh-363f759ed08953a892485cbe19298dc54e1f8478.tar.gz
zsh-363f759ed08953a892485cbe19298dc54e1f8478.zip
moved from Completion/Builtins/_zpty
-rw-r--r--Completion/Zsh/Command/_zpty58
1 files changed, 58 insertions, 0 deletions
diff --git a/Completion/Zsh/Command/_zpty b/Completion/Zsh/Command/_zpty
new file mode 100644
index 000000000..4a02952f7
--- /dev/null
+++ b/Completion/Zsh/Command/_zpty
@@ -0,0 +1,58 @@
+#compdef zpty
+
+local state line list names expl curcontext="$curcontext"
+typeset -A opt_args
+
+
+_arguments -C -s -S \
+ '(-r -w -L -d)-e[echo input characters]' \
+ '(-r -w -L -d)-b[io to pseudo-terminal blocking]' \
+ '(-r -w -L -e -b)-d[delete command]:*:name:->name' \
+ '(-r -L -e -b -d)-w[send string to command]:name:->name:*:strings to write' \
+ '(: -r -w -e -b -d)-L[list defined commands as calls]' \
+ '(: -w -L -e -b -d)-r[read string from command]:name:->name:param: _vars:pattern:' \
+ '(-r -w -L -d):zpty command name:' \
+ '(-r -w -L -d):cmd: _command_names -e' \
+ '(-r -w -L -d)*::args:_precommand' && return 0
+
+# One could use sets, but that's more expensive and zpty is simple enough.
+#
+# _arguments -C -s -S \
+# - read \
+# '-r[read string from command]' \
+# ':name:->name' \
+# ':param: _vars' \
+# ':pattern:' \
+# - write \
+# '-w[send string to command]' \
+# ':name:->name' \
+# '*:strings to write' \
+# - list \
+# '-L[list defined commands as calls]' \
+# - delete \
+# '-d[delete command]' \
+# '*:name:->name' \
+# - start \
+# '-e[echo input characters]' \
+# '-b[io to pseudo-terminal blocking]' \
+# ':zpty command name:' \
+# ':cmd: _command_names -e' \
+# '*::args:_precommand' && return 0
+
+
+if [[ $state = name ]]; then
+ if ! zmodload -e zsh/zpty; then
+ _message "zpty module not loaded"
+ return 1
+ fi
+ list=( ${${(f)"$(zpty)"}#*\) } )
+ names=( ${list%%:*} )
+ if zstyle -T ":completion:${curcontext}" verbose; then
+ zformat -a list ' --' ${${(f)"$(zpty)"}#*\) }
+ _wanted names expl 'zpty command name' compadd -d list -a names
+ else
+ _wanted names expl 'zpty command name' compadd -a names
+ fi
+else
+ return 1
+fi