Actually, undef $SIG{FOO} should restore the default signal
Rafael Garcia-Suarez [Mon, 20 Nov 2006 15:31:03 +0000 (15:31 +0000)]
handler. Else, once we exit a block where the signal handler was
localized, it becomes ignored.

p4raw-id: //depot/perl@29328

mg.c

diff --git a/mg.c b/mg.c
index 494e9fd..a01ab36 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -1459,7 +1459,7 @@ Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg)
            SvREFCNT_dec(to_dec);
        return 0;
     }
-    s = SvOK(sv) ? SvPV_force(sv,len) : "IGNORE";
+    s = SvOK(sv) ? SvPV_force(sv,len) : "DEFAULT";
     if (strEQ(s,"IGNORE")) {
        if (i) {
 #ifdef FAKE_PERSISTENT_SIGNAL_HANDLERS