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=-1.0 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, 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 bfe450fd for ; Thu, 26 Dec 2019 18:36:03 +0000 (UTC) Received: (qmail 21119 invoked by alias); 26 Dec 2019 18:35:54 -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: 45146 Received: (qmail 19064 invoked by uid 1010); 26 Dec 2019 18:35:54 -0000 X-Qmail-Scanner-Diagnostics: from mail-ua1-f54.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.102.1/25670. spamassassin: 3.4.2. Clear:RC:0(209.85.222.54):SA:0(-2.0/5.0):. Processed in 3.601838 secs); 26 Dec 2019 18:35:54 -0000 X-Envelope-From: sgniazdowski@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.222.54 as permitted sender) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=RzrF/cmN7PFTDs4US3vw1yLRf5ny5zSby1DIQqyYF6I=; b=JqgV0ijOCrFpOdNKZZHZ8+0CBd+Fqn1Makd88j2R/kXZqVlqB+BQkHYAqj3sLQCsVR nnkyVIcJ8nOxlN2SEUo/GrY91CEwLI+ZzN51VHd8EK0PeRtjDzVnKy4NZAbmShK+iJ97 YDDGXT7aLG57fOIo9S1ToynO8dYDScvb0C0/gQVsOFlDZX0/l9bUkc19EED4GM18lwOV WmKNvaqzDivOLKI++9IlEnDomD94kdMbXNe2lI8a+xBs5lQ85+E5+OXWTrlZNg15kG9T Np5T8CmtGXRQAPSDgavpyxEXzLHyfyNpeIkCMqtXqWUSwD2jbYjmCY1pAgu5fVjow8uC tGvg== X-Gm-Message-State: APjAAAWCh9dU5Ruki0ArnC1r1qR2sZerZYCRU5Jn/EeCVGm2y3r1uxjq M+G710xEYTe40cV0YSc05wR7kEYbw6HH4ciCqk0YAywBM+s= X-Google-Smtp-Source: APXvYqy3EzjezxXa+/60hVvS03lxcJYoNDyxC0kyLs9rSj6IXEJLIYEuktPmiIRN68satp3PBCUI0anLPT5V35DCBGU= X-Received: by 2002:ab0:6044:: with SMTP id o4mr11171908ual.7.1577385317031; Thu, 26 Dec 2019 10:35:17 -0800 (PST) MIME-Version: 1.0 References: <1a130b2e-5824-4b7a-8510-2b1d0b3fdac5@www.fastmail.com> In-Reply-To: <1a130b2e-5824-4b7a-8510-2b1d0b3fdac5@www.fastmail.com> From: Sebastian Gniazdowski Date: Thu, 26 Dec 2019 19:35:05 +0100 Message-ID: Subject: Re: [Bug] S-flag imposes non-greedy match where it shouldn't To: Daniel Shahaf Cc: Zsh hackers list Content-Type: multipart/mixed; boundary="0000000000007f2062059a9fa33c" --0000000000007f2062059a9fa33c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I've attached the extended description. It includes a trick to work-around the unintuitive behavior of S. It looks as follows: http://psprint.blinkenshell.org/S_flag.png I think that the way the S flag works is a bit of an inconsistency, Because ${str%%X##**} would not stop at the first from the right match, it would try other matches starting from the right and go on up to the final first from the left X. I think that (S) shouldn't change this, but on the other hand should ${(S)str%%X##} match the first three X? Rather not, as it would resemble ## then... Intuitively, however, it should match all the three right X. On Thu, 19 Dec 2019 at 16:30, Daniel Shahaf wrote: > > Sebastian Gniazdowski wrote on Wed, 18 Dec 2019 20:44 +00:00: > > Or rather not a bug=E2=80=A6 It seems that it's the result of how % sea= rches > > the substrings from the end =E2=80=93 it stops at the first match, i.e.= : after > > finding a first X from the right. > > Could we improve the documentation of (S), then? --=20 Sebastian Gniazdowski News: https://twitter.com/ZdharmaI IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin Blog: http://zdharma.org --0000000000007f2062059a9fa33c Content-Type: text/plain; charset="US-ASCII"; name="0001-Extend-description-of-S-flag.patch.txt" Content-Disposition: attachment; filename="0001-Extend-description-of-S-flag.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k4n2gqyk0 RnJvbSA2YTJkNWE2ZjBiNjljYmZiOGM3NjE3NmU1NWUyMzNhM2M3MTBhNDJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTZWJhc3RpYW4gR25pYXpkb3dza2kgPHNnbmlhemRvd3NraUBn bWFpbC5jb20+CkRhdGU6IFRodSwgMjYgRGVjIDIwMTkgMTk6MjI6NDEgKzAxMDAKU3ViamVjdDog W1BBVENIXSBFeHRlbmQgZGVzY3JpcHRpb24gb2YgUyBmbGFnCgotLS0KIERvYy9ac2gvZXhwbi55 byB8IDE0ICsrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL0RvYy9ac2gvZXhwbi55byBiL0RvYy9ac2gvZXhwbi55bwppbmRleCBkNzE0 N2RiZDcuLjkwZDAzYTkxYiAxMDA2NDQKLS0tIGEvRG9jL1pzaC9leHBuLnlvCisrKyBiL0RvYy9a c2gvZXhwbi55bwpAQCAtMTM5OSw2ICsxMzk5LDIwIEBAIGZyb20gdGhlIGJlZ2lubmluZyBhbmQg d2l0aCB0dCglKSBzdGFydCBmcm9tIHRoZSBlbmQgb2YgdGhlIHN0cmluZy4KIFdpdGggc3Vic3Rp dHV0aW9uIHZpYSB0dCgkeykuLi50dCgvKS4uLnR0KH0pIG9yCiB0dCgkeykuLi50dCgvLykuLi50 dCh9KSwgc3BlY2lmaWVzIG5vbi1ncmVlZHkgbWF0Y2hpbmcsIGkuZS4gdGhhdCB0aGUKIHNob3J0 ZXN0IGluc3RlYWQgb2YgdGhlIGxvbmdlc3QgbWF0Y2ggc2hvdWxkIGJlIHJlcGxhY2VkLgorVGhl IHN1YnN0cmluZyBzZWFyY2ggbWVhbnMgdGhhdCB0aGUgcGF0dGVybiBpcyBtYXRjaGVkIHNraXBw aW5nIHRoZQorcGFydHMgb2YgdGhlIGlucHV0IHN0cmluZyBzdGFydGluZyBmcm9tIHRoZSBkaXJl Y3Rpb24gc2V0IGJ5IHRoZSB1c2UKK29mIHR0KCMpIG9yIHR0KCUpLiBGb3IgZXhhbXBsZSwgdG8g bWF0Y2ggYSBwYXR0ZXJuIHN0YXJ0aW5nIGZyb20gdGhlCitlbmQsIG9uZSBjb3VsZCB1c2U6CisK K2V4YW1wbGUoc3RyPSJhYmNYWFhkZWZYWFhnaGkiCitvdXQ9JHsoUylzdHIlJSgjYikoW15YXSlY IyN9CitvdXQ9JG91dCR7bWF0Y2hbMV19CispCisKK1RoZSByZXN1bHQgaXMgdHQoYWJjWFhYZGVm Z2hpKS4gSXQgd291bGQgaGF2ZSBiZWVuIHR0KGFiY1hYWGRlZlhYZ2hpZikKK2lmIG5vdCB0aGUg dHQoW15YXSkgcGFydCwgYXMgZGVzcGl0ZSB0aGUgdHQoJSUpIHNwZWNpZmllcyBhIGdyZWVkeQor bWF0Y2gsIHRoZSBzdWJzdHJpbmcgbWF0Y2hpbmcgd29ya3MgYnkgdHJ5aW5nIG1hdGNoZXMgZnJv bSByaWdodCB0bworbGVmdCBhbmQgc3RvcHMgYXQgYSBmaXJzdCB2YWxpZCBtYXRjaC4KICkKIGl0 ZW0odHQoSTopdmFyKGV4cHIpdHQoOikpKAogU2VhcmNoIHRoZSB2YXIoZXhwcil0aCBtYXRjaCAo d2hlcmUgdmFyKGV4cHIpIGV2YWx1YXRlcyB0byBhIG51bWJlcikuCi0tIAoyLjIxLjAKCg== --0000000000007f2062059a9fa33c--