From 2504ae5250790bc6da9ecd41645e0005cd550a86 Mon Sep 17 00:00:00 2001 From: Steve Hay Date: Fri, 26 Sep 2008 08:44:33 +0000 Subject: [PATCH] Upgrade to podlators-2.1.4 p4raw-id: //depot/perl@34421 --- MANIFEST | 1 + lib/Pod/Man.pm | 5 +- lib/Pod/Text.pm | 4 +- lib/Pod/Text/Overstrike.pm | 7 ++- lib/Pod/t/man-options.t | 62 ++------------------ lib/Pod/t/man-utf8.t | 141 +++++++++++++++++++++++++++++++++++++++++++++ lib/Pod/t/pod-spelling.t | 19 +++--- lib/Pod/t/text-utf8.t | 9 +++ pod/pod2man.PL | 2 +- pod/pod2text.PL | 2 +- 10 files changed, 179 insertions(+), 73 deletions(-) create mode 100644 lib/Pod/t/man-utf8.t diff --git a/MANIFEST b/MANIFEST index 03fdac7..b302ca6 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2763,6 +2763,7 @@ lib/Pod/t/htmlview.pod pod2html render test input data lib/Pod/t/htmlview.t pod2html render test lib/Pod/t/InputObjects.t See if Pod::InputObjects works lib/Pod/t/man-options.t podlators test +lib/Pod/t/man-utf8.t podlators test lib/Pod/t/man.t podlators test lib/Pod/t/parselink.t podlators test lib/Pod/t/pod2html-lib.pl pod2html testing library diff --git a/lib/Pod/Man.pm b/lib/Pod/Man.pm index 4eca872..48fe20e 100644 --- a/lib/Pod/Man.pm +++ b/lib/Pod/Man.pm @@ -36,7 +36,7 @@ use POSIX qw(strftime); @ISA = qw(Pod::Simple); -$VERSION = '2.19'; +$VERSION = '2.20'; # Set the debugging level. If someone has inserted a debug function into this # class already, use that. Otherwise, use any Pod::Simple debug function @@ -1450,7 +1450,8 @@ Pod::Man - Convert POD data to formatted *roff input =for stopwords en em ALLCAPS teeny fixedbold fixeditalic fixedbolditalic stderr utf8 -UTF-8 Allbery Sean Burke Ossanna Solaris +UTF-8 Allbery Sean Burke Ossanna Solaris formatters troff uppercased +Christiansen =head1 SYNOPSIS diff --git a/lib/Pod/Text.pm b/lib/Pod/Text.pm index f0da802..98dd434 100644 --- a/lib/Pod/Text.pm +++ b/lib/Pod/Text.pm @@ -37,7 +37,7 @@ use Pod::Simple (); # We have to export pod2text for backward compatibility. @EXPORT = qw(pod2text); -$VERSION = 3.10; +$VERSION = 3.11; ############################################################################## # Initialization @@ -640,7 +640,7 @@ __END__ Pod::Text - Convert POD data to formatted ASCII text =for stopwords -alt stderr Allbery Sean Burke's +alt stderr Allbery Sean Burke's Christiansen =head1 SYNOPSIS diff --git a/lib/Pod/Text/Overstrike.pm b/lib/Pod/Text/Overstrike.pm index c11330d..00b505d 100644 --- a/lib/Pod/Text/Overstrike.pm +++ b/lib/Pod/Text/Overstrike.pm @@ -34,7 +34,7 @@ use vars qw(@ISA $VERSION); @ISA = qw(Pod::Text); -$VERSION = 2.01; +$VERSION = 2.02; ############################################################################## # Overrides @@ -146,10 +146,13 @@ __END__ =head1 NAME +=for stopwords +overstrike + Pod::Text::Overstrike - Convert POD data to formatted overstrike text =for stopwords -overstruck Overstruck Allbery +overstruck Overstruck Allbery terminal's =head1 SYNOPSIS diff --git a/lib/Pod/t/man-options.t b/lib/Pod/t/man-options.t index 0d86cb8..04895d5 100644 --- a/lib/Pod/t/man-options.t +++ b/lib/Pod/t/man-options.t @@ -16,7 +16,7 @@ BEGIN { } unshift (@INC, '../blib/lib'); $| = 1; - print "1..16\n"; + print "1..7\n"; } END { @@ -42,7 +42,6 @@ $loaded = 1; print "ok 1\n"; my $n = 2; -eval { binmode (\*DATA, ':encoding(utf-8)') }; while () { my %options; next until $_ eq "###\n"; @@ -52,8 +51,6 @@ while () { $options{$option} = $value; } open (TMP, '> tmp.pod') or die "Cannot create tmp.pod: $!\n"; - eval { binmode (\*TMP, ':encoding(utf-8)') }; - print TMP "=encoding utf-8\n\n"; while () { last if $_ eq "###\n"; print TMP $_; @@ -61,16 +58,13 @@ while () { close TMP; my $parser = Pod::Man->new (%options) or die "Cannot create parser\n"; open (OUT, '> out.tmp') or die "Cannot create out.tmp: $!\n"; - eval { binmode (\*OUT, ':encoding(utf-8)') }; stderr_save; $parser->parse_from_file ('tmp.pod', \*OUT); stderr_restore; close OUT; my $accents = 0; open (TMP, 'out.tmp') or die "Cannot open out.tmp: $!\n"; - eval { binmode (\*TMP, ':encoding(utf-8)') }; while () { - $accents = 1 if /Accent mark definitions/; last if /^\.nh/; } my $output; @@ -80,14 +74,6 @@ while () { } close TMP; unlink ('tmp.pod', 'out.tmp'); - if (($options{utf8} && !$accents) || (!$options{utf8} && $accents)) { - print "ok $n\n"; - } else { - print "not ok $n\n"; - print ($accents ? "Saw accents\n" : "Saw no accents\n"); - print ($options{utf8} ? "Wanted no accents\n" : "Wanted accents\n"); - } - $n++; my $expected = ''; while () { last if $_ eq "###\n"; @@ -129,46 +115,6 @@ while () { __DATA__ ### -utf8 1 -### -=head1 BEYONCÉ - -Beyoncé! Beyoncé! Beyoncé!! - - Beyoncé! Beyoncé! - Beyoncé! Beyoncé! - Beyoncé! Beyoncé! - -Older versions did not convert Beyoncé in verbatim. -### -.SH "BEYONCÉ" -.IX Header "BEYONCÉ" -Beyoncé! Beyoncé! Beyoncé!! -.PP -.Vb 3 -\& Beyoncé! Beyoncé! -\& Beyoncé! Beyoncé! -\& Beyoncé! Beyoncé! -.Ve -.PP -Older versions did not convert Beyoncé in verbatim. -### -### - -### -utf8 1 -### -=head1 SEE output with UTF-8 - -This is S. -### -.SH "S<> output with UTF\-8" -.IX Header "S<> output with UTF-8" -This is non-breaking output. -### -### - -### fixed CR fixedbold CY fixeditalic CW @@ -202,8 +148,8 @@ Bar. .SH "POD ERRORS" .IX Header "POD ERRORS" Hey! \fBThe above document had some coding errors, which are explained below:\fR -.IP "Around line 9:" 4 -.IX Item "Around line 9:" +.IP "Around line 7:" 4 +.IX Item "Around line 7:" You forgot a '=back' before '=head1' ### ### @@ -225,5 +171,5 @@ Bar. .SH "NEXT" .IX Header "NEXT" ### -tmp.pod around line 9: You forgot a '=back' before '=head1' +tmp.pod around line 7: You forgot a '=back' before '=head1' ### diff --git a/lib/Pod/t/man-utf8.t b/lib/Pod/t/man-utf8.t new file mode 100644 index 0000000..a53208b --- /dev/null +++ b/lib/Pod/t/man-utf8.t @@ -0,0 +1,141 @@ +#!/usr/bin/perl -w +# +# man-options.t -- Additional tests for Pod::Man options. +# +# Copyright 2002, 2004, 2006, 2008 Russ Allbery +# +# This program is free software; you may redistribute it and/or modify it +# under the same terms as Perl itself. + +BEGIN { + chdir 't' if -d 't'; + if ($ENV{PERL_CORE}) { + @INC = '../lib'; + } else { + unshift (@INC, '../blib/lib'); + } + unshift (@INC, '../blib/lib'); + $| = 1; + print "1..5\n"; + + # UTF-8 support requires Perl 5.8 or later. + if ($] < 5.008) { + my $n; + for $n (1..5) { + print "ok $n # skip -- Perl 5.8 required for UTF-8 support\n"; + } + exit; + } +} + +END { + print "not ok 1\n" unless $loaded; +} + +use Pod::Man; + +$loaded = 1; +print "ok 1\n"; + +my $n = 2; +eval { binmode (\*DATA, ':encoding(utf-8)') }; +while () { + my %options; + next until $_ eq "###\n"; + while () { + last if $_ eq "###\n"; + my ($option, $value) = split; + $options{$option} = $value; + } + open (TMP, '> tmp.pod') or die "Cannot create tmp.pod: $!\n"; + eval { binmode (\*TMP, ':encoding(utf-8)') }; + print TMP "=encoding utf-8\n\n"; + while () { + last if $_ eq "###\n"; + print TMP $_; + } + close TMP; + my $parser = Pod::Man->new (%options) or die "Cannot create parser\n"; + open (OUT, '> out.tmp') or die "Cannot create out.tmp: $!\n"; + eval { binmode (\*OUT, ':encoding(utf-8)') }; + $parser->parse_from_file ('tmp.pod', \*OUT); + close OUT; + my $accents = 0; + open (TMP, 'out.tmp') or die "Cannot open out.tmp: $!\n"; + eval { binmode (\*TMP, ':encoding(utf-8)') }; + while () { + $accents = 1 if /Accent mark definitions/; + last if /^\.nh/; + } + my $output; + { + local $/; + $output = ; + } + close TMP; + unlink ('tmp.pod', 'out.tmp'); + if (($options{utf8} && !$accents) || (!$options{utf8} && $accents)) { + print "ok $n\n"; + } else { + print "not ok $n\n"; + print ($accents ? "Saw accents\n" : "Saw no accents\n"); + print ($options{utf8} ? "Wanted no accents\n" : "Wanted accents\n"); + } + $n++; + my $expected = ''; + while () { + last if $_ eq "###\n"; + $expected .= $_; + } + if ($output eq $expected) { + print "ok $n\n"; + } else { + print "not ok $n\n"; + print "Expected\n========\n$expected\nOutput\n======\n$output\n"; + } + $n++; +} + +# Below the marker are bits of POD and corresponding expected text output. +# This is used to test specific features or problems with Pod::Man. The +# input and output are separated by lines containing only ###. + +__DATA__ + +### +utf8 1 +### +=head1 BEYONCÉ + +Beyoncé! Beyoncé! Beyoncé!! + + Beyoncé! Beyoncé! + Beyoncé! Beyoncé! + Beyoncé! Beyoncé! + +Older versions did not convert Beyoncé in verbatim. +### +.SH "BEYONCÉ" +.IX Header "BEYONCÉ" +Beyoncé! Beyoncé! Beyoncé!! +.PP +.Vb 3 +\& Beyoncé! Beyoncé! +\& Beyoncé! Beyoncé! +\& Beyoncé! Beyoncé! +.Ve +.PP +Older versions did not convert Beyoncé in verbatim. +### + +### +utf8 1 +### +=head1 SEE output with UTF-8 + +This is S. +### +.SH "S<> output with UTF\-8" +.IX Header "S<> output with UTF-8" +This is non-breaking output. +### diff --git a/lib/Pod/t/pod-spelling.t b/lib/Pod/t/pod-spelling.t index 9c6bfbd..c13fb9d 100644 --- a/lib/Pod/t/pod-spelling.t +++ b/lib/Pod/t/pod-spelling.t @@ -16,13 +16,17 @@ skip_all "Test::Pod 1.00 required for testing POD" if $@; eval 'use Pod::Spell'; skip_all "Pod::Spell required to test POD spelling" if $@; my @spell; -for my $dir (split ':', $ENV{PATH}) { - if (-x "$dir/ispell") { - @spell = ("$dir/ispell", '-d', 'american', '-l', '-p', '/dev/null'); +my %options = (aspell => [ qw(-d en_US --home-dir=./ list) ], + ispell => [ qw(-d american -l -p /dev/null) ]); +SEARCH: for my $program (qw/aspell ispell/) { + for my $dir (split ':', $ENV{PATH}) { + if (-x "$dir/$program") { + @spell = ("$dir/$program", @{ $options{$program} }); + } + last SEARCH if @spell; } - last if @spell; } -skip_all "ispell required to test POD spelling" unless @spell; +skip_all "aspell or ispell required to test POD spelling" unless @spell; # Run the test, one for each POD file. $| = 1; @@ -35,7 +39,8 @@ for my $pod (@pod) { if (not defined $child) { die "Cannot fork: $!\n"; } elsif ($child == 0) { - my $pid = open (SPELL, '|-', @spell) or die "Cannot run @spell: $!\n"; + my $pid = open (SPELL, '|-', @spell) + or die "Cannot run @spell: $!\n"; open (POD, '<', $pod) or die "Cannot open $pod: $!\n"; my $parser = Pod::Spell->new; $parser->parse_from_filehandle (\*POD, \*SPELL); @@ -46,7 +51,7 @@ for my $pod (@pod) { my @words = ; close CHILD; if ($? != 0) { - print "ok $n # skip - @spell failed\n"; + print "ok $n # skip - @spell failed: $?\n"; } elsif (@words) { for (@words) { s/^\s+//; diff --git a/lib/Pod/t/text-utf8.t b/lib/Pod/t/text-utf8.t index 7572825..3d2904a 100755 --- a/lib/Pod/t/text-utf8.t +++ b/lib/Pod/t/text-utf8.t @@ -17,6 +17,15 @@ BEGIN { unshift (@INC, '../blib/lib'); $| = 1; print "1..3\n"; + + # UTF-8 support requires Perl 5.8 or later. + if ($] < 5.008) { + my $n; + for $n (1..3) { + print "ok $n # skip -- Perl 5.8 required for UTF-8 support\n"; + } + exit; + } } END { diff --git a/pod/pod2man.PL b/pod/pod2man.PL index 58e3f21..c353455 100644 --- a/pod/pod2man.PL +++ b/pod/pod2man.PL @@ -100,7 +100,7 @@ pod2man - Convert POD data to formatted *roff input =for stopwords en em --stderr stderr --utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris -URL +URL troff troff-specific formatters uppercased Christiansen =head1 SYNOPSIS diff --git a/pod/pod2text.PL b/pod/pod2text.PL index f9eb462..45a0649 100644 --- a/pod/pod2text.PL +++ b/pod/pod2text.PL @@ -113,7 +113,7 @@ __END__ pod2text - Convert POD data to formatted ASCII text =for stopwords --aclost --alt --stderr Allbery +-aclost --alt --stderr Allbery --overstrike overstrike --termcap =head1 SYNOPSIS -- 2.7.4