Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: zparseopts default associative array
- X-seq: zsh-users 18447
- From: Sebastian Stark <seb.stark@xxxxxxxxx>
- To: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- Subject: Re: zparseopts default associative array
- Date: Fri, 14 Feb 2014 08:55:34 +0100
- Cc: zsh-users@xxxxxxx
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Z0pZatTxx6hRwQo4GcLLE0WlK/QCPz17Y68ocxyQ67A=; b=uH/9Et4K7SF9sFX9ZmPG4GwKCZFftAN9tf7rn2B5S8c/GKi8aCQrAsbu1kr6N9d0tE XML+98CSwBNjgraqNg21EBfk9ev8f4s0YQetf4IC/rs/1eF2Xa3wPVCTdi3kXGkkoLyN JgHSzK8e7fdBn8olEWJAXcRFaRAIqjPRmd5E4IQGPusQjQuWcr4xosHBoyCeXd1LUOPb dJr2+HxLDv4Mmlk5zA8RKcgVEfLskoBmTVrcwLI4MWBR3jzRk+KrmBlO9wKmKaeRNHwg ZllaccNpLf8GZ764Em3E73wgzhKbQHxlquitYnsD/VyiviLxdTMR/rXHkt3xhMVmNvS8 ZYcw==
- In-reply-to: <140213085618.ZM26934@torch.brasslantern.com>
- List-help: <mailto:zsh-users-help@zsh.org>
- List-id: Zsh Users List <zsh-users.zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- Mailing-list: contact zsh-users-help@xxxxxxx; run by ezmlm
- References: <CABABwVH+Yu-oFiE8OYkmNHxRGSwfYT8331oA0=0s9quom3CTGA@mail.gmail.com> <140213085618.ZM26934@torch.brasslantern.com>
Thanks for your very helpful answer. Is there any chance this gets
implemented one day or do I have to find a workaround? I am facing
changes to some scripts that used -K the wrong way, leading to funny
bugs.
2014-02-13 17:56 GMT+01:00 Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>:
> On Feb 13, 8:17am, Sebastian Stark wrote:
> }
> } Maybe I misunderstood something, but isn't my example the intended use
> } of -K? Or is the condition "when none of the specs for them is used"
> } really meant like "if one option is given, all other default values
> } are emptied"? How would this make sense?
>
> Yes, it really does mean that the defaults are kept only if NONE of
> the possible options for the array are parsed. Although it applies to
> the default arrays, the intended usage is really with the =array form
> as in this snippet of Completion/Base/Core/_description:
>
> gropt=(-J)
> xopt=(-X)
> nopt=()
> zparseopts -K -D -a nopt 1 2 V=gropt J=gropt x=xopt
>
> In this example -V and -J are mutually exclusive. (There seem to be a
> number of unnecessary uses of -K in the Completion tree.) Before the
> introduction of -K, gropt and xopt would have been unconditionally
> erased by having merely been mentioned in the zparsopts arguments.
>
> Yes, it would probably make sense for associative arrays if -K retained
> individual elements for associative arrays, but the implementation does
> the equivalent of the whole-array assignment o=(-a foo) for both plain
> and associative arrays because there is no useful way to do individual
> element assignment in the non-associative case. Unfortunately -K was
> an afterthought added with the minimal possible code changes.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author