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.1 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,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 c39cf10b for ; Mon, 18 Nov 2019 09:48:01 +0000 (UTC) Received: (qmail 27165 invoked by alias); 18 Nov 2019 09:47:50 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: List-Unsubscribe: X-Seq: 24445 Received: (qmail 19232 invoked by uid 1010); 18 Nov 2019 09:47:50 -0000 X-Qmail-Scanner-Diagnostics: from mailout1.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.102.0/25635. spamassassin: 3.4.2. Clear:RC:0(210.118.77.11):SA:0(-7.0/5.0):. Processed in 3.029228 secs); 18 Nov 2019 09:47:50 -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.11 as permitted sender) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20191118094711euoutp01376107675582d450e9e89ebda36879d9~YOLegMefj2176121761euoutp01J DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1574070431; bh=JrhBAo8V2JQiD00L55XUNSScqMMtZ1rBiBsUxO3xShs=; h=Subject:From:To:Date:In-Reply-To:References:From; b=T3oLsXBokMfkfqC8lMBDMW8AXMaoQRsFVsHhJaBIeSrqSoNE+NK9W9dq/whuWYR39 YJC4COZlg/Zj2IXpzUrZMPCX1rK3cxNa3sgM+qcxS/O6QVCqFQUMkkoDeYOC6LUhSn dZs/upmiwY/ICvdtAnh6gbX8EG/757gRprLsxbNA= X-AuditID: cbfec7f2-569ff70000001175-89-5dd2689e19b5 Message-ID: <1574070429.4551.2.camel@samsung.com> Subject: Re: P modify in history event From: Peter Stephenson To: Date: Mon, 18 Nov 2019 09:47:09 +0000 In-Reply-To: X-Mailer: Evolution 3.18.5.2-0ubuntu3.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRmVeSWpSXmKPExsWy7djP87rzMi7FGhx4Z2ax4+RKRgdGj1UH PzAFMEZx2aSk5mSWpRbp2yVwZfQ2LWUr+M9R8bltIVsD4zz2LkZODgkBE4nfP86ydTFycQgJ rGCU2PnrDpTTwyRxp2E1G0iVkEA3k8SumZkwHb9uvocqWs4o8frwMma4om9H/CHsM4wS6+ZJ QhRdYJT4t/U9WBGvgKHEz45TjCC2sICaxNx1XSwgNhtQfOqm2WBxEQFxiWczv4HFWQRUJbY9 mg8W5xRwkXg0+wMrxBUaEhtuHmOCmCkocXLmE7B6ZgF5ieats5lBFksI3GeT6Hv4B6rBReL+ i9UsELawxKvjW6ABICPxf+d8JoiGdkaJNZNes0M4PYwSm47eYYSospbou30RyOYAWqEpsX6X PkTYUeLG2p1gYQkBPokbbwUhjuCTmLRtOjNEmFeio00IolpNYkfTVqhqGYmnaxQmMCrNQvLB LCQfzEJYtYCReRWjeGppcW56arFhXmq5XnFibnFpXrpecn7uJkZgIjj97/inHYxfLyUdYhTg YFTi4X1QfjFWiDWxrLgy9xCjBAezkgiv36MLsUK8KYmVValF+fFFpTmpxYcYpTlYlMR5qxke RAsJpCeWpGanphakFsFkmTg4pRoYZ15hn1xz+0+o3jyBx9GWTxUsxYRm7F7Ot8W2fPqb6iLV t9oZS5x2dT3ceqTj0XFRcQfzzKlX7z048Pnr4U7dzY2Vy6NdT97/1Je/v1KkKF/j9Zdftz8W bzKseXfysH3/F8WID88s7Ddapao+04tgK6ni/Zp791rdHZ/99yVvzr56J6dqjlrjAiWW4oxE Qy3mouJEABLgCIMAAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpikeLIzCtJLcpLzFFi42I5/e/4Pd15GZdiDWZuVLHYcXIlowOjx6qD H5gCGKP0bIryS0tSFTLyi0tslaINLYz0DC0t9IxMLPUMjc1jrYxMlfTtbFJSczLLUov07RL0 MnqblrIV/Oeo+Ny2kK2BcR57FyMnh4SAicSvm+/Zuhi5OIQEljJK3Ot4ywaRkJH4dOUjVJGw xJ9rXVBFnUwS1z5OZQJJCAmcYZQ4e5UTInGBUeLDu8tgHbwChhI/O04xgtjCAmoSc9d1sYDY bEDxqZtmg8VFBMQlns38BhZnEVCV2PZoPlicU8BF4tHsD6wQQ2cwSrS/vg52ErOApkTr9t9Q J2lIbLh5jAlimaDEyZlPWCBq5CWat85mnsAoNAtJyywkZbOQlC1gZF7FKJJaWpybnltspFec mFtcmpeul5yfu4kRGP7bjv3csoOx613wIUYBDkYlHl6LqouxQqyJZcWVuYcYJTiYlUR4/R5d iBXiTUmsrEotyo8vKs1JLT7EaAr00URmKdHkfGBs5pXEG5oamltYGpobmxubWSiJ83YIHIwR EkhPLEnNTk0tSC2C6WPi4JRqYAzpe2/peMXL1lH6+vyJiUwWBzd6lWnzdLNP3Kcx/T6LV/6P dROrt6ZHxfL6axanKavwF+ndcXN9V9f8zevsvQQmtSNrji6/MUs6VXLb7Wez717c5XH7yQEh 1jS1WR8Dp4eyFYlMe9jufFZ//Z3+FNtp+afVd5Swxh6bEtigYWS+2C6f/dTEl0osxRmJhlrM RcWJACa6oXWVAgAA X-CMS-MailID: 20191118094710eucas1p190c10b530bcbf274be1a1ffce5ba0264 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20191117184333epcas5p15bc1aa7b0f78182c3d1acc703f55d445 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20191117184333epcas5p15bc1aa7b0f78182c3d1acc703f55d445 References: On Sun, 2019-11-17 at 12:42 -0600, Perry Smith wrote: > I’m (slowly) reading through zshexpn and playing with things to > learn.  This does not work: >  > >  > > pedz@MysticSlate my-play-dir % echo /this/is/a/../../path > > /this/is/a/../../path > > pedz@MysticSlate my-play-dir % echo !$:P > > zsh: illegal modifier: P > even if the file specified exists I think it just got missed out of the history modifiers, which are handled in a different place from the modifiers in the case of glob qualifiers and vaariables. pws diff --git a/Src/hist.c b/Src/hist.c index fd5606dc3..e47be8e15 100644 --- a/Src/hist.c +++ b/Src/hist.c @@ -920,6 +920,16 @@ histsubchar(int c)       case 'u':   sline = casemodify(sline, CASMOD_UPPER);   break; +     case 'P': + if (*sline != '/') { +     char *here = zgetcwd(); +     if (here[strlen(here)-1] != '/') + sline = zhtricat(metafy(here, -1, META_HEAPDUP), "/", sline); +     else + sline = dyncat(here, sline); + } + sline = xsymlink(sline, 1); + break;       default:   herrflush();   zerr("illegal modifier: %c", c);