Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: current CVS test failure



Oliver Kiddle wrote:
> So your -O is probably the best solution.

With documentation added, it now looks like the following.

I notice the option only affects prefix-needed, not prefix-hidden, which
was always handled by _describe.  That's probably OK as this is a matter
for displaying.

Index: Doc/Zsh/compsys.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/compsys.yo,v
retrieving revision 1.169
diff -u -r1.169 compsys.yo
--- Doc/Zsh/compsys.yo	25 Apr 2003 11:19:09 -0000	1.169
+++ Doc/Zsh/compsys.yo	13 May 2003 09:51:39 -0000
@@ -3665,7 +3665,7 @@
 the functions for the fields if they are called.
 )
 findex(_describe)
-item(tt(_describe) [ tt(-o) | tt(-t) var(tag) ] var(descr) var(name1) [ var(name2) ] var(opts) ... tt(-)tt(-) ...)(
+item(tt(_describe) [ tt(-oO) | tt(-t) var(tag) ] var(descr) var(name1) [ var(name2) ] var(opts) ... tt(-)tt(-) ...)(
 This function associates completions with descriptions.
 Multiple groups separated by tt(-)tt(-) can be supplied, potentially with
 different completion options var(opts).
@@ -3688,7 +3688,10 @@
 tt(prefix-needed) and tt(verbose) styles to find out if the strings should
 be added as completions and if the descriptions should be shown.  Without
 the `tt(-o)' option, only the tt(verbose) style is used to decide how
-descriptions are shown.
+descriptions are shown.  If `tt(-O)' is used instead of `tt(-O)', command
+options are completed as above but tt(_describe) will not handle the
+tt(prefix-needed) style which is assumed to be handled by the calling
+function.
 
 With the tt(-t) option a var(tag) can be specified.  The default is
 `tt(values)' or, if the tt(-o) option is given, `tt(options)'.
Index: Completion/Base/Utility/_arguments
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Base/Utility/_arguments,v
retrieving revision 1.14
diff -u -r1.14 _arguments
--- Completion/Base/Utility/_arguments	23 May 2002 12:20:15 -0000	1.14
+++ Completion/Base/Utility/_arguments	13 May 2003 09:51:39 -0000
@@ -387,7 +387,7 @@
 	    tmp1=( "${(M@)tmp1:#[-+]?(|:*)}" )
 	    tmp2=( "${PREFIX}${(@M)^${(@)${(@)tmp1%%:*}#[-+]}:#?}" )
 
-            _describe -o option \
+            _describe -O option \
                       tmp1 tmp2 -Q -S '' -- \
 		      tmp3 -Q
 
@@ -399,7 +399,7 @@
           single=yes
         else
           next=( "$next[@]" "$odirect[@]" )
-          _describe -o option \
+          _describe -O option \
                     next -Q -M "$matcher" -- \
                     direct -QS '' -M "$matcher" -- \
                     equal -QqS= -M "$matcher"
Index: Completion/Base/Utility/_describe
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Base/Utility/_describe,v
retrieving revision 1.15
diff -u -r1.15 _describe
--- Completion/Base/Utility/_describe	30 Apr 2003 13:47:55 -0000	1.15
+++ Completion/Base/Utility/_describe	13 May 2003 09:51:39 -0000
@@ -2,7 +2,7 @@
 
 # This can be used to add options or values with descriptions as matches.
 
-local _opt _expl _tmpm _tmpd _mlen
+local _opt _expl _tmpm _tmpd _mlen _noprefix
 local _type=values _descr _ret=1 _showd _nm _hide _args _grp _sep
 local csl="$compstate[list]" csl2
 local _oargv _argv _new _strs _mats _opts _i _try=0
@@ -12,6 +12,10 @@
 if [[ "$1" = -o ]]; then
   _type=options
   shift
+elif [[ "$1" = -O ]]; then
+  _type=options
+  _noprefix=1
+  shift
 elif [[ "$1" = -t ]]; then
   _type="$2"
   shift 2
@@ -19,6 +23,10 @@
   _type="${1[3,-1]}"
   shift
 fi
+
+[[ "$_type$_noprefix" = options && ! -prefix [-+]* ]] && \
+    zstyle -T ":completion:${curcontext}:options" prefix-needed &&
+        return 1
 
 # Do the tests. `showd' is set if the descriptions should be shown.
 

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK                          Tel: +44 (0)1223 692070


**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential 
and/or privileged material. 
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by 
persons or entities other than the intended recipient is 
prohibited.  
If you received this in error, please contact the sender and 
delete the material from any computer.
**********************************************************************



Messages sorted by: Reverse Date, Date, Thread, Author