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 b556370f for ; Tue, 28 Jan 2020 15:20:34 +0000 (UTC) Received: (qmail 22993 invoked by alias); 28 Jan 2020 15:20:24 -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: 45350 Received: (qmail 28182 invoked by uid 1010); 28 Jan 2020 15:20:24 -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/25703. spamassassin: 3.4.2. Clear:RC:0(37.59.109.123):SA:0(-1.9/5.0):. Processed in 1.797604 secs); 28 Jan 2020 15:20:24 -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] sh/ksh init: don't initialise lowercase parameters Message-ID: Date: Tue, 28 Jan 2020 16:19:41 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------84D320DCFD7D79544EC1EC24" Content-Language: en-GB --------------84D320DCFD7D79544EC1EC24 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit In POSIX sh and in ksh, it's the convention that lowercase variable names are reserved for scripts, and uppercase names may be used by the shell or system. So most lowercase zsh parameters are not initialised when zsh is invoked as sh or ksh (through a symlink or the --emulate option). However, there are two left that are initialised in sh/ksh mode: 'histchars' and 'signals'. So this can conflict with POSIX scripts. Also, if zsh is invoked as sh or ksh, 'histchars' is available whereas the 'HISTCHARS' equivalent is not. It seems quite obvious that this should be the other way around. The attached patch makes zsh, when invoked as sh or ksh, not initialise 'signals', and initialise 'HISTCHARS' instead of 'histchars'. It also updates the documentation. -- modernish -- harness the shell https://github.com/modernish/modernish --------------84D320DCFD7D79544EC1EC24 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="posixnames.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="posixnames.patch" ZGlmZiAtLWdpdCBhL0RvYy9ac2gvY29tcGF0LnlvIGIvRG9jL1pzaC9jb21wYXQueW8KaW5k ZXggZjFiZTE1ZmVlLi5kMDg1ZGZhYTcgMTAwNjQ0Ci0tLSBhL0RvYy9ac2gvY29tcGF0Lnlv CisrKyBiL0RvYy9ac2gvY29tcGF0LnlvCkBAIC0xOSw3ICsxOSw3IEBAIHR0KGFyZ3YpLAog dHQoY2RwYXRoKSwKIHR0KGZpZ25vcmUpLAogdHQoZnBhdGgpLAotdHQoSElTVENIQVJTKSwK K3R0KGhpc3RjaGFycyksCiB0dChtYWlscGF0aCksCiB0dChNQU5QQVRIKSwKIHR0KG1hbnBh dGgpLApAQCAtMzAsNiArMzAsNyBAQCB0dChQUk9NUFQyKSwKIHR0KFBST01QVDMpLAogdHQo UFJPTVBUNCksCiB0dChwc3ZhciksCit0dChzaWduYWxzKSwKIHR0KHN0YXR1cyksCiB0dCh3 YXRjaCkuCiAKZGlmZiAtLWdpdCBhL0RvYy9ac2gvcGFyYW1zLnlvIGIvRG9jL1pzaC9wYXJh bXMueW8KaW5kZXggOGRhZjMzZDVlLi41Zjc3MmJiNTAgMTAwNjQ0Ci0tLSBhL0RvYy9ac2gv cGFyYW1zLnlvCisrKyBiL0RvYy9ac2gvcGFyYW1zLnlvCkBAIC04NTAsNyArODUwLDcgQEAg aXRlbSh0dChTSExWTCkgPFM+KSgKIEluY3JlbWVudGVkIGJ5IG9uZSBlYWNoIHRpbWUgYSBu ZXcgc2hlbGwgaXMgc3RhcnRlZC4KICkKIHZpbmRleChzaWduYWxzKQotaXRlbSh0dChzaWdu YWxzKSkoCitpdGVtKHR0KHNpZ25hbHMpIDxaPikoCiBBbiBhcnJheSBjb250YWluaW5nIHRo ZSBuYW1lcyBvZiB0aGUgc2lnbmFscy4gIE5vdGUgdGhhdCB3aXRoCiB0aGUgc3RhbmRhcmQg enNoIG51bWJlcmluZyBvZiBhcnJheSBpbmRpY2VzLCB3aGVyZSB0aGUgZmlyc3QgZWxlbWVu dAogaGFzIGluZGV4IDEsIHRoZSBzaWduYWxzIGFyZSBvZmZzZXQgYnkgMSBmcm9tIHRoZSBz aWduYWwgbnVtYmVyCkBAIC0xMTYxLDcgKzExNjEsNyBAQCB3aXRoIHRoZSB0dCgtdSkgYXR0 cmlidXRlIGlzIHJlZmVyZW5jZWQuICBJZiBhbiBleGVjdXRhYmxlCiBmaWxlIGlzIGZvdW5k LCB0aGVuIGl0IGlzIHJlYWQgYW5kIGV4ZWN1dGVkIGluIHRoZSBjdXJyZW50IGVudmlyb25t ZW50LgogKQogdmluZGV4KGhpc3RjaGFycykKLWl0ZW0odHQoaGlzdGNoYXJzKSA8Uz4pKAor aXRlbSh0dChoaXN0Y2hhcnMpIDxTPiA8Wj4pKAogVGhyZWUgY2hhcmFjdGVycyB1c2VkIGJ5 IHRoZSBzaGVsbCdzIGhpc3RvcnkgYW5kIGxleGljYWwgYW5hbHlzaXMKIG1lY2hhbmlzbS4g IFRoZSBmaXJzdCBjaGFyYWN0ZXIgc2lnbmFscyB0aGUgc3RhcnQgb2YgYSBoaXN0b3J5CiBl eHBhbnNpb24gKGRlZmF1bHQgYHR0KCEpJykuICBUaGUgc2Vjb25kIGNoYXJhY3RlciBzaWdu YWxzIHRoZQpAQCAtMTE3Myw4ICsxMTczLDggQEAgdHQoaGlzdGNoYXJzKSB0byBjaGFyYWN0 ZXJzIHdpdGggYSBsb2NhbGUtZGVwZW5kZW50IG1lYW5pbmcgd2lsbCBiZQogcmVqZWN0ZWQg d2l0aCBhbiBlcnJvciBtZXNzYWdlLgogKQogdmluZGV4KEhJU1RDSEFSUykKLWl0ZW0odHQo SElTVENIQVJTKSA8Uz4gPFo+KSgKLVNhbWUgYXMgdHQoaGlzdGNoYXJzKS4gIChEZXByZWNh dGVkLikKK2l0ZW0odHQoSElTVENIQVJTKSA8Uz4pKAorU2FtZSBhcyB0dChoaXN0Y2hhcnMp LgogKQogdmluZGV4KEhJU1RGSUxFKQogaXRlbSh0dChISVNURklMRSkpKApkaWZmIC0tZ2l0 IGEvTkVXUyBiL05FV1MKaW5kZXggYWY1OWNiNGU2Li45ZDk2ZWYwZDEgMTAwNjQ0Ci0tLSBh L05FV1MKKysrIGIvTkVXUwpAQCAtNDQsNiArNDQsMTAgQEAgaGFzIG5vdCBjaGFuZ2VkLCBi dXQgY29kZSBzdWNoIGFzIHRoZSBmb2xsb3dpbmc6CiBzaG91bGQgYmUgY2hhbmdlZCBlaXRo ZXIgdG8gdXNlICdyZXR1cm4nIGluc3RlYWQgb2YgJ2V4aXQnLCBvciB0byBoYXZlCiB0aGUg dHJ5L2Fsd2F5cyBibG9jayBvdXRzaWRlIG9mIGFueSBmdW5jdGlvbi4KIAorSWYgdGhlIHNo ZWxsIGlzIGludm9rZWQgYXMgc2ggb3Iga3NoICh0aHJvdWdoIGEgc3ltbGluayBvciB3aXRo IHRoZQorJy0tZW11bGF0ZScgb3B0aW9uKSwgdGhlICdISVNUQ0hBUlMnIHBhcmFtZXRlciBp cyBub3cgYXZhaWxhYmxlIGluc3RlYWQKK29mICdoaXN0Y2hhcnMnLCBhbmQgdGhlICdzaWdu YWxzJyBwYXJhbWV0ZXIgaXMgbm90IGluaXRpYWxpc2VkLgorCiBDaGFuZ2VzIGZyb20gNS42 LjIgdG8gNS43LjEKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQg YS9TcmMvcGFyYW1zLmMgYi9TcmMvcGFyYW1zLmMKaW5kZXggODYzYjMyNjAwLi42OTlkYzdj Y2QgMTAwNjQ0Ci0tLSBhL1NyYy9wYXJhbXMuYworKysgYi9TcmMvcGFyYW1zLmMKQEAgLTMw OSw3ICszMDksNyBAQCBJUERFRjEoIlRUWUlETEUiLCB0dHlpZGxlX2dzdSwgUE1fUkVBRE9O TFlfU1BFQ0lBTCksCiAjZGVmaW5lIElQREVGMihBLEIsQykge3tOVUxMLEEsUE1fU0NBTEFS fFBNX1NQRUNJQUx8Q30sQlIoTlVMTCksR1NVKEIpLDAsMCxOVUxMLE5VTEwsTlVMTCwwfQog SVBERUYyKCJVU0VSTkFNRSIsIHVzZXJuYW1lX2dzdSwgUE1fRE9OVElNUE9SVHxQTV9SRVNU UklDVEVEKSwKIElQREVGMigiLSIsIGRhc2hfZ3N1LCBQTV9SRUFET05MWV9TUEVDSUFMKSwK LUlQREVGMigiaGlzdGNoYXJzIiwgaGlzdGNoYXJzX2dzdSwgUE1fRE9OVElNUE9SVCksCitJ UERFRjIoIkhJU1RDSEFSUyIsIGhpc3RjaGFyc19nc3UsIFBNX0RPTlRJTVBPUlQpLAogSVBE RUYyKCJIT01FIiwgaG9tZV9nc3UsIFBNX1VOU0VUKSwKIElQREVGMigiVEVSTSIsIHRlcm1f Z3N1LCBQTV9VTlNFVCksCiBJUERFRjIoIlRFUk1JTkZPIiwgdGVybWluZm9fZ3N1LCBQTV9V TlNFVCksCkBAIC00MTMsNyArNDEzLDcgQEAgSVBERUY4KCJNT0RVTEVfUEFUSCIsICZtb2R1 bGVfcGF0aCwgIm1vZHVsZV9wYXRoIiwgUE1fRE9OVElNUE9SVHxQTV9SRVNUUklDVEVEfFAK IAogLyogQWxsIG9mIHRoZXNlIGhhdmUgc2ggY29tcGF0aWJsZSBlcXVpdmFsZW50cy4gICAg ICAgICAgICAgICAgKi8KIElQREVGMSgiQVJHQyIsIGFyZ2NfZ3N1LCBQTV9SRUFET05MWV9T UEVDSUFMKSwKLUlQREVGMigiSElTVENIQVJTIiwgaGlzdGNoYXJzX2dzdSwgUE1fRE9OVElN UE9SVCksCitJUERFRjIoImhpc3RjaGFycyIsIGhpc3RjaGFyc19nc3UsIFBNX0RPTlRJTVBP UlQpLAogSVBERUY0KCJzdGF0dXMiLCAmbGFzdHZhbCksCiBJUERFRjcoInByb21wdCIsICZw cm9tcHQpLAogSVBERUY3KCJQUk9NUFQiLCAmcHJvbXB0KSwKQEAgLTkzNSw4ICs5MzUsMTAg QEAgY3JlYXRlcGFyYW10YWJsZSh2b2lkKQogICAgIHNldHNwYXJhbSgiWlNIX0FSR1pFUk8i LCB6dHJkdXAocG9zaXh6ZXJvKSk7CiAgICAgc2V0c3BhcmFtKCJaU0hfVkVSU0lPTiIsIHp0 cmR1cF9tZXRhZnkoWlNIX1ZFUlNJT04pKTsKICAgICBzZXRzcGFyYW0oIlpTSF9QQVRDSExF VkVMIiwgenRyZHVwX21ldGFmeShaU0hfUEFUQ0hMRVZFTCkpOwotICAgIHNldGFwYXJhbSgi c2lnbmFscyIsIHNpZ3B0ciA9IHphbGxvYygoU0lHQ09VTlQrNCkgKiBzaXplb2YoY2hhciAq KSkpOwotICAgIGZvciAodCA9IHNpZ3M7ICgqc2lncHRyKysgPSB6dHJkdXBfbWV0YWZ5KCp0 KyspKTsgKTsKKyAgICBpZiAoIUVNVUxBVElPTihFTVVMQVRFX1NIfEVNVUxBVEVfS1NIKSkg eworCXNldGFwYXJhbSgic2lnbmFscyIsIHNpZ3B0ciA9IHphbGxvYygoU0lHQ09VTlQrNCkg KiBzaXplb2YoY2hhciAqKSkpOworCWZvciAodCA9IHNpZ3M7ICgqc2lncHRyKysgPSB6dHJk dXBfbWV0YWZ5KCp0KyspKTsgKTsKKyAgICB9CiAKICAgICBub2VycnMgPSAwOwogfQo= --------------84D320DCFD7D79544EC1EC24--