From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17511 invoked by alias); 10 Aug 2015 19:19:37 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 36083 Received: (qmail 19745 invoked from network); 10 Aug 2015 19:19:36 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.0 X-Originating-IP: [80.3.228.158] X-Spam: 0 X-Authority: v=2.1 cv=dtgmcAU4 c=1 sm=1 tr=0 a=P+FLVI8RzFchTbbqTxIDRw==:117 a=P+FLVI8RzFchTbbqTxIDRw==:17 a=NLZqzBF-AAAA:8 a=kj9zAlcOel0A:10 a=pGLkceISAAAA:8 a=7AspKcFuaOyWPJD-_48A:9 a=CjuIK1q_8ugA:10 Date: Mon, 10 Aug 2015 20:19:32 +0100 From: Peter Stephenson To: Mikael Magnusson Cc: zsh workers Subject: Re: typeset tied array initialization silently dropped for already tied params Message-ID: <20150810201932.7acdcfaf@ntlworld.com> In-Reply-To: References: X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.28; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Sun, 9 Aug 2015 21:47:17 +0200 Mikael Magnusson wrote: > If you already tied SCALAR and array, then doing > typeset -T SCALAR array=(a b c) > silently has no effect, other than changing the separator to : or > whatever you specified there. The answer seems to be not to do that. diff --git a/Src/builtin.c b/Src/builtin.c index c63be7e..4a97a31 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -2685,6 +2685,8 @@ bin_typeset(char *name, char **argv, LinkList assigns, Options ops, int func) tdp->joinchar = joinchar; if (asg0.value.scalar) setsparam(asg0.name, ztrdup(asg0.value.scalar)); + else if (asg->value.array) + setaparam(asg->name, zlinklist2array(asg->value.array)); return 0; } else { zwarnnam(name, "can't tie already tied scalar: %s", diff --git a/Test/B02typeset.ztst b/Test/B02typeset.ztst index a059442..2b8e544 100644 --- a/Test/B02typeset.ztst +++ b/Test/B02typeset.ztst @@ -467,9 +467,12 @@ print $tied_array typeset -T TIED_SCALAR=goo:car tied_array print $tied_array + typeset -T TIED_SCALAR tied_array=(poo par) + print $TIED_SCALAR 0:retying arrays to same array works >foo bar >goo car +>poo:par ( setopt POSIXBUILTINS