#!/usr/bin/perl -w
use strict;
-use vars qw(%Found $Quiet);
use File::Spec;
-use File::Find;
use FindBin;
use Text::Wrap;
use Getopt::Long;
+our $Quiet;
no locale;
# Assumption is that we're either already being run from the top level (*nix,
BEGIN {
my $Top = File::Spec->catdir($FindBin::Bin, File::Spec->updir);
chdir $Top or die "Can't chdir to $Top: $!";
- require 'Porting/pod_lib.pl';
+ require './Porting/pod_lib.pl';
}
die "$0: Usage: $0 [--quiet]\n"
- unless GetOptions (quiet => \$Quiet) && !@ARGV;
+ unless GetOptions ('q|quiet' => \$Quiet) && !@ARGV;
my $state = get_pod_metadata(0, sub { warn @_ if @_ }, 'pod/perltoc.pod');
-# Find all the modules
-my %done;
-find({no_chdir => 1,
- wanted => sub {
- if (/\.p(od|m)$/) {
- return if m!/Pod/Functions.pm\z!; # Used only by pod itself
- return if m!(?:^|/)t/!;
- return if m!lib/Net/FTP/.+\.pm!; # Hi, Graham! :-)
- return if m!XS/(?:APItest|Typemap)!;
- return if s!pm\z!pod! && -e $_;
- s!\.pod\z!!;
- s!\Alib/!!;
- s!/!::!g;
- my_die("Duplicate files for $_, '$done{$_}' and '$File::Find::name'")
- if exists $done{$_};
-
- $done{$_} = $File::Find::name;
- $Found{/\A[a-z]/ ? 'PRAGMA' : 'MODULE'}{$_} = $File::Find::name;
- }
- }}, 'lib');
-
-my_die "Can't find any pods!\n" unless %done;
+my $found = pods_to_install();
+
+my_die "Can't find any pods!\n" unless %$found;
# Accumulating everything into a lexical before writing to disk dates from the
# time when this script also provided the functionality of regen/pod_rules.pl
# This file is autogenerated by buildtoc from all the other pods.
# Edit those files and run $0 to effect changes.
+ =encoding UTF-8
+
=head1 NAME
perltoc - perl documentation table of contents
EOPOD2B
# All the things in the master list that happen to be pod filenames
-foreach (grep {defined $_ && @$_ == 5 && !$_->[0]{toc_omit}} @{$state->{master}}) {
- $roffitall .= " \$mandir/$_->[4].1 \\\n";
- podset($_->[4], $_->[2]);
+foreach (grep {!$_->[2]{toc_omit}} @{$state->{master}}) {
+ $roffitall .= " \$mandir/$_->[0].1 \\\n";
+ podset($_->[0], $_->[1]);
}
foreach my $type (qw(PRAGMA MODULE)) {
EOPOD2B
- foreach my $name (sort keys %{$Found{$type}}) {
- next if is_duplicate_pod($Found{$type}{$name});
+ foreach my $name (sort keys %{$found->{$type}}) {
$roffitall .= " \$libdir/$name.3 \\\n";
- podset($name, $Found{$type}{$name});
+ podset($name, $found->{$type}{$name});
}
}
EOPOD2B
-$_ .= join "\n", map {"\t=item $_\n"} sort keys %{$state->{aux}};
+$_ .= join "\n", map {"\t=item $_\n"} @{$state->{aux}};
$_ .= <<"EOPOD2B" ;
=back
sub podset {
my ($pod, $file) = @_;
- open my $fh, '<', $file or my_die "Can't open file '$file' for $pod: $!";
+ open my $fh, '<:raw', $file or my_die "Can't open file '$file' for $pod: $!";
local *_;
my $found_pod;
$initem = 0;
}
-# Local variables:
-# cperl-indent-level: 4
-# indent-tabs-mode: nil
-# End:
-#
# ex: set ts=8 sts=4 sw=4 et: