X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/e04926433bb6070f25203e63e55060257391035c..ca8d723e9504508322389fed1274da4bbaed2dfb:/autodoc.pl diff --git a/autodoc.pl b/autodoc.pl index 7748e2a..f97af93 100644 --- a/autodoc.pl +++ b/autodoc.pl @@ -8,6 +8,7 @@ BEGIN { require 'regen_lib.pl'; } +use strict; # # See database of global and static function prototypes in embed.fnc @@ -32,7 +33,7 @@ sub walk_table (&@) { } else { safer_unlink $filename; - open F, ">$filename" or die "Can't open $filename: $!"; + $F = safer_open($filename); binmode F; $F = \*F; } @@ -161,7 +162,7 @@ sub readonly_footer (*) { print $fh <<'_EOF_'; =cut -ex: set ro: + ex: set ro: _EOF_ } @@ -182,9 +183,7 @@ for $file (($MANIFEST =~ /^(\S+\.c)\t/gm), ($MANIFEST =~ /^(\S+\.h)\t/gm)) { } safer_unlink "pod/perlapi.pod"; -open (DOC, ">pod/perlapi.pod") or - die "Can't create pod/perlapi.pod: $!\n"; -binmode DOC; +my $doc = safer_open("pod/perlapi.pod"); walk_table { # load documented functions into appropriate hash if (@_ > 1) { @@ -210,7 +209,7 @@ walk_table { # load documented functions into appropriate hash } } return ""; -} \*DOC; +} $doc; for (sort keys %docfuncs) { # Have you used a full for apidoc or just a func name? @@ -218,9 +217,9 @@ for (sort keys %docfuncs) { warn "Unable to place $_!\n"; } -readonly_header(DOC); +readonly_header($doc); -print DOC <<'_EOB_'; +print $doc <<'_EOB_'; =head1 NAME perlapi - autogenerated documentation for the perl public API @@ -247,15 +246,15 @@ my $key; # case insensitive sort, with fallback for determinacy for $key (sort { uc($a) cmp uc($b) || $a cmp $b } keys %apidocs) { my $section = $apidocs{$key}; - print DOC "\n=head1 $key\n\n=over 8\n\n"; + print $doc "\n=head1 $key\n\n=over 8\n\n"; # Again, fallback for determinacy for my $key (sort { uc($a) cmp uc($b) || $a cmp $b } keys %$section) { - docout(\*DOC, $key, $section->{$key}); + docout($doc, $key, $section->{$key}); } - print DOC "\n=back\n"; + print $doc "\n=back\n"; } -print DOC <<'_EOE_'; +print $doc <<'_EOE_'; =head1 AUTHORS @@ -277,16 +276,14 @@ perlguts(1), perlxs(1), perlxstut(1), perlintern(1) _EOE_ -readonly_footer(DOC); +readonly_footer($doc); -close(DOC) or die "Error closing pod/perlapi.pod: $!"; +safer_close($doc); safer_unlink "pod/perlintern.pod"; -open(GUTS, ">pod/perlintern.pod") or - die "Unable to create pod/perlintern.pod: $!\n"; -binmode GUTS; -readonly_header(GUTS); -print GUTS <<'END'; +my $guts = safer_open("pod/perlintern.pod"); +readonly_header($guts); +print $guts <<'END'; =head1 NAME perlintern - autogenerated documentation of purely B @@ -304,14 +301,14 @@ END for $key (sort { uc($a) cmp uc($b); } keys %gutsdocs) { my $section = $gutsdocs{$key}; - print GUTS "\n=head1 $key\n\n=over 8\n\n"; + print $guts "\n=head1 $key\n\n=over 8\n\n"; for my $key (sort { uc($a) cmp uc($b); } keys %$section) { - docout(\*GUTS, $key, $section->{$key}); + docout($guts, $key, $section->{$key}); } - print GUTS "\n=back\n"; + print $guts "\n=back\n"; } -print GUTS <<'END'; +print $guts <<'END'; =head1 AUTHORS @@ -324,6 +321,6 @@ document their functions. perlguts(1), perlapi(1) END -readonly_footer(GUTS); +readonly_footer($guts); -close GUTS or die "Error closing pod/perlintern.pod: $!"; +safer_close($guts);