From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22726 invoked by alias); 1 Oct 2017 00:11:59 -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: 41799 Received: (qmail 3427 invoked by uid 1010); 1 Oct 2017 00:11:59 -0000 X-Qmail-Scanner-Diagnostics: from mail-pf0-f180.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.192.180):SA:0(-4.2/5.0):. Processed in 2.674176 secs); 01 Oct 2017 00:11:59 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_SORBS_SPAM,SPF_PASS,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: schaefer@brasslantern.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:in-reply-to:comments:references:to:subject :mime-version; bh=21L/1RBkeOXQWKJRkJ6Z/UP7muIQcrRU7tP0L6JsMDQ=; b=xKVyDlNKsUcqhVBnCKFvhueBglpLi6TReGaHYVkhamIuId2Ymu6TLejl74tdYEJuQD yBa96QDO3jwkDzn4RLnO8tbpDRYgdWSmgc6X7z9zrTfUUxe8XJ8YrDN+YIVcDqn+mIGa ze/8iSiPNmyJ1xFxrLgjGxabij253XRZwVFkPDLwaIQxJv0aRchXuazQG0OnqD7jF/CQ 9V4i2Tmrp4EgVbKWqQk+lANv3mRUESVlztQIzWZ0r0lmJpL9JaJLrlccNHB2RN8tMLKN 8jmAjxKiIWaHCSsIx9cNi6z1wEWOWnXXbBBxMa8F8jgcST+tAuuDIix4cGgoFNRPvLxu gmtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:date:in-reply-to:comments :references:to:subject:mime-version; bh=21L/1RBkeOXQWKJRkJ6Z/UP7muIQcrRU7tP0L6JsMDQ=; b=f7LMMaCVZlVx8YhHOw5rL4GWumZbp7wH9/4RyZ31ul7OXia1xq2DqNFwBSUrZndxQy 4jEXdFwFZvxGyfJeqalGlgc/0bUL/r3tsp3yavFVKztIfabHOwVMLbjTSBCpnf/7N4Fi HdZx3b/kIZzzXA8JRvN5Hmqnt71ys2lHyQ4BrzyIwmhcfm+6HUe4A+w/pd8XigSj7FjZ GXhtp3N09SC4GUd5Vpg8O9VtztZicpeNfHHM47Ka7YqDFaQDa9KcxfMjNKuzJYlhAube Qacb6rfu6IXKWndkrIuHRyldz/NTRzoyXgqgR7LMlFmnaZxwRlLM+kk83Yj7igGUYPCg C50Q== X-Gm-Message-State: AHPjjUiB9kc1kKay8tSirIeSea01cJZz2w7kwOxyI305vZ6KLnyDEb9x cpwMb8aJdBtW1X6vaGnQTgYSu/Bt X-Google-Smtp-Source: AOwi7QCE/iUIFFGIpaMjxOQYb35ozl4PhPpQgHtg0Pl3/ZrGMbH+i2ujPR28DaSELILVr6y+njQw7w== X-Received: by 10.84.192.37 with SMTP id b34mr10427003pld.279.1506816711329; Sat, 30 Sep 2017 17:11:51 -0700 (PDT) From: Bart Schaefer Message-Id: <170930171154.ZM21088@torch.brasslantern.com> Date: Sat, 30 Sep 2017 17:11:54 -0700 In-Reply-To: <20170930204613.3cb2be70@ntlworld.com> Comments: In reply to Peter Stephenson "Re: PATCH: typeset -P" (Sep 30, 8:46pm) References: <20170929205059.5fa7eb4d@ntlworld.com> <170929155533.ZM15802@torch.brasslantern.com> <20170930134851.503623ed@ntlworld.com> <20170930204613.3cb2be70@ntlworld.com> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: Zsh hackers list Subject: Re: PATCH: typeset -P MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Sep 30, 8:46pm, Peter Stephenson wrote: } } The chunk in Src/subst.c is unrelated apart from being required by a } test I've just added. It ensures we don't elide empty nodes from the } list when using key / value pairs. Hrm, this makes me notice that there's a useful case for typeset -p to output the [k]=v syntax even for traditional arrays. Consider: % typeset -a onek=([1024]=something) % typeset -p 1 onek We could skip the initial 1023 lines of '' if we used the new syntax. On the other hand, we'd waste a bunch of bytes on [N]=... if the array was *not* mostly empty, so most of the time the old syntax is likely more compact. } One other minor compatibility note: the existing typeset -p } prints a space between the parentheses of an empty array. [...] } I've removed this space for typeset -p1. Interesting: torch% typeset -p x typeset -a x=( ) torch% typeset -p 1 x typeset -a x=() (I don't really care either, but somebody is probably going to notice and file a bug report.) Aside -- *prior to* this patch: torch% () { typeset -p 1 } foo (anon):typeset: no such variable: 1 torch% () { typeset -p @ } foo torch% () { typeset -p \* } foo torch% () { typeset -p # } foo torch% () { typeset -p ARGC } foo torch% () { typeset -p argv } foo typeset -g -a argv=( foo ) So individual positional parameters are "no such variable" which nicely makes this new syntax usable, yet the argv variants are recognized but not always printable. (Also not clear that the -g is correct for argv, but I think it's merely extraneous rather than wrong.)