Override the Pod::Simple::parse_file to set output to STDOUT by default

This commit is contained in:
Petr Písař 2012-09-14 13:25:03 +02:00
parent bc5277e335
commit 0013ef3f52
2 changed files with 71 additions and 1 deletions

View File

@ -0,0 +1,60 @@
From 915ceb2f33469eeffd28cfb81ca52a05e1301f15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Fri, 14 Sep 2012 13:17:29 +0200
Subject: [PATCH] Override the Pod::Simple::parse_file
This sets output_fh to STDOUT if it's not already set.
This resolves CPANRT#77530 and RHBZ#826872 and is fixed in podlators-2.4.1.
Ported to perl-5.14.2.
---
cpan/podlators/lib/Pod/Man.pm | 11 +++++++++++
cpan/podlators/lib/Pod/Text.pm | 11 +++++++++++
2 files changed, 22 insertions(+)
diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm
index 96f3fcc..ad5e5ac 100644
--- a/cpan/podlators/lib/Pod/Man.pm
+++ b/cpan/podlators/lib/Pod/Man.pm
@@ -1302,6 +1302,17 @@ sub parse_from_filehandle {
$self->parse_from_file (@_);
}
+# Pod::Simple's parse_file doesn't set output_fh. Wrap the call and do so
+# ourself unless it was already set by the caller, since our documentation has
+# always said that this should work.
+sub parse_file {
+ my ($self, $in) = @_;
+ unless (defined $$self{output_fh}) {
+ $self->output_fh (\*STDOUT);
+ }
+ return $self->SUPER::parse_file ($in);
+}
+
##############################################################################
# Translation tables
##############################################################################
diff --git a/cpan/podlators/lib/Pod/Text.pm b/cpan/podlators/lib/Pod/Text.pm
index cc02820..1a8b0bf 100644
--- a/cpan/podlators/lib/Pod/Text.pm
+++ b/cpan/podlators/lib/Pod/Text.pm
@@ -679,6 +679,17 @@ sub parse_from_filehandle {
$self->parse_from_file (@_);
}
+# Pod::Simple's parse_file doesn't set output_fh. Wrap the call and do so
+# ourself unless it was already set by the caller, since our documentation has
+# always said that this should work.
+sub parse_file {
+ my ($self, $in) = @_;
+ unless (defined $$self{output_fh}) {
+ $self->output_fh (\*STDOUT);
+ }
+ return $self->SUPER::parse_file ($in);
+}
+
##############################################################################
# Module return value and documentation
##############################################################################
--
1.7.11.4

View File

@ -29,7 +29,7 @@
Name: perl
Version: %{perl_version}
# release number must be even higher, because dual-lived modules will be broken otherwise
Release: 234%{?dist}
Release: 235%{?dist}
Epoch: %{perl_epoch}
Summary: Practical Extraction and Report Language
Group: Development/Languages
@ -94,6 +94,10 @@ Patch13: perl-5.16.1-RT-113730-should-be-cleared-on-do-IO-error.patch
# Do not truncate syscall() return value to 32 bits, rhbz#838551, RT#113980
Patch14: perl-5.16.1-perl-113980-pp_syscall-I32-retval-truncates-the-retu.patch
# Override the Pod::Simple::parse_file, rhbz#826872, CPANRT#77530, in
# podlators-2.4.1
Patch15: perl-5.14.2-Override-the-Pod-Simple-parse_file.patch
# Update some of the bundled modules
# see http://fedoraproject.org/wiki/Perl/perl.spec for instructions
@ -1350,6 +1354,7 @@ tarball from perl.org.
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
#copy the example script
cp -a %{SOURCE5} .
@ -1556,6 +1561,7 @@ pushd %{build_archlib}/CORE/
'Fedora Patch12: Match non-breakable space with /[\h]/ in ASCII mode (RT#114220)' \
'Fedora Patch13: Clear $@ before "do" I/O error (RT#113730)' \
'Fedora Patch14: Do not truncate syscall() return value to 32 bits (RT#113980)' \
'Fedora Patch15: Override the Pod::Simple::parse_file (CPANRT#77530)' \
%{nil}
rm patchlevel.bak
@ -2698,6 +2704,10 @@ sed \
# Old changelog entries are preserved in CVS.
%changelog
* Fri Sep 14 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-231
- Override the Pod::Simple::parse_file to set output to STDOUT by default
(bug #826872)
* Wed Sep 12 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-234
- Sub-package perl-podlators (bug #856516)