看板 DFBSD_bugs 關於我們 聯絡資訊
--===============1439044832== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable New submission from Stathis Kamperis <ekamperi@gmail.com>: Salute. Regarding sh(1): LINENO Set by the shell to a decimal number representing the current sequentia= l line number (numbered starting with 1) within a script or function before i= t executes each command. If the user unsets or resets LINENO , the variable m= ay lose its special meaning for the life of the shell. I attach a patch, obtained from FreeBSD, that implements $LINENO. I'm running a system with the patch applied, but I need to test it more. Unless no one objects, I'll push it in 161 hours and 48 minutes. Cheers, Stathis PS. I'll also obtain the "Fix checking if a variable name is LINENO." patch= as well (SVN Revision 179387). But first thing first. ---------- assignedto: Beket files: 0001-sh-1-Expand-LINENO-to-the-current-line-number.patch messages: 6907 nosy: Beket priority: feature status: unread title: [PATCH] sh(1): Implement $LINENO built-in variable _____________________________________________________ DragonFly issue tracker <bugs@lists.dragonflybsd.org> <http://bugs.dragonflybsd.org/issue1434> _____________________________________________________ --===============1439044832== Content-Type: application/octet-stream MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-sh-1-Expand-LINENO-to-the-current-line-number.patch" RnJvbSA3NDk4YWRlM2I2ZjcxOThjMmYzY2ZlNmU5NTIyYTViMTQ1MTBhMDdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGF0aGlzIEthbXBlcmlzIDxiZWtldEBkcmFnb25mbHlic2Qu b3JnPgpEYXRlOiBUdWUsIDIxIEp1bCAyMDA5IDE0OjAwOjU2ICswMzAwClN1YmplY3Q6IFtQQVRD SF0gc2goMSk6IEV4cGFuZCAkTElORU5PIHRvIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyLgoKVGhp cyBpcyByZXF1aXJlZCBieSBTVVN2MydzICJVc2VyIFBvcnRhYmlsaXR5IFV0aWxpdGllcyIgb3B0 aW9uLgoKT2J0YWluZWQtZnJvbTogRnJlZUJTRCAoU1ZOIFJldmlzaW9uIDE3OTAyMiBieSBzdGVm YW5mQCkKLS0tCiBiaW4vc2gvZXhwYW5kLmMgfCAgICA5ICsrKysrKysrLQogYmluL3NoL3BhcnNl ci5jIHwgICAyNSArKysrKysrKysrKysrKysrKysrKysrLS0tCiBiaW4vc2gvcGFyc2VyLmggfCAg ICA4ICsrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDcgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvYmluL3NoL2V4cGFuZC5jIGIvYmluL3NoL2V4cGFuZC5jCmlu ZGV4IGEzOTc1MjguLjExNjMzMTQgMTAwNjQ0Ci0tLSBhL2Jpbi9zaC9leHBhbmQuYworKysgYi9i aW4vc2gvZXhwYW5kLmMKQEAgLTYzNiw3ICs2MzYsMTMgQEAgZXZhbHZhcihjaGFyICpwLCBpbnQg ZmxhZykKIAkJc3BlY2lhbCA9IDE7CiAJcCA9IHN0cmNocihwLCAnPScpICsgMTsKIGFnYWluOiAv KiBqdW1wIGhlcmUgYWZ0ZXIgc2V0dGluZyBhIHZhcmlhYmxlIHdpdGggJHt2YXI9dGV4dH0gKi8K LQlpZiAoc3BlY2lhbCkgeworCWlmICh2YXJmbGFncyAmIFZTTElORU5PKSB7CisJCXNldCA9IDE7 CisJCXNwZWNpYWwgPSAwOworCQl2YWwgPSB2YXI7CisJCXBbLTFdID0gJ1wwJzsJLyogdGVtcG9y YXJpbHkgb3ZlcndyaXRlICc9JyB0byBoYXZlIFwwCisJCQkJICAgdGVybWluYXRlZCBzdHJpbmcg Ki8KKwl9IGVsc2UgaWYgKHNwZWNpYWwpIHsKIAkJc2V0ID0gdmFyaXNzZXQodmFyLCB2YXJmbGFn cyAmIFZTTlVMKTsKIAkJdmFsID0gTlVMTDsKIAl9IGVsc2UgewpAQCAtNzY2LDYgKzc3Miw3IEBA IHJlY29yZDoKIAlkZWZhdWx0OgogCQlhYm9ydCgpOwogCX0KKwlwWy0xXSA9ICc9JzsJLyogcmVj b3ZlciBvdmVyd3JpdHRlbiAnPScgKi8KIAogCWlmIChzdWJ0eXBlICE9IFZTTk9STUFMKSB7CS8q IHNraXAgdG8gZW5kIG9mIGFsdGVybmF0aXZlICovCiAJCWludCBuZXN0aW5nID0gMTsKZGlmZiAt LWdpdCBhL2Jpbi9zaC9wYXJzZXIuYyBiL2Jpbi9zaC9wYXJzZXIuYwppbmRleCA2NjQ4YmYyLi5i YmUxOGNlIDEwMDY0NAotLS0gYS9iaW4vc2gvcGFyc2VyLmMKKysrIGIvYmluL3NoL3BhcnNlci5j CkBAIC05OSw2ICs5OSw3IEBAIFNUQVRJQyB1bmlvbiBub2RlICpyZWRpcm5vZGU7CiBTVEFUSUMg c3RydWN0IGhlcmVkb2MgKmhlcmVkb2M7CiBTVEFUSUMgaW50IHF1b3RlZmxhZzsJCS8qIHNldCBp ZiAocGFydCBvZikgbGFzdCB0b2tlbiB3YXMgcXVvdGVkICovCiBTVEFUSUMgaW50IHN0YXJ0bGlu bm87CQkvKiBsaW5lICMgd2hlcmUgbGFzdCB0b2tlbiBzdGFydGVkICovCitTVEFUSUMgaW50IGZ1 bmNsaW5ubzsJCS8qIGxpbmUgIyB3aGVyZSB0aGUgY3VycmVudCBmdW5jdGlvbiBzdGFydGVkICov CiAKIC8qIFhYWCBXaGVuICdub2FsaWFzZXMnIGlzIHNldCB0byBvbmUsIG5vIGFsaWFzIGV4cGFu c2lvbiB0YWtlcyBwbGFjZS4gKi8KIHN0YXRpYyBpbnQgbm9hbGlhc2VzID0gMDsKQEAgLTU2Niwx MiArNTY3LDE0IEBAIHNpbXBsZWNtZCh1bmlvbiBub2RlICoqcnBwLCB1bmlvbiBub2RlICpyZWRp cikKIAkJCS8qIFdlIGhhdmUgYSBmdW5jdGlvbiAqLwogCQkJaWYgKHJlYWR0b2tlbigpICE9IFRS UCkKIAkJCQlzeW5leHBlY3QoVFJQKTsKKwkJCWZ1bmNsaW5ubyA9IHBsaW5ubzsKICNpZmRlZiBu b3RkZWYKIAkJCWlmICghIGdvb2RuYW1lKG4tPm5hcmcudGV4dCkpCiAJCQkJc3luZXJyb3IoIkJh ZCBmdW5jdGlvbiBuYW1lIik7CiAjZW5kaWYKIAkJCW4tPnR5cGUgPSBOREVGVU47CiAJCQluLT5u YXJnLm5leHQgPSBjb21tYW5kKCk7CisJCQlmdW5jbGlubm8gPSAwOwogCQkJcmV0dXJuIG47CiAJ CX0gZWxzZSB7CiAJCQl0b2twdXNoYmFjaysrOwpAQCAtMTE1OSwxMiArMTE2MiwxNSBAQCBwYXJz ZXJlZGlyOiB7CiAgKi8KIAogcGFyc2VzdWI6IHsKKwljaGFyIGJ1ZlsxMF07CiAJaW50IHN1YnR5 cGU7CiAJaW50IHR5cGVsb2M7CiAJaW50IGZsYWdzOwogCWNoYXIgKnA7CiAJc3RhdGljIGNvbnN0 IGNoYXIgdHlwZXNbXSA9ICJ9LSs/PSI7Ci0gICAgICAgaW50IGJyYWNrZXRlZF9uYW1lID0gMDsg LyogdXNlZCB0byBoYW5kbGUgJHtbMC05XSp9IHZhcmlhYmxlcyAqLworCWludCBicmFja2V0ZWRf bmFtZSA9IDA7IC8qIHVzZWQgdG8gaGFuZGxlICR7WzAtOV0qfSB2YXJpYWJsZXMgKi8KKwlpbnQg aTsKKwlpbnQgbGlubm87CiAKIAljID0gcGdldGMoKTsKIAlpZiAoYyAhPSAnKCcgJiYgYyAhPSAn eycgJiYgKGlzX2VvZihjKSB8fCAhaXNfbmFtZShjKSkgJiYKQEAgLTExODMsNiArMTE4OSw3IEBA IHBhcnNlc3ViOiB7CiAJCXR5cGVsb2MgPSBvdXQgLSBzdGFja2Jsb2NrKCk7CiAJCVVTVFBVVEMo VlNOT1JNQUwsIG91dCk7CiAJCXN1YnR5cGUgPSBWU05PUk1BTDsKKwkJZmxhZ3MgPSAwOwogCQlp ZiAoYyA9PSAneycpIHsKIAkJCWJyYWNrZXRlZF9uYW1lID0gMTsKIAkJCWMgPSBwZ2V0YygpOwpA QCAtMTE5NiwxMCArMTIwMywyMyBAQCBwYXJzZXN1YjogewogCQkJCXN1YnR5cGUgPSAwOwogCQl9 CiAJCWlmICghaXNfZW9mKGMpICYmIGlzX25hbWUoYykpIHsKKwkJCXAgPSBvdXQ7CiAJCQlkbyB7 CiAJCQkJU1RQVVRDKGMsIG91dCk7CiAJCQkJYyA9IHBnZXRjKCk7CiAJCQl9IHdoaWxlICghaXNf ZW9mKGMpICYmIGlzX2luX25hbWUoYykpOworCQkJaWYgKG91dCAtIHAgPT0gNiAmJiBzdHJuY21w KHAsICJMSU5FTk8iLCA2KSA9PSAwKSB7CisJCQkJLyogUmVwbGFjZSB0aGUgdmFyaWFibGUgbmFt ZSB3aXRoIHRoZQorCQkJCSAqIGN1cnJlbnQgbGluZSBudW1iZXIuICovCisJCQkJbGlubm8gPSBw bGlubm87CisJCQkJaWYgKGZ1bmNsaW5ubyAhPSAwKQorCQkJCQlsaW5ubyAtPSBmdW5jbGlubm8g LSAxOworCQkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlZCIsIGxpbm5vKTsKKwkJCQlT VEFESlVTVCgtNiwgb3V0KTsKKwkJCQlmb3IgKGkgPSAwOyBidWZbaV0gIT0gJ1wwJzsgaSsrKQor CQkJCQlTVFBVVEMoYnVmW2ldLCBvdXQpOworCQkJCWZsYWdzIHw9IFZTTElORU5POworCQkJfQog CQl9IGVsc2UgaWYgKGlzX2RpZ2l0KGMpKSB7CiAJCQlpZiAoYnJhY2tldGVkX25hbWUpIHsKIAkJ CQlkbyB7CkBAIC0xMjIyLDExICsxMjQyLDEwIEBAIHBhcnNlc3ViOiB7CiAJCQkJYyA9IHBnZXRj KCk7CiAJCQl9CiAJCX0KLQkJZmxhZ3MgPSAwOwogCQlpZiAoc3VidHlwZSA9PSAwKSB7CiAJCQlz d2l0Y2ggKGMpIHsKIAkJCWNhc2UgJzonOgotCQkJCWZsYWdzID0gVlNOVUw7CisJCQkJZmxhZ3Mg fD0gVlNOVUw7CiAJCQkJYyA9IHBnZXRjKCk7CiAJCQkJLypGQUxMVEhST1VHSCovCiAJCQlkZWZh dWx0OgpkaWZmIC0tZ2l0IGEvYmluL3NoL3BhcnNlci5oIGIvYmluL3NoL3BhcnNlci5oCmluZGV4 IDg3N2JmMWQuLjcxMjcxNWIgMTAwNjQ0Ci0tLSBhL2Jpbi9zaC9wYXJzZXIuaAorKysgYi9iaW4v c2gvcGFyc2VyLmgKQEAgLTUwLDkgKzUwLDExIEBACiAjZGVmaW5lCUNUTFFVT1RFTUFSSyAnXDIx MCcKIAogLyogdmFyaWFibGUgc3Vic3RpdHV0aW9uIGJ5dGUgKGZvbGxvd3MgQ1RMVkFSKSAqLwot I2RlZmluZSBWU1RZUEUJMHgwZgkJLyogdHlwZSBvZiB2YXJpYWJsZSBzdWJzdGl0dXRpb24gKi8K LSNkZWZpbmUgVlNOVUwJMHgxMAkJLyogY29sb24tLXRyZWF0IHRoZSBlbXB0eSBzdHJpbmcgYXMg dW5zZXQgKi8KLSNkZWZpbmUgVlNRVU9URSAweDgwCQkvKiBpbnNpZGUgZG91YmxlIHF1b3Rlcy0t c3VwcHJlc3Mgc3BsaXR0aW5nICovCisjZGVmaW5lIFZTVFlQRQkJMHgwZgkvKiB0eXBlIG9mIHZh cmlhYmxlIHN1YnN0aXR1dGlvbiAqLworI2RlZmluZSBWU05VTAkJMHgxMAkvKiBjb2xvbi0tdHJl YXQgdGhlIGVtcHR5IHN0cmluZyBhcyB1bnNldCAqLworI2RlZmluZSBWU0xJTkVOTwkweDIwCS8q IGV4cGFuc2lvbiBvZiAkTElORU5PLCB0aGUgbGluZSBudW1iZXIgXAorCQkJCSAgIGZvbGxvd3Mg aW1tZWRpYXRlbHkgKi8KKyNkZWZpbmUgVlNRVU9URQkJMHg4MAkvKiBpbnNpZGUgZG91YmxlIHF1 b3Rlcy0tc3VwcHJlc3Mgc3BsaXR0aW5nICovCiAKIC8qIHZhbHVlcyBvZiBWU1RZUEUgZmllbGQg Ki8KICNkZWZpbmUgVlNOT1JNQUwJMHgxCQkvKiBub3JtYWwgdmFyaWFibGU6ICAkdmFyIG9yICR7 dmFyfSAqLwotLSAKMS42LjIuNQoK --===============1439044832==--