summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Builtins/_compdef17
-rw-r--r--Completion/Builtins/_zpty23
3 files changed, 32 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 7a35d4488..ef065fcb6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-05-25  Oliver Kiddle  <opk@u.genie.co.uk>
+
+	* 11579: Completion/Builtins/_compdef, Completion/Builtins/_zpty:
+	Split _arguments calls into sets to avoid long mutex lists
+
 2000-05-25  Sven Wischnowsky  <wischnow@zsh.org>
 
 	* 11576: Completion/Core/compdump, Completion/Core/compinit:
diff --git a/Completion/Builtins/_compdef b/Completion/Builtins/_compdef
index 180df920d..23c6d3a3d 100644
--- a/Completion/Builtins/_compdef
+++ b/Completion/Builtins/_compdef
@@ -6,13 +6,18 @@ typeset -A opt_args
 _arguments -C -s \
   '(-d)-a[make function autoloadable]' \
   '(-d -p -P)-n[leave existing definitions intact]' \
-  '(-a -n -p -P -k -K)-d[delete]:*:completed command:->ccom' \
-  '(-n -d -P -k -K)-p[completion for command matching pattern]:completion function:->cfun:pattern' \
-  '(-n -d -p -k -K)-P[as -p for commands without own completion]:completion function:->cfun:pattern' \
-  '(-d -p -P -K)-k[define widget and key binding]:completion function:->cfun:style:->style:*:key' \
-  '(-d -p -P -k)-K[define multiple widgets based on function]:*::: :->multi' \
   ':completion function:->cfun' \
-  '*:commands: _command_names' && return 0
+  '*:commands: _command_names' \
+ - d \
+  '(-a -n)-d[delete]:*:completed command:->ccom' \
+ - p \
+  '(-n)-p[completion for command matching pattern]:completion function:->cfun:pattern' \
+ - P \
+  '(-n)-P[as -p for commands without own completion]:completion function:->cfun:pattern' \
+ - k \
+  '-k[define widget and key binding]:completion function:->cfun:style:->style:*:key' \
+ - K \
+  '-K[define multiple widgets based on function]:*::: :->multi' && return 0
 
 if [[ $state = multi ]]; then
   case $(( CURRENT % 3 )) in
diff --git a/Completion/Builtins/_zpty b/Completion/Builtins/_zpty
index f3e271342..de793c814 100644
--- a/Completion/Builtins/_zpty
+++ b/Completion/Builtins/_zpty
@@ -4,15 +4,24 @@ local state line list names expl curcontext="$curcontext"
 typeset -A opt_args
 
 _arguments -C -s \
-  '(-d -w -r -L)-e[echo input characters]' \
-  '(-d -w -r -L)-b[io to pseudo-terminal blocking]' \
-  '(-e -b -w -r -L)-d[delete command]:*:name:->name' \
-  '(-e -b -d -r -L)-w[send string to command]:name:->name:*:strings to write' \
-  '(-e -b -d -w -L *)-r[read string from command]:name:->name:param:_parameters' \
-  '(-e -b -d -w -r)-L[list defined commands as calls]' \
-  '(-r)*::args:_normal' && return 0
+  '(-r)*::args:_normal' \
+ - eb \
+  '-e[echo input characters]' \
+  '-b[io to pseudo-terminal blocking]' \
+ - d \
+  '-d[delete command]:*:name:->name' \
+ - w \
+  '-w[send string to command]:name:->name:*:strings to write' \
+ - L \
+  '-L[list defined commands as calls]' \
+ - r \
+  '(*)-r[read string from command]:name:->name:param:_parameters' && 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