Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: PATCH: Re: Assorted _arguments arguments
- X-seq: zsh-workers 11338
 
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
 
- To: zsh-workers@xxxxxxxxxxxxxx
 
- Subject: Re: PATCH: Re: Assorted _arguments arguments
 
- Date: Fri, 12 May 2000 09:35:48 +0200 (MET DST)
 
- In-reply-to: "Bart Schaefer"'s message of Fri, 12 May 2000 02:53:02 +0000
 
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
 
Bart Schaefer wrote:
> ...
> 
> I haven't really worked at understanding _argument_sets very much, but:
> 
> As I understand it, _argument_sets only works for fairly simple option
> combinations.  As soon as you start needing ->state and the like, it's
> necessary to revert to using _arguments directly.  Is it possible to
> combine the two in some useful way so that it isn't necessary to give
> up the above convenience in order to do more complex parsing?
The only real problem _argument_sets currently has with `->state'
actions is when there are more than one state returned at the same
time. Especially for actions defined in the common options/args part:
you'll get the state/context more than once in $state and $context
(and just using `typeset -U' doesn't work, because the contexts may be 
different, including the set-name).
However, _argument_sets was mostly written to give us a way to play
with this, test it. The syntax (the `-' to separate sets) was chosen
because `-' currently makes comparguments/_arguments report an invalid 
argument. So... we could try to put the whole functionality of
_argument_sets into _arguments, implement it (mostly) in C. I would
then write it there as we have it in shell code now: as a wrapper
around the existing code. That was the problem that led to the
implementation we have now: changing all of comparguments to support
multiple sets is extremly complicated (and error-prone).
Bye
 Sven
--
Sven Wischnowsky                         wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author