Change 33950 by [EMAIL PROTECTED] on 2008/05/30 15:37:39

        Integrate:
        [ 33739]
        Drop #ifdefs that became empty in change #32012.
        
        [ 33751]
        Subject: [patch]perl5db.pl - What I needed to get the forked debugger 
to work
        From: "John E. Malmberg" <[EMAIL PROTECTED]>
        Date: Thu, 24 Apr 2008 21:36:51 -0500
        Message-id: <[EMAIL PROTECTED]>
        
        [ 33753]
        Revert change #33751, at least for now: this breaks perl5db.t
        
        [ 33756]
        Warnings within the condition of while are not reported with the
        correct line number. TODO test inspired by code from Bram.
        
        [ 33758]
        Warnings within the conditional of until() and for() are not reported
        with the correct line number. (See change 33756). Curiously, warnings
        for the third expression of for() have the correct line number.
        
        [ 33771]
        Subject: [patch]perl5db.pl, perl5db.t - LINUX/UNIX/CYGWIN/VMS
        From: "John E. Malmberg" <[EMAIL PROTECTED]>
        Date: Mon, 28 Apr 2008 00:39:16 -0500
        Message-id: <[EMAIL PROTECTED]>

Affected files ...

... //depot/maint-5.10/perl/lib/perl5db.pl#2 integrate
... //depot/maint-5.10/perl/lib/perl5db.t#2 integrate
... //depot/maint-5.10/perl/mg.c#11 integrate
... //depot/maint-5.10/perl/t/lib/warnings/9uninit#7 integrate

Differences ...

==== //depot/maint-5.10/perl/lib/perl5db.pl#2 (text) ====
Index: perl/lib/perl5db.pl
--- perl/lib/perl5db.pl#1~32694~        2007-12-22 01:23:09.000000000 -0800
+++ perl/lib/perl5db.pl 2008-05-30 08:37:39.000000000 -0700
@@ -1363,7 +1363,9 @@
 # As noted, this test really doesn't check accurately that the debugger
 # is running at a terminal or not.
 
-if ( -e "/dev/tty" ) {                      # this is the wrong metric!
+my $dev_tty = '/dev/tty';
+   $dev_tty = 'TT:' if ($^O eq 'VMS');
+if ( -e $dev_tty ) {                      # this is the wrong metric!
     $rcfile = ".perldb";
 }
 else {
@@ -6100,6 +6102,16 @@
 
     $pidprompt = '';    # Shown anyway in titlebar
 
+    # We need $term defined or we can not switch to the newly created xterm
+    if ($tty ne '' && !defined $term) {
+        eval { require Term::ReadLine } or die $@;
+        if ( !$rl ) {
+            $term = new Term::ReadLine::Stub 'perldb', $IN, $OUT;
+        }
+        else {
+            $term = new Term::ReadLine 'perldb', $IN, $OUT;
+        }
+    }
     # There's our new TTY.
     return $tty;
 } ## end sub xterm_get_fork_TTY
@@ -6766,18 +6778,6 @@
 
 sub TTY {
 
-    # With VMS we can get here with $term undefined, so we do not
-    # switch to this terminal.  There may be a better place to make
-    # sure that $term is defined on VMS
-    if ( @_ and ($^O eq 'VMS') and !defined($term) ) {
-       eval { require Term::ReadLine } or die $@;
-        if ( !$rl ) {
-           $term = new Term::ReadLine::Stub 'perldb', $IN, $OUT;
-       }
-       else {
-           $term = new Term::ReadLine 'perldb', $IN, $OUT;
-       }
-    }
     if ( @_ and $term and $term->Features->{newTTY} ) {
 
         # This terminal supports switching to a new TTY.

==== //depot/maint-5.10/perl/lib/perl5db.t#2 (text) ====
Index: perl/lib/perl5db.t
--- perl/lib/perl5db.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/lib/perl5db.t  2008-05-30 08:37:39.000000000 -0700
@@ -14,8 +14,10 @@
        print "1..0 # Skip: no /dev/null\n";
        exit 0;
     }
-    if (!-c "/dev/tty") {
-       print "1..0 # Skip: no /dev/tty\n";
+my $dev_tty = '/dev/tty';
+   $dev_tty = 'TT:' if ($^O eq 'VMS');
+    if (!-c $dev_tty) {
+       print "1..0 # Skip: no $dev_tty\n";
        exit 0;
     }
 }

==== //depot/maint-5.10/perl/mg.c#11 (text) ====
Index: perl/mg.c
--- perl/mg.c#10~33947~ 2008-05-28 18:09:23.000000000 -0700
+++ perl/mg.c   2008-05-30 08:37:39.000000000 -0700
@@ -1294,8 +1294,6 @@
 #else
     dTHX;
 #endif
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-#endif
 #ifdef FAKE_PERSISTENT_SIGNAL_HANDLERS
     (void) rsignal(sig, PL_csighandlerp);
     if (PL_sig_ignoring[sig]) return;
@@ -1308,8 +1306,6 @@
             exit(1);
 #endif
 #endif
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-#endif
     if (
 #ifdef SIGILL
           sig == SIGILL ||

==== //depot/maint-5.10/perl/t/lib/warnings/9uninit#7 (text) ====
Index: perl/t/lib/warnings/9uninit
--- perl/t/lib/warnings/9uninit#6~33945~        2008-05-28 13:51:40.000000000 
-0700
+++ perl/t/lib/warnings/9uninit 2008-05-30 08:37:39.000000000 -0700
@@ -1326,6 +1326,65 @@
 Use of uninitialized value $undef in numeric eq (==) at - line 4.
 Use of uninitialized value $undef in numeric eq (==) at - line 5.
 ########
+# TODO long standing bug - conditions of while loops
+use warnings;
+
+my $c;
+my $d = 1;
+while ($c == 0 && $d) {
+  # a
+  # few
+  # blank
+  # lines
+  undef $d;
+}
+EXPECT
+Use of uninitialized value $c in numeric eq (==) at - line 5.
+Use of uninitialized value $c in numeric eq (==) at - line 5.
+########
+# TODO long standing bug - conditions of until loops
+use warnings;
+
+my $c;
+my $d;
+until ($c == 1) {
+  # a
+  # few
+  # blank
+  # lines
+  $c = 1 if ++$d == 2;
+}
+EXPECT
+Use of uninitialized value $c in numeric eq (==) at - line 5.
+Use of uninitialized value $c in numeric eq (==) at - line 5.
+########
+# TODO long standing bug - conditions of for loops
+use warnings;
+
+my $c;
+my $d;
+for ($d = 1; $c == 0 && $d; ) {
+  # a
+  # few
+  # blank
+  # lines
+  undef $d;
+}
+
+my $e;
+for ($d = 2; $d > 0; $e = !($c == 0)) {
+  # a
+  # few
+  # blank
+  # lines
+  --$d;
+}
+EXPECT
+Use of uninitialized value $c in numeric eq (==) at - line 5.
+Use of uninitialized value $c in numeric eq (==) at - line 5.
+Use of uninitialized value $c in numeric eq (==) at - line 14.
+Use of uninitialized value $c in numeric eq (==) at - line 14.
+########
 # TODO long standing bug - more general variant of the above problem
 use warnings;
 my $undef;
End of Patch.

Reply via email to