From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, FORGED_GMAIL_RCVD,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id b9ec09c9 for ; Wed, 1 Jan 2020 12:05:59 +0000 (UTC) Received: (qmail 8849 invoked by alias); 1 Jan 2020 12:05:51 -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: List-Unsubscribe: X-Seq: 45177 Received: (qmail 21758 invoked by uid 1010); 1 Jan 2020 12:05:51 -0000 X-Qmail-Scanner-Diagnostics: from 195-159-176-226.customer.powertech.no by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.102.1/25677. spamassassin: 3.4.2. Clear:RC:0(195.159.176.226):SA:0(1.6/5.0):. Processed in 0.927684 secs); 01 Jan 2020 12:05:51 -0000 X-Envelope-From: gcszd-zsh-workers@m.gmane.org X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at m.gmane.org does not designate permitted sender hosts) X-Injected-Via-Gmane: http://gmane.org/ To: zsh-workers@zsh.org From: Stephane Chazelas Subject: Re: [PATCH] coding practice in examples (-- with globs mostly) Date: Wed, 1 Jan 2020 12:00:09 +0000 Message-ID: <20200101120009.24l375svthztyszj@chaz.gmail.com> References: <20191231091618.v2erkblkwkiy3i5a@chaz.gmail.com> <20191231171638.en6olco722w4ldcc@tarpaulin.shahaf.local2> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit User-Agent: NeoMutt/20180716 Content-Disposition: inline In-Reply-To: <20191231171638.en6olco722w4ldcc@tarpaulin.shahaf.local2> 2019-12-31 17:16:38 +0000, Daniel Shahaf: [...] > Suggest not to mention the solution before the problem: > > +Note: if the list of arguments is empty, tt(print -l) will still output one > +empty line. To print a possibly-empty list of arguments one per line, use > +tt(print -C1), as in `tt(print -rC1 -- "$list[@]")'. [...] Thanks for the feedback. Yes, that works for me. > > {+++ b/Doc/Zsh/contrib.yo+} > > @@ -4422,10 +4422,11 @@ For example, to get a long tt(ls) listing of all plain files in the > > current directory or its subdirectories: > > > > example(autoload -U zargs > > zargs -- **/*(.) -- ls [--l)-] {+-ld --)+} > > > > Note that `tt(-)tt(-)' is used both to mark the end of the var(option) > > list and to mark the end of the var(input) [-list,-] {+list (and here also to mark > > the end of the option list for tt(ls)),+} so it must appear twice > > whenever the var(input) list may be empty. If there is guaranteed to be > > at least one var(input) and the first var(input) does not begin with a > > `tt(-)', then the first `tt(-)tt(-)' may be omitted. > > I think the text could be a little hard to follow, since there are three > «--» but it talks about "both" and then mentions the third in an > afterthought. Would you prefer to change the incumbent text as well? > You're not limited to adding parentheticals. I see what you mean. How about something like: zargs -- **/*(.) -- ls -ld -- The first and third occurrences of -- are used to mark the end of options for zargs and ls respectively to guard against filenames starting with -, while the second is used to separate the list of files from the command to run. The first -- would also be needed if there was a chance the list might be empty as in: zargs -r -- ./*.back(#qN) -- rm -f -- Stephane