This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
parts/apicheck.pl: Special case things like _aTHX
authorKarl Williamson <khw@cpan.org>
Wed, 14 Aug 2019 03:34:00 +0000 (21:34 -0600)
committerNicolas R <atoomic@cpan.org>
Fri, 27 Sep 2019 22:39:30 +0000 (16:39 -0600)
A few macros have a leading underscore to indicate a comma.  This adds
code to handle them.  I made separate variabled for threaded and maybe
non-threaded, but I don't know if the latter actually happens.

(cherry picked from commit 1187530614591229d1a4f1d7b2989439b1038861)
Signed-off-by: Nicolas R <atoomic@cpan.org>
dist/Devel-PPPort/parts/apicheck.pl

index ee47d70..9935f07 100644 (file)
@@ -323,6 +323,7 @@ for $f (@f) {   # Loop through all the tests to add
   }
 
   my $args = join ', ', @arg;
+  my $prefix = "";
 
   # Failure to specify a return type in the apidoc line means void
   my $rvt = $f->{'ret'} || 'void';
@@ -336,7 +337,8 @@ for $f (@f) {   # Loop through all the tests to add
     $ret = $ignorerv{$f->{'name'}} ? '(void) ' : "rval = ";
   }
 
-  my $aTHX_args = "";
+  my $aTHX_args   = "";
+  my $aTHX_prefix = "";
 
   # Add parens to functions that take an argument list, even if empty
   unless ($f->{'flags'}{'n'}) {
@@ -372,8 +374,8 @@ HEAD
   }
 
   my $final = $varargs
-              ? "$Perl_$f->{'name'}$aTHX_args"
-              : "$f->{'name'}$args";
+              ? "$aTHX_prefix$Perl_$f->{'name'}$aTHX_args"
+              : "$prefix$f->{'name'}$args";
 
   # If there is a '#if' associated with this, add that
   $f->{'cond'} and print OUT "#if $f->{'cond'}\n";
@@ -385,7 +387,7 @@ void _DPPP_test_$f->{'name'} (void)
 $stack
   {
 #ifdef $f->{'name'}
-    $ret$f->{'name'}$args;
+    $ret$prefix$f->{'name'}$args;
 #endif
   }
 
@@ -393,7 +395,7 @@ $stack
 #ifdef $f->{'name'}
     $ret$final;
 #else
-    $ret$Perl_$f->{'name'}$aTHX_args;
+    $ret$aTHX_prefix$Perl_$f->{'name'}$aTHX_args;
 #endif
   }
 }