X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/8fccd523e6b1beace942aa2cc559d218140f382f..c69ca1d4c45d8f9405e06ad3419c8ab43c8ae1d0:/pod/buildtoc diff --git a/pod/buildtoc b/pod/buildtoc old mode 100755 new mode 100644 index cae3dfe..401201f --- a/pod/buildtoc +++ b/pod/buildtoc @@ -111,11 +111,11 @@ foreach () { $flags{aux} = 1 if $flags =~ tr/a//d; if ($flags =~ tr/D//d) { - $flags{perlpod_omit} = 1; + $flags{manifest_omit} = 1; $delta_source = "$filename.pod"; } if ($flags =~ tr/d//d) { - $flags{manifest_omit} = 1; + $flags{perlpod_omit} = 1; $delta_target = "$filename.pod"; } $Generated{"$filename.pod"}++ if $flags =~ tr/g//d; @@ -160,7 +160,6 @@ close MASTER; my (@manireadmes, %manireadmes); my (@perlpods, %perlpods); my (%our_pods); - my (%sources); # Convert these to a list of filenames. foreach (keys %Pods, keys %Readmepods) { @@ -173,7 +172,6 @@ close MASTER; # Things we copy from won't be in perl.pod # Things we copy to won't be in MANIFEST - @sources{values %Copies} = (); open(MANI, "../MANIFEST") || die "$0: opening ../MANIFEST failed: $!"; while () { @@ -207,12 +205,12 @@ close MASTER; warn "$0: $i exists but is unknown by ../MANIFEST\n" if !$manipods{$i} && !$manireadmes{$i} && !$Copies{$i} && !$Generated{$i}; warn "$0: $i exists but is unknown by perl.pod\n" - if !$perlpods{$i} && !exists $sources{$i}; + if !$perlpods{$i} && !exists $Copies{$i}; } - my @BuildTargets = grep {defined} @Targets{keys %Build}; + my @BuildTargets = grep {defined} @Targets{grep $_ ne 'all', keys %Build}; my %BuildFiles; @BuildFiles{@BuildTargets} = @BuildTargets; - + foreach my $i (sort keys %our_pods) { warn "$0: $i is known by buildtoc but does not exist\n" unless $disk_pods{$i} or $BuildFiles{$i}; @@ -528,7 +526,7 @@ sub generate_perlpod { sub generate_manifest { - # Annyoingly unexpand doesn't consider it good form to replace a single + # Annoyingly, unexpand doesn't consider it good form to replace a single # space before a tab with a tab # Annoyingly (2) it returns read only values. my @temp = unexpand (map {sprintf "%-32s%s\n", @$_} @_); @@ -593,6 +591,7 @@ sub generate_nmake_2 { join " ", sort keys %Copies, keys %Generated, map {"perl$_.pod"} keys %Readmes); $line =~ s/$/ \\/mg; + $line =~ s/ \\$//; $line; } @@ -637,8 +636,8 @@ sub do_nmake { 1 while $makefile =~ s/\0\tcopy .*\n/\0/gm; $makefile =~ s/\0+/join ("", &generate_nmake_1)/se; - $makefile =~ s{(del /f [^\n]+podchecker[^\n]+).*?(pod2html)} - {"$1\n" . &generate_nmake_2."\n\t $2"}se; + $makefile =~ s{(-cd \$\(PODDIR\) && del /f[^\n]+).*?(-cd \.\.\\utils && del /f)} + {"$1\n" . &generate_nmake_2."\n\t$2"}se; $makefile; } @@ -696,7 +695,7 @@ sub do_vms { # Looking for rules like this: # - If F$Search("[.pod]perldelta.pod").nes."" Then Delete/NoConfirm/Log [.pod]perldelta.pod;* - $makefile =~ s!(?:\t- If F\$Search\("\[\.pod\]perl[a-z]+\Q.pod").nes."" Then Delete/NoConfirm/Log [.pod]perl\E[a-z]+\.pod;\*\n)+!\0!sg; + $makefile =~ s!(?:\t- If F\$Search\("\[\.pod\]perl\d*[a-z]+\Q.pod").nes."" Then Delete/NoConfirm/Log [.pod]perl\E\d*[a-z]+\.pod;\*\n)+!\0!sg; verify_contiguous($name, $makefile, 'delete rules'); $makefile =~ s/\0+/join "\n", &generate_descrip_mms_3, ''/se; @@ -713,8 +712,8 @@ sub do_unix { sort keys %Copies, grep {!/perltoc/} keys %Generated }mge; -# pod/perldelta.pod: pod/perl511delta.pod -# cd pod && $(LNS) perl511delta.pod perldelta.pod +# pod/perl511delta.pod: pod/perldelta.pod +# cd pod && $(LNS) perldelta.pod perl511delta.pod $makefile_SH =~ s!( pod/perl[a-z0-9_]+\.pod: pod/perl[a-z0-9_]+\.pod @@ -737,6 +736,7 @@ pod/$_: pod/$Copies{$_} my $built; while (my ($target, $name) = each %Targets) { + print "Working on target $target\n" if $Verbose; next unless $Build{$target}; $built++; if ($target eq "toc") { @@ -747,6 +747,7 @@ while (my ($target, $name) = each %Targets) { } print "Now processing $name\n" if $Verbose; open THING, $name or die "Can't open $name: $!"; + binmode THING; my @orig = ; my $orig = join '', @orig; close THING; @@ -759,10 +760,13 @@ while (my ($target, $name) = each %Targets) { print "Was not modified\n" if $Verbose; next; } + my $mode = (stat $name)[2] // die "$0: Can't stat $name: $!"; rename $name, "$name.old" or die "$0: Can't rename $name to $name.old: $!"; open THING, ">$name" or die "$0: Can't open $name for writing: $!"; + binmode THING; print THING $new or die "$0: print to $name failed: $!"; - close THING or die die "$0: close $name failed: $!"; + close THING or die "$0: close $name failed: $!"; + chmod $mode & 0777, $name or die "$0: can't chmod $mode $name: $!"; } warn "$0: was not instructed to build anything\n" unless $built;