This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Pass values from mktodo.pl to apicheck.pl
authorKarl Williamson <khw@cpan.org>
Tue, 13 Aug 2019 18:30:28 +0000 (12:30 -0600)
committerNicolas R <atoomic@cpan.org>
Fri, 27 Sep 2019 22:51:27 +0000 (16:51 -0600)
This uses an environment variable to send the version number across a
make to apicheck.pl, where it is inserted as comments in apicheck.c.

I found that when debugging, it is useful to have this information
handy throughout the file.

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

index 05b09a9..05b9002 100644 (file)
@@ -51,6 +51,8 @@ if ($opt{todo}) {
     $todo_version = format_version_line($opt{todo});
 }
 
+$ENV{'DPPP_ARGUMENTS'} = "--todo=$todo_version";
+
 print "\n", ident_str(), "\n\n";
 
 my $fullperl = `which $opt{perl}`;
index 74e4720..080612c 100644 (file)
@@ -28,6 +28,11 @@ else {
   *OUT = \*STDOUT;
 }
 
+# Arguments passed to us in this variable are of the form
+# '--a=foo --b=bar', so split first on space, then the =, and then the hash is
+# of the form { a => foo, b => bar }
+my %script_args = map { split /=/ } split(/\s+/, $ENV{'DPPP_ARGUMENTS'});
+
 # Get list of functions/macros to test
 my @f = parse_embed(qw( parts/embed.fnc parts/apidoc.fnc parts/ppport.fnc ));
 
@@ -345,10 +350,18 @@ for $f (@f) {   # Loop through all the tests to add
     $args .= ' 1';
   }
 
+  # Single leading underscore in a few names means is a comma operator
+  if ($f->{'name'} =~ /^ _[ adp] (?: THX | MY_CXT ) /x) {
+    $aTHX_prefix = '1 ';
+    $prefix = '1 ';
+  }
+
+
   print OUT <<HEAD;
 /******************************************************************************
 *
-*  $f->{'name'}
+
+*  $f->{'name'}     $script_args{'--todo'}
 *
 ******************************************************************************/