Change 13816 by jhi@alpha on 2001/12/20 14:18:56

        Subject: [PATCH] Carp.pm caller_info returns wrong info for eval
        Date: Wed, 19 Dec 2001 14:13:38 -0800
        From: Robert Spier <[EMAIL PROTECTED]>
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

.... //depot/perl/lib/Carp.t#2 edit
.... //depot/perl/lib/Carp/Heavy.pm#17 edit

Differences ...

==== //depot/perl/lib/Carp.t#2 (text) ====
Index: perl/lib/Carp.t
--- perl/lib/Carp.t.~1~ Thu Dec 20 07:30:05 2001
+++ perl/lib/Carp.t     Thu Dec 20 07:30:05 2001
@@ -5,7 +5,7 @@
 
 use Carp qw(carp cluck croak confess);
 
-print "1..7\n";
+print "1..8\n";
 
 print "ok 1\n";
 
@@ -51,3 +51,8 @@
 
 print "ok 7\n";
 
+# test for caller_info API
+my $eval = "use Carp::Heavy; return Carp::caller_info(0);";
+my %info = eval($eval);
+print "not " if ($info{sub_name} ne "eval '$eval'");
+print "ok 8\n";

==== //depot/perl/lib/Carp/Heavy.pm#17 (text) ====
Index: perl/lib/Carp/Heavy.pm
--- perl/lib/Carp/Heavy.pm.~1~  Thu Dec 20 07:30:05 2001
+++ perl/lib/Carp/Heavy.pm      Thu Dec 20 07:30:05 2001
@@ -77,14 +77,14 @@
 # the sub/require/eval
 sub get_subname {
   my $info = shift;
-  if (defined($info->{eval})) {
-    my $eval = $info->{eval};
+  if (defined($info->{evaltext})) {
+    my $eval = $info->{evaltext};
     if ($info->{is_require}) {
       return "require $eval";
     }
     else {
       $eval =~ s/([\\\'])/\\$1/g;
-      return str_len_trim($eval, $MaxEvalLen);
+      return "eval '" . str_len_trim($eval, $MaxEvalLen) . "'";
     }
   }
 
End of Patch.

Reply via email to