Change 34388 by [EMAIL PROTECTED] on 2008/09/21 17:18:15

        Subject: Fwd: CPAN Upload: S/SA/SAPER/XSLoader-0.09.tar.gz
        From: Sébastien Aperghis-Tramoni <[EMAIL PROTECTED]>
        Date: Sun, 21 Sep 2008 18:31:48 +0200
        Message-Id: <[EMAIL PROTECTED]>

Affected files ...

... //depot/perl/ext/DynaLoader/XSLoader_pm.PL#16 edit
... //depot/perl/ext/DynaLoader/t/XSLoader.t#10 edit

Differences ...

==== //depot/perl/ext/DynaLoader/XSLoader_pm.PL#16 (text) ====
Index: perl/ext/DynaLoader/XSLoader_pm.PL
--- perl/ext/DynaLoader/XSLoader_pm.PL#15~31117~        2007-05-02 
05:42:04.000000000 -0700
+++ perl/ext/DynaLoader/XSLoader_pm.PL  2008-09-21 10:18:15.000000000 -0700
@@ -15,7 +15,7 @@
 
 package XSLoader;
 
-$VERSION = "0.08";
+$VERSION = "0.09";
 
 #use strict;
 
@@ -44,8 +44,8 @@
     my($module) = $_[0];
 
     # work with static linking too
-    my $b = "$module\::bootstrap";
-    goto &$b if defined &$b;
+    my $boots = "$module\::bootstrap";
+    goto &$boots if defined &$boots;
 
     goto retry unless $module and defined &dl_load_file;
 
@@ -81,6 +81,12 @@
     my $bs = $file;
     $bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library
 
+    if (-s $bs) { # only read file if it's not empty
+        print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug;
+        eval { do $bs; };
+        warn "$bs: [EMAIL PROTECTED]" if $@;
+    }
+
     goto retry if not -f $file or -s $bs;
 
     my $bootname = "boot_$module";
@@ -127,7 +133,7 @@
     push(@DynaLoader::dl_modules, $module); # record loaded module
 
   boot:
-    my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file);
+    my $xs = dl_install_xsub($boots, $boot_symbol_ref, $file);
 
     # See comment block above
     push(@DynaLoader::dl_shared_objects, $file); # record files loaded
@@ -162,7 +168,7 @@
 
 =head1 VERSION
 
-Version 0.08
+Version 0.09
 
 =head1 SYNOPSIS
 
@@ -388,7 +394,9 @@
 Previous maintainer was Michael G Schwern <[EMAIL PROTECTED]>.
 
 
-=head1 COPYRIGHT
+=head1 COPYRIGHT & LICENSE
+
+Copyright (C) 1990-2007 by Larry Wall and others.
 
 This program is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.

==== //depot/perl/ext/DynaLoader/t/XSLoader.t#10 (text) ====
Index: perl/ext/DynaLoader/t/XSLoader.t
--- perl/ext/DynaLoader/t/XSLoader.t#9~31005~   2007-04-21 02:20:56.000000000 
-0700
+++ perl/ext/DynaLoader/t/XSLoader.t    2008-09-21 10:18:15.000000000 -0700
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -T
+#!perl -T
 
 BEGIN {
     if( $ENV{PERL_CORE} ) {
@@ -37,7 +37,7 @@
     'Time::HiRes'=> q| ::can_ok( 'Time::HiRes' => 'usleep'  ) |,  # 5.7.3
 );
 
-plan tests => keys(%modules) * 3 + 5;
+plan tests => keys(%modules) * 4 + 5;
 
 # Try to load the module
 use_ok( 'XSLoader' );
@@ -60,12 +60,17 @@
 $extensions =~ s|/|::|g;
 
 for my $module (sort keys %modules) {
+    my $warnings = "";
+    local $SIG{__WARN__} = sub { $warnings = $_[0] };
+
     SKIP: {
-        skip "$module not available", 3 if $extensions !~ /\b$module\b/;
+        skip "$module not available", 4 if $extensions !~ /\b$module\b/;
 
         eval qq{ package $module; XSLoader::load('$module', "qunckkk"); };
         like( $@, "/^$module object version \\S+ does not match bootstrap 
parameter (?:qunckkk|0)/",  
                 "calling XSLoader::load() with a XS module and an incorrect 
version" );
+        like( $warnings, "/^\$|^Version string 'qunckkk' contains invalid 
data; ignoring: 'qunckkk'/", 
+                "in Perl 5.10, DynaLoader warns about the incorrect version 
string" );
 
         eval qq{ package $module; XSLoader::load('$module'); };
         is( $@, '',  "XSLoader::load($module)");
End of Patch.

Reply via email to