patch for SIG{__DIE__} behaviour

[email protected] (Philip Gwyn) Wed, 26 Sep 2012 10:46:27 -0400 (EDT)
Newsgroups perl.poe
Message-ID <[email protected]>
--_=XFMail.1.5.5.Linux:20120926104627:4515=_
Content-Type: text/plain; charset=us-ascii

Hello,

This is a patch that fixes $SIG{__DIE__} handling for perl 5.8.8.  While
__DIE__ starts out as undef, if you assign undef to __DIE__ in 5.8.8, it
becomes an empty string ("").

This patch includes a regression test.

-Philip


--_=XFMail.1.5.5.Linux:20120926104627:4515=_
Content-Disposition: attachment; filename="Philip_Gwyn-POE-SIG-DIE01.patch"
Content-Transfer-Encoding: base64
Content-Description: Philip_Gwyn-POE-SIG-DIE01.patch
Content-Type: application/octet-stream;
 name=Philip_Gwyn-POE-SIG-DIE01.patch; SizeOnDisk=3786

Y29tbWl0IGNkYjQ4MDM4ODRjYzNmOWNjNmU1YTQwNWE1NjY2ZDlhYzA1ZjU1MjYKQXV0aG9yOiBQ
aGlsaXAgR3d5biA8Z3d5bkBjcGFuLm9yZz4KRGF0ZTogICBXZWQgU2VwIDI2IDEwOjQwOjEyIDIw
MTIgLTA0MDAKCiAgICBVc2UgY2hlY2sgZm9yIHRydXRoIG9mIGEgbmV3IFNJR3tfX0RJRV9ffSBo
YW5kbGVyCiAgICBSZWdyZXNzaW9uIHRlc3QgZm9yIFNJR3tfX0RJRV9ffSBtYW5pcHVsYXRpb24K
CmRpZmYgLS1naXQgYS9saWIvUE9FL0tlcm5lbC5wbSBiL2xpYi9QT0UvS2VybmVsLnBtCmluZGV4
IGNiYmNmNGQuLjRlYWVkNTUgMTAwNjQ0Ci0tLSBhL2xpYi9QT0UvS2VybmVsLnBtCisrKyBiL2xp
Yi9QT0UvS2VybmVsLnBtCkBAIC0xMDU2LDcgKzEwNTYsNyBAQCBzdWIgX2Rpc3BhdGNoX2V2ZW50
IHsKIAogICAjIElmIHRoZSB1c2VyIGNoYW5nZWQgJFNJR3tfX0RJRV9ffSwgdGhlbiB3ZSBzaG91
bGQgaG9ub3IgdGhhdC4KICAgIyBPdGhlcndpc2UsIGJ5IHRoZSB0aW1lIHdlIGdldCBoZXJlLCB0
aGUgbGFzdCBvbmUgaXMgcmVzdG9yZWQuCi0gICRTSUd7X19ESUVfX30gPSAkbmV3X3NpZ19kaWUg
aWYgZGVmaW5lZCAkbmV3X3NpZ19kaWU7CisgICRTSUd7X19ESUVfX30gPSAkbmV3X3NpZ19kaWUg
aWYgJG5ld19zaWdfZGllOwogCiAgICMgbG9jYWwgJEAgZG9lc24ndCB3b3JrIHF1aXRlIHRoZSB3
YXkgSSBleHBlY3QsIGJ1dCB0aGVyZSBpcyBhCiAgICMgYml0IG9mIGEgcHJvYmxlbSBpZiBhbiBl
dmFse30gb2NjdXJzIGhlcmUgYmVjYXVzZSBhIHNpZ25hbCBpcwoKZGlmZiAtLWdpdCBhL3QvOTBf
cmVncmVzc2lvbi9sZW9sby1zaWctZGllLnQgYi90LzkwX3JlZ3Jlc3Npb24vbGVvbG8tc2lnLWRp
ZS50Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4MWFlMTgKLS0tIC9kZXYv
bnVsbAorKysgYi90LzkwX3JlZ3Jlc3Npb24vbGVvbG8tc2lnLWRpZS50CkBAIC0wLDAgKzEsNzUg
QEAKKyMhL3Vzci9iaW4vcGVybAorIyB2aW06IHRzPTIgc3c9MiBmaWxldHlwZT1wZXJsIGV4cGFu
ZHRhYgorCit1c2Ugd2FybmluZ3M7Cit1c2Ugc3RyaWN0OworCit1c2UgVGVzdDo6TW9yZSB0ZXN0
cyA9PiAxMjsKKworQkVHSU4geyAgJEVOVntQT0VfQ0FUQ0hfRVhDRVBUSU9OU30gPSAwOyB9CisK
K3VzZSBQT0U7Cit1c2UgUE9FOjpTZXNzaW9uOwordXNlIFBPRTo6S2VybmVsOworCitvdXIgJFdB
TlQ7CisKK3N1YiBteV9kaWUKK3sKKyAgICBteSggJGVyciApID0gQF87CisgICAgY2hvbXAgJGVy
cjsKKyAgICBpcyggJGVyciwgJFdBTlQsICJlcnJvciAkV0FOVCIgKTsKKyAgICBkaWUgIiRlcnJc
bm1vcmVcbiI7Cit9CisKKworUE9FOjpTZXNzaW9uLT5jcmVhdGUoCisgICAgaW5saW5lX3N0YXRl
cyA9PiB7CisgICAgICAgIF9zdGFydCA9PiBzdWIgeyAKKyAgICAgICAgICAgICAgICAgICAgb2so
IChub3QgZGVmaW5lZCAkU0lHe19fRElFX199IG9yICRTSUd7X19ESUVfX30gZXEgJycgKSwgJ19z
dGFydCcpOworICAgICAgICAgICAgICAgICAgICAkcG9lX2tlcm5lbC0+eWllbGQoICdzdGVwMicg
KTsKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIworICAgICAg
ICBzdGVwMiA9PiBzdWIgeyAgICAgICMgbWFrZSBzdXJlIHdlIGhhdmUgYSByZXNldCBfX0RJRV9f
IGluIHlpZWxkCisgICAgICAgICAgICAgICAgICAgIG9rKCAobm90IGRlZmluZWQgJFNJR3tfX0RJ
RV9ffSBvciAkU0lHe19fRElFX199IGVxICcnICksICdzdGVwMicpOworICAgICAgICAgICAgICAg
ICAgICBteSAkcmV0ID0gJHBvZV9rZXJuZWwtPmNhbGwoICRfW1NFU1NJT05dLCAnc2NhbGFyX2N0
eCcgKTsKKyAgICAgICAgICAgICAgICAgICAgaXMoICRyZXQsIDQyLCAncmV0JyApOworICAgICAg
ICAgICAgICAgICAgICBteSBAcmV0ID0gJHBvZV9rZXJuZWwtPmNhbGwoICRfW1NFU1NJT05dLCAn
YXJyYXlfY3R4JyApOworICAgICAgICAgICAgICAgICAgICBpc19kZWVwbHkoIFxAcmV0LCBbIDEu
LjE3IF0sICdyZXQnICk7CisKKworICAgICAgICAgICAgICAgICAgICAkU0lHe19fRElFX199ID0g
XCZteV9kaWU7CisgICAgICAgICAgICAgICAgICAgICRwb2Vfa2VybmVsLT5wb3N0KCAkX1tTRVNT
SU9OXSwgJ3N0ZXAzJyApOworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHNjYWxhcl9jdHgg
PT4gc3ViIHsgIyBtYWtlIHN1cmUgd2UgaGF2ZSBhIHJlc2V0IF9fRElFX18gaW4gY2FsbCB0byBz
Y2FsYXIgY29udGV4dAorICAgICAgICAgICAgICAgICAgICBvayggKG5vdCBkZWZpbmVkICRTSUd7
X19ESUVfX30gb3IgJFNJR3tfX0RJRV9ffSBlcSAnJyApLCAnc2NhbGFyX2N0eCcpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gNDI7CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgYXJy
YXlfY3R4ID0+IHN1YiB7ICAjIG1ha2Ugc3VyZSB3ZSBoYXZlIGEgcmVzZXQgX19ESUVfXyBpbiBj
YWxsIHRvIGFycmF5IGNvbnRleHQKKyAgICAgICAgICAgICAgICAgICAgb2soIChub3QgZGVmaW5l
ZCAkU0lHe19fRElFX199IG9yICRTSUd7X19ESUVfX30gZXEgJycgKSwgJ2FycmF5X2N0eCcpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCAxLi4xNyApOworICAgICAgICAgICAgICAgIH0s
CisKKyAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMKKyAgICAgICAgc3RlcDMgPT4gc3ViIHsgICAg
ICAjIG1ha2Ugc3VyZSB3ZSBoYXZlIGEgcmVzZXQgX19ESUVfXyBpbiBhIHBvc3QKKyAgICAgICAg
ICAgICAgICAgICAgb2soIChub3QgZGVmaW5lZCAkU0lHe19fRElFX199IG9yICRTSUd7X19ESUVf
X30gZXEgJycgKSwgJ3N0ZXAzJyk7CisgICAgICAgICAgICAgICAgICAgIG15ICRyZXQgPSAkcG9l
X2tlcm5lbC0+Y2FsbCggJF9bU0VTU0lPTl0sICdzY2FsYXJfY3R4MycgKTsKKyAgICAgICAgICAg
ICAgICAgICAgaXMoICRyZXQsIDQyLCAncmV0JyApOworICAgICAgICAgICAgICAgICAgICBteSBA
cmV0ID0gJHBvZV9rZXJuZWwtPmNhbGwoICRfW1NFU1NJT05dLCAnYXJyYXlfY3R4MycgKTsKKyAg
ICAgICAgICAgICAgICAgICAgZmFpbCggJ3dlIG5ldmVyIGdldCBoZXJlJyApOworICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgIHNjYWxhcl9jdHgzID0+IHN1YiB7ICMgbWFrZSBzdXJlIHdlIGhh
dmUgYSByZXNldCBfX0RJRV9fIGV2ZW4gaWYgd2Ugc2V0IG9uZQorICAgICAgICAgICAgICAgICAg
ICBvayggKG5vdCBkZWZpbmVkICRTSUd7X19ESUVfX30gb3IgJFNJR3tfX0RJRV9ffSBlcSAnJyAp
LCAnc2NhbGFyX2N0eDMnKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQyOworICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgIGFycmF5X2N0eDMgPT4gc3ViIHsgIyBub3cgd2UgdGhyb3cg
YW4gZXhlY3B0aW9uIHVwIHRvIG91ciBfX0RJRV9fIGhhbmRsZXIKKyAgICAgICAgICAgICAgICAg
ICAgb2soIChub3QgZGVmaW5lZCAkU0lHe19fRElFX199IG9yICRTSUd7X19ESUVfX30gZXEgJycg
KSwgJ2FycmF5X2N0eCcpOworICAgICAgICAgICAgICAgICAgICAkV0FOVCA9ICJhcnJheV9jdHgz
IjsgZGllICJhcnJheV9jdHgzXG4iOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCAxLi4x
NyApOworICAgICAgICAgICAgICAgIH0sCisgICAgfQorKTsKKworZXZhbCB7ICRwb2Vfa2VybmVs
LT5ydW4gfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG1ha2Ugc3VyZSB3ZSBjYXVn
aHQgdGhlIGV4ZWNwdGlvbiB0aHJvd24gaW4gYXJyYXlfY3R4MworaXMoICRALCAiYXJyYXlfY3R4
M1xubW9yZVxuIiwgJ2V4aXRlZCcgKTsK

--_=XFMail.1.5.5.Linux:20120926104627:4515=_--
End of MIME message