From 5aeca1f7a73a0abecd5e1b5cb8b7462cf3369f85 Mon Sep 17 00:00:00 2001
From: Chris 'BinGOs' Williams
Date: Sun, 10 Jul 2011 10:13:39 +0100
Subject: [PATCH] Update Pod-Simple to CPAN version 3.17
[DELTA]
2011-07-09 David E. Wheeler
* Release 3.17
Documented tertiary methods. Patch from Shawn H Corey.
Added "backlink" option to Pod::Simple::XHTML. Thanks to Marc
Green/Google Summer of Code for the pull request.
Typos fixed in Pod::Simple::HTMLBatch. Reported by Shawn H Corey.
Fixed quoting of value returned by a "strip_verbatim_indent()"
code reference so that regex meta characters are properly escaped.
Added "anchor_items" option to Pod::Simple::XHMTL. This allows
text items (which are output as elements) to have IDs that
can be referenced in the "#" part of a URL. Marc Green/Google
Summer of Code.
Added "recurse" option to Pod::Simple::Search. It's enabled by
default; disable it to turn off recursion into subdirectories.
Marc Green/Google Summer of Code.
Added documentation to clarify the behavior of the "content_seen"
method. Thanks to Olaf Alders for the pull request.
---
Porting/Maintainers.pl | 8 +-
cpan/Pod-Simple/ChangeLog | 27 ++-
cpan/Pod-Simple/README | 2 +-
cpan/Pod-Simple/lib/Pod/Simple.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple.pod | 127 +++++++++-
cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm | 4 +-
cpan/Pod-Simple/lib/Pod/Simple/Checker.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/Debug.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/HTML.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm | 6 +-
cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm | 4 +-
cpan/Pod-Simple/lib/Pod/Simple/Methody.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/Progress.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm | 2 +-
.../lib/Pod/Simple/PullParserEndToken.pm | 2 +-
.../lib/Pod/Simple/PullParserStartToken.pm | 2 +-
.../lib/Pod/Simple/PullParserTextToken.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/RTF.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/Search.pm | 16 +-
cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/Subclassing.pod | 4 +-
cpan/Pod-Simple/lib/Pod/Simple/Text.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm | 2 +-
cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm | 50 +++-
cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm | 2 +-
cpan/Pod-Simple/t/search05.t | 3 +-
cpan/Pod-Simple/t/search10.t | 30 ++-
cpan/Pod-Simple/t/search12.t | 29 ++-
cpan/Pod-Simple/t/search20.t | 33 ++-
cpan/Pod-Simple/t/strpvbtm.t | 9 +-
cpan/Pod-Simple/t/xhtml10.t | 258 ++++++++++++++++++++-
pod/perldelta.pod | 4 +
39 files changed, 592 insertions(+), 66 deletions(-)
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index a8228c2..10e6ad9 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -1560,14 +1560,8 @@ use File::Glob qw(:case);
'Pod::Simple' =>
{
'MAINTAINER' => 'arandal',
- 'DISTRIBUTION' => 'DWHEELER/Pod-Simple-3.16.tar.gz',
+ 'DISTRIBUTION' => 'DWHEELER/Pod-Simple-3.17.tar.gz',
'FILES' => q[cpan/Pod-Simple],
- # XXX these two files correspond to similar ones in blead under
- # pod/, but the blead ones have newer changes, and also seem to
- # have been in blead a long time. I'm going to assume then that
- # the blead versions of these two files are authoritative - DAPM
- # Now been removed from Pod-Simple-3.15 commenting this out - bingos
- #'EXCLUDED' => [ qw( lib/perlpod.pod lib/perlpodspec.pod ) ],
'UPSTREAM' => 'cpan',
},
diff --git a/cpan/Pod-Simple/ChangeLog b/cpan/Pod-Simple/ChangeLog
index 721513a..d47f926 100644
--- a/cpan/Pod-Simple/ChangeLog
+++ b/cpan/Pod-Simple/ChangeLog
@@ -1,6 +1,31 @@
# ChangeLog for Pod::Simple dist
#---------------------------------------------------------------------------
+2011-07-09 David E. Wheeler
+ * Release 3.17
+
+ Documented tertiary methods. Patch from Shawn H Corey.
+
+ Added "backlink" option to Pod::Simple::XHTML. Thanks to Marc
+ Green/Google Summer of Code for the pull request.
+
+ Typos fixed in Pod::Simple::HTMLBatch. Reported by Shawn H Corey.
+
+ Fixed quoting of value returned by a "strip_verbatim_indent()"
+ code reference so that regex meta characters are properly escaped.
+
+ Added "anchor_items" option to Pod::Simple::XHMTL. This allows
+ text items (which are output as elements) to have IDs that
+ can be referenced in the "#" part of a URL. Marc Green/Google
+ Summer of Code.
+
+ Added "recurse" option to Pod::Simple::Search. It's enabled by
+ default; disable it to turn off recursion into subdirectories.
+ Marc Green/Google Summer of Code.
+
+ Added documentation to clarify the behavior of the "content_seen"
+ method. Thanks to Olaf Alders for the pull request.
+
2011-03-14 David E. Wheeler
* Release 3.16
@@ -28,7 +53,7 @@
spelled "=encode"). Thanks to "TTY" for the patch. (RT #24820).
2010-11-11 David E. Wheeler
- * Release 3.16
+ * Release 3.17
Removed "perlpod.pod" and "perlpodspec.pod". These now just live
in the Perl core.
diff --git a/cpan/Pod-Simple/README b/cpan/Pod-Simple/README
index 7f86422..f213dc2 100644
--- a/cpan/Pod-Simple/README
+++ b/cpan/Pod-Simple/README
@@ -1,4 +1,4 @@
-=head1 Pod::Simple version 3.16
+=head1 Pod::Simple version 3.17
Pod::Simple is a Perl library for parsing text in the Pod ("plain old
documentation") markup language that is typically used for writing
diff --git a/cpan/Pod-Simple/lib/Pod/Simple.pm b/cpan/Pod-Simple/lib/Pod/Simple.pm
index 909a2ec..8ba9af8 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple.pm
@@ -18,7 +18,7 @@ use vars qw(
);
@ISA = ('Pod::Simple::BlackBox');
-$VERSION = '3.16';
+$VERSION = '3.17';
@Known_formatting_codes = qw(I B C L E F S X Z);
%Known_formatting_codes = map(($_=>1), @Known_formatting_codes);
diff --git a/cpan/Pod-Simple/lib/Pod/Simple.pod b/cpan/Pod-Simple/lib/Pod/Simple.pod
index d3f168d..a8ad211 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple.pod
+++ b/cpan/Pod-Simple/lib/Pod/Simple.pod
@@ -85,9 +85,9 @@ the last call) ends with an C value.
=item C<< $parser->content_seen >>
-This returns true only if there has been any real content seen
-for this document.
-
+This returns true only if there has been any real content seen for this
+document. Returns false in cases where the document contains content,
+but does not make use of any Pod markup.
=item C<< I->filter( I<$filename> ); >>
@@ -211,6 +211,117 @@ that you don't want I lines indented. You can do something like this:
=back
+=head1 TERTIARY METHODS
+
+=over
+
+=item C<< $parser->abandon_output_fh() >>X
+
+Cancel output to the file handle. Any POD read by the C<$parser> is not
+effected.
+
+=item C<< $parser->abandon_output_string() >>X
+
+Cancel output to the output string. Any POD read by the C<$parser> is not
+effected.
+
+=item C<< $parser->accept_code( @codes ) >>X
+
+Alias for L<< accept_codes >>.
+
+=item C<< $parser->accept_codes( @codes ) >>X
+
+Allows C<$parser> to accept a list of L. This can be
+used to implement user-defined codes.
+
+=item C<< $parser->accept_directive_as_data( @directives ) >>X
+
+Allows C<$parser> to accept a list of directives for data paragraphs. A
+directive is the label of a L. A data paragraph is
+one delimited by C<< =begin/=for/=end >> directives. This can be used to
+implement user-defined directives.
+
+=item C<< $parser->accept_directive_as_processed( @directives ) >>X
+
+Allows C<$parser> to accept a list of directives for processed paragraphs. A
+directive is the label of a L. A processed
+paragraph is also known as L. This can be used to
+implement user-defined directives.
+
+=item C<< $parser->accept_directive_as_verbatim( @directives ) >>X
+
+Allows C<$parser> to accept a list of directives for L. A directive is the label of a L. This
+can be used to implement user-defined directives.
+
+=item C<< $parser->accept_target( @targets ) >>X
+
+Alias for L<< accept_targets >>.
+
+=item C<< $parser->accept_target_as_text( @targets ) >>X
+
+Alias for L<< accept_targets_as_text >>.
+
+=item C<< $parser->accept_targets( @targets ) >>X
+
+Accepts targets for C<< =begin/=for/=end >> sections of the POD.
+
+=item C<< $parser->accept_targets_as_text( @targets ) >>X
+
+Accepts targets for C<< =begin/=for/=end >> sections that should be parsed as
+POD. For details, see L<< perlpodspec/About Data Paragraphs >>.
+
+=item C<< $parser->any_errata_seen() >>X
+
+Used to check if any errata was seen.
+
+I
+
+ die "too many errors\n" if $parser->any_errata_seen();
+
+=item C<< $parser->parse_from_file( $source, $to ) >>X
+
+Parses from C<$source> file to C<$to> file. Similar to L<<
+Pod::Parser/parse_from_file >>.
+
+=item C<< $parser->scream( @error_messages ) >>X
+
+Log an error that can't be ignored.
+
+=item C<< $parser->unaccept_code( @codes ) >>X
+
+Alias for L<< unaccept_codes >>.
+
+=item C<< $parser->unaccept_codes( @codes ) >>X
+
+Removes C<< @codes >> as valid codes for the parse.
+
+=item C<< $parser->unaccept_directive( @directives ) >>X
+
+Alias for L<< unaccept_directives >>.
+
+=item C<< $parser->unaccept_directives( @directives ) >>X
+
+Removes C<< @directives >> as valid directives for the parse.
+
+=item C<< $parser->unaccept_target( @targets ) >>X
+
+Alias for L<< unaccept_targets >>.
+
+=item C<< $parser->unaccept_targets( @targets ) >>X
+
+Removes C<< @targets >> as valid targets for the parse.
+
+=item C<< $parser->version_report() >>X
+
+Returns a string describing the version.
+
+=item C<< $parser->whine( @error_messages ) >>X
+
+Log an error unless C<< $parser->no_whining( TRUE ); >>.
+
+=back
+
=head1 CAVEATS
This is just a beta release -- there are a good number of things still
@@ -271,4 +382,14 @@ Pod::Simple is maintained by:
=back
+Documentation has been contributed by:
+
+=over
+
+=item * Gabor Szabo C
+
+=item * Shawn H Corey C
+
+=back
+
=cut
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm b/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm
index 4765744..629563b 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm
@@ -23,7 +23,7 @@ use integer; # vroom!
use strict;
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.16';
+$VERSION = '3.17';
#use constant DEBUG => 7;
BEGIN {
require Pod::Simple;
@@ -1383,7 +1383,7 @@ sub _ponder_Verbatim {
for(my $i = 2; $i < @$para; $i++) {
foreach my $line ($para->[$i]) { # just for aliasing
# Strip indentation.
- $line =~ s/^\E$indent// if $indent
+ $line =~ s/^\Q$indent// if $indent
&& !($self->{accept_codes} && $self->{accept_codes}{VerbatimFormatted});
while( $line =~
# Sort of adapted from Text::Tabs -- yes, it's hardwired in that
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm b/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm
index 6aca389..e5ff0f7 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm
@@ -9,7 +9,7 @@ use Carp ();
use Pod::Simple::Methody ();
use Pod::Simple ();
use vars qw( @ISA $VERSION );
-$VERSION = '3.16';
+$VERSION = '3.17';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm b/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm
index b3de557..1aa2da8 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm
@@ -3,7 +3,7 @@ require 5;
package Pod::Simple::Debug;
use strict;
use vars qw($VERSION );
-$VERSION = '3.16';
+$VERSION = '3.17';
sub import {
my($value,$variable);
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm b/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm
index 5609c71..f2177b2 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsText;
-$VERSION = '3.16';
+$VERSION = '3.17';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm b/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm
index beef7ca..40b94c0 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsXML;
-$VERSION = '3.16';
+$VERSION = '3.17';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm b/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm
index 9d7d069..54e87b2 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm
@@ -10,7 +10,7 @@ use vars qw(
$Doctype_decl $Content_decl
);
@ISA = ('Pod::Simple::PullParser');
-$VERSION = '3.16';
+$VERSION = '3.17';
BEGIN {
if(defined &DEBUG) { } # no-op
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm b/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm
index 7686cd4..cfa2e4b 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm
@@ -5,7 +5,7 @@ use strict;
use vars qw( $VERSION $HTML_RENDER_CLASS $HTML_EXTENSION
$CSS $JAVASCRIPT $SLEEPY $SEARCH_CLASS @ISA
);
-$VERSION = '3.16';
+$VERSION = '3.17';
@ISA = (); # Yup, we're NOT a subclass of Pod::Simple::HTML!
# TODO: nocontents stylesheets. Strike some of the color variations?
@@ -1082,7 +1082,7 @@ Example:
% mkdir out_html
% perl -MPod::Simple::HTMLBatch -e Pod::Simple::HTMLBatch::go @INC out_html
(to convert the pod from Perl's @INC
- files under the directory ../htmlversion)
+ files under the directory ./out_html)
(Note that the command line there contains a literal atsign-I-N-C. This
is handled as a special case by batch_convert, in order to save you having
@@ -1095,7 +1095,7 @@ Example:
% chmod og-rx ../seekrut
% perl -MPod::Simple::HTMLBatch -e Pod::Simple::HTMLBatch::go . ../htmlversion
(to convert the pod under the current dir into HTML
- files under the directory ../htmlversion)
+ files under the directory ./seekrut)
Example:
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm b/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm
index 7d77ebb..70dbb07 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm
@@ -3,12 +3,12 @@ require 5;
package Pod::Simple::LinkSection;
# Based somewhat dimly on Array::Autojoin
use vars qw($VERSION );
-$VERSION = '3.16';
+$VERSION = '3.17';
use strict;
use Pod::Simple::BlackBox;
use vars qw($VERSION );
-$VERSION = '3.16';
+$VERSION = '3.17';
use overload( # So it'll stringify nice
'""' => \&Pod::Simple::BlackBox::stringify_lol,
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm b/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm
index 0d69b7a..3df5227 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm
@@ -4,7 +4,7 @@ package Pod::Simple::Methody;
use strict;
use Pod::Simple ();
use vars qw(@ISA $VERSION);
-$VERSION = '3.16';
+$VERSION = '3.17';
@ISA = ('Pod::Simple');
# Yes, we could use named variables, but I want this to be impose
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm b/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm
index 622909b..1d54999 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::Progress;
-$VERSION = '3.16';
+$VERSION = '3.17';
use strict;
# Objects of this class are used for noting progress of an
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm b/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm
index 4033213..cf45e8a 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::PullParser;
-$VERSION = '3.16';
+$VERSION = '3.17';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm b/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm
index 8b12e64..1adcf2e 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm
@@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken ();
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.16';
+$VERSION = '3.17';
sub new { # Class->new(tagname);
my $class = shift;
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm b/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm
index 232ef23..8906ae7 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm
@@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken ();
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.16';
+$VERSION = '3.17';
sub new { # Class->new(tagname, optional_attrhash);
my $class = shift;
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm b/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm
index a7fcb0f..0f6155f 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm
@@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken ();
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.16';
+$VERSION = '3.17';
sub new { # Class->new(text);
my $class = shift;
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm b/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm
index ad6ebf3..a90538f 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm
@@ -3,7 +3,7 @@ require 5;
package Pod::Simple::PullParserToken;
# Base class for tokens gotten from Pod::Simple::PullParser's $parser->get_token
@ISA = ();
-$VERSION = '3.16';
+$VERSION = '3.17';
use strict;
sub new { # Class->new('type', stuff...); ## Overridden in derived classes anyway
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm b/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm
index 7dbc643..7718b9e 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm
@@ -8,7 +8,7 @@ package Pod::Simple::RTF;
use strict;
use vars qw($VERSION @ISA %Escape $WRAP %Tagmap);
-$VERSION = '3.16';
+$VERSION = '3.17';
use Pod::Simple::PullParser ();
BEGIN {@ISA = ('Pod::Simple::PullParser')}
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/Search.pm b/cpan/Pod-Simple/lib/Pod/Simple/Search.pm
index b7d209b..fca12fe 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/Search.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/Search.pm
@@ -4,7 +4,7 @@ package Pod::Simple::Search;
use strict;
use vars qw($VERSION $MAX_VERSION_WITHIN $SLEEPY);
-$VERSION = '3.16'; ## Current version of this package
+$VERSION = '3.17'; ## Current version of this package
BEGIN { *DEBUG = sub () {0} unless defined &DEBUG; } # set DEBUG level
use Carp ();
@@ -25,7 +25,7 @@ use Cwd qw( cwd );
#==========================================================================
__PACKAGE__->_accessorize( # Make my dumb accessor methods
'callback', 'progress', 'dir_prefix', 'inc', 'laborious', 'limit_glob',
- 'limit_re', 'shadows', 'verbose', 'name2path', 'path2name',
+ 'limit_re', 'shadows', 'verbose', 'name2path', 'path2name', 'recurse',
);
#==========================================================================
@@ -39,6 +39,7 @@ sub new {
sub init {
my $self = shift;
$self->inc(1);
+ $self->recurse(1);
$self->verbose(DEBUG);
return $self;
}
@@ -127,9 +128,11 @@ sub _make_search_callback {
my $self = $_[0];
# Put the options in variables, for easy access
- my( $laborious, $verbose, $shadows, $limit_re, $callback, $progress,$path2name,$name2path) =
+ my( $laborious, $verbose, $shadows, $limit_re, $callback, $progress,
+ $path2name, $name2path, $recurse) =
map scalar($self->$_()),
- qw(laborious verbose shadows limit_re callback progress path2name name2path);
+ qw(laborious verbose shadows limit_re callback progress
+ path2name name2path recurse);
my($file, $shortname, $isdir, $modname_bits);
return sub {
@@ -137,6 +140,11 @@ sub _make_search_callback {
if($isdir) { # this never gets called on the startdir itself, just subdirs
+ unless( $recurse ) {
+ $verbose and print "Not recursing into '$file' as per requested.\n";
+ return 'PRUNE';
+ }
+
if( $self->{'_dirs_visited'}{$file} ) {
$verbose and print "Directory '$file' already seen, skipping.\n";
return 'PRUNE';
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm b/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm
index fc8b7a2..8099895 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm
@@ -6,7 +6,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.16';
+$VERSION = '3.17';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/Subclassing.pod b/cpan/Pod-Simple/lib/Pod/Simple/Subclassing.pod
index f536318..793c790 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/Subclassing.pod
+++ b/cpan/Pod-Simple/lib/Pod/Simple/Subclassing.pod
@@ -290,7 +290,7 @@ specified for this type of L code.
In the most common case, the simple case of a LEpodpageE code
produces this event structure:
-
+
podpage
@@ -673,7 +673,7 @@ B
In the unlikely situation that you need to tell the parser that you will
accept additional directives ("=foo" things), you need to first set the
-parset to treat its content as data (i.e., not really processed at
+parser to treat its content as data (i.e., not really processed at
all), or as verbatim (mostly just expanding tabs), or as processed text
(parsing formatting codes like BE...E).
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/Text.pm b/cpan/Pod-Simple/lib/Pod/Simple/Text.pm
index 55dae9a..1ed814c 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/Text.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/Text.pm
@@ -6,7 +6,7 @@ use Carp ();
use Pod::Simple::Methody ();
use Pod::Simple ();
use vars qw( @ISA $VERSION $FREAKYMODE);
-$VERSION = '3.16';
+$VERSION = '3.17';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm b/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm
index 36a4988..d78373e 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm
@@ -6,7 +6,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( @ISA $VERSION );
-$VERSION = '3.16';
+$VERSION = '3.17';
@ISA = ('Pod::Simple');
sub new {
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm b/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm
index e6e5a4a..2c2af0b 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm
@@ -4,7 +4,7 @@ package Pod::Simple::TiedOutFH;
use Symbol ('gensym');
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.16';
+$VERSION = '3.17';
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm b/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm
index dec3b96..266bade 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm
@@ -2,7 +2,7 @@
require 5;
package Pod::Simple::Transcode;
use vars qw($VERSION );
-$VERSION = '3.16';
+$VERSION = '3.17';
BEGIN {
if(defined &DEBUG) {;} # Okay
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm b/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm
index 6474475..4592c32 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm
@@ -5,7 +5,7 @@ require 5;
package Pod::Simple::TranscodeDumb;
use strict;
use vars qw($VERSION %Supported);
-$VERSION = '3.16';
+$VERSION = '3.17';
# This module basically pretends it knows how to transcode, except
# only for null-transcodings! We use this when Encode isn't
# available.
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm b/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm
index 5c10f02..c16cbfe 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm
@@ -9,7 +9,7 @@ use strict;
use Pod::Simple;
require Encode;
use vars qw($VERSION );
-$VERSION = '3.16';
+$VERSION = '3.17';
sub is_dumb {0}
sub is_smart {1}
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm b/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm
index ef05ddb..21e3318 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm
@@ -45,7 +45,7 @@ declare the output character set as UTF-8 before parsing, like so:
package Pod::Simple::XHTML;
use strict;
use vars qw( $VERSION @ISA $HAS_HTML_ENTITIES );
-$VERSION = '3.16';
+$VERSION = '3.17';
use Pod::Simple::Methody ();
@ISA = ('Pod::Simple::Methody');
@@ -194,6 +194,16 @@ to the empty string.
Whether to add a table-of-contents at the top of each page (called an
index for the sake of tradition).
+=head2 anchor_items
+
+Whether to anchor every definition C<=item> directive. This needs to be
+enabled if you want to be able to link to specific C<=item> directives, which
+are output as C<< >> elements. Disabled by default.
+
+=head2 backlink
+
+Whether to turn every =head1 directive into a link pointing to the top
+of the page (specifically, the opening body tag).
=cut
@@ -215,6 +225,8 @@ __PACKAGE__->_accessorize(
'html_header',
'html_footer',
'index',
+ 'anchor_items',
+ 'backlink',
'batch_mode', # whether we're in batch mode
'batch_mode_current_level',
# When in batch mode, how deep the current module is: 1 for "LWP",
@@ -244,7 +256,7 @@ sub new {
$new->{'to_index'} = [];
$new->{'output'} = [];
$new->{'saved'} = [];
- $new->{'ids'} = {};
+ $new->{'ids'} = { '_podtop_' => 1 }; # used in
$new->{'in_li'} = [];
$new->{'__region_targets'} = [];
@@ -273,7 +285,7 @@ want to override this if you are adding a custom element type that does
more than just display formatted text. Perhaps adding a way to generate
HTML tables from an extended version of POD.
-So, let's say you want add a custom element called 'foo'. In your
+So, let's say you want to add a custom element called 'foo'. In your
subclass's C method, after calling C you'd call:
$new->accept_targets_as_text( 'foo' );
@@ -342,11 +354,7 @@ sub start_item_bullet {
}
sub start_item_text {
- if ($_[0]{'in_dd'}[ $_[0]{'dl_level'} ]) {
- $_[0]{'scratch'} = "\n";
- $_[0]{'in_dd'}[ $_[0]{'dl_level'} ] = 0;
- }
- $_[0]{'scratch'} .= '';
+ # see end_item_text
}
sub start_over_bullet { $_[0]{'scratch'} = ''; push @{$_[0]{'in_li'}}, 0; $_[0]->emit }
@@ -402,7 +410,10 @@ sub _end_head {
my $id = $_[0]->idify($_[0]{scratch});
my $text = $_[0]{scratch};
- $_[0]{'scratch'} = qq{$text};
+ $_[0]{'scratch'} = $_[0]->backlink && ($h - $add == 0)
+ # backlinks enabled && =head1
+ ? qq{$text}
+ : qq{$text};
$_[0]->emit;
push @{ $_[0]{'to_index'} }, [$h, $id, $text];
}
@@ -416,7 +427,21 @@ sub end_item_bullet { $_[0]{'scratch'} .= '
'; $_[0]->emit }
sub end_item_number { $_[0]{'scratch'} .= ''; $_[0]->emit }
sub end_item_text {
- $_[0]{'scratch'} .= "\n";
+ # idify and anchor =item content if wanted
+ my $dt_id = $_[0]{'anchor_items'}
+ ? ' id="'. $_[0]->idify($_[0]{'scratch'}) .'"'
+ : '';
+
+ # reset scratch
+ my $text = $_[0]{scratch};
+ $_[0]{'scratch'} = '';
+
+ if ($_[0]{'in_dd'}[ $_[0]{'dl_level'} ]) {
+ $_[0]{'scratch'} = "\n";
+ $_[0]{'in_dd'}[ $_[0]{'dl_level'} ] = 0;
+ }
+
+ $_[0]{'scratch'} .= qq{$text\n};
$_[0]{'in_dd'}[ $_[0]{'dl_level'} ] = 1;
$_[0]->emit;
}
@@ -451,7 +476,7 @@ sub start_Document {
$self->{'scratch'} .= $self->html_header;
$self->emit unless $self->html_header eq "";
} else {
- my ($doctype, $title, $metatags);
+ my ($doctype, $title, $metatags, $bodyid);
$doctype = $self->html_doctype || '';
$title = $self->force_title || $self->title || $self->default_title || '';
$metatags = $self->html_header_tags || '';
@@ -463,6 +488,7 @@ sub start_Document {
$metatags .= "\n";
}
+ $bodyid = $self->backlink ? ' id="_podtop_"' : '';
$self->{'scratch'} .= <<"HTML";
$doctype
@@ -470,7 +496,7 @@ $doctype
$title
$metatags
-
+
HTML
$self->emit;
}
diff --git a/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm b/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm
index 69b992d..00d71b6 100644
--- a/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm
+++ b/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm
@@ -5,7 +5,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.16';
+$VERSION = '3.17';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
diff --git a/cpan/Pod-Simple/t/search05.t b/cpan/Pod-Simple/t/search05.t
index a55ca72..7250320 100644
--- a/cpan/Pod-Simple/t/search05.t
+++ b/cpan/Pod-Simple/t/search05.t
@@ -8,7 +8,7 @@ BEGIN {
use strict;
use Pod::Simple::Search;
use Test;
-BEGIN { plan tests => 15 }
+BEGIN { plan tests => 16 }
print "# Some basic sanity tests...\n";
@@ -22,6 +22,7 @@ ok defined $x->can('inc');
ok defined $x->can('laborious');
ok defined $x->can('limit_glob');
ok defined $x->can('limit_re');
+ok defined $x->can('recurse');
ok defined $x->can('shadows');
ok defined $x->can('verbose');
ok defined $x->can('survey');
diff --git a/cpan/Pod-Simple/t/search10.t b/cpan/Pod-Simple/t/search10.t
index c69334b..21f8a2d 100644
--- a/cpan/Pod-Simple/t/search10.t
+++ b/cpan/Pod-Simple/t/search10.t
@@ -13,7 +13,7 @@ use strict;
use Pod::Simple::Search;
use Test;
-BEGIN { plan tests => 7 }
+BEGIN { plan tests => 11 }
print "# ", __FILE__,
": Testing the surveying of a single specified docroot...\n";
@@ -21,7 +21,7 @@ print "# ", __FILE__,
my $x = Pod::Simple::Search->new;
die "Couldn't make an object!?" unless ok defined $x;
-print "# Testing the surveying of the current directory...\n";
+print "# Testing the surveying of a single docroot...\n";
$x->inc(0);
@@ -80,6 +80,32 @@ ok( ($name2where->{'squaa'} || 'huh???'), '/squaa\.pm$/');
ok grep( m/squaa\.pm/, keys %$where2name ), 1;
+###### Now with recurse(0)
+
+print "# Testing the surveying of a single docroot without recursing...\n";
+
+$x->recurse(0);
+($name2where, $where2name) = $x->survey($here);
+
+$p = pretty( $where2name, $name2where )."\n";
+$p =~ s/, +/,\n/g;
+$p =~ s/^/# /mg;
+print $p;
+
+{
+my $names = join "|", sort values %$where2name;
+ok $names, "Blorm|squaa|zikzik";
+}
+
+{
+my $names = join "|", sort keys %$name2where;
+ok $names, "Blorm|squaa|zikzik";
+}
+
+ok( ($name2where->{'squaa'} || 'huh???'), '/squaa\.pm$/');
+
+ok grep( m/squaa\.pm/, keys %$where2name ), 1;
+
ok 1;
__END__
diff --git a/cpan/Pod-Simple/t/search12.t b/cpan/Pod-Simple/t/search12.t
index 4f620c0..4f8231b 100644
--- a/cpan/Pod-Simple/t/search12.t
+++ b/cpan/Pod-Simple/t/search12.t
@@ -8,7 +8,7 @@ BEGIN {
use strict;
use Pod::Simple::Search;
use Test;
-BEGIN { plan tests => 7 }
+BEGIN { plan tests => 11 }
print "# ", __FILE__,
": Testing the surveying of the current directory...\n";
@@ -73,7 +73,34 @@ ok( ($name2where->{'squaa'} || 'huh???'), '/squaa\.pm$/');
ok grep( m/squaa\.pm/, keys %$where2name ), 1;
+###### Now with recurse(0)
+
+print "# Testing the surveying of a current directory without recursing...\n";
+
+$x->recurse(0);
+($name2where, $where2name) = $x->survey($cwd);
+
+$p = pretty( $where2name, $name2where )."\n";
+$p =~ s/, +/,\n/g;
+$p =~ s/^/# /mg;
+print $p;
+
+{
+my $names = join "|", sort values %$where2name;
+ok $names, "";
+}
+
+{
+my $names = join "|", sort keys %$name2where;
+ok $names, "";
+}
+
+ok( ($name2where->{'squaa'} || 'huh???'), 'huh???');
+
+ok grep( m/squaa\.pm/, keys %$where2name ), 0;
+
ok 1;
__END__
+
diff --git a/cpan/Pod-Simple/t/search20.t b/cpan/Pod-Simple/t/search20.t
index 3022b36..ea161cc 100644
--- a/cpan/Pod-Simple/t/search20.t
+++ b/cpan/Pod-Simple/t/search20.t
@@ -8,7 +8,7 @@ BEGIN {
use strict;
use Pod::Simple::Search;
use Test;
-BEGIN { plan tests => 7 }
+BEGIN { plan tests => 11 }
print "# ", __FILE__,
": Testing the scanning of several (well, two) docroots...\n";
@@ -85,6 +85,37 @@ ok( ($name2where->{'squaa'} || 'huh???'), '/squaa\.pm$/');
ok grep( m/squaa\.pm/, keys %$where2name ), 1;
+###### Now with recurse(0)
+
+$x->recurse(0);
+
+print "# OK, starting run without recurse...\n# [[\n";
+($name2where, $where2name) = $x->survey($here1, $here2);
+print "# ]]\n#OK, run without recurse done.\n";
+
+$p = pretty( $where2name, $name2where )."\n";
+$p =~ s/, +/,\n/g;
+$p =~ s/^/# /mg;
+print $p;
+
+{
+my $names = join "|", sort values %$where2name;
+skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0,
+ $names,
+ "Blorm|Suzzle|squaa|zikzik";
+}
+
+{
+my $names = join "|", sort keys %$name2where;
+skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0,
+ $names,
+ "Blorm|Suzzle|squaa|zikzik";
+}
+
+ok( ($name2where->{'squaa'} || 'huh???'), '/squaa\.pm$/');
+
+ok grep( m/squaa\.pm/, keys %$where2name ), 1;
+
ok 1;
__END__
diff --git a/cpan/Pod-Simple/t/strpvbtm.t b/cpan/Pod-Simple/t/strpvbtm.t
index ef85c5a..8650fb8 100644
--- a/cpan/Pod-Simple/t/strpvbtm.t
+++ b/cpan/Pod-Simple/t/strpvbtm.t
@@ -8,7 +8,7 @@ BEGIN {
use strict;
use lib '../lib';
-use Test::More tests => 79;
+use Test::More tests => 87;
#use Test::More 'no_plan';
use_ok('Pod::Simple::XHTML') or exit;
@@ -85,6 +85,13 @@ for my $spec (
"foo bar\nbaz blez
\n\n",
'militant code ref'
],
+ [
+ "\n=pod\n\n foo (bar\n baz blez\n",
+ sub { (my $i = $_[0]->[0]) =~ s/S.*//; $i },
+ qq{\n baz blez},
+ "\n baz blez
\n\n",
+ 'code ref and paren'
+ ],
) {
my ($pod, $indent, $xml, $xhtml, $desc) = @$spec;
# Test XML output.
diff --git a/cpan/Pod-Simple/t/xhtml10.t b/cpan/Pod-Simple/t/xhtml10.t
index c3ec202..6f54dd4 100644
--- a/cpan/Pod-Simple/t/xhtml10.t
+++ b/cpan/Pod-Simple/t/xhtml10.t
@@ -8,7 +8,7 @@ BEGIN {
use strict;
use lib '../lib';
-use Test::More tests => 44;
+use Test::More tests => 56;
#use Test::More 'no_plan';
use_ok('Pod::Simple::XHTML') or exit;
@@ -397,6 +397,262 @@ is $results, <<'EOF', 'And it should work!';
EOF
+initialize($parser, $results);
+$parser->html_header($header);
+$parser->html_footer($footer);
+$parser->backlink(1);
+ok $parser->parse_string_document( '=head1 Foo' ), 'Parse a header';
+is $results, <<'EOF', 'Should have the index and a backlink';
+
+
+
+
+
+
+
+
+
+
+
+Foo
+
+
+
+
+EOF
+
+initialize($parser, $results);
+$parser->html_header($header);
+$parser->html_footer($footer);
+$parser->backlink(1);
+ok $parser->parse_string_document( "=head1 Foo \n\n=head2 Bar \n\n=head1 Baz" ), 'Parse headers';
+is $results, <<'EOF', 'Should have the index and backlinks';
+
+
+
+
+
+
+
+
+
+
+
+Foo
+
+Bar
+
+Baz
+
+
+
+
+EOF
+
+initialize($parser, $results);
+$parser->html_header($header);
+$parser->html_footer($footer);
+$parser->index(0);
+$parser->backlink(1);
+ok $parser->parse_string_document( "=head1 Foo \n\n=head1 Bar" ), 'Parse headers';
+is $results, <<'EOF', 'Should have backlinks but no index';
+
+
+
+
+
+
+
+
+
+Foo
+
+Bar
+
+
+
+
+EOF
+
+initialize($parser, $results);
+$parser->html_header($header);
+$parser->html_footer($footer);
+$parser->backlink(1);
+$parser->html_h_level(2);
+ok $parser->parse_string_document( "=head1 Foo \n\n=head1 Bar" ), 'Parse headers';
+is $results, <<'EOF', 'Should have index and backlinks around h2 elements';
+
+
+
+
+
+
+
+
+
+
+
+Foo
+
+Bar
+
+
+
+
+EOF
+
+initialize($parser, $results);
+$parser->anchor_items(1);
+ok $parser->parse_string_document( <<'EOPOD' ), 'Parse POD';
+=head1 Foo
+
+=over
+
+=item test
+
+=item Test 2
+
+body of item
+
+=back
+
+=over
+
+=item *
+
+not anchored
+
+=back
+
+=over
+
+=item 1
+
+still not anchored
+
+=back
+EOPOD
+
+is $results, <<'EOF', 'Anchor =item directives';
+
+
+Foo
+
+
+
+- test
+-
+
+
+- Test 2
+-
+
+
body of item
+
+
+
+
+
+
+
+
+still not anchored
+
+
+
+
+EOF
+
+initialize($parser, $results);
+$parser->anchor_items(0);
+ok $parser->parse_string_document( <<'EOPOD' ), 'Parse POD';
+=head1 Foo
+
+=over
+
+=item test
+
+=item Test 2
+
+body of item
+
+=back
+
+=over
+
+=item *
+
+not anchored
+
+=back
+
+=over
+
+=item 1
+
+still not anchored
+
+=back
+EOPOD
+is $results, <<'EOF', 'Do not anchor =item directives';
+
+
+Foo
+
+
+
+- test
+-
+
+
+- Test 2
+-
+
+
body of item
+
+
+
+
+
+
+
+
+still not anchored
+
+
+
+
+EOF
sub initialize {
$_[0] = Pod::Simple::XHTML->new;
$_[0]->html_header('');
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 157f115..f4fc9c7 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -227,6 +227,10 @@ performance under ithreads.
=item *
+L has been upgraded from version 3.16 to version 3.17
+
+=item *
+
L has been upgraded from version 0.76 to version 0.77
Applied [perl #93470] silencing compiler warnings with -Wwrite-strings
--
2.7.4