X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=autodoc.pl;h=6126f9ff65a3445df3f68e4901691e6885985057;hb=62703e7218aceb3f5d30f70a2307dd02e5eb8c63;hp=da05962b45e6117925adc24f076c02375d4b9f18;hpb=e509e6934ce7cafd6c279046164b9b6255429d8a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/autodoc.pl b/autodoc.pl index da05962..6126f9f 100644 --- a/autodoc.pl +++ b/autodoc.pl @@ -6,7 +6,7 @@ require 5.003; # keep this compatible, an old perl is all we may have before BEGIN { push @INC, 'lib'; require 'regen_lib.pl'; -} # glob() below requires File::Glob +} # @@ -33,6 +33,7 @@ sub walk_table (&@) { else { safer_unlink $filename; open F, ">$filename" or die "Can't open $filename: $!"; + binmode F; $F = \*F; } print $F $leader if $leader; @@ -44,6 +45,7 @@ sub walk_table (&@) { $_ .= ; chomp; } + s/\s+$//; my @args; if (/^\s*(#|$)/) { @args = $_; @@ -140,7 +142,15 @@ removed without notice.\n\n" if $flags =~ /x/; } my $file; -for $file (glob('*.c'), glob('*.h')) { +# glob() picks up docs from extra .c or .h files that may be in unclean +# development trees. +my $MANIFEST = do { + local ($/, *FH); + open FH, "MANIFEST" or die "Can't open MANIFEST: $!"; + ; +}; + +for $file (($MANIFEST =~ /^(\S+\.c)\t/gm), ($MANIFEST =~ /^(\S+\.h)\t/gm)) { open F, "< $file" or die "Cannot open $file for docs: $!\n"; $curheader = "Functions in file $file\n"; autodoc(\*F,$file); @@ -150,6 +160,7 @@ for $file (glob('*.c'), glob('*.h')) { safer_unlink "pod/perlapi.pod"; open (DOC, ">pod/perlapi.pod") or die "Can't create pod/perlapi.pod: $!\n"; +binmode DOC; walk_table { # load documented functions into approriate hash if (@_ > 1) { @@ -209,7 +220,8 @@ my $key; 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"; - for my $key (sort { uc($a) cmp uc($b); } keys %$section) { + # Again, fallback for determinacy + for my $key (sort { uc($a) cmp uc($b) || $a cmp $b } keys %$section) { docout(\*DOC, $key, $section->{$key}); } print DOC "\n=back\n"; @@ -243,6 +255,7 @@ close(DOC) or die "Error closing pod/perlapi.pod: $!"; safer_unlink "pod/perlintern.pod"; open(GUTS, ">pod/perlintern.pod") or die "Unable to create pod/perlintern.pod: $!\n"; +binmode GUTS; print GUTS <<'END'; =head1 NAME