X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fbuildtoc.PL;h=3585b7d892e5271b797c6f66d8ea7c955d05ad9b;hb=b30f304ae36b3931349d7d5816f5a5646afe5397;hp=8e07ce856a23e09e2dc61b360469a70b2ae6f34d;hpb=d83268b4d361b8b6a29f97c1f25fe1161acb736c;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/buildtoc.PL b/pod/buildtoc.PL index 8e07ce8..3585b7d 100644 --- a/pod/buildtoc.PL +++ b/pod/buildtoc.PL @@ -59,59 +59,116 @@ if (-d "pod") { die "$0: failed to chdir('pod'): $!\n" unless chdir("pod"); } -@pods = qw( - perl - perlfaq - perltoc - perlbook - - perlsyn - perldata - perlop - perlreftut - perldsc - perllol - perlrequick - perlretut - - perllexwarn - perldebug - - perlrun - perlfunc - perlopentut - perlvar - perlsub - perlmod - perlpod - - perlstyle - perlmodlib - perlmodinstall - perlnewmod - perltrap - perlport - perlsec - - perlref - perlre - perlform - perllocale - perlunicode - - perlboot - perltoot - perltootc - perlobj - perlbot - perltie - - perlipc - perlnumber - perlfork - perlthrtut - - perldiag +@ARCHPODS = qw( + perlaix + perlapollo + perlamiga + perlbeos + perlbs2000 + perlce + perlcygwin + perldgux + perldos + perlepoc + perlfreebsd + perlhpux + perlhurd + perlirix + perlmachten + perlmacos + perlmacosx + perlmint + perlmpeix + perlnetware + perlos2 + perlos390 + perlos400 + perlqnx + perlplan9 + perlsolaris + perltru64 + perluts + perlvmesa + perlvms + perlvos + perlwin32 + ); + +@CJKPODS = qw( + perlcn + perljp + perlko + perltw + ); + +@pods = + ( + qw( + + perl + perlintro + perlfaq + perltoc + perlbook + + perlsyn + perldata + perlop + perlsub + perlfunc + perlreftut + perldsc + perlrequick + perlpod + perlpodspec + perlstyle + perltrap + + perlrun + perldiag + perllexwarn + perldebtut + perldebug + + perlvar + perllol + perlopentut + perlpacktut + perlretut + + perlre + perlref + + perlform + + perlboot + perltoot + perltooc + perlobj + perlbot + perltie + + perlipc + perlfork + perlnumber + + perlthrtut + perlothrtut + + perlport + perllocale + perluniintro + perlunicode + perlebcdic + + perlsec + + perlmod + perlmodinstall + perlmodlib + perlmodstyle + perlnewmod + perlfaq1 perlfaq2 perlfaq3 @@ -128,6 +185,7 @@ if (-d "pod") { perldebguts perlxstut perlxs + perlclib perlguts perlcall perlutil @@ -135,41 +193,39 @@ if (-d "pod") { perldbmfilter perlapi perlintern + perliol perlapio perltodo perlhack + perldoc perlhist perldelta + perl58delta + perl573delta + perl572delta + perl571delta + perl570delta + perl561delta perl56delta perl5005delta perl5004delta - perlamiga - perlcygwin - perldos - perlhpux - perlmachten - perlos2 - perlos390 - perlvms - perlwin32 - ); + perlartistic + perlgpl + + ), + + @ARCHPODS, + + ); -@ARCHPODS = qw( - perlamiga - perlcygwin - perldos - perlhpux - perlmachten - perlos2 - perlos390 - perlvms - perlwin32 - ); for (@ARCHPODS) { s/$/.pod/ } @ARCHPODS{@ARCHPODS} = (); +for (@CJKPODS) { s/$/.pod/ } +@CJKPODS{@CJKPODS} = (); + for (@pods) { s/$/.pod/ } @pods{@pods} = (); @PODS{@PODS} = (); @@ -186,7 +242,7 @@ close(MANI); open(PERLPOD, "perl.pod") || die "$0: opening perl.pod failed: $!\n"; while () { if (/^For ease of access, /../^\(If you're intending /) { - if (/^\s+(perl\w*)\s+\w/) { + if (/^\s+(perl\S*)\s+\w/) { push @PERLPODS, "$1.pod"; } } @@ -196,6 +252,11 @@ die "$0: could not find the pod listing of perl.pod\n" unless @PERLPODS; @PERLPODS{@PERLPODS} = (); +# Delete the CJK because we cannot mix their encodings. +delete @PERLPODS{@CJKPODS}; +delete @PODS{@CJKPODS}; +delete @pods{@CJKPODS}; + # Cross-check against ourselves # Cross-check against the MANIFEST # Cross-check against the perl.pod @@ -204,7 +265,7 @@ foreach my $i (sort keys %PODS) { warn "$0: $i exists but is unknown by buildtoc\n" unless exists $pods{$i}; warn "$0: $i exists but is unknown by ../MANIFEST\n" - if !exists $MANIPODS{$i} && !exists $ARCHPODS{$i}; + if !exists $MANIPODS{$i} && !exists $ARCHPODS{$i} && !exists $CJKPODS{$i}; warn "$0: $i exists but is unknown by perl.pod\n" unless exists $PERLPODS{$i}; } @@ -250,12 +311,15 @@ find \&getpods => qw(../lib ../ext); sub getpods { if (/\.p(od|m)$/) { - # Skip .pm files that have corresponding .pod files, and Functions.pm. - return if /(.*)\.pm$/ && -f "$1.pod"; my $file = $File::Find::name; - return if $file eq '../lib/Pod/Functions.pm'; # Used only by pod itself - - die "tut $name" if $file =~ /TUT/; + return if $file eq '../lib/Pod/Functions.pm'; # Used only by pod itself + return if $file =~ m!(?:^|/)t/!; + return if $file =~ m!lib/Attribute/Handlers/demo/!; + return if $file =~ m!lib/Net/FTP/.+\.pm!; # Hi, Graham! :-) + return if $file =~ m!lib/Math/BigInt/t/!; + return if $file =~ m!/Devel/PPPort/[Hh]arness|lib/Devel/Harness!i; + return if $file =~ m!XS/(?:APItest|Typemap)!; + die "tut $name" if $file =~ /TUT/; unless (open (F, "< $_\0")) { warn "bogus <$file>: $!"; system "ls", "-l", $file; @@ -319,7 +383,7 @@ podset( @modules[ sort { $modname[$a] cmp $modname[$b] } 0 .. $#modules ] ); Here should be listed all the extra programs' documentation, but they don't all have manual pages yet: - =over + =over 4 =item a2p @@ -372,13 +436,13 @@ sub podset { } if (s/^=head1 (.*)/=item $1/) { unhead2(); - output "=over\n\n" unless $inhead1; + output "=over 4\n\n" unless $inhead1; $inhead1 = 1; output $_; nl(); next; } if (s/^=head2 (.*)/=item $1/) { unitem(); - output "=over\n\n" unless $inhead2; + output "=over 4\n\n" unless $inhead2; $inhead2 = 1; output $_; nl(); next; } @@ -390,7 +454,7 @@ sub podset { s/\s+$//; next if /^[\d.]+$/; next if $pod eq 'perlmodlib' && /^ftp:/; - ##print "=over\n\n" unless $initem; + ##print "=over 4\n\n" unless $initem; output ", " if $initem; $initem = 1; s/\.$//; @@ -465,3 +529,7 @@ sub output ($) { !NO!SUBS! +close OUT or die "Can't close $file: $!"; +chmod 0755, $file or die "Can't reset permissions for $file: $!\n"; +exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':'; +chdir $origdir;