This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
podcheck.t: Special case perldelta
authorKarl Williamson <public@khwilliamson.com>
Fri, 17 Jun 2011 00:40:14 +0000 (18:40 -0600)
committerKarl Williamson <public@khwilliamson.com>
Fri, 17 Jun 2011 00:52:07 +0000 (18:52 -0600)
This adds a special case to the checks for perldelta to ignore the
placeholder links (that by necessity are broken).

t/porting/known_pod_issues.dat
t/porting/podcheck.t

index 8568a07..66cf578 100644 (file)
@@ -212,8 +212,6 @@ pod/perldebguts.pod Verbatim line length including indents exceeds 80 by    68
 pod/perldebtut.pod     Verbatim line length including indents exceeds 80 by    22
 pod/perldebug.pod      ? Should you be using L<...> instead of 2
 pod/perldebug.pod      Verbatim line length including indents exceeds 80 by    3
-pod/perldelta.pod      Apparent broken link    1
-pod/perldelta.pod      Apparent internal link is missing its forward slash     3
 pod/perldelta.pod      Pod NAME already used   -1
 pod/perldiag.pod       =item type mismatch     1
 pod/perldiag.pod       Verbatim line length including indents exceeds 80 by    2
index b1022e1..db3451f 100644 (file)
@@ -187,6 +187,9 @@ L<Pod::Checker>
 # has many false positives; higher numbers give more messages.
 my $Warnings_Level = 200;
 
+# perldelta during construction may have place holder links.
+our @perldelta_ignore_links = ( "XXX", "perl5YYYdelta" );
+
 # To see if two pods with the same NAME are actually copies of the same pod,
 # which is not an error, it uses a checksum to save work.
 my $digest_type = "SHA-1";
@@ -1358,12 +1361,21 @@ if (! $has_input_files) {
                 # Here, is a link to a target that we can't find.  Check if
                 # there is an internal link on the page with the target name.
                 # If so, it could be that they just forgot the initial '/'
-                if ($filename_to_pod{$filename}
-                    && $nodes{$filename_to_pod{$filename}}{$linked_to_page})
+                # But perldelta is handled specially: only do this if the
+                # broken link isn't one of the known bad ones (that are
+                # placemarkers and should be removed for the final)
+                my $NAME = $filename_to_pod{$filename};
+                if (! defined $NAME) {
+                    $checker->poderror(\%problem);
+                }
+                elsif ($NAME ne "perldelta"
+                    || ! grep { $linked_to_page eq $_ } @perldelta_ignore_links)
                 {
-                    $problem{-msg} =  $broken_internal_link;
+                    if ($nodes{$NAME}{$linked_to_page}) {
+                        $problem{-msg} =  $broken_internal_link;
+                    }
+                    $checker->poderror(\%problem);
                 }
-                $checker->poderror(\%problem);
             }
         }
     }