--===============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==--