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=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 a2e1392f for ; Mon, 9 Dec 2019 10:35:40 +0000 (UTC) Received: (qmail 25994 invoked by alias); 9 Dec 2019 10:35:31 -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: 44997 Received: (qmail 3378 invoked by uid 1010); 9 Dec 2019 10:35:31 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.102.1/25656. spamassassin: 3.4.2. Clear:RC:0(210.118.77.12):SA:0(-7.0/5.0):. Processed in 3.581337 secs); 09 Dec 2019 10:35:31 -0000 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.samsung.com designates 210.118.77.12 as permitted sender) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20191209103453euoutp024593043b736d296aad93a00d03e3b4bb~erYHs6qJ22154421544euoutp02E X-AuditID: cbfec7f4-0cbff7000001ed07-c0-5dee234c90ef Message-ID: <1575887691.4486.6.camel@samsung.com> Subject: Re: When GLOB_COMPLETE is on, tab completion does not work with path containing hyphens From: Peter Stephenson To: Date: Mon, 9 Dec 2019 10:34:51 +0000 In-Reply-To: <1575886903.4486.4.camel@samsung.com> X-Mailer: Evolution 3.18.5.2-0ubuntu3.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNIsWRmVeSWpSXmKPExsWy7djP87q+yu9iDU74WBxsfsjkwOix6uAH pgDGKC6blNSczLLUIn27BK6M9qYrbAVLuSpebGhgaWBcxNHFyMEhIWAi8eGyehcjJ4eQwApG iQNTrbsYuYDsPiaJ6V9nM0M4vUwSuyf+YwSpAmnY828HVGI5o8Sxsy/Y4Kpuf+1jhJh1mlFi /U9JiMR5RolJC96zgCR4BQwlFl/8wA5iCwskSUyc/ZANxGYDik/dNBusWURAUuJa82lGkPtY BFQkth3JAglzChhJbLy0lRniCg2JDTePMUGMFJQ4OfMJ2HhmAXmJ5q0QZ0sIPGaT2Nm2Fups F4lPu/5CNQtLvDq+hR3ClpH4v3M+E0RDO6PEmkmv2SGcHkaJTUfvQHVbS/Tdvgh2EbOApsT6 XfoQYUeJ5b/OMEMCkk/ixltBiCP4JCZtmw4V5pXoaBOCqFaT2NG0lREiLCPxdI3CBEalWUg+ mIXkg1kIqxYwMq9iFE8tLc5NTy02ykst1ytOzC0uzUvXS87P3cQITAKn/x3/soNx15+kQ4wC HIxKPLwKVm9jhVgTy4orcw8xSnAwK4nwLpn4KlaINyWxsiq1KD++qDQntfgQozQHi5I4r/Gi l7FCAumJJanZqakFqUUwWSYOTqkGxm3HfL6qfl7WfO/uBtfC9L+zqm4ENqS8vG91SnPXw9ZI b9X3X5eWzfz2afOsOZun33uasISJn1N+3XcpO9+MNt9jO2ftCxATDrq2oFdGhXnrzFNVgd9W 8TvPebB8yuFm+Y3P/bZMaA+pWb/5XdD+3XX8+ewHcu0uTXn569/ybzYmHzkKJY/yTs9SYinO SDTUYi4qTgQALnrA/P4CAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgkeLIzCtJLcpLzFFi42I5/e/4XV0f5XexBpdXy1kcbH7I5MDoserg B6YAxig9m6L80pJUhYz84hJbpWhDCyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9 jPamK2wFS7kqXmxoYGlgXMTRxcjJISFgIrHn3w5mEFtIYCmjxKsLORBxGYlPVz6yQ9jCEn+u dbF1MXIB1XQzSSya18cM4ZxmlFjRuYIVovs8o8TtfmcQm1fAUGLxxQ9g3cICSRITZz9kA7HZ gOJTN81mBLFFBCQlrjWfBrI5OFgEVCS2HckCCXMKGElsvLQVav5BJontH1YzgSSYBTQlWrf/ hrpIQ2LDzWNMELsEJU7OfMICUSMv0bx1NvMERqFZSFpmISmbhaRsASPzKkaR1NLi3PTcYkO9 4sTc4tK8dL3k/NxNjMDQ33bs5+YdjJc2Bh9iFOBgVOLhrbB5GyvEmlhWXJl7iFGCg1lJhHfJ xFexQrwpiZVVqUX58UWlOanFhxhNgR6ayCwlmpwPjMu8knhDU0NzC0tDc2NzYzMLJXHeDoGD MUIC6YklqdmpqQWpRTB9TBycUg2MVn8uNGmIJJcxLbZSOKj2Iqhxt2bGaa6IV68mhfTfjmG2 mZv5R6Th2CtZGddZtltOzRcuVIkTvylY9/fJ20UKfGeiExfcyWYxNKpUXhx477Sbsdva3Mvd eefnLt+jnXPFZ02w3ELb+sKIdjsD0cDWgk2b7etYz5enWW07uCD8y2vPeeqpsQJKLMUZiYZa zEXFiQDU5GDOkwIAAA== X-CMS-MailID: 20191209103452eucas1p2df10ad1da2978dcc54caf83d13e0c8ad X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20191209093017epcas1p2480d5b0b15d019330b8aa52f2bb5098a X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20191209093017epcas1p2480d5b0b15d019330b8aa52f2bb5098a References: <000201d5ae2e$caa27230$5fe75690$@3spocketnet.com.tw> <58e0a555-b3dc-4229-9d7d-371e96b915cb@www.fastmail.com> <1575886903.4486.4.camel@samsung.com> On Mon, 2019-12-09 at 10:21 +0000, Peter Stephenson wrote: > +    for (ccount = 0, psrc = s, pdst = lpre; > +  ccount < lpl; > +  ++ccount, ++psrc, ++pdst) > +    { > + if (*psrc == Dash) > +     *pdst = '-'; > + else > +     *pdst = *psrc; > +    } This is a bit better thought through --- check if globbing is actually in use and also beware of metafied characters. pws diff --git a/Src/Zle/compctl.c b/Src/Zle/compctl.c index f242e1b28..1dcec387d 100644 --- a/Src/Zle/compctl.c +++ b/Src/Zle/compctl.c @@ -3178,7 +3178,27 @@ makecomplistflags(Compctl cc, char *s, int incmd, int compadd)      /* Compute line prefix/suffix. */      lpl = offs;      lpre = zhalloc(lpl + 1); -    memcpy(lpre, s, lpl); +    if (comppatmatch) +    { + int ccount; + char *psrc, *pdst; + for (ccount = 0, psrc = s, pdst = lpre; +      ccount < lpl; +      ++ccount, ++psrc, ++pdst) + { +     if (*psrc == Meta) +     { + ccount++; + *pdst++ = *psrc++; + *pdst = *psrc; +     } else if (*psrc == Dash) + *pdst = '-'; +     else + *pdst = *psrc; + } +    } +    else + memcpy(lpre, s, lpl);      lpre[lpl] = '\0';      qlpre = quotename(lpre);      lsuf = dupstring(s + offs);