summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/pod/buildtoc.PL
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/pod/buildtoc.PL')
-rwxr-xr-xcontrib/perl5/pod/buildtoc.PL492
1 files changed, 0 insertions, 492 deletions
diff --git a/contrib/perl5/pod/buildtoc.PL b/contrib/perl5/pod/buildtoc.PL
deleted file mode 100755
index 7c5a450..0000000
--- a/contrib/perl5/pod/buildtoc.PL
+++ /dev/null
@@ -1,492 +0,0 @@
-#!/usr/local/bin/perl
-
-use Config;
-use File::Basename qw(&basename &dirname);
-use Cwd;
-
-# List explicitly here the variables you want Configure to
-# generate. Metaconfig only looks for shell variables, so you
-# have to mention them as if they were shell variables, not
-# %Config entries. Thus you write
-# $startperl
-# to ensure Configure will look for $Config{startperl}.
-
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-$origdir = cwd;
-chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos'); # "case-forgiving"
-$file =~ s/\.pl$/.com/ if ($^O eq 'VMS'); # "case-forgiving"
-
-open OUT,">$file" or die "Can't create $file: $!";
-
-print "Extracting $file (with variable substitutions)\n";
-
-# In this section, perl variables will be expanded during extraction.
-# You can use $Config{...} to use Configure variables.
-
-print OUT <<"!GROK!THIS!";
-$Config{'startperl'}
- eval 'exec perl -S \$0 "\$@"'
- if 0;
-!GROK!THIS!
-
-# In the following, perl variables are not expanded during extraction.
-
-print OUT <<'!NO!SUBS!';
-
-#
-# buildtoc
-#
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is autogenerated by buildtoc.PL.
-# Edit that file and run it to effect changes.
-#
-# Builds perltoc.pod and sanity checks the list of pods against all
-# of the MANIFEST, perl.pod, and ourselves.
-#
-
-use File::Find;
-use Cwd;
-use Text::Wrap;
-
-@PODS = glob("*.pod");
-
-sub output ($);
-
-if (-d "pod") {
- die "$0: failed to chdir('pod'): $!\n" unless chdir("pod");
-}
-
-@pods = qw(
- perl
- perlfaq
- perltoc
- perlbook
-
- perlsyn
- perldata
- perlop
- perlsub
- perlfunc
- perlreftut
- perldsc
- perlrequick
- perlpod
- perlstyle
- perltrap
-
- perlrun
- perldiag
- perllexwarn
- perldebtut
- perldebug
-
- perlvar
- perllol
- perlopentut
- perlretut
-
- perlre
- perlref
-
- perlform
-
- perlboot
- perltoot
- perltootc
- perlobj
- perlbot
- perltie
-
- perlipc
- perlfork
- perlnumber
- perlthrtut
-
- perlport
- perllocale
- perlunicode
- perlebcdic
-
- perlsec
-
- perlmod
- perlmodlib
- perlmodinstall
- perlnewmod
-
- perlfaq1
- perlfaq2
- perlfaq3
- perlfaq4
- perlfaq5
- perlfaq6
- perlfaq7
- perlfaq8
- perlfaq9
-
- perlcompile
-
- perlembed
- perldebguts
- perlxstut
- perlxs
- perlclib
- perlguts
- perlcall
- perlutil
- perlfilter
- perldbmfilter
- perlapi
- perlintern
- perlapio
- perltodo
- perlhack
-
- perlhist
- perldelta
- perl5005delta
- perl5004delta
-
- perlaix
- perlamiga
- perlbs2000
- perlcygwin
- perldos
- perlepoc
- perlhpux
- perlmachten
- perlmacos
- perlmpeix
- perlos2
- perlos390
- perlsolaris
- perlvmesa
- perlvms
- perlvos
- perlwin32
- );
-
-@ARCHPODS = qw(
- perlaix
- perlamiga
- perlbs2000
- perlcygwin
- perldos
- perlepoc
- perlhpux
- perlmachten
- perlmacos
- perlmpeix
- perlos2
- perlos390
- perlsolaris
- perlvmesa
- perlvms
- perlvos
- perlwin32
- );
-for (@ARCHPODS) { s/$/.pod/ }
-@ARCHPODS{@ARCHPODS} = ();
-
-for (@pods) { s/$/.pod/ }
-@pods{@pods} = ();
-@PODS{@PODS} = ();
-
-open(MANI, "../MANIFEST") || die "$0: opening ../MANIFEST failed: $!";
-while (<MANI>) {
- if (m!^pod/([^.]+\.pod)\s+!i) {
- push @MANIPODS, $1;
- }
-}
-close(MANI);
-@MANIPODS{@MANIPODS} = ();
-
-open(PERLPOD, "perl.pod") || die "$0: opening perl.pod failed: $!\n";
-while (<PERLPOD>) {
- if (/^For ease of access, /../^\(If you're intending /) {
- if (/^\s+(perl\S*)\s+\w/) {
- push @PERLPODS, "$1.pod";
- }
- }
-}
-close(PERLPOD);
-die "$0: could not find the pod listing of perl.pod\n"
- unless @PERLPODS;
-@PERLPODS{@PERLPODS} = ();
-
-# Cross-check against ourselves
-# Cross-check against the MANIFEST
-# Cross-check against the perl.pod
-
-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};
- warn "$0: $i exists but is unknown by perl.pod\n"
- unless exists $PERLPODS{$i};
-}
-foreach my $i (sort keys %pods) {
- warn "$0: $i is known by buildtoc but does not exist\n"
- unless exists $PODS{$i};
-}
-foreach my $i (sort keys %MANIPODS) {
- warn "$0: $i is known by ../MANIFEST but does not exist\n"
- unless exists $PODS{$i};
-}
-foreach my $i (sort keys %PERLPODS) {
- warn "$0: $i is known by perl.pod but does not exist\n"
- unless exists $PODS{$i};
-}
-
-# We are ready to rock.
-open(OUT, ">perltoc.pod") || die "$0: creating perltoc.pod failed: $!";
-
-$/ = '';
-@ARGV = @pods;
-
-($_= <<EOPOD2B) =~ s/^\t//gm && output($_);
-
- =head1 NAME
-
- perltoc - perl documentation table of contents
-
- =head1 DESCRIPTION
-
- This page provides a brief table of contents for the rest of the Perl
- documentation set. It is meant to be scanned quickly or grepped
- through to locate the proper section you're looking for.
-
- =head1 BASIC DOCUMENTATION
-
-EOPOD2B
-#' make emacs happy
-
-podset(@pods);
-
-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/;
- unless (open (F, "< $_\0")) {
- warn "bogus <$file>: $!";
- system "ls", "-l", $file;
- }
- else {
- my $line;
- while ($line = <F>) {
- if ($line =~ /^=head1\s+NAME\b/) {
- push @modpods, $file;
- #warn "GOOD $file\n";
- return;
- }
- }
- warn "$0: $file: cannot find =head1 NAME\n";
- }
- }
-}
-
-die "no pods" unless @modpods;
-
-for (@modpods) {
- #($name) = /(\w+)\.p(m|od)$/;
- $name = path2modname($_);
- if ($name =~ /^[a-z]/) {
- push @pragmata, $_;
- } else {
- if ($done{$name}++) {
- # warn "already did $_\n";
- next;
- }
- push @modules, $_;
- push @modname, $name;
- }
-}
-
-($_= <<EOPOD2B) =~ s/^\t//gm && output($_);
-
-
-
- =head1 PRAGMA DOCUMENTATION
-
-EOPOD2B
-
-podset(sort @pragmata);
-
-($_= <<EOPOD2B) =~ s/^\t//gm && output($_);
-
-
-
- =head1 MODULE DOCUMENTATION
-
-EOPOD2B
-
-podset( @modules[ sort { $modname[$a] cmp $modname[$b] } 0 .. $#modules ] );
-
-($_= <<EOPOD2B) =~ s/^\t//gm;
-
-
- =head1 AUXILIARY DOCUMENTATION
-
- Here should be listed all the extra programs' documentation, but they
- don't all have manual pages yet:
-
- =over 4
-
- =item a2p
-
- =item s2p
-
- =item find2perl
-
- =item h2ph
-
- =item c2ph
-
- =item h2xs
-
- =item xsubpp
-
- =item pod2man
-
- =item wrapsuid
-
- =back
-
- =head1 AUTHOR
-
- Larry Wall <F<larry\@wall.org>>, with the help of oodles
- of other folks.
-
-
-EOPOD2B
-output $_;
-output "\n"; # flush $LINE
-exit;
-
-sub podset {
- local @ARGV = @_;
-
- while(<>) {
- if (s/^=head1 (NAME)\s*/=head2 /) {
- $pod = path2modname($ARGV);
- unhead1();
- output "\n \n\n=head2 ";
- $_ = <>;
- if ( /^\s*$pod\b/ ) {
- s/$pod\.pm/$pod/; # '.pm' in NAME !?
- output $_;
- } else {
- s/^/$pod, /;
- output $_;
- }
- next;
- }
- if (s/^=head1 (.*)/=item $1/) {
- unhead2();
- output "=over 4\n\n" unless $inhead1;
- $inhead1 = 1;
- output $_; nl(); next;
- }
- if (s/^=head2 (.*)/=item $1/) {
- unitem();
- output "=over 4\n\n" unless $inhead2;
- $inhead2 = 1;
- output $_; nl(); next;
- }
- if (s/^=item ([^=].*)/$1/) {
- next if $pod eq 'perldiag';
- s/^\s*\*\s*$// && next;
- s/^\s*\*\s*//;
- s/\n/ /g;
- s/\s+$//;
- next if /^[\d.]+$/;
- next if $pod eq 'perlmodlib' && /^ftp:/;
- ##print "=over 4\n\n" unless $initem;
- output ", " if $initem;
- $initem = 1;
- s/\.$//;
- s/^-X\b/-I<X>/;
- output $_; next;
- }
- if (s/^=cut\s*\n//) {
- unhead1();
- next;
- }
- }
-}
-
-sub path2modname {
- local $_ = shift;
- s/\.p(m|od)$//;
- s-.*?/(lib|ext)/--;
- s-/-::-g;
- s/(\w+)::\1/$1/;
- return $_;
-}
-
-sub unhead1 {
- unhead2();
- if ($inhead1) {
- output "\n\n=back\n\n";
- }
- $inhead1 = 0;
-}
-
-sub unhead2 {
- unitem();
- if ($inhead2) {
- output "\n\n=back\n\n";
- }
- $inhead2 = 0;
-}
-
-sub unitem {
- if ($initem) {
- output "\n\n";
- ##print "\n\n=back\n\n";
- }
- $initem = 0;
-}
-
-sub nl {
- output "\n";
-}
-
-my $NEWLINE; # how many newlines have we seen recently
-my $LINE; # what remains to be printed
-
-sub output ($) {
- for (split /(\n)/, shift) {
- if ($_ eq "\n") {
- if ($LINE) {
- print OUT wrap('', '', $LINE);
- $LINE = '';
- }
- if ($NEWLINE < 2) {
- print OUT;
- $NEWLINE++;
- }
- }
- elsif (/\S/ && length) {
- $LINE .= $_;
- $NEWLINE = 0;
- }
- }
-}
-
-!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;
OpenPOWER on IntegriCloud