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:

Reply via email to