From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22538 invoked by alias); 1 Aug 2014 15:02:53 -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: 32935 Received: (qmail 22546 invoked from network); 1 Aug 2014 15:02:52 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_PASS autolearn=ham version=3.3.2 X-AuditID: cbfec7f5-b7f776d000003e54-4f-53dbac184495 Date: Fri, 01 Aug 2014 16:02:47 +0100 From: Peter Stephenson To: zsh workers Subject: Re: PATCH: Add :^ syntax for zipping two arrays Message-id: <20140801160247.7e071644@pwslap01u.europe.root.pri> In-reply-to: References: <1406828739-14841-1-git-send-email-mikachu@gmail.com> <20140801094632.6ea87550@pwslap01u.europe.root.pri> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplluLIzCtJLcpLzFFi42I5/e/4VV2JNbeDDeb+lLA42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGZPuXmEtmMVRcfvqQ8YGxilsXYwcHBICJhLz13J0MXICmWIS F+6tBwpzcQgJLGWUuLDvJDOEs5xJ4sTeTUwgVSwCqhJfmzYxg9hsAoYSUzfNZgSxRYDizd// sYDYwgIWElcPbASzeQXsJX58aASr4RQIlvj7ew8rxNB9jBLTjr1mB0nwC+hLXP37iQniDHuJ mVfOMEI0C0r8mHwPbBCzgJbE5m1NrBC2vMTmNW+ZJzAKzEJSNgtJ2SwkZQsYmVcxiqaWJhcU J6XnGukVJ+YWl+al6yXn525ihATh1x2MS49ZHWIU4GBU4uEteHclWIg1say4MvcQowQHs5II 79wVt4OFeFMSK6tSi/Lji0pzUosPMTJxcEo1MKam3Z9drJVYt3m/nVnZ7bTWSQ63+qoY8rLi /Ha6fFoyr92Qc4v5iZ6DFxattzYsKUs6mecubbL62dqvZvrbuNMk5Z+pXWB8JLVe/3z7vIM/ +i5r2piVPV4qGZ1dzxNSNNfT+cMH/X6eRdNY7tzas11t4n6JXTfSzDITbd1X8kccW5LA8y7t mRJLcUaioRZzUXEiAPV7gZwgAgAA On Fri, 01 Aug 2014 16:46:57 +0200 Mikael Magnusson wrote: > I modeled it loosely on the :| / :* code which is just below it, which > uses mkarray, zhalloc and dupstring, which is... confusing. That'll be one of them bug things people sometimes try to interest me in. pws diff --git a/Src/subst.c b/Src/subst.c index 4713502..d6be2f0 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -2935,7 +2935,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags) */ if (!vunset) { if (isarr) { - aval = mkarray(NULL); + aval = hmkarray(NULL); } else { val = dupstring(""); } diff --git a/Src/utils.c b/Src/utils.c index aa978e6..998e46a 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -3372,6 +3372,17 @@ mkarray(char *s) } /**/ +mod_export char ** +hmkarray(char *s) +{ + char **t = (char **) zhalloc((s) ? (2 * sizeof s) : (sizeof s)); + + if ((*t = s)) + t[1] = NULL; + return t; +} + +/**/ mod_export void zbeep(void) {