From 494e8c4c5adaa727ffac6b9649bf8b70f2620e94 Mon Sep 17 00:00:00 2001 From: Chris 'BinGOs' Williams Date: Tue, 13 Jul 2010 12:08:05 +0100 Subject: [PATCH] Update ExtUtil-ParseXS to CPAN version 2.2206 [DELTA] 2.2206 - Sun Jul 4 15:43:21 EDT 2010 Bug fixes: - Make xsubpp accept the _ prototype (RT#57157) [Rafael Garcia-Suarez] - INCLUDE_COMMAND portability fixes for VMS (RT#58181) [Craig Berry] - INCLUDE_COMMAND fixes to detect non-zero exit codes (RT#52873) [Steffen Mueller] --- Porting/Maintainers.pl | 2 +- cpan/ExtUtils-ParseXS/Changes | 11 +++++++++++ cpan/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm | 28 +++++++++++++++++++++------ cpan/ExtUtils-ParseXS/lib/ExtUtils/xsubpp | 0 4 files changed, 34 insertions(+), 7 deletions(-) mode change 100755 => 100644 cpan/ExtUtils-ParseXS/lib/ExtUtils/xsubpp diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index a1e4458..224d615 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -592,7 +592,7 @@ use File::Glob qw(:case); 'ExtUtils::ParseXS' => { 'MAINTAINER' => 'kwilliams', - 'DISTRIBUTION' => 'DAGOLDEN/ExtUtils-ParseXS-2.2205.tar.gz', + 'DISTRIBUTION' => 'DAGOLDEN/ExtUtils-ParseXS-2.2206.tar.gz', 'EXCLUDED' => [ qw{ t/bugs/RT48104.xs t/bugs/typemap diff --git a/cpan/ExtUtils-ParseXS/Changes b/cpan/ExtUtils-ParseXS/Changes index b7e7b0b..45b30a5 100644 --- a/cpan/ExtUtils-ParseXS/Changes +++ b/cpan/ExtUtils-ParseXS/Changes @@ -1,5 +1,16 @@ Revision history for Perl extension ExtUtils::ParseXS. +2.2206 - Sun Jul 4 15:43:21 EDT 2010 + + Bug fixes: + + - Make xsubpp accept the _ prototype (RT#57157) [Rafael Garcia-Suarez] + + - INCLUDE_COMMAND portability fixes for VMS (RT#58181) [Craig Berry] + + - INCLUDE_COMMAND fixes to detect non-zero exit codes (RT#52873) + [Steffen Mueller] + 2.2205 - Wed Mar 10 18:15:36 EST 2010 Other: diff --git a/cpan/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm b/cpan/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm index 4f9492a..385e2fb 100644 --- a/cpan/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm +++ b/cpan/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm @@ -18,7 +18,7 @@ my(@XSStack); # Stack of conditionals and INCLUDEs my($XSS_work_idx, $cpp_next_tmp); use vars qw($VERSION); -$VERSION = '2.2205'; +$VERSION = '2.2206'; $VERSION = eval $VERSION if $VERSION =~ /_/; use vars qw(%input_expr %output_expr $ProtoUsed @InitFileCode $FH $proto_re $Overload $errors $Fallback @@ -74,7 +74,7 @@ sub process_file { ($XSS_work_idx, $cpp_next_tmp) = (0, "XSubPPtmpAAAA"); @InitFileCode = (); $FH = Symbol::gensym(); - $proto_re = "[" . quotemeta('\$%&*@;[]') . "]" ; + $proto_re = "[" . quotemeta('\$%&*@;[]_') . "]" ; $Overload = 0; $errors = 0; $Fallback = '&PL_sv_undef'; @@ -1488,6 +1488,7 @@ sub PROTOTYPES_handler () sub PushXSStack { + my %args = @_; # Save the current file context. push(@XSStack, { type => 'file', @@ -1498,6 +1499,8 @@ sub PushXSStack Filename => $filename, Filepathname => $filepathname, Handle => $FH, + IsPipe => scalar($filename =~ /\|\s*$/), + %args, }) ; } @@ -1543,7 +1546,7 @@ sub INCLUDE_handler () EOF $filename = $_ ; - $filepathname = "$dir/$filename"; + $filepathname = File::Spec->catfile($dir, $filename); # Prime the pump by reading the first # non-blank line @@ -1557,19 +1560,31 @@ EOF $lastline_no = $. ; } +sub QuoteArgs { + my $cmd = shift; + my @args = split /\s+/, $cmd; + $cmd = shift @args; + for (@args) { + $_ = q(").$_.q(") if !/^\"/ && length($_) > 0; + } + return join (' ', ($cmd, @args)); + } + sub INCLUDE_COMMAND_handler () { # the rest of the current line should contain a valid command TrimWhitespace($_) ; + $_ = QuoteArgs($_) if $^O eq 'VMS'; + death("INCLUDE_COMMAND: command missing") unless $_ ; death("INCLUDE_COMMAND: pipes are illegal") if /^\s*\|/ or /\|\s*$/ ; - PushXSStack(); + PushXSStack( IsPipe => 1 ); $FH = Symbol::gensym(); @@ -1588,7 +1603,8 @@ sub INCLUDE_COMMAND_handler () EOF $filename = $_ ; - $filepathname = "$dir/$filename"; + $filepathname = $filename; + $filepathname =~ s/\"/\\"/g; # Prime the pump by reading the first # non-blank line @@ -1608,7 +1624,7 @@ sub PopFile() my $data = pop @XSStack ; my $ThisFile = $filename ; - my $isPipe = ($filename =~ /\|\s*$/) ; + my $isPipe = $data->{IsPipe}; -- $IncludedFiles{$filename} unless $isPipe ; diff --git a/cpan/ExtUtils-ParseXS/lib/ExtUtils/xsubpp b/cpan/ExtUtils-ParseXS/lib/ExtUtils/xsubpp old mode 100755 new mode 100644 -- 2.7.4