summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Zsh/Command/_zcompile31
2 files changed, 22 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index f886927fa..b8f91b2fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-17  Oliver Kiddle  <opk@zsh.org>
+
+	* 19790: Completion/Zsh/Command/_zcompile: complete functions
+	after -a and allow multiple -z/-k options
+
 2004-04-17  Doug Kearns  <djkea2@mugca.its.monash.edu.au>
 
 	* 19775: Completion/Unix/Command/_php: new completion for php
diff --git a/Completion/Zsh/Command/_zcompile b/Completion/Zsh/Command/_zcompile
index 2d8e6d033..727ead3b1 100644
--- a/Completion/Zsh/Command/_zcompile
+++ b/Completion/Zsh/Command/_zcompile
@@ -3,23 +3,26 @@
 local state line expl curcontext="$curcontext" ret=1
 typeset -A opt_args
 
-_arguments -C -s -A "-*" -S \
-    '(-t -c -m -a)-U[don'\''t expand aliases]' \
-    '(-t -M)-R[mark as read]' \
-    '(-t -R)-M[mark as mapped]' \
-    '(-t -c -z -m -a)-k[ksh-style autoloading]' \
-    '(-t -c -k -m -a)-z[zsh-style autoloading]' \
-    '(-t -U -z -k)-c[currently defined functions]' \
-    '(-t -U -z -k)-m[use names as patterns]' \
-    '(-t -U -z -k)-a[write autoload functions]' \
-    '(-M -R -U -z -k -a -c -m)-t[show table of contents]' \
-    ':zwc file:_files' \
-    '*:function:->function' && ret=0
+_arguments -C -s \
+  "(-t -c -m -a)-U[don't expand aliases]" \
+  '(-t -M)-R[mark as read]' \
+  '(-t -R)-M[mark as mapped]' \
+  '(-t -c -m -a)*-k[ksh-style autoloading]' \
+  '(-t -c -m -a)*-z[zsh-style autoloading]' \
+  '(-t -U -z -k)-c[currently defined functions]' \
+  '(-t -U -z -k)-m[use names as patterns]' \
+  '(-t -U -z -k)-a[write autoload functions]' \
+  '(-M -R -U -z -k -a -c -m)-t[show table of contents]' \
+  '(-M -R -U -a -c -m -t):file:->file' \
+  '*:function:->function' && ret=0
 
-if (( $+opt_args[-c] )); then
+if [[ $state = function && -n $opt_args[(i)-[ac]] ]]; then
   _wanted functions expl 'function to write' compadd -k functions && ret=0
+elif [[ -n $opt_args[(i)-[tca]] ]]; then
+  _description files expl 'zwc file'
+  _files -g '*.zwc(-.)' "$expl[@]" && ret=0
 else
-  _description files expl 'zsh source file'
+  _description files expl 'file'
   _files "$expl[@]" && ret=0
 fi