Upgrade to podlators-2.1.4
Steve Hay [Fri, 26 Sep 2008 08:44:33 +0000 (08:44 +0000)]
p4raw-id: //depot/perl@34421

MANIFEST
lib/Pod/Man.pm
lib/Pod/Text.pm
lib/Pod/Text/Overstrike.pm
lib/Pod/t/man-options.t
lib/Pod/t/man-utf8.t [new file with mode: 0644]
lib/Pod/t/pod-spelling.t
lib/Pod/t/text-utf8.t
pod/pod2man.PL
pod/pod2text.PL

index 03fdac7..b302ca6 100644 (file)
--- 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
index 4eca872..48fe20e 100644 (file)
@@ -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
 
index f0da802..98dd434 100644 (file)
@@ -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
 
index c11330d..00b505d 100644 (file)
@@ -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
 
index 0d86cb8..04895d5 100644 (file)
@@ -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 (<DATA>) {
     my %options;
     next until $_ eq "###\n";
@@ -52,8 +51,6 @@ while (<DATA>) {
         $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 (<DATA>) {
         last if $_ eq "###\n";
         print TMP $_;
@@ -61,16 +58,13 @@ while (<DATA>) {
     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 (<TMP>) {
-        $accents = 1 if /Accent mark definitions/;
         last if /^\.nh/;
     }
     my $output;
@@ -80,14 +74,6 @@ while (<DATA>) {
     }
     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 (<DATA>) {
         last if $_ eq "###\n";
@@ -129,46 +115,6 @@ while (<DATA>) {
 __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 SE<lt>E<gt> output with UTF-8
-
-This is S<non-breaking output>.
-###
-.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 (file)
index 0000000..a53208b
--- /dev/null
@@ -0,0 +1,141 @@
+#!/usr/bin/perl -w
+#
+# man-options.t -- Additional tests for Pod::Man options.
+#
+# Copyright 2002, 2004, 2006, 2008 Russ Allbery <rra@stanford.edu>
+#
+# 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 (<DATA>) {
+    my %options;
+    next until $_ eq "###\n";
+    while (<DATA>) {
+        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 (<DATA>) {
+        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 (<TMP>) {
+        $accents = 1 if /Accent mark definitions/;
+        last if /^\.nh/;
+    }
+    my $output;
+    {
+        local $/;
+        $output = <TMP>;
+    }
+    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 (<DATA>) {
+        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 SE<lt>E<gt> output with UTF-8
+
+This is S<non-breaking output>.
+###
+.SH "S<> output with UTF\-8"
+.IX Header "S<> output with UTF-8"
+This is non-breaking output.
+###
index 9c6bfbd..c13fb9d 100644 (file)
@@ -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 = <CHILD>;
         close CHILD;
         if ($? != 0) {
-            print "ok $n # skip - @spell failed\n";
+            print "ok $n # skip - @spell failed: $?\n";
         } elsif (@words) {
             for (@words) {
                 s/^\s+//;
index 7572825..3d2904a 100755 (executable)
@@ -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 {
index 58e3f21..c353455 100644 (file)
@@ -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
 
index f9eb462..45a0649 100644 (file)
@@ -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