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 86537d6d for ; Thu, 12 Dec 2019 10:38:56 +0000 (UTC) Received: (qmail 26001 invoked by alias); 12 Dec 2019 10:38: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: 45009 Received: (qmail 17338 invoked by uid 1010); 12 Dec 2019 10:38:51 -0000 X-Qmail-Scanner-Diagnostics: from kahlil.inlv.org 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(37.59.109.123):SA:0(-1.9/5.0):. Processed in 1.75122 secs); 12 Dec 2019 10:38:51 -0000 X-Envelope-From: martijn@inlv.org X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at inlv.org does not designate permitted sender hosts) To: Zsh hackers list From: Martijn Dekker Subject: [PATCH] POSIX_CD: disable stack entries Message-ID: <66aa7d70-03bb-3519-38e8-1ccb00c3f04f@inlv.org> Date: Thu, 12 Dec 2019 11:38:10 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------B0A65B22140410CF58878EA7" Content-Language: en-GB --------------B0A65B22140410CF58878EA7 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Recognising directory stack entries for the 'cd' builtin is not compatible with POSIX, because cd'ing into directories with names like +123 or -4567 no longer works without prefixing './', even after '--'. In POSIX, only the '-' operand has such a special meaning. The attached patch disables directory stack entries for 'cd' if POSIX_CD is active. This patch also changes the behaviour of the 'chdir' equivalent. For POSIX compliance, only 'cd' needs to be changed, as POSIX has no 'chdir'. I could change the patch to only change 'cd', but it would involve slightly more code, and would make 'cd' and 'chdir' no longer exactly equivalent. If this is preferred, please let me know. Thanks, - M. -- modernish -- harness the shell https://github.com/modernish/modernish --------------B0A65B22140410CF58878EA7 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="POSIX_CD.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="POSIX_CD.patch" ZGlmZiAtLWdpdCBhL0RvYy9ac2gvYnVpbHRpbnMueW8gYi9Eb2MvWnNoL2J1aWx0aW5zLnlv CmluZGV4IDE1ZDNlMGNmNC4uNDE1YmNlNjEzIDEwMDY0NAotLS0gYS9Eb2MvWnNoL2J1aWx0 aW5zLnlvCisrKyBiL0RvYy9ac2gvYnVpbHRpbnMueW8KQEAgLTI5MCw2ICsyOTAsOCBAQCBv ZiB0aGUgbGlzdCBzaG93biBieSB0aGUgdHQoZGlycykgY29tbWFuZCwgc3RhcnRpbmcgd2l0 aCB6ZXJvLgogQW4gYXJndW1lbnQgb2YgdGhlIGZvcm0gYHR0KC0pdmFyKG4pJyBjb3VudHMg ZnJvbSB0aGUgcmlnaHQuCiBJZiB0aGUgdHQoUFVTSERfTUlOVVMpIG9wdGlvbiBpcyBzZXQs IHRoZSBtZWFuaW5ncyBvZiBgdHQoUExVUygpKScKIGFuZCBgdHQoLSknIGluIHRoaXMgY29u dGV4dCBhcmUgc3dhcHBlZC4KK0lmIHRoZSB0dChQT1NJWF9DRCkgb3B0aW9uIGlzIHNldCwg dGhpcyBmb3JtIG9mIHR0KGNkKSBpcyBub3QgcmVjb2duaXNlZAorYW5kIHdpbGwgYmUgaW50 ZXJwcmV0ZWQgYXMgdGhlIGZpcnN0IGZvcm0uCiAKIElmIHRoZSB0dCgtcSkgKHF1aWV0KSBv cHRpb24gaXMgc3BlY2lmaWVkLCB0aGUgaG9vayBmdW5jdGlvbiB0dChjaHB3ZCkKIGFuZCB0 aGUgZnVuY3Rpb25zIGluIHRoZSBhcnJheSB0dChjaHB3ZF9mdW5jdGlvbnMpIGFyZSBub3Qg Y2FsbGVkLgpkaWZmIC0tZ2l0IGEvRG9jL1pzaC9vcHRpb25zLnlvIGIvRG9jL1pzaC9vcHRp b25zLnlvCmluZGV4IDkwM2MzMTEzNC4uODhiYjY0M2QxIDEwMDY0NAotLS0gYS9Eb2MvWnNo L29wdGlvbnMueW8KKysrIGIvRG9jL1pzaC9vcHRpb25zLnlvCkBAIC0xNDgsNyArMTQ4LDgg QEAgaWZ6bWFuKHptYW5yZWYoenNoYnVpbHRpbnMpKVwKIGlmbnptYW4obm9kZXJlZihTaGVs bCBCdWlsdGluIENvbW1hbmRzKSkuCiBJZiB0aGUgb3B0aW9uIGlzIHNldCwgdGhlIHNoZWxs IGRvZXMgbm90IHRlc3QgZm9yIGRpcmVjdG9yaWVzIGJlbmVhdGgKIHRoZSBsb2NhbCBkaXJl Y3RvcnkgKGB0dCguKScpIHVudGlsIGFmdGVyIGFsbCBkaXJlY3RvcmllcyBpbiB0dChjZHBh dGgpCi1oYXZlIGJlZW4gdGVzdGVkLgoraGF2ZSBiZWVuIHRlc3RlZCwgYW5kIHRoZSB0dChj ZCkgYW5kIHR0KGNoZGlyKSBjb21tYW5kcyBkbyBub3QgcmVjb2duaXNlCithcmd1bWVudHMg b2YgdGhlIGZvcm0gYHt0dChQTFVTKCkpfHR0KC0pfXZhcihuKScgYXMgZGlyZWN0b3J5IHN0 YWNrIGVudHJpZXMuCiAKIEFsc28sIGlmIHRoZSBvcHRpb24gaXMgc2V0LCB0aGUgY29uZGl0 aW9ucyB1bmRlciB3aGljaCB0aGUgc2hlbGwKIHByaW50cyB0aGUgbmV3IGRpcmVjdG9yeSBh ZnRlciBjaGFuZ2luZyB0byBpdCBhcmUgbW9kaWZpZWQuICBJdCBpcwpkaWZmIC0tZ2l0IGEv U3JjL2J1aWx0aW4uYyBiL1NyYy9idWlsdGluLmMKaW5kZXggYmQ3NzM2ZDJjLi43YmY0Mjgx ZGEgMTAwNjQ0Ci0tLSBhL1NyYy9idWlsdGluLmMKKysrIGIvU3JjL2J1aWx0aW4uYwpAQCAt OTEyLDcgKzkxMiw3IEBAIGNkX2dldF9kZXN0KGNoYXIgKm5hbSwgY2hhciAqKmFyZ3YsIGlu dCBoYXJkLCBpbnQgZnVuYykKIAljaGFyICplbmQ7CiAKIAlkb3ByaW50ZGlyKys7Ci0JaWYg KGFyZ3ZbMF1bMV0gJiYgKGFyZ3ZbMF1bMF0gPT0gJysnIHx8IGFyZ3ZbMF1bMF0gPT0gJy0n KQorCWlmICghaXNzZXQoUE9TSVhDRCkgJiYgYXJndlswXVsxXSAmJiAoYXJndlswXVswXSA9 PSAnKycgfHwgYXJndlswXVswXSA9PSAnLScpCiAJICAgICYmIHN0cnNwbihhcmd2WzBdKzEs ICIwMTIzNDU2Nzg5IikgPT0gc3RybGVuKGFyZ3ZbMF0rMSkpIHsKIAkgICAgZGQgPSB6c3Ry dG9sKGFyZ3ZbMF0gKyAxLCAmZW5kLCAxMCk7CiAJICAgIGlmICgqZW5kID09ICdcMCcpIHsK --------------B0A65B22140410CF58878EA7--