summaryrefslogtreecommitdiff
path: root/autodoc.pl
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-03-17 00:17:26 +0000
committerNicholas Clark <nick@ccl4.org>2008-03-17 00:17:26 +0000
commit08858ed21b9a4d448437bdae35df5c42fbe1c8bd (patch)
treed27bb2954cf830c9866eaa74e228a0a358b0d119 /autodoc.pl
parent424a4936e3f61f4e8db394f496a116e698cede85 (diff)
downloadperl-08858ed21b9a4d448437bdae35df5c42fbe1c8bd.tar.gz
Drag autodoc.pl and overload.pl into the age of safer_open().
Thanks to the wisdom of london.pm, stuff the filename into the SCALAR slot of the typeglob created in safer_open(), so that ... Add safer_close(), that will die (with the filename) if the close fails. p4raw-id: //depot/perl@33539
Diffstat (limited to 'autodoc.pl')
-rw-r--r--autodoc.pl44
1 files changed, 20 insertions, 24 deletions
diff --git a/autodoc.pl b/autodoc.pl
index 5317bc6da1..f97af93acf 100644
--- a/autodoc.pl
+++ b/autodoc.pl
@@ -33,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;
}
@@ -183,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) {
@@ -211,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?
@@ -219,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
@@ -248,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
@@ -278,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<internal>
@@ -305,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
@@ -325,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);