This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #92436] Filter::Simple can’t find end of POD
authorFather Chrysostomos <sprout@cpan.org>
Sat, 10 Sep 2011 06:21:48 +0000 (23:21 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sat, 10 Sep 2011 06:21:48 +0000 (23:21 -0700)
Filter::Simple’s $pod_or_DATA regexp was mistakenly written to look
for =end if the pod section began with =begin, and to look for the
end of the paragraph if the pod began with =for.  Only =cut and EOF
can end pod.

This patch does not fix Filter::Simple’s naïve way of finding the
beginning of pod.

dist/Filter-Simple/lib/Filter/Simple.pm
dist/Filter-Simple/t/filter_only.t
dist/Filter-Simple/t/lib/Filter/Simple/FilterOnlyTest.pm
pod/perldelta.pod

index 2cfa99a..308ab8c 100644 (file)
@@ -4,7 +4,7 @@ use Text::Balanced ':ALL';
 
 use vars qw{ $VERSION @EXPORT };
 
-$VERSION = '0.87';
+$VERSION = '0.88';
 
 use Filter::Util::Call;
 use Carp;
@@ -36,8 +36,8 @@ my $CUT = qr/\n=cut.*$EOP/;
 my $pod_or_DATA = qr/
               ^=(?:head[1-4]|item) .*? $CUT
             | ^=pod .*? $CUT
-            | ^=for .*? $EOP
-            | ^=begin \s* (\S+) .*? \n=end \s* \1 .*? $EOP
+            | ^=for .*? $CUT
+            | ^=begin .*? $CUT
             | ^__(DATA|END)__\r?\n.*
             /smx;
 
index f30fced..57f1086 100644 (file)
@@ -20,6 +20,20 @@ print "ok 5\n";
 
 ok 7 unless not ok 6;
 
+=begin scrumbly
+
+=end scrumbly
+
+shromple
+
+=cut
+
+=for us
+
+shromple again
+
+=cut
+
 no Filter::Simple::FilterOnlyTest; # THE FUN STOPS HERE
 
 print "not " unless "not ok" =~ /^not /;
index c10e8ea..e692f8b 100644 (file)
@@ -8,4 +8,7 @@ FILTER_ONLY
                while (my($pat, $str) = splice @_, 0, 2) {
                        s/$pat/$str/g;
                }
+       },
+       code_no_comments => sub {
+               $_ =~ /shromple/ and die "We wants no shromples!";
        };
index b44c844..814cea9 100644 (file)
@@ -184,6 +184,14 @@ See L</Security>.
 
 =item *
 
+L<Filter::Simple> has been upgrade from version 0.87 to 0.88.
+
+It is now better at detecting the end of a pod section.  It always checks
+for =cut, instead of checking for =end (if the pod begins with =begin) or
+the end of the paragraph (if the pod begins with =for) [perl #92436].
+
+=item *
+
 L<Math::BigRat> has been upgraded from version 0.2602 to version 0.2603.
 
 C<int()> on a Math::BigRat object containing -1/2 now creates a