X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdumpvar.pl;h=12c9e91f0ad69d0a1c6c120847082fb8eed89df4;hb=4750257bd21f5a4355221e101326277c013826ec;hp=184faa39f34f66beb70ea907ae90ea9248daf292;hpb=d03c2a1b901127d77518bbc18d5271b287c9e28b;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/dumpvar.pl b/lib/dumpvar.pl index 184faa3..12c9e91 100644 --- a/lib/dumpvar.pl +++ b/lib/dumpvar.pl @@ -237,19 +237,26 @@ sub unwrap { print "$sp-> ",&stringify($$v,1),"\n"; if ($globPrint) { $s += 3; - dumpglob($s, "{$$v}", $$v, 1); + dumpglob($s, "{$$v}", $$v, 1, $m-1); } elsif (defined ($fileno = fileno($v))) { print( (' ' x ($s+3)) . "FileHandle({$$v}) => fileno($fileno)\n" ); } } elsif (ref \$v eq 'GLOB') { if ($globPrint) { - dumpglob($s, "{$v}", $v, 1) if $globPrint; + dumpglob($s, "{$v}", $v, 1, $m-1) if $globPrint; } elsif (defined ($fileno = fileno(\$v))) { print( (' ' x $s) . "FileHandle({$v}) => fileno($fileno)\n" ); } } } +sub matchlex { + (my $var = $_[0]) =~ s/.//; + $var eq $_[1] or + ($_[1] =~ /^([!~])(.)([\x00-\xff]*)/) and + ($1 eq '!') ^ (eval { $var =~ /$2$3/ }); +} + sub matchvar { $_[0] eq $_[1] or ($_[1] =~ /^([!~])(.)([\x00-\xff]*)/) and @@ -296,16 +303,16 @@ sub quote { sub dumpglob { return if $DB::signal; - my ($off,$key, $val, $all) = @_; + my ($off,$key, $val, $all, $m) = @_; local(*entry) = $val; my $fileno; if (($key !~ /^_ fileno($fileno)\n" ); + } + # No lexical subroutines yet... + # elsif (UNIVERSAL::isa($val,'CODE')) { + # dumpsub($off, $$val); + # } + else { + print( (' ' x $off) . &unctrl($key), " = " ); + DumpElem $$val, 3+$off, $m; + } +} + sub CvGV_name_or_bust { my $in = shift; return if $skipCvGV; # Backdoor to avoid problems if XS broken... @@ -361,7 +398,7 @@ sub findsubs { } sub main::dumpvar { - my ($package,@vars) = @_; + my ($package,$m,@vars) = @_; local(%address,$key,$val,$^W); $package .= "::" unless $package =~ /::$/; *stab = *{"main::"}; @@ -379,7 +416,7 @@ sub main::dumpvar { if ($package ne 'dumpvar' or $key ne 'stab') and ref(\$val) eq 'GLOB'; } else { - dumpglob(0,$key, $val); + dumpglob(0,$key, $val, 0, $m); } } if ($usageOnly) {