Author: kwilliams
Date: Fri Dec 22 21:46:50 2006
New Revision: 8426
Modified:
ExtUtils-ParseXS/trunk/Changes
ExtUtils-ParseXS/trunk/lib/ExtUtils/ParseXS.pm
ExtUtils-ParseXS/trunk/t/XSTest.xs
Log:
Gragh, looks like I was committing to the wrong repo. Here's 2.17.
Modified: ExtUtils-ParseXS/trunk/Changes
==============================================================================
--- ExtUtils-ParseXS/trunk/Changes (original)
+++ ExtUtils-ParseXS/trunk/Changes Fri Dec 22 21:46:50 2006
@@ -1,9 +1,24 @@
Revision history for Perl extension ExtUtils::ParseXS.
-2.16
+2.17 - Mon Nov 20 17:07:27 2006
- - Fix an undefined-variable warning related to 'inout' parameter
- processing.
+ - Stacked $filepathname to make #line directives in #INCLUDEs work.
+ [Nicholas Clark]
+
+ - Sprinked dVAR in with dXSARGS, for God-(Jarkko)-knows-what
+ reason. [Jarkko Hietaniemi]
+
+ - Use printf-style formats in Perl_croak() for some significant
+ savings in number of distinct constant strings in the linked
+ binaries we create. [Alexey Tourbin]
+
+ - Don't use 'class' as a variable name in the t/XSTest.xs module,
+ since that's a keyword in C++. [Jarkko Hietaniemi]
+
+2.16 Fri Sep 15 22:33:24 CDT 2006
+
+ - Fix a problem with PREFIX not working inside INTERFACE
+ sections. [Salvador Fandin~o]
2.15 Mon Oct 10 11:02:13 EDT 2005
Modified: ExtUtils-ParseXS/trunk/lib/ExtUtils/ParseXS.pm
==============================================================================
--- ExtUtils-ParseXS/trunk/lib/ExtUtils/ParseXS.pm (original)
+++ ExtUtils-ParseXS/trunk/lib/ExtUtils/ParseXS.pm Fri Dec 22 21:46:50 2006
@@ -18,7 +18,7 @@
my($XSS_work_idx, $cpp_next_tmp);
use vars qw($VERSION);
-$VERSION = '2.15';
+$VERSION = '2.17';
use vars qw(%input_expr %output_expr $ProtoUsed @InitFileCode $FH $proto_re
$Overload $errors $Fallback
$cplusplus $hiertype $WantPrototypes $WantVersionChk $except
$WantLineNumbers
@@ -456,7 +456,7 @@
\b ( \w+ | length\( \s*\w+\s* \) )
\s* $ /x);
next unless defined($pre) && length($pre);
- my $out_type = '';
+ my $out_type;
my $inout_var;
if ($process_inout and s/^(IN|IN_OUTLIST|OUTLIST|OUT|IN_OUT)\s+//) {
my $type = $1;
@@ -565,7 +565,11 @@
#XS(XS_${Full_func_name}); /* prototype to pass -Wmissing-prototypes */
#XS(XS_${Full_func_name})
#[[
+##ifdef dVAR
+# dVAR; dXSARGS;
+##else
# dXSARGS;
+##endif
EOF
print Q(<<"EOF") if $ALIAS ;
# dXSI32;
@@ -589,12 +593,12 @@
if ($ALIAS)
{ print Q(<<"EOF") if $cond }
# if ($cond)
-# Perl_croak(aTHX_ "Usage: %s($report_args)", GvNAME(CvGV(cv)));
+# Perl_croak(aTHX_ "Usage: %s(%s)", GvNAME(CvGV(cv)), "$report_args");
EOF
else
{ print Q(<<"EOF") if $cond }
# if ($cond)
-# Perl_croak(aTHX_ "Usage: $pname($report_args)");
+# Perl_croak(aTHX_ "Usage: %s(%s)", "$pname", "$report_args");
EOF
# cv doesn't seem to be used, in most cases unless we go in
@@ -919,7 +923,11 @@
print Q(<<"EOF");
#[[
+##ifdef dVAR
+# dVAR; dXSARGS;
+##else
# dXSARGS;
+##endif
EOF
#-Wall: if there is no $Full_func_name there are no xsubs in this .xs
@@ -1213,7 +1221,9 @@
TrimWhitespace($in);
foreach (split /[\s,]+/, $in) {
- $Interfaces{$_} = $_;
+ my $name = $_;
+ $name =~ s/^$Prefix//;
+ $Interfaces{$name} = $_;
}
print Q(<<"EOF");
# XSFUNCTION = $interface_macro($ret_type,cv,XSANY.any_dptr);
@@ -1438,6 +1448,7 @@
Line => [EMAIL PROTECTED],
LineNo => [EMAIL PROTECTED],
Filename => $filename,
+ Filepathname => $filepathname,
Handle => $FH,
}) ;
@@ -1452,7 +1463,7 @@
#
EOF
- $filename = $_ ;
+ $filepathname = $filename = $_ ;
# Prime the pump by reading the first
# non-blank line
@@ -1481,7 +1492,11 @@
close $FH ;
$FH = $data->{Handle} ;
+ # $filename is the leafname, which for some reason isused for diagnostic
+ # messages, whereas $filepathname is the full pathname, and is used for
+ # #line directives.
$filename = $data->{Filename} ;
+ $filepathname = $data->{Filepathname} ;
$lastline = $data->{LastLine} ;
$lastline_no = $data->{LastLineNo} ;
@line = @{ $data->{Line} } ;
Modified: ExtUtils-ParseXS/trunk/t/XSTest.xs
==============================================================================
--- ExtUtils-ParseXS/trunk/t/XSTest.xs (original)
+++ ExtUtils-ParseXS/trunk/t/XSTest.xs Fri Dec 22 21:46:50 2006
@@ -28,7 +28,7 @@
RETVAL
void
-xstest_something (class, some_thing)
+xstest_something (myclass, some_thing)
char * some_thing
C_ARGS:
some_thing
@@ -38,28 +38,28 @@
char * some_thing
void
-xstest_something3 (class, some_thing)
- SV * class
+xstest_something3 (myclass, some_thing)
+ SV * myclass
char * some_thing
PREINIT:
int i = 0;
PPCODE:
/* it's up to us clear these warnings */
- class = class;
+ myclass = myclass;
some_thing = some_thing;
i = i;
XSRETURN_UNDEF;
int
-consts (class)
- SV * class
+consts (myclass)
+ SV * myclass
ALIAS:
const_one = 1
const_two = 2
const_three = 3
CODE:
/* it's up to us clear these warnings */
- class = class;
+ myclass = myclass;
ix = ix;
RETVAL = 1;
OUTPUT: