This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Pod-Usage to CPAN version 1.63
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 2 Jun 2013 08:22:51 +0000 (09:22 +0100)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 2 Jun 2013 08:25:50 +0000 (09:25 +0100)
  [DELTA]

1.63 (marekr)
- CPAN#85477: Module version not updated in last release
  ...fixed
- CPAN#85478: typo fixes
  ...corrected

MANIFEST
Porting/Maintainers.pl
cpan/Pod-Usage/lib/Pod/Usage.pm
cpan/Pod-Usage/t/pod/pod2usage.t [new file with mode: 0644]
cpan/Pod-Usage/t/pod/pod2usage.xr [new file with mode: 0644]
cpan/Pod-Usage/t/pod/testp2pt.pl [new file with mode: 0644]

index e8f2286..e76d4af 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -2042,7 +2042,10 @@ cpan/Pod-Usage/lib/Pod/Usage.pm
 cpan/Pod-Usage/scripts/pod2usage.PL
 cpan/Pod-Usage/t/pod/p2u_data.pl
 cpan/Pod-Usage/t/pod/pod2usage2.t
+cpan/Pod-Usage/t/pod/pod2usage.t
+cpan/Pod-Usage/t/pod/pod2usage.xr
 cpan/Pod-Usage/t/pod/testcmp.pl
+cpan/Pod-Usage/t/pod/testp2pt.pl
 cpan/Pod-Usage/t/pod/usage2.pod
 cpan/Pod-Usage/t/pod/usage.pod
 cpan/Socket/Makefile.PL                        Socket extension makefile writer
index 32b0690..2f6acec 100755 (executable)
@@ -1483,7 +1483,7 @@ use File::Glob qw(:case);
 
     'Pod::Usage' => {
         'MAINTAINER' => 'marekr',
-        'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.62.tar.gz',
+        'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.63.tar.gz',
         'FILES'        => q[cpan/Pod-Usage],
         'UPSTREAM'     => 'cpan',
     },
index 1c509cb..f0dd835 100644 (file)
@@ -11,7 +11,7 @@ package Pod::Usage;
 use strict;
 
 use vars qw($VERSION @ISA @EXPORT);
-$VERSION = '1.61';  ## Current version of this package
+$VERSION = '1.63';  ## Current version of this package
 require  5.006;    ## requires this Perl version or later
 
 #use diagnostics;
@@ -93,7 +93,7 @@ sub pod2usage {
     ## Default the input file
     $opts{'-input'} = $0  unless (defined $opts{'-input'});
 
-    ## Look up input file in path if it doesnt exist.
+    ## Look up input file in path if it doesn't exist.
     unless ((ref $opts{'-input'}) || (-e $opts{'-input'})) {
         my $basename = $opts{'-input'};
         my $pathsep = ($^O =~ /^(?:dos|os2|MSWin32)$/i) ? ';'
@@ -341,7 +341,7 @@ sub preprocess_paragraph {
     my $self = shift;
     local $_ = shift;
     my $line = shift;
-    ## See if this is a heading and we arent printing the entire manpage.
+    ## See if this is a heading and we aren't printing the entire manpage.
     if (($self->{USAGE_OPTIONS}->{-verbose} < 2) && /^=head/) {
         ## Change the title of the SYNOPSIS section to USAGE
         s/^=head1\s+SYNOPSIS\s*$/=head1 USAGE/;
diff --git a/cpan/Pod-Usage/t/pod/pod2usage.t b/cpan/Pod-Usage/t/pod/pod2usage.t
new file mode 100644 (file)
index 0000000..98788fc
--- /dev/null
@@ -0,0 +1,18 @@
+BEGIN {\r
+   use File::Basename;\r
+   my $THISDIR = dirname $0;\r
+   unshift @INC, $THISDIR;\r
+   require "testp2pt.pl";\r
+   import TestPodIncPlainText;\r
+}\r
+\r
+my %options = map { $_ => 1 } @ARGV;  ## convert cmdline to options-hash\r
+my $passed  = testpodplaintext \%options, $0;\r
+exit( ($passed == 1) ? 0 : -1 )  unless $ENV{HARNESS_ACTIVE};\r
+\r
+\r
+__END__\r
+\r
+=include pod2usage.PL\r
+\r
+\r
diff --git a/cpan/Pod-Usage/t/pod/pod2usage.xr b/cpan/Pod-Usage/t/pod/pod2usage.xr
new file mode 100644 (file)
index 0000000..ceac4f1
--- /dev/null
@@ -0,0 +1,63 @@
+###### begin =include pod2usage.PL #####
+NAME
+    pod2usage - print usage messages from embedded pod docs in files
+
+SYNOPSIS
+    pod2usage   [-help] [-man] [-exit *exitval*] [-output *outfile*]
+                [-verbose *level*] [-pathlist *dirlist*] [-formatter
+                *module*] *file*
+
+OPTIONS AND ARGUMENTS
+    -help   Print a brief help message and exit.
+
+    -man    Print this command's manual page and exit.
+
+    -exit *exitval*
+            The exit status value to return.
+
+    -output *outfile*
+            The output file to print to. If the special names "-" or ">&1"
+            or ">&STDOUT" are used then standard output is used. If ">&2" or
+            ">&STDERR" is used then standard error is used.
+
+    -verbose *level*
+            The desired level of verbosity to use:
+
+                1 : print SYNOPSIS only
+                2 : print SYNOPSIS sections and any OPTIONS/ARGUMENTS sections
+                3 : print the entire manpage (similar to running pod2text)
+
+    -pathlist *dirlist*
+            Specifies one or more directories to search for the input file
+            if it was not supplied with an absolute path. Each directory
+            path in the given list should be separated by a ':' on Unix (';'
+            on MSWin32 and DOS).
+
+    -formatter *module*
+            Which text formatter to use. Default is the Pod::Text manpage,
+            or for very old Perl versions the Pod::PlainText manpage. An
+            alternative would be e.g. the Pod::Text::Termcap manpage.
+
+    *file*  The pathname of a file containing pod documentation to be output
+            in usage message format (defaults to standard input).
+
+DESCRIPTION
+    pod2usage will read the given input file looking for pod documentation
+    and will print the corresponding usage message. If no input file is
+    specified then standard input is read.
+
+    pod2usage invokes the pod2usage() function in the Pod::Usage module.
+    Please see the pod2usage() entry in the Pod::Usage manpage.
+
+SEE ALSO
+    the Pod::Usage manpage, the pod2text(1) manpage
+
+AUTHOR
+    Please report bugs using http://rt.cpan.org.
+
+    Brad Appleton <bradapp@enteract.com>
+
+    Based on code for pod2text(1) written by Tom Christiansen
+    <tchrist@mox.perl.com>
+
+###### end =include pod2usage.PL #####
diff --git a/cpan/Pod-Usage/t/pod/testp2pt.pl b/cpan/Pod-Usage/t/pod/testp2pt.pl
new file mode 100644 (file)
index 0000000..5c17300
--- /dev/null
@@ -0,0 +1,192 @@
+package TestPodIncPlainText;\r
+\r
+BEGIN {\r
+   use File::Basename;\r
+   use File::Spec;\r
+   use Cwd qw(abs_path);\r
+   push @INC, '..';\r
+   my $THISDIR = abs_path(dirname $0);\r
+   unshift @INC, $THISDIR;\r
+   require "testcmp.pl";\r
+   import TestCompare;\r
+   my $PARENTDIR = dirname $THISDIR;\r
+   push @INC, map { File::Spec->catfile($_, 'lib') } ($PARENTDIR, $THISDIR);\r
+}\r
+\r
+#use strict;\r
+#use diagnostics;\r
+use Carp;\r
+use Exporter;\r
+#use File::Compare;\r
+#use Cwd qw(abs_path);\r
+\r
+use vars qw($MYPKG @EXPORT @ISA);\r
+$MYPKG = eval { (caller)[0] };\r
+@EXPORT = qw(&testpodplaintext);\r
+BEGIN {\r
+    require Pod::PlainText;\r
+    @ISA = qw( Pod::PlainText );\r
+    require VMS::Filespec if $^O eq 'VMS';\r
+}\r
+\r
+## Hardcode settings for TERMCAP and COLUMNS so we can try to get\r
+## reproducible results between environments\r
+@ENV{qw(TERMCAP COLUMNS)} = ('co=76:do=^J', 76);\r
+\r
+sub catfile(@) { File::Spec->catfile(@_); }\r
+\r
+my $INSTDIR = abs_path(dirname $0);\r
+$INSTDIR = VMS::Filespec::unixpath($INSTDIR) if $^O eq 'VMS';\r
+$INSTDIR =~ s#/$## if $^O eq 'VMS';\r
+$INSTDIR =~ s#:$## if $^O eq 'MacOS';\r
+$INSTDIR = (dirname $INSTDIR) if (basename($INSTDIR) eq 'pod');\r
+$INSTDIR =~ s#:$## if $^O eq 'MacOS';\r
+$INSTDIR = (dirname $INSTDIR) if (basename($INSTDIR) eq 't');\r
+my @PODINCDIRS = ( catfile($INSTDIR, 'lib', 'Pod'),\r
+                   catfile($INSTDIR, 'scripts'),\r
+                   catfile($INSTDIR, 'pod'),\r
+                   catfile($INSTDIR, 't', 'pod')\r
+                 );\r
+\r
+# FIXME - we should make the core capable of finding utilities built in\r
+# locations in ext.\r
+push @PODINCDIRS, catfile((File::Spec->updir()) x 2, 'pod') if $ENV{PERL_CORE};\r
+\r
+## Find the path to the file to =include\r
+sub findinclude {\r
+    my $self    = shift;\r
+    my $incname = shift;\r
+\r
+    ## See if its already found w/out any "searching;\r
+    return  $incname if (-r $incname);\r
+\r
+    ## Need to search for it. Look in the following directories ...\r
+    ##   1. the directory containing this pod file\r
+    my $thispoddir = dirname $self->input_file;\r
+    ##   2. the parent directory of the above\r
+    my $parentdir  = dirname $thispoddir;\r
+    my @podincdirs = ($thispoddir, $parentdir, @PODINCDIRS);\r
+\r
+    for (@podincdirs) {\r
+       my $incfile = catfile($_, $incname);\r
+       return $incfile  if (-r $incfile);\r
+    }\r
+    warn("*** Can't find =include file $incname in @podincdirs\n");\r
+    return "";\r
+}\r
+\r
+sub command {\r
+    my $self = shift;\r
+    my ($cmd, $text, $line_num, $pod_para)  = @_;\r
+    $cmd     = ''  unless (defined $cmd);\r
+    local $_ = $text || '';\r
+    my $out_fh  = $self->output_handle;\r
+\r
+    ## Defer to the superclass for everything except '=include'\r
+    return  $self->SUPER::command(@_) unless ($cmd eq "include");\r
+\r
+    ## We have an '=include' command\r
+    my $incdebug = 1; ## debugging\r
+    my @incargs = split;\r
+    if (@incargs == 0) {\r
+        warn("*** No filename given for '=include'\n");\r
+        return;\r
+    }\r
+    my $incfile  = $self->findinclude(shift @incargs)  or  return;\r
+    my $incbase  = basename $incfile;\r
+    print $out_fh "###### begin =include $incbase #####\n"  if ($incdebug);\r
+    $self->parse_from_file( {-cutting => 1}, $incfile );\r
+    print $out_fh "###### end =include $incbase #####\n"    if ($incdebug);\r
+}\r
+\r
+sub begin_input {\r
+   $_[0]->{_INFILE} = VMS::Filespec::unixify($_[0]->{_INFILE}) if $^O eq 'VMS';\r
+}\r
+\r
+sub podinc2plaintext( $ $ ) {\r
+    my ($infile, $outfile) = @_;\r
+    local $_;\r
+    my $text_parser = $MYPKG->new;\r
+    $text_parser->parse_from_file($infile, $outfile);\r
+}\r
+\r
+sub testpodinc2plaintext( @ ) {\r
+   my %args = @_;\r
+   my $infile  = $args{'-In'}  || croak "No input file given!";\r
+   my $outfile = $args{'-Out'} || croak "No output file given!";\r
+   my $cmpfile = $args{'-Cmp'} || croak "No compare-result file given!";\r
+\r
+   my $different = '';\r
+   my $testname = basename $cmpfile, '.t', '.xr';\r
+\r
+   unless (-e $cmpfile) {\r
+      my $msg = "*** Can't find comparison file $cmpfile for testing $infile";\r
+      warn  "$msg\n";\r
+      return  $msg;\r
+   }\r
+\r
+   print "# Running testpodinc2plaintext for '$testname'...\n";\r
+   ## Compare the output against the expected result\r
+   podinc2plaintext($infile, $outfile);\r
+   if ( testcmp($outfile, $cmpfile) ) {\r
+       $different = "$outfile is different from $cmpfile";\r
+   }\r
+   else {\r
+       unlink($outfile);\r
+   }\r
+   return  $different;\r
+}\r
+\r
+sub testpodplaintext( @ ) {\r
+   my %opts = (ref $_[0] eq 'HASH') ? %{shift()} : ();\r
+   my @testpods = @_;\r
+   my ($testname, $testdir) = ("", "");\r
+   my ($podfile, $cmpfile) = ("", "");\r
+   my ($outfile, $errfile) = ("", "");\r
+   my $passes = 0;\r
+   my $failed = 0;\r
+   local $_;\r
+\r
+   print "1..", scalar @testpods, "\n"  unless ($opts{'-xrgen'});\r
+\r
+   for $podfile (@testpods) {\r
+      ($testname, $_) = fileparse($podfile);\r
+      $testdir ||=  $_;\r
+      $testname  =~ s/\.t$//;\r
+      $cmpfile   =  $testdir . $testname . '.xr';\r
+      $outfile   =  $testdir . $testname . '.OUT';\r
+\r
+      if ($opts{'-xrgen'}) {\r
+          if ($opts{'-force'} or ! -e $cmpfile) {\r
+             ## Create the comparison file\r
+             print "# Creating expected result for \"$testname\"" .\r
+                   " pod2plaintext test ...\n";\r
+             podinc2plaintext($podfile, $cmpfile);\r
+          }\r
+          else {\r
+             print "# File $cmpfile already exists" .\r
+                   " (use '-force' to regenerate it).\n";\r
+          }\r
+          next;\r
+      }\r
+\r
+      my $failmsg = testpodinc2plaintext\r
+                        -In  => $podfile,\r
+                        -Out => $outfile,\r
+                        -Cmp => $cmpfile;\r
+      if ($failmsg) {\r
+          ++$failed;\r
+          print "#\tFAILED. ($failmsg)\n";\r
+         print "not ok ", $failed+$passes, "\n";\r
+      }\r
+      else {\r
+          ++$passes;\r
+          unlink($outfile);\r
+          print "#\tPASSED.\n";\r
+         print "ok ", $failed+$passes, "\n";\r
+      }\r
+   }\r
+   return  $passes;\r
+}\r
+\r
+1;\r