Hello community,

here is the log from the commit of package perl-Devel-StackTrace-AsHTML for 
openSUSE:Factory checked in at 2013-06-07 10:07:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Devel-StackTrace-AsHTML (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Devel-StackTrace-AsHTML.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Devel-StackTrace-AsHTML"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Devel-StackTrace-AsHTML/perl-Devel-StackTrace-AsHTML.changes
        2011-09-23 12:36:49.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Devel-StackTrace-AsHTML.new/perl-Devel-StackTrace-AsHTML.changes
   2013-06-07 10:07:29.000000000 +0200
@@ -1,0 +2,9 @@
+Tue Jun  4 08:34:11 UTC 2013 - [email protected]
+
+- updated to 0.14
+      - Get subroutine arguments from the next frame too
+      - Fixed the use of $frame->subroutine since it returns a subroutine that 
is *invoked* on that
+        call frame, rather than what the frame is *in*. Fixed to peek the next 
frame to get the
+        current subroutine. (Caelum)
+
+-------------------------------------------------------------------

Old:
----
  Devel-StackTrace-AsHTML-0.11.tar.gz

New:
----
  Devel-StackTrace-AsHTML-0.14.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Devel-StackTrace-AsHTML.spec ++++++
--- /var/tmp/diff_new_pack.t7MRtq/_old  2013-06-07 10:07:29.000000000 +0200
+++ /var/tmp/diff_new_pack.t7MRtq/_new  2013-06-07 10:07:29.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Devel-StackTrace-AsHTML
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,21 +16,34 @@
 #
 
 
-
 Name:           perl-Devel-StackTrace-AsHTML
-Version:        0.11
-Release:        1
-License:        GPL-1.0+ or Artistic-1.0
+Version:        0.14
+Release:        0
 %define cpan_name Devel-StackTrace-AsHTML
 Summary:        Displays stack trace in HTML
-Url:            http://search.cpan.org/dist/Devel-StackTrace-AsHTML/
+License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
+Url:            http://search.cpan.org/dist/Devel-StackTrace-AsHTML/
 Source:         
http://www.cpan.org/authors/id/M/MI/MIYAGAWA/%{cpan_name}-%{version}.tar.gz
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  perl
 BuildRequires:  perl-macros
 BuildRequires:  perl(Devel::StackTrace)
+#BuildRequires: perl(App::pod2pdf)
+#BuildRequires: perl(Devel::StackTrace::AsHTML)
+#BuildRequires: perl(inc::Module::Install)
+#BuildRequires: perl(JSON)
+#BuildRequires: perl(LWP::Simple)
+#BuildRequires: perl(Module::Build)
+#BuildRequires: perl(Module::Install::Base)
+#BuildRequires: perl(Parse::CPAN::Meta)
+#BuildRequires: perl(Spiffy)
+#BuildRequires: perl(Test::Builder::IO::Scalar)
+#BuildRequires: perl(Test::Deep)
+#BuildRequires: perl(Text::Diff)
+#BuildRequires: perl(YAML)
+#BuildRequires: perl(YAML::Tiny)
 Requires:       perl(Devel::StackTrace)
 %{perl_requires}
 
@@ -56,9 +69,6 @@
 %perl_process_packlist
 %perl_gen_filelist
 
-%clean
-%{__rm} -rf %{buildroot}
-
 %files -f %{name}.files
 %defattr(-,root,root,755)
 %doc Changes README

++++++ Devel-StackTrace-AsHTML-0.11.tar.gz -> 
Devel-StackTrace-AsHTML-0.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-StackTrace-AsHTML-0.11/Changes 
new/Devel-StackTrace-AsHTML-0.14/Changes
--- old/Devel-StackTrace-AsHTML-0.11/Changes    2011-01-25 08:08:41.000000000 
+0100
+++ new/Devel-StackTrace-AsHTML-0.14/Changes    2013-02-18 20:41:05.000000000 
+0100
@@ -1,5 +1,16 @@
 Revision history for Perl extension Devel::StackTrace::AsHTML
 
+0.14  Mon Feb 18 11:40:53 PST 2013
+        - Fix test for Win32 (RickFord)
+
+0.13  Mon Feb 11 11:52:15 PST 2013
+        - Get subroutine arguments from the next frame too
+
+0.12  Mon Feb 11 11:25:50 PST 2013
+        - Fixed the use of $frame->subroutine since it returns a subroutine 
that is *invoked* on that
+          call frame, rather than what the frame is *in*. Fixed to peek the 
next frame to get the
+          current subroutine. (Caelum)
+
 0.11  Mon Jan 24 23:08:04 PST 2011
         - You should now pass the error message in 'message' parameter 
explicitly to display as an error
         - Use the first frame, not the second frame to capture error message
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-StackTrace-AsHTML-0.11/META.yml 
new/Devel-StackTrace-AsHTML-0.14/META.yml
--- old/Devel-StackTrace-AsHTML-0.11/META.yml   2011-01-25 08:08:57.000000000 
+0100
+++ new/Devel-StackTrace-AsHTML-0.14/META.yml   2013-02-18 20:41:20.000000000 
+0100
@@ -3,11 +3,12 @@
 author:
   - 'Tatsuhiko Miyagawa <[email protected]>'
 build_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.59
 configure_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.59
 distribution_type: module
-generated_by: 'Module::Install version 1.00'
+dynamic_config: 1
+generated_by: 'Module::Install version 1.06'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -25,4 +26,4 @@
 resources:
   license: http://dev.perl.org/licenses/
   repository: git://github.com/miyagawa/Devel-StackTrace-AsHTML.git
-version: 0.11
+version: 0.14
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Base.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Base.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Base.pm 2011-01-25 
08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Base.pm 2013-02-18 
20:41:20.000000000 +0100
@@ -4,7 +4,7 @@
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
 }
 
 # Suspend handler for "redefined" warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Can.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Can.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Can.pm  2011-01-25 
08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Can.pm  2013-02-18 
20:41:20.000000000 +0100
@@ -3,13 +3,12 @@
 
 use strict;
 use Config                ();
-use File::Spec            ();
 use ExtUtils::MakeMaker   ();
 use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -29,7 +28,7 @@
        eval { require $mod; $pkg->VERSION($ver || 0); 1 };
 }
 
-# check if we can run some command
+# Check if we can run some command
 sub can_run {
        my ($self, $cmd) = @_;
 
@@ -38,14 +37,88 @@
 
        for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
                next if $dir eq '';
-               my $abs = File::Spec->catfile($dir, $_[1]);
+               require File::Spec;
+               my $abs = File::Spec->catfile($dir, $cmd);
                return $abs if (-x $abs or $abs = MM->maybe_command($abs));
        }
 
        return;
 }
 
-# can we locate a (the) C compiler
+# Can our C compiler environment build XS files
+sub can_xs {
+       my $self = shift;
+
+       # Ensure we have the CBuilder module
+       $self->configure_requires( 'ExtUtils::CBuilder' => 0.27 );
+
+       # Do we have the configure_requires checker?
+       local $@;
+       eval "require ExtUtils::CBuilder;";
+       if ( $@ ) {
+               # They don't obey configure_requires, so it is
+               # someone old and delicate. Try to avoid hurting
+               # them by falling back to an older simpler test.
+               return $self->can_cc();
+       }
+
+       # Do we have a working C compiler
+       my $builder = ExtUtils::CBuilder->new(
+               quiet => 1,
+       );
+       unless ( $builder->have_compiler ) {
+               # No working C compiler
+               return 0;
+       }
+
+       # Write a C file representative of what XS becomes
+       require File::Temp;
+       my ( $FH, $tmpfile ) = File::Temp::tempfile(
+               "compilexs-XXXXX",
+               SUFFIX => '.c',
+       );
+       binmode $FH;
+       print $FH <<'END_C';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+int main(int argc, char **argv) {
+    return 0;
+}
+
+int boot_sanexs() {
+    return 1;
+}
+
+END_C
+       close $FH;
+
+       # Can the C compiler access the same headers XS does
+       my @libs   = ();
+       my $object = undef;
+       eval {
+               local $^W = 0;
+               $object = $builder->compile(
+                       source => $tmpfile,
+               );
+               @libs = $builder->link(
+                       objects     => $object,
+                       module_name => 'sanexs',
+               );
+       };
+       my $result = $@ ? 0 : 1;
+
+       # Clean up all the build files
+       foreach ( $tmpfile, $object, @libs ) {
+               next unless defined $_;
+               1 while unlink;
+       }
+
+       return $result;
+}
+
+# Can we locate a (the) C compiler
 sub can_cc {
        my $self   = shift;
        my @chunks = split(/ /, $Config::Config{cc}) or return;
@@ -78,4 +151,4 @@
 
 __END__
 
-#line 156
+#line 236
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Fetch.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Fetch.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Fetch.pm        
2011-01-25 08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Fetch.pm        
2013-02-18 20:41:20.000000000 +0100
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Include.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Include.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Include.pm      
2011-01-25 08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Include.pm      
2013-02-18 20:41:20.000000000 +0100
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Makefile.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Makefile.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Makefile.pm     
2011-01-25 08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Makefile.pm     
2013-02-18 20:41:20.000000000 +0100
@@ -8,7 +8,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -215,18 +215,22 @@
        require ExtUtils::MakeMaker;
 
        if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) {
-               # MakeMaker can complain about module versions that include
-               # an underscore, even though its own version may contain one!
-               # Hence the funny regexp to get rid of it.  See RT #35800
-               # for details.
-               my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
-               $self->build_requires(     'ExtUtils::MakeMaker' => $v );
-               $self->configure_requires( 'ExtUtils::MakeMaker' => $v );
+               # This previous attempted to inherit the version of
+               # ExtUtils::MakeMaker in use by the module author, but this
+               # was found to be untenable as some authors build releases
+               # using future dev versions of EU:MM that nobody else has.
+               # Instead, #toolchain suggests we use 6.59 which is the most
+               # stable version on CPAN at time of writing and is, to quote
+               # ribasushi, "not terminally fucked, > and tested enough".
+               # TODO: We will now need to maintain this over time to push
+               # the version up as new versions are released.
+               $self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
+               $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
        } else {
                # Allow legacy-compatibility with 5.005 by depending on the
                # most recent EU:MM that supported 5.005.
-               $self->build_requires(     'ExtUtils::MakeMaker' => 6.42 );
-               $self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 );
+               $self->build_requires(     'ExtUtils::MakeMaker' => 6.36 );
+               $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );
        }
 
        # Generate the MakeMaker params
@@ -241,7 +245,6 @@
 'all_from' if you prefer) in Makefile.PL.
 EOT
 
-       $DB::single = 1;
        if ( $self->tests ) {
                my @tests = split ' ', $self->tests;
                my %seen;
@@ -412,4 +415,4 @@
 
 __END__
 
-#line 541
+#line 544
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Metadata.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Metadata.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Metadata.pm     
2011-01-25 08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Metadata.pm     
2013-02-18 20:41:20.000000000 +0100
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -151,15 +151,21 @@
 sub install_as_vendor { $_[0]->installdirs('vendor') }
 
 sub dynamic_config {
-       my $self = shift;
-       unless ( @_ ) {
-               warn "You MUST provide an explicit true/false value to 
dynamic_config\n";
-               return $self;
+       my $self  = shift;
+       my $value = @_ ? shift : 1;
+       if ( $self->{values}->{dynamic_config} ) {
+               # Once dynamic we never change to static, for safety
+               return 0;
        }
-       $self->{values}->{dynamic_config} = $_[0] ? 1 : 0;
+       $self->{values}->{dynamic_config} = $value ? 1 : 0;
        return 1;
 }
 
+# Convenience command
+sub static_config {
+       shift->dynamic_config(0);
+}
+
 sub perl_version {
        my $self = shift;
        return $self->{values}->{perl_version} unless @_;
@@ -170,7 +176,7 @@
        # Normalize the version
        $version = $self->_perl_version($version);
 
-       # We don't support the reall old versions
+       # We don't support the really old versions
        unless ( $version >= 5.005 ) {
                die "Module::Install only supports 5.005 or newer (use 
ExtUtils::MakeMaker)\n";
        }
@@ -515,6 +521,7 @@
                'GNU Free Documentation license'     => 'unrestricted', 1,
                'GNU Affero General Public License'  => 'open_source',  1,
                '(?:Free)?BSD license'               => 'bsd',          1,
+               'Artistic license 2\.0'              => 'artistic_2',   1,
                'Artistic license'                   => 'artistic',     1,
                'Apache (?:Software )?license'       => 'apache',       1,
                'GPL'                                => 'gpl',          1,
@@ -550,9 +557,9 @@
 
 sub _extract_bugtracker {
        my @links   = $_[0] =~ m#L<(
-        \Qhttp://rt.cpan.org/\E[^>]+|
-        \Qhttp://github.com/\E[\w_]+/[\w_]+/issues|
-        \Qhttp://code.google.com/p/\E[\w_\-]+/issues/list
+        https?\Q://rt.cpan.org/\E[^>]+|
+        https?\Q://github.com/\E[\w_]+/[\w_]+/issues|
+        https?\Q://code.google.com/p/\E[\w_\-]+/issues/list
         )>#gx;
        my %links;
        @links{@links}=();
@@ -581,7 +588,7 @@
 sub requires_from {
        my $self     = shift;
        my $content  = Module::Install::_readperl($_[0]);
-       my @requires = $content =~ 
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg;
+       my @requires = $content =~ 
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg;
        while ( @requires ) {
                my $module  = shift @requires;
                my $version = shift @requires;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/ReadmeFromPod.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/ReadmeFromPod.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/ReadmeFromPod.pm        
2011-01-25 08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/ReadmeFromPod.pm        
2013-02-18 20:41:20.000000000 +0100
@@ -7,29 +7,119 @@
 use base qw(Module::Install::Base);
 use vars qw($VERSION);
 
-$VERSION = '0.12';
+$VERSION = '0.20';
 
 sub readme_from {
   my $self = shift;
   return unless $self->is_admin;
 
-  my $file = shift || $self->_all_from
+  # Input file
+  my $in_file  = shift || $self->_all_from
     or die "Can't determine file to make readme_from";
-  my $clean = shift;
 
-  print "Writing README from $file\n";
+  # Get optional arguments
+  my ($clean, $format, $out_file, $options);
+  my $args = shift;
+  if ( ref $args ) {
+    # Arguments are in a hashref
+    if ( ref($args) ne 'HASH' ) {
+      die "Expected a hashref but got a ".ref($args)."\n";
+    } else {
+      $clean    = $args->{'clean'};
+      $format   = $args->{'format'};
+      $out_file = $args->{'output_file'};
+      $options  = $args->{'options'};
+    }
+  } else {
+    # Arguments are in a list
+    $clean    = $args;
+    $format   = shift;
+    $out_file = shift;
+    $options  = \@_;
+  }
+
+  # Default values;
+  $clean  ||= 0;
+  $format ||= 'txt';
+
+  # Generate README
+  print "readme_from $in_file to $format\n";
+  if ($format =~ m/te?xt/) {
+    $out_file = $self->_readme_txt($in_file, $out_file, $options);
+  } elsif ($format =~ m/html?/) {
+    $out_file = $self->_readme_htm($in_file, $out_file, $options);
+  } elsif ($format eq 'man') {
+    $out_file = $self->_readme_man($in_file, $out_file, $options);
+  } elsif ($format eq 'pdf') {
+    $out_file = $self->_readme_pdf($in_file, $out_file, $options);
+  }
 
-  require Pod::Text;
-  my $parser = Pod::Text->new();
-  open README, '> README' or die "$!\n";
-  $parser->output_fh( *README );
-  $parser->parse_file( $file );
   if ($clean) {
-    $self->clean_files('README');
+    $self->clean_files($out_file);
   }
+
   return 1;
 }
 
+
+sub _readme_txt {
+  my ($self, $in_file, $out_file, $options) = @_;
+  $out_file ||= 'README';
+  require Pod::Text;
+  my $parser = Pod::Text->new( @$options );
+  open my $out_fh, '>', $out_file or die "Could not write file 
$out_file:\n$!\n";
+  $parser->output_fh( *$out_fh );
+  $parser->parse_file( $in_file );
+  close $out_fh;
+  return $out_file;
+}
+
+
+sub _readme_htm {
+  my ($self, $in_file, $out_file, $options) = @_;
+  $out_file ||= 'README.htm';
+  require Pod::Html;
+  Pod::Html::pod2html(
+    "--infile=$in_file",
+    "--outfile=$out_file",
+    @$options,
+  );
+  # Remove temporary files if needed
+  for my $file ('pod2htmd.tmp', 'pod2htmi.tmp') {
+    if (-e $file) {
+      unlink $file or warn "Warning: Could not remove file '$file'.\n$!\n";
+    }
+  }
+  return $out_file;
+}
+
+
+sub _readme_man {
+  my ($self, $in_file, $out_file, $options) = @_;
+  $out_file ||= 'README.1';
+  require Pod::Man;
+  my $parser = Pod::Man->new( @$options );
+  $parser->parse_from_file($in_file, $out_file);
+  return $out_file;
+}
+
+
+sub _readme_pdf {
+  my ($self, $in_file, $out_file, $options) = @_;
+  $out_file ||= 'README.pdf';
+  eval { require App::pod2pdf; }
+    or die "Could not generate $out_file because pod2pdf could not be found\n";
+  my $parser = App::pod2pdf->new( @$options );
+  $parser->parse_from_file($in_file);
+  open my $out_fh, '>', $out_file or die "Could not write file 
$out_file:\n$!\n";
+  select $out_fh;
+  $parser->output;
+  select STDOUT;
+  close $out_fh;
+  return $out_file;
+}
+
+
 sub _all_from {
   my $self = shift;
   return unless $self->admin->{extensions};
@@ -44,5 +134,5 @@
 
 __END__
 
-#line 112
+#line 254
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/TestBase.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/TestBase.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/TestBase.pm     
2011-01-25 08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/TestBase.pm     
2013-02-18 20:41:20.000000000 +0100
@@ -7,7 +7,7 @@
 
 use vars qw($VERSION @ISA);
 BEGIN {
-    $VERSION = '0.11';
+    $VERSION = '0.60';
     @ISA     = 'Module::Install::Base';
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Win32.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Win32.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/Win32.pm        
2011-01-25 08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/Win32.pm        
2013-02-18 20:41:20.000000000 +0100
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/WriteAll.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/WriteAll.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install/WriteAll.pm     
2011-01-25 08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install/WriteAll.pm     
2013-02-18 20:41:20.000000000 +0100
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = qw{Module::Install::Base};
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Module/Install.pm      2011-01-25 
08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Module/Install.pm      2013-02-18 
20:41:19.000000000 +0100
@@ -31,7 +31,7 @@
        # This is not enforced yet, but will be some time in the next few
        # releases once we can make sure it won't clash with custom
        # Module::Install extensions.
-       $VERSION = '1.00';
+       $VERSION = '1.06';
 
        # Storage for the pseudo-singleton
        $MAIN    = undef;
@@ -451,7 +451,7 @@
 }
 
 sub _cmp ($$) {
-       _version($_[0]) <=> _version($_[1]);
+       _version($_[1]) <=> _version($_[2]);
 }
 
 # Cloned from Params::Util::_CLASS
@@ -467,4 +467,4 @@
 
 1;
 
-# Copyright 2008 - 2010 Adam Kennedy.
+# Copyright 2008 - 2012 Adam Kennedy.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-StackTrace-AsHTML-0.11/inc/Spiffy.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Spiffy.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Spiffy.pm      2011-01-25 
08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Spiffy.pm      2013-02-18 
20:41:20.000000000 +0100
@@ -1,17 +1,24 @@
 #line 1
+##
+# name:      Spiffy
+# abstract:  Spiffy Perl Interface Framework For You
+# author:    Ingy döt Net <[email protected]>
+# license:   perl
+# copyright: 2004, 2006, 2011, 2012
+
 package Spiffy;
 use strict;
 use 5.006001;
 use warnings;
 use Carp;
 require Exporter;
-our $VERSION = '0.30';
+our $VERSION = '0.31';
 our @EXPORT = ();
 our @EXPORT_BASE = qw(field const stub super);
 our @EXPORT_OK = (@EXPORT_BASE, qw(id WWW XXX YYY ZZZ));
 our %EXPORT_TAGS = (XXX => [qw(WWW XXX YYY ZZZ)]);
 
-my $stack_frame = 0; 
+my $stack_frame = 0;
 my $dump = 'yaml';
 my $bases_map = {};
 
@@ -38,7 +45,7 @@
         my $method = shift;
         $self->$method(shift);
     }
-    return $self;    
+    return $self;
 }
 
 my $filtered_files = {};
@@ -46,7 +53,7 @@
 my $filter_save = 0;
 our $filter_result = '';
 sub import {
-    no strict 'refs'; 
+    no strict 'refs';
     no warnings;
     my $self_package = shift;
 
@@ -54,12 +61,12 @@
     # subclass's boolean_arguments and paired_arguments can conflict, causing
     # difficult debugging. Consider using something truly local.
     my ($args, @export_list) = do {
-        local *boolean_arguments = sub { 
+        local *boolean_arguments = sub {
             qw(
-                -base -Base -mixin -selfless 
-                -XXX -dumper -yaml 
+                -base -Base -mixin -selfless
+                -XXX -dumper -yaml
                 -filter_dump -filter_save
-            ) 
+            )
         };
         local *paired_arguments = sub { qw(-package) };
         $self_package->parse_arguments(@_);
@@ -79,8 +86,8 @@
           unless grep /^XXX$/, @EXPORT_BASE;
     }
 
-    spiffy_filter() 
-      if ($args->{-selfless} or $args->{-Base}) and 
+    spiffy_filter()
+      if ($args->{-selfless} or $args->{-Base}) and
          not $filtered_files->{(caller($stack_frame))[1]}++;
 
     my $caller_package = $args->{-package} || caller($stack_frame);
@@ -91,7 +98,7 @@
         next unless $class->isa('Spiffy');
         my @export = grep {
             not defined &{"$caller_package\::$_"};
-        } ( @{"$class\::EXPORT"}, 
+        } ( @{"$class\::EXPORT"},
             ($args->{-Base} or $args->{-base})
               ? @{"$class\::EXPORT_BASE"} : (),
           );
@@ -99,7 +106,7 @@
             not defined &{"$caller_package\::$_"};
         } @{"$class\::EXPORT_OK"};
 
-        # Avoid calling the expensive Exporter::export 
+        # Avoid calling the expensive Exporter::export
         # if there is nothing to do (optimization)
         my %exportable = map { ($_, 1) } @export, @export_ok;
         next unless keys %exportable;
@@ -163,7 +170,7 @@
 sub all_my_bases {
     my $class = shift;
 
-    return $bases_map->{$class} 
+    return $bases_map->{$class}
       if defined $bases_map->{$class};
 
     my @bases = ($class);
@@ -175,10 +182,10 @@
     $bases_map->{$class} = [grep {not $used->{$_}++} @bases];
 }
 
-my %code = ( 
-    sub_start => 
+my %code = (
+    sub_start =>
       "sub {\n",
-    set_default => 
+    set_default =>
       "  \$_[0]->{%s} = %s\n    unless exists \$_[0]->{%s};\n",
     init =>
       "  return \$_[0]->{%s} = do { my \$self = \$_[0]; %s }\n" .
@@ -189,13 +196,13 @@
       "    Scalar::Util::weaken(\$_[0]->{%s}) if ref \$_[0]->{%s};\n" .
       "    \$_[0]->{%s};\n" .
       "  } unless \$#_ > 0 or defined \$_[0]->{%s};\n",
-    return_if_get => 
+    return_if_get =>
       "  return \$_[0]->{%s} unless \$#_ > 0;\n",
-    set => 
+    set =>
       "  \$_[0]->{%s} = \$_[1];\n",
-    weaken => 
+    weaken =>
       "  Scalar::Util::weaken(\$_[0]->{%s}) if ref \$_[0]->{%s};\n",
-    sub_end => 
+    sub_end =>
       "  return \$_[0]->{%s};\n}\n",
 );
 
@@ -229,7 +236,7 @@
       if defined $default;
     $code .= sprintf $code{return_if_get}, $field;
     $code .= sprintf $code{set}, $field;
-    $code .= sprintf $code{weaken}, $field, $field 
+    $code .= sprintf $code{weaken}, $field, $field
       if $args->{-weak};
     $code .= sprintf $code{sub_end}, $field;
 
@@ -274,10 +281,10 @@
     $package = $args->{-package} if defined $args->{-package};
     no strict 'refs';
     return if defined &{"${package}::$field"};
-    *{"${package}::$field"} = 
-    sub { 
+    *{"${package}::$field"} =
+    sub {
         require Carp;
-        Carp::confess 
+        Carp::confess
           "Method $field in package $package must be subclassed";
     }
 }
@@ -301,7 +308,7 @@
             push @values, $elem;
         }
     }
-    return wantarray ? ($args, @values) : $args;        
+    return wantarray ? ($args, @values) : $args;
 }
 
 sub boolean_arguments { () }
@@ -325,8 +332,8 @@
 package DB;
 {
     no warnings 'redefine';
-    sub super_args { 
-        my @dummy = caller(@_ ? $_[0] : 2); 
+    sub super_args {
+        my @dummy = caller(@_ ? $_[0] : 2);
         return @DB::args;
     }
 }
@@ -397,7 +404,7 @@
     my $inheritor = caller(0);
     for my $base_class (@base_classes) {
         next if $inheritor->isa($base_class);
-        croak "Can't mix Spiffy and non-Spiffy classes in 'use base'.\n", 
+        croak "Can't mix Spiffy and non-Spiffy classes in 'use base'.\n",
               "See the documentation of Spiffy.pm for details\n  "
           unless $base_class->isa('Spiffy');
         $stack_frame = 1; # tell import to use different caller
@@ -439,7 +446,7 @@
         $methods{$_}
           ? ($_, \ &{"$methods{$_}\::$_"})
           : ($_, \ &{"$mixin_class\::$_"})
-    } @_ 
+    } @_
       ? (get_roles($mixin_class, @_))
       : (keys %methods);
 }
@@ -450,12 +457,12 @@
     while (grep /^!*:/, @roles) {
         @roles = map {
             s/!!//g;
-            /^!:(.*)/ ? do { 
-                my $m = "_role_$1"; 
+            /^!:(.*)/ ? do {
+                my $m = "_role_$1";
                 map("!$_", $mixin_class->$m);
             } :
             /^:(.*)/ ? do {
-                my $m = "_role_$1"; 
+                my $m = "_role_$1";
                 ($mixin_class->$m);
             } :
             ($_)
@@ -534,6 +541,3 @@
 
 1;
 
-__END__
-
-#line 1066
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-StackTrace-AsHTML-0.11/inc/Test/Base/Filter.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Test/Base/Filter.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Test/Base/Filter.pm    2011-01-25 
08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Test/Base/Filter.pm    2013-02-18 
20:41:20.000000000 +0100
@@ -1,7 +1,4 @@
 #line 1
-#. TODO:
-#.
-
 
#===============================================================================
 # This is the default class for handling Test::Base data filtering.
 
#===============================================================================
@@ -341,4 +338,4 @@
 
 __DATA__
 
-#line 639
+#line 636
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-StackTrace-AsHTML-0.11/inc/Test/Base.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Test/Base.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Test/Base.pm   2011-01-25 
08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Test/Base.pm   2013-02-18 
20:41:20.000000000 +0100
@@ -1,11 +1,9 @@
 #line 1
-# TODO:
-#
 package Test::Base;
 use 5.006001;
 use Spiffy 0.30 -Base;
 use Spiffy ':XXX';
-our $VERSION = '0.59';
+our $VERSION = '0.60';
 
 my @test_more_exports;
 BEGIN {
@@ -536,7 +534,7 @@
 sub tie_output() {
     my $handle = shift;
     die "No buffer to tie" unless @_;
-    tie $handle, 'Test::Base::Handle', $_[0];
+    tie *$handle, 'Test::Base::Handle', $_[0];
 }
 
 sub no_diff {
@@ -681,4 +679,4 @@
 
 =encoding utf8
 
-#line 1376
+#line 1374
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/inc/Test/Builder/Module.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Test/Builder/Module.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Test/Builder/Module.pm 2011-01-25 
08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Test/Builder/Module.pm 2013-02-18 
20:41:20.000000000 +0100
@@ -8,7 +8,7 @@
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = '0.96';
+our $VERSION = '0.98';
 $VERSION = eval $VERSION;      ## no critic 
(BuiltinFunctions::ProhibitStringyEval)
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-StackTrace-AsHTML-0.11/inc/Test/Builder.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Test/Builder.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Test/Builder.pm        2011-01-25 
08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Test/Builder.pm        2013-02-18 
20:41:20.000000000 +0100
@@ -5,7 +5,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '0.96';
+our $VERSION = '0.98';
 $VERSION = eval $VERSION;    ## no critic 
(BuiltinFunctions::ProhibitStringyEval)
 
 BEGIN {
@@ -191,6 +191,8 @@
     if( $self->{Child_Name} ) {
         $self->croak("Can't call finalize() with child ($self->{Child_Name}) 
active");
     }
+
+    local $? = 0;     # don't fail if $subtests happened to set $? nonzero
     $self->_ending;
 
     # XXX This will only be necessary for TAP envelopes (we think)
@@ -224,11 +226,11 @@
     return $self->{Indent};
 }
 
-#line 357
+#line 359
 
 sub parent { shift->{Parent} }
 
-#line 369
+#line 371
 
 sub name { shift->{Name} }
 
@@ -244,7 +246,7 @@
     }
 }
 
-#line 393
+#line 395
 
 our $Level;
 
@@ -291,7 +293,7 @@
     return;
 }
 
-#line 472
+#line 474
 
 my %plan_cmds = (
     no_plan     => \&no_plan,
@@ -338,7 +340,7 @@
     return;
 }
 
-#line 527
+#line 529
 
 sub expected_tests {
     my $self = shift;
@@ -356,7 +358,7 @@
     return $self->{Expected_Tests};
 }
 
-#line 551
+#line 553
 
 sub no_plan {
     my($self, $arg) = @_;
@@ -369,7 +371,7 @@
     return 1;
 }
 
-#line 584
+#line 586
 
 sub _output_plan {
     my($self, $max, $directive, $reason) = @_;
@@ -388,7 +390,7 @@
 }
 
 
-#line 636
+#line 638
 
 sub done_testing {
     my($self, $num_tests) = @_;
@@ -431,7 +433,7 @@
 }
 
 
-#line 687
+#line 689
 
 sub has_plan {
     my $self = shift;
@@ -441,7 +443,7 @@
     return(undef);
 }
 
-#line 704
+#line 706
 
 sub skip_all {
     my( $self, $reason ) = @_;
@@ -455,7 +457,7 @@
     exit(0);
 }
 
-#line 729
+#line 731
 
 sub exported_to {
     my( $self, $pack ) = @_;
@@ -466,7 +468,7 @@
     return $self->{Exported_To};
 }
 
-#line 759
+#line 761
 
 sub ok {
     my( $self, $test, $name ) = @_;
@@ -626,7 +628,7 @@
     return $numval != 0 and $numval ne $val ? 1 : 0;
 }
 
-#line 933
+#line 939
 
 sub is_eq {
     my( $self, $got, $expect, $name ) = @_;
@@ -705,7 +707,7 @@
 DIAGNOSTIC
 }
 
-#line 1026
+#line 1032
 
 sub isnt_eq {
     my( $self, $got, $dont_expect, $name ) = @_;
@@ -739,7 +741,7 @@
     return $self->cmp_ok( $got, '!=', $dont_expect, $name );
 }
 
-#line 1075
+#line 1081
 
 sub like {
     my( $self, $this, $regex, $name ) = @_;
@@ -755,7 +757,7 @@
     return $self->_regex_ok( $this, $regex, '!~', $name );
 }
 
-#line 1099
+#line 1105
 
 my %numeric_cmps = map { ( $_, 1 ) } ( "<", "<=", ">", ">=", "==", "!=", "<=>" 
);
 
@@ -836,7 +838,7 @@
     return $code;
 }
 
-#line 1199
+#line 1205
 
 sub BAIL_OUT {
     my( $self, $reason ) = @_;
@@ -846,14 +848,14 @@
     exit 255;
 }
 
-#line 1212
+#line 1218
 
 {
     no warnings 'once';
     *BAILOUT = \&BAIL_OUT;
 }
 
-#line 1226
+#line 1232
 
 sub skip {
     my( $self, $why ) = @_;
@@ -884,7 +886,7 @@
     return 1;
 }
 
-#line 1267
+#line 1273
 
 sub todo_skip {
     my( $self, $why ) = @_;
@@ -912,7 +914,7 @@
     return 1;
 }
 
-#line 1347
+#line 1353
 
 sub maybe_regex {
     my( $self, $regex ) = @_;
@@ -992,7 +994,7 @@
 # I'm not ready to publish this.  It doesn't deal with array return
 # values from the code or context.
 
-#line 1443
+#line 1449
 
 sub _try {
     my( $self, $code, %opts ) = @_;
@@ -1012,7 +1014,7 @@
     return wantarray ? ( $return, $error ) : $return;
 }
 
-#line 1472
+#line 1478
 
 sub is_fh {
     my $self     = shift;
@@ -1026,7 +1028,7 @@
            eval { tied($maybe_fh)->can('TIEHANDLE') };
 }
 
-#line 1515
+#line 1521
 
 sub level {
     my( $self, $level ) = @_;
@@ -1037,7 +1039,7 @@
     return $Level;
 }
 
-#line 1547
+#line 1553
 
 sub use_numbers {
     my( $self, $use_nums ) = @_;
@@ -1048,7 +1050,7 @@
     return $self->{Use_Nums};
 }
 
-#line 1580
+#line 1586
 
 foreach my $attribute (qw(No_Header No_Ending No_Diag)) {
     my $method = lc $attribute;
@@ -1066,7 +1068,7 @@
     *{ __PACKAGE__ . '::' . $method } = $code;
 }
 
-#line 1633
+#line 1639
 
 sub diag {
     my $self = shift;
@@ -1074,7 +1076,7 @@
     $self->_print_comment( $self->_diag_fh, @_ );
 }
 
-#line 1648
+#line 1654
 
 sub note {
     my $self = shift;
@@ -1111,7 +1113,7 @@
     return 0;
 }
 
-#line 1698
+#line 1704
 
 sub explain {
     my $self = shift;
@@ -1130,7 +1132,7 @@
     } @_;
 }
 
-#line 1727
+#line 1733
 
 sub _print {
     my $self = shift;
@@ -1159,7 +1161,7 @@
     return print $fh $indent, $msg;
 }
 
-#line 1787
+#line 1793
 
 sub output {
     my( $self, $fh ) = @_;
@@ -1255,8 +1257,8 @@
     open( $Testout, ">&STDOUT" ) or die "Can't dup STDOUT:  $!";
     open( $Testerr, ">&STDERR" ) or die "Can't dup STDERR:  $!";
 
-    #    $self->_copy_io_layers( \*STDOUT, $Testout );
-    #    $self->_copy_io_layers( \*STDERR, $Testerr );
+    $self->_copy_io_layers( \*STDOUT, $Testout );
+    $self->_copy_io_layers( \*STDERR, $Testerr );
 
     $self->{Opened_Testhandles} = 1;
 
@@ -1271,14 +1273,22 @@
             require PerlIO;
             my @src_layers = PerlIO::get_layers($src);
 
-            binmode $dst, join " ", map ":$_", @src_layers if @src_layers;
+            _apply_layers($dst, @src_layers) if @src_layers;
         }
     );
 
     return;
 }
 
-#line 1912
+sub _apply_layers {
+    my ($fh, @layers) = @_;
+    my %seen;
+    my @unique = grep { $_ ne 'unix' and !$seen{$_}++ } @layers;
+    binmode($fh, join(":", "", "raw", @unique));
+}
+
+
+#line 1926
 
 sub reset_outputs {
     my $self = shift;
@@ -1290,7 +1300,7 @@
     return;
 }
 
-#line 1938
+#line 1952
 
 sub _message_at_caller {
     my $self = shift;
@@ -1311,7 +1321,7 @@
 }
 
 
-#line 1978
+#line 1992
 
 sub current_test {
     my( $self, $num ) = @_;
@@ -1344,7 +1354,7 @@
     return $self->{Curr_Test};
 }
 
-#line 2026
+#line 2040
 
 sub is_passing {
     my $self = shift;
@@ -1357,7 +1367,7 @@
 }
 
 
-#line 2048
+#line 2062
 
 sub summary {
     my($self) = shift;
@@ -1365,14 +1375,14 @@
     return map { $_->{'ok'} } @{ $self->{Test_Results} };
 }
 
-#line 2103
+#line 2117
 
 sub details {
     my $self = shift;
     return @{ $self->{Test_Results} };
 }
 
-#line 2132
+#line 2146
 
 sub todo {
     my( $self, $pack ) = @_;
@@ -1386,7 +1396,7 @@
     return '';
 }
 
-#line 2159
+#line 2173
 
 sub find_TODO {
     my( $self, $pack, $set, $new_value ) = @_;
@@ -1400,7 +1410,7 @@
     return $old_value;
 }
 
-#line 2179
+#line 2193
 
 sub in_todo {
     my $self = shift;
@@ -1409,7 +1419,7 @@
     return( defined $self->{Todo} || $self->find_TODO ) ? 1 : 0;
 }
 
-#line 2229
+#line 2243
 
 sub todo_start {
     my $self = shift;
@@ -1424,7 +1434,7 @@
     return;
 }
 
-#line 2251
+#line 2265
 
 sub todo_end {
     my $self = shift;
@@ -1445,7 +1455,7 @@
     return;
 }
 
-#line 2284
+#line 2298
 
 sub caller {    ## no critic (Subroutines::ProhibitBuiltinHomonyms)
     my( $self, $height ) = @_;
@@ -1460,10 +1470,10 @@
     return wantarray ? @caller : $caller[0];
 }
 
-#line 2301
-
 #line 2315
 
+#line 2329
+
 #'#
 sub _sanity_check {
     my $self = shift;
@@ -1475,7 +1485,7 @@
     return;
 }
 
-#line 2336
+#line 2350
 
 sub _whoa {
     my( $self, $check, $desc ) = @_;
@@ -1490,7 +1500,7 @@
     return;
 }
 
-#line 2360
+#line 2374
 
 sub _my_exit {
     $? = $_[0];    ## no critic (Variables::RequireLocalizedPunctuationVars)
@@ -1498,7 +1508,7 @@
     return 1;
 }
 
-#line 2372
+#line 2386
 
 sub _ending {
     my $self = shift;
@@ -1617,7 +1627,7 @@
     $Test->_ending if defined $Test;
 }
 
-#line 2560
+#line 2574
 
 1;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-StackTrace-AsHTML-0.11/inc/Test/More.pm 
new/Devel-StackTrace-AsHTML-0.14/inc/Test/More.pm
--- old/Devel-StackTrace-AsHTML-0.11/inc/Test/More.pm   2011-01-25 
08:08:56.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/inc/Test/More.pm   2013-02-18 
20:41:20.000000000 +0100
@@ -18,7 +18,7 @@
     return warn @_, " at $file line $line\n";
 }
 
-our $VERSION = '0.96';
+our $VERSION = '0.98';
 $VERSION = eval $VERSION;    ## no critic 
(BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Builder::Module;
@@ -88,7 +88,7 @@
     return $tb->ok( $test, $name );
 }
 
-#line 367
+#line 372
 
 sub is ($$;$) {
     my $tb = Test::More->builder;
@@ -104,7 +104,7 @@
 
 *isn't = \&isnt;
 
-#line 411
+#line 416
 
 sub like ($$;$) {
     my $tb = Test::More->builder;
@@ -112,7 +112,7 @@
     return $tb->like(@_);
 }
 
-#line 426
+#line 431
 
 sub unlike ($$;$) {
     my $tb = Test::More->builder;
@@ -120,7 +120,7 @@
     return $tb->unlike(@_);
 }
 
-#line 471
+#line 476
 
 sub cmp_ok($$$;$) {
     my $tb = Test::More->builder;
@@ -128,7 +128,7 @@
     return $tb->cmp_ok(@_);
 }
 
-#line 506
+#line 511
 
 sub can_ok ($@) {
     my( $proto, @methods ) = @_;
@@ -162,7 +162,7 @@
     return $ok;
 }
 
-#line 572
+#line 577
 
 sub isa_ok ($$;$) {
     my( $object, $class, $obj_name ) = @_;
@@ -222,7 +222,7 @@
     return $ok;
 }
 
-#line 651
+#line 656
 
 sub new_ok {
     my $tb = Test::More->builder;
@@ -247,16 +247,16 @@
     return $obj;
 }
 
-#line 736
+#line 741
 
-sub subtest($&) {
+sub subtest {
     my ($name, $subtests) = @_;
 
     my $tb = Test::More->builder;
     return $tb->subtest(@_);
 }
 
-#line 760
+#line 765
 
 sub pass (;$) {
     my $tb = Test::More->builder;
@@ -270,7 +270,7 @@
     return $tb->ok( 0, @_ );
 }
 
-#line 823
+#line 833
 
 sub use_ok ($;@) {
     my( $module, @imports ) = @_;
@@ -332,7 +332,7 @@
     return( $eval_result, $eval_error );
 }
 
-#line 892
+#line 902
 
 sub require_ok ($) {
     my($module) = shift;
@@ -376,7 +376,7 @@
     return $module =~ /^[a-zA-Z]\w*$/ ? 1 : 0;
 }
 
-#line 969
+#line 979
 
 our( @Data_Stack, %Refs_Seen );
 my $DNE = bless [], 'Does::Not::Exist';
@@ -483,7 +483,7 @@
     return '';
 }
 
-#line 1129
+#line 1139
 
 sub diag {
     return Test::More->builder->diag(@_);
@@ -493,13 +493,13 @@
     return Test::More->builder->note(@_);
 }
 
-#line 1155
+#line 1165
 
 sub explain {
     return Test::More->builder->explain(@_);
 }
 
-#line 1221
+#line 1231
 
 ## no critic (Subroutines::RequireFinalReturn)
 sub skip {
@@ -527,7 +527,7 @@
     last SKIP;
 }
 
-#line 1305
+#line 1315
 
 sub todo_skip {
     my( $why, $how_many ) = @_;
@@ -548,7 +548,7 @@
     last TODO;
 }
 
-#line 1360
+#line 1370
 
 sub BAIL_OUT {
     my $reason = shift;
@@ -557,7 +557,7 @@
     $tb->BAIL_OUT($reason);
 }
 
-#line 1399
+#line 1409
 
 #'#
 sub eq_array {
@@ -697,7 +697,7 @@
     }
 }
 
-#line 1546
+#line 1556
 
 sub eq_hash {
     local @Data_Stack = ();
@@ -732,7 +732,7 @@
     return $ok;
 }
 
-#line 1605
+#line 1615
 
 sub eq_set {
     my( $a1, $a2 ) = @_;
@@ -757,6 +757,6 @@
     );
 }
 
-#line 1807
+#line 1817
 
 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Devel-StackTrace-AsHTML-0.11/lib/Devel/StackTrace/AsHTML.pm 
new/Devel-StackTrace-AsHTML-0.14/lib/Devel/StackTrace/AsHTML.pm
--- old/Devel-StackTrace-AsHTML-0.11/lib/Devel/StackTrace/AsHTML.pm     
2011-01-25 08:08:45.000000000 +0100
+++ new/Devel-StackTrace-AsHTML-0.14/lib/Devel/StackTrace/AsHTML.pm     
2013-02-18 20:41:08.000000000 +0100
@@ -2,7 +2,7 @@
 
 use strict;
 use 5.008_001;
-our $VERSION = '0.11';
+our $VERSION = '0.14';
 
 use Data::Dumper;
 use Devel::StackTrace;
@@ -91,10 +91,11 @@
     my $i = 0;
     while (my $frame = $trace->next_frame) {
         $i++;
+        my $next_frame = $trace->frame($i); # peek next
         $out .= join(
             '',
             '<li class="frame">',
-            $frame->subroutine ? encode_html("in " . $frame->subroutine) : '',
+            ($next_frame && $next_frame->subroutine) ? encode_html("in " . 
$next_frame->subroutine) : '',
             ' at ',
             $frame->filename ? encode_html($frame->filename) : '',
             ' line ',
@@ -102,7 +103,7 @@
             q(<pre class="context"><code>),
             _build_context($frame) || '',
             q(</code></pre>),
-            _build_arguments($i, [$frame->args]),
+            _build_arguments($i, $next_frame),
             $frame->can('lexicals') ? _build_lexicals($i, $frame->lexicals) : 
'',
             q(</li>),
         );
@@ -123,16 +124,18 @@
 };
 
 sub _build_arguments {
-    my($id, $args) = @_;
+    my($id, $frame) = @_;
     my $ref = "arg-$id";
 
-    return '' unless @$args;
+    return '' unless $frame && $frame->args;
+
+    my @args = $frame->args;
 
     my $html = qq(<p><a class="toggle" id="toggle-$ref" 
href="javascript:toggleArguments('$ref')">Show function arguments</a></p><table 
class="arguments" id="arguments-$ref">);
 
     # Don't use while each since Dumper confuses that
-    for my $idx (0 .. @$args - 1) {
-        my $value = $args->[$idx];
+    for my $idx (0 .. @args - 1) {
+        my $value = $args[$idx];
         my $dump = $dumper->($value);
         $html .= qq{<tr>};
         $html .= qq{<td class="variable">\$_[$idx]</td>};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-StackTrace-AsHTML-0.11/t/output.t 
new/Devel-StackTrace-AsHTML-0.14/t/output.t
--- old/Devel-StackTrace-AsHTML-0.11/t/output.t 2009-10-09 09:01:26.000000000 
+0200
+++ new/Devel-StackTrace-AsHTML-0.14/t/output.t 2013-02-18 20:40:45.000000000 
+0100
@@ -13,5 +13,6 @@
 bar(2);
 
 like $html, qr/match.*bar\(2\)/;
+like $html, qr!t[\\/]output\.t line 8.*\n.*in main::foo!;
 
 done_testing;

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to