X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=autodoc.pl;h=cb77a14ae940bd6549bc0f08d89fc9aec04037b8;hb=326b5008ebd8d91bf6b00d96127d2d711c9f2132;hp=6126f9ff65a3445df3f68e4901691e6885985057;hpb=22469dce3421188b4dd09799e1b6e780001201ca;p=p5sagit%2Fp5-mst-13.2.git diff --git a/autodoc.pl b/autodoc.pl index 6126f9f..cb77a14 100644 --- a/autodoc.pl +++ b/autodoc.pl @@ -53,6 +53,7 @@ sub walk_table (&@) { else { @args = split /\s*\|\s*/, $_; } + s/\b(NN|NULLOK)\b\s+//g for @args; print $F $function->(@args); } print $F $trailer if $trailer; @@ -64,6 +65,7 @@ sub walk_table (&@) { my %apidocs; my %gutsdocs; my %docfuncs; +my %seenfuncs; my $curheader = "Unknown section"; @@ -119,13 +121,14 @@ DOC: sub docout ($$$) { # output the docs for one function my($fh, $name, $docref) = @_; my($flags, $docs, $ret, $file, @args) = @$docref; + $name =~ s/\s*$//; $docs .= "NOTE: this function is experimental and may change or be removed without notice.\n\n" if $flags =~ /x/; $docs .= "NOTE: the perl_ form of this function is deprecated.\n\n" if $flags =~ /p/; - print $fh "=item $name\n$docs"; + print $fh "=item $name\nX<$name>\n$docs"; if ($flags =~ /U/) { # no usage # nothing @@ -162,26 +165,27 @@ open (DOC, ">pod/perlapi.pod") or die "Can't create pod/perlapi.pod: $!\n"; binmode DOC; -walk_table { # load documented functions into approriate hash +walk_table { # load documented functions into appropriate hash if (@_ > 1) { my($flags, $retval, $func, @args) = @_; return "" unless $flags =~ /d/; $func =~ s/\t//g; $flags =~ s/p//; # clean up fields from embed.pl $retval =~ s/\t//; my $docref = delete $docfuncs{$func}; + $seenfuncs{$func} = 1; if ($docref and @$docref) { if ($flags =~ /A/) { $docref->[0].="x" if $flags =~ /M/; - $apidocs{$docref->[4]}{$func} = - [$docref->[0] . 'A', $docref->[1], $retval, - $docref->[3], @args]; + $apidocs{$docref->[4]}{$func} = + [$docref->[0] . 'A', $docref->[1], $retval, $docref->[3], + @args]; } else { - $gutsdocs{$docref->[4]}{$func} = + $gutsdocs{$docref->[4]}{$func} = [$docref->[0], $docref->[1], $retval, $docref->[3], @args]; } } else { - warn "no docs for $func\n" unless $docref and @$docref; + warn "no docs for $func\n" unless $seenfuncs{$func}; } } return ""; @@ -199,6 +203,7 @@ print DOC <<'_EOB_'; perlapi - autogenerated documentation for the perl public API =head1 DESCRIPTION +X X X This file contains the documentation of the perl public API generated by embed.pl, specifically a listing of functions, macros, flags, and variables @@ -263,6 +268,7 @@ perlintern - autogenerated documentation of purely B Perl functions =head1 DESCRIPTION +X X This file is the autogenerated documentation of functions in the Perl interpreter that are documented using Perl's internal documentation