This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Filter::Util::Call to CPAN version 1.58
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Tue, 12 Dec 2017 11:39:20 +0000 (11:39 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Tue, 12 Dec 2017 13:43:29 +0000 (13:43 +0000)
  [DELTA]

1.58 2017-11-15 rurban
----
  * Drop 5.005 support
  * Switch from DynaLoader to XSLoader [atoomic #5]
  * Replace use vars by our. [atoomic #5]
  * Lazy load Carp only when required. [atoomic #5]
  * Minor test improvements
  * Fix v5.8 cast warnings

Porting/Maintainers.pl
cpan/Filter-Util-Call/Call.pm
cpan/Filter-Util-Call/Call.xs
cpan/Filter-Util-Call/t/call.t

index cc26394..403b3f7 100755 (executable)
@@ -524,7 +524,7 @@ use File::Glob qw(:case);
     },
 
     'Filter::Util::Call' => {
-        'DISTRIBUTION' => 'RURBAN/Filter-1.57.tar.gz',
+        'DISTRIBUTION' => 'RURBAN/Filter-1.58.tar.gz',
         'FILES'        => q[cpan/Filter-Util-Call
                  pod/perlfilter.pod
                 ],
index f5c1e7b..cfe9cb7 100644 (file)
@@ -9,18 +9,17 @@
  
 package Filter::Util::Call ;
 
-require 5.005 ;
-require DynaLoader;
+require 5.006 ; # our
 require Exporter;
-use Carp ;
+
+use XSLoader ();
 use strict;
 use warnings;
-use vars qw($VERSION $XS_VERSION @ISA @EXPORT) ;
 
-@ISA = qw(Exporter DynaLoader);
-@EXPORT = qw( filter_add filter_del filter_read filter_read_exact) ;
-$VERSION = "1.57" ;
-$XS_VERSION = $VERSION;
+our @ISA = qw(Exporter);
+our @EXPORT = qw( filter_add filter_del filter_read filter_read_exact) ;
+our $VERSION = "1.58" ;
+our $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
 sub filter_read_exact($)
@@ -29,8 +28,10 @@ sub filter_read_exact($)
     my ($left)   = $size ;
     my ($status) ;
 
-    croak ("filter_read_exact: size parameter must be > 0")
-       unless $size > 0 ;
+    unless ( $size > 0 ) {
+        require Carp;
+        Carp::croak("filter_read_exact: size parameter must be > 0");
+    }
 
     # try to read a block which is exactly $size bytes long
     while ($left and ($status = filter_read($left)) > 0) {
@@ -59,7 +60,7 @@ sub filter_add($)
     Filter::Util::Call::real_import($obj, (caller)[0], $coderef) ;
 }
 
-bootstrap Filter::Util::Call ;
+XSLoader::load('Filter::Util::Call');
 
 1;
 __END__
index 487c20b..74c3676 100644 (file)
@@ -3,7 +3,7 @@
  * 
  * Author   : Paul Marquess 
  * Date     : 2014-12-09 02:48:44 rurban
- * Version  : 1.57
+ * Version  : 1.58
  *
  *    Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
  *    Copyright (c) 2011-2014 Reini Urban. All rights reserved.
index 7da20be..b2a0cad 100644 (file)
@@ -15,9 +15,9 @@ use warnings;
 
 use vars qw($Inc $Perl);
 
-print "1..32\n" ;
+print "1..34\n";
 
-$Perl = "$Perl -w" ;
+$Perl = "$Perl -w";
 
 use Cwd ;
 my $here = getcwd ;
@@ -39,39 +39,39 @@ my $redir   = $^O eq 'MacOS' ? "" : "2>&1";
 # Test error cases
 ##################
 
-# no filter function in module 
+# no filter function in module
 ###############################
 
 writeFile("${module}.pm", <<EOM) ;
 package ${module} ;
 
 use Filter::Util::Call ;
+
 sub import { filter_add(bless []) }
 
 1 ;
 EOM
+
 my $a = `$Perl "-I." $Inc -e "use ${module} ;"  $redir` ;
 ok(1, (($? >>8) != 0 or (($^O eq 'MSWin32' || $^O eq 'MacOS' || $^O eq 'NetWare' || $^O eq 'mpeix') && $? != 0))) ;
 ok(2, $a =~ /^Can't locate object method "filter" via package "MyTest"/m) ;
+
 # no reference parameter in filter_add
 ######################################
 
 writeFile("${module}.pm", <<EOM) ;
 package ${module} ;
+
 use Filter::Util::Call ;
+
 sub import { filter_add() }
+
 1 ;
 EOM
 
 $a = `$Perl "-I." $Inc -e "use ${module} ;"  $redir` ;
 #warn "# $a\n";
-ok(3, (($? >>8) != 0 
+ok(3, (($? >>8) != 0
        or (($^O eq 'MSWin32' || $^O eq 'MacOS' || $^O eq 'NetWare' || $^O eq 'mpeix')
            && $? != 0))) ;
 #ok(4, $a =~ /^usage: filter_add\(ref\) at ${module}.pm/) ;
@@ -99,17 +99,17 @@ if ($] < 5.007) {
 
 writeFile("${module}.pm", <<EOM, <<'EOM') ;
 package ${module} ;
+
 EOM
 use Filter::Util::Call ;
-sub import { 
+sub import {
     filter_add(
        sub {
 
            my ($status) ;
 
            if (($status = filter_read()) > 0) {
-               s/ABC/DEF/g 
+               s/ABC/DEF/g
            }
            $status ;
        } ) ;
@@ -117,7 +117,7 @@ sub import {
 
 1 ;
 EOM
+
 writeFile($filename, <<EOM, <<'EOM') ;
 
 use $module ;
@@ -144,34 +144,34 @@ EOM
 
 # a simple filter, not using a closure
 #################
+
 writeFile("${module}.pm", <<EOM, <<'EOM') ;
 package ${module} ;
+
 EOM
 use Filter::Util::Call ;
 sub import { filter_add(bless []) }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
+
     if (($status = filter_read()) > 0) {
         s/ABC/DEF/g
     }
     $status ;
 }
 
+
 1 ;
 EOM
+
 writeFile($filename, <<EOM, <<'EOM') ;
+
 use $module ;
 EOM
+
 use Cwd ;
 $here = getcwd ;
 print "I am $here\n" ;
@@ -180,9 +180,9 @@ $y = "ABCDEF" ;
 print <<EOF ;
 Alphabetti Spagetti ($y)
 EOF
+
 EOM
+
 $a = `$Perl "-I." $Inc $filename  $redir` ;
 ok(7, ($? >>8) == 0) ;
 ok(8, $a eq <<EOM) ;
@@ -199,32 +199,32 @@ EOM
 writeFile("${module2}.pm", <<EOM, <<'EOM') ;
 package ${module2} ;
 use Filter::Util::Call ;
+
 EOM
 sub import { filter_add(bless []) }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
+
     if (($status = filter_read()) > 0) {
         s/XYZ/PQR/g
     }
     $status ;
 }
+
 1 ;
 EOM
+
 writeFile("${module3}.pm", <<EOM, <<'EOM') ;
 package ${module3} ;
 use Filter::Util::Call ;
+
 EOM
 sub import { filter_add(
-    sub 
+
+    sub
     {
         my ($status) ;
 
@@ -252,50 +252,50 @@ EOM
 writeFile("${module5}.pm", <<EOM, <<'EOM') ;
 package ${module5} ;
 use Filter::Util::Call ;
+
 EOM
 sub import { filter_add(bless []) }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
+
     if (($status = filter_read()) > 0) {
         s/Today/Tomorrow/g
     }
     $status ;
 }
+
 1 ;
 EOM
 
 writeFile($filename, <<EOM, <<'EOM') ;
+
 # two filters for this file
 use $module ;
 use $module2 ;
 require "$nested" ;
 use $module4 ;
 EOM
+
 print "some letters ABCXYZ\n" ;
 $y = "ABCDEFXYZ" ;
 print <<EOF ;
 Fred likes Alphabetti Spagetti ($y)
 EOF
+
 EOM
+
 writeFile($nested, <<EOM, <<'EOM') ;
 use $module3 ;
 EOM
+
 print "This is another file XYZ\n" ;
 print <<EOF ;
 Where is Fred?
 EOF
+
 EOM
 
 $a = `$Perl "-I." $Inc $filename  $redir` ;
@@ -312,61 +312,61 @@ EOM
 
 # using the module context (with a closure)
 ###########################################
+
+
 writeFile("${module2}.pm", <<EOM, <<'EOM') ;
 package ${module2} ;
 use Filter::Util::Call ;
+
 EOM
 sub import
 {
     my ($type) = shift ;
     my (@strings) = @_ ;
+
+
     filter_add (
-       sub 
+
+       sub
        {
            my ($status) ;
            my ($pattern) ;
-            
+
            if (($status = filter_read()) > 0) {
                 foreach $pattern (@strings)
                    { s/$pattern/PQR/g }
            }
-            
+
            $status ;
        }
        )
+
 }
 1 ;
 EOM
+
+
 writeFile($filename, <<EOM, <<'EOM') ;
+
 use $module2 qw( XYZ KLM) ;
 use $module2 qw( ABC NMO) ;
 EOM
+
 print "some letters ABCXYZ KLM NMO\n" ;
 $y = "ABCDEFXYZKLMNMO" ;
 print <<EOF ;
 Alphabetti Spagetti ($y)
 EOF
+
 EOM
+
 $a = `$Perl "-I." $Inc $filename  $redir` ;
 ok(11, ($? >>8) == 0) ;
 ok(12, $a eq <<EOM) ;
 some letters PQRPQR PQR PQR
 Alphabetti Spagetti (PQRDEFPQRPQRPQR)
 EOM
+
 
 
 # using the module context (without a closure)
@@ -376,23 +376,23 @@ EOM
 writeFile("${module2}.pm", <<EOM, <<'EOM') ;
 package ${module2} ;
 use Filter::Util::Call ;
+
 EOM
-sub import 
-{ 
+sub import
+{
     my ($type) = shift ;
     my (@strings) = @_ ;
 
-  
-    filter_add (bless [@strings]) 
+
+    filter_add (bless [@strings])
 }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
     my ($pattern) ;
+
     if (($status = filter_read()) > 0) {
        foreach $pattern (@$self)
           { s/$pattern/PQR/g }
@@ -400,25 +400,25 @@ sub filter
 
     $status ;
 }
+
 1 ;
 EOM
+
+
 writeFile($filename, <<EOM, <<'EOM') ;
+
 use $module2 qw( XYZ KLM) ;
 use $module2 qw( ABC NMO) ;
 EOM
+
 print "some letters ABCXYZ KLM NMO\n" ;
 $y = "ABCDEFXYZKLMNMO" ;
 print <<EOF ;
 Alphabetti Spagetti ($y)
 EOF
+
 EOM
+
 $a = `$Perl "-I." $Inc $filename  $redir` ;
 ok(13, ($? >>8) == 0) ;
 ok(14, $a eq <<EOM) ;
@@ -433,22 +433,22 @@ EOM
 writeFile("${module2}.pm", <<EOM, <<'EOM') ;
 package ${module2} ;
 use Filter::Util::Call ;
+
 EOM
 sub import
-{ 
+{
     my ($type) = shift ;
     my (@strings) = @_ ;
 
-  
-    filter_add(bless []) 
+
+    filter_add(bless [])
 }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
+
     # read first line
     if (($status = filter_read()) > 0) {
        chop ;
@@ -459,32 +459,33 @@ sub filter
 
     $status ;
 }
+
 1 ;
 EOM
+
+
 writeFile($filename, <<EOM, <<'EOM') ;
+
 use $module2  ;
 EOM
 print "don't cut me 
 in half\n" ;
-print  
+print 
 <<EOF ;
 appen
 ded
 EO
 F
+
 EOM
+
 $a = `$Perl "-I." $Inc $filename  $redir` ;
 ok(15, ($? >>8) == 0) ;
 ok(16, $a eq <<EOM) ;
 don't cut me in half
 appended
 EOM
+#print "# $a\n";
 
 # Block test
 #############
@@ -492,26 +493,26 @@ EOM
 writeFile("${block}.pm", <<EOM, <<'EOM') ;
 package ${block} ;
 use Filter::Util::Call ;
+
 EOM
 sub import
-{ 
+{
     my ($type) = shift ;
     my (@strings) = @_ ;
 
-  
+
     filter_add (bless [@strings] )
 }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
     my ($pattern) ;
+
     filter_read(20)  ;
 }
+
 1 ;
 EOM
 
@@ -525,7 +526,7 @@ EOM
 writeFile($filename, <<EOM, $string ) ;
 use $block ;
 EOM
+
 $a = `$Perl "-I." $Inc $filename  $redir` ;
 ok(17, ($? >>8) == 0) ;
 ok(18, $a eq <<EOM) ;
@@ -540,31 +541,31 @@ EOM
 writeFile("${block}.pm", <<EOM, <<'EOM') ;
 package ${block} ;
 use Filter::Util::Call ;
+
 EOM
 use Cwd ;
 
 sub import
-{ 
+{
     my ($type) = shift ;
     my (@strings) = @_ ;
 
-  
+
     filter_add(bless [@strings] )
 }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
     my ($here) = quotemeta getcwd ;
+
     if (($status = filter_read()) > 0) {
         s/DIR/$here/g
     }
     $status ;
 }
+
 1 ;
 EOM
 
@@ -573,7 +574,7 @@ use $block ;
 EOM
 print "We are in DIR\n" ;
 EOM
+
 $a = `$Perl "-I." $Inc $filename  $redir` ;
 ok(19, ($? >>8) == 0) ;
 ok(20, $a eq <<EOM) ;
@@ -583,27 +584,27 @@ EOM
 
 # filter_del
 #############
+
 writeFile("${block}.pm", <<EOM, <<'EOM') ;
 package ${block} ;
 use Filter::Util::Call ;
+
 EOM
+
 sub import
 {
     my ($type) = shift ;
     my ($count) = @_ ;
+
+
     filter_add(bless \$count )
 }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
+
     s/HERE/THERE/g
         if ($status = filter_read()) > 0 ;
 
@@ -612,10 +613,10 @@ sub filter
 
     $status ;
 }
+
 1 ;
 EOM
+
 writeFile($filename, <<EOM, <<'EOM') ;
 use $block (3) ;
 EOM
@@ -624,7 +625,7 @@ HERE I am
 I am HERE
 HERE today gone tomorrow\n" ;
 EOM
+
 $a = `$Perl "-I." $Inc $filename  $redir` ;
 ok(21, ($? >>8) == 0) ;
 ok(22, $a eq <<EOM) ;
@@ -637,35 +638,35 @@ EOM
 
 # filter_read_exact
 ####################
+
 writeFile("${block}.pm", <<EOM, <<'EOM') ;
 package ${block} ;
 use Filter::Util::Call ;
+
 EOM
+
 sub import
 {
     my ($type) = shift ;
+
     filter_add(bless [] )
 }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
+
     if (($status = filter_read_exact(9)) > 0) {
         s/HERE/THERE/g
     }
+
     $status ;
 }
+
 1 ;
 EOM
+
 writeFile($filenamebin, <<EOM, <<'EOM') ;
 use $block ;
 EOM
@@ -674,7 +675,7 @@ HERE I am
 I'm HERE
 HERE today gone tomorrow\n" ;
 EOM
+
 $a = `$Perl "-I." $Inc $filenamebin  $redir` ;
 ok(23, ($? >>8) == 0) ;
 ok(24, $a eq <<EOM) ;
@@ -688,35 +689,35 @@ EOM
 
 # Check __DATA__
 ####################
+
 writeFile("${block}.pm", <<EOM, <<'EOM') ;
 package ${block} ;
 use Filter::Util::Call ;
+
 EOM
+
 sub import
 {
     my ($type) = shift ;
+
     filter_add([])
 }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
+
     if (($status = filter_read()) > 0) {
         s/HERE/THERE/g
     }
+
     $status ;
 }
+
 1 ;
 EOM
+
 writeFile($filename, <<EOM, <<'EOM') ;
 use $block ;
 EOM
@@ -728,7 +729,7 @@ HERE I am
 I'm HERE
 HERE today gone tomorrow
 EOM
+
 $a = `$Perl "-I." $Inc $filename  $redir` ;
 ok(25, ($? >>8) == 0) ;
 ok(26, $a eq <<EOM) ;
@@ -744,35 +745,35 @@ EOM
 
 # Check __END__
 ####################
+
 writeFile("${block}.pm", <<EOM, <<'EOM') ;
 package ${block} ;
 use Filter::Util::Call ;
+
 EOM
+
 sub import
 {
     my ($type) = shift ;
+
     filter_add(bless [] )
 }
+
 sub filter
 {
     my ($self) = @_ ;
     my ($status) ;
+
     if (($status = filter_read()) > 0) {
         s/HERE/THERE/g
     }
+
     $status ;
 }
+
 1 ;
 EOM
+
 writeFile($filename, <<EOM, <<'EOM') ;
 use $block ;
 EOM
@@ -784,7 +785,7 @@ HERE I am
 I'm HERE
 HERE today gone tomorrow
 EOM
+
 $a = `$Perl "-I." $Inc $filename  $redir` ;
 ok(27, ($? >>8) == 0) ;
 ok(28, $a eq <<EOM) ;
@@ -830,6 +831,48 @@ ok(32, $a eq 'ok');
 
 }
 
+# error: filter_read_exact: size parameter must be > 0
+######################################
+
+writeFile("${block}.pm", <<EOM, <<'EOM') ;
+package ${block} ;
+use Filter::Util::Call ;
+
+EOM
+
+sub import
+{
+    my ($type) = shift ;
+    filter_add(bless [] )
+}
+
+sub filter
+{
+    my ($self) = @_ ;
+    my ($status) ;
+    if (($status = filter_read_exact(0)) > 0) {
+        s/HERE/THERE/g
+    }
+    $status ;
+}
+
+1 ;
+EOM
+
+writeFile($filenamebin, <<EOM, <<'EOM') ;
+use $block ;
+EOM
+print "
+HERE I am
+I'm HERE
+HERE today gone tomorrow\n" ;
+EOM
+
+$a = `$Perl "-I." $Inc $filenamebin  $redir` ;
+ok(33, ($? >>8) != 0) ;
+ok(34, $a =~ /^filter_read_exact: size parameter must be > 0 at block.pm/) ;
+
+
 END {
     1 while unlink $filename ;
     1 while unlink $filename2 ;