Hello community, here is the log from the commit of package perl-IO-Pager for openSUSE:Factory checked in at 2013-06-06 12:20:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-IO-Pager (Old) and /work/SRC/openSUSE:Factory/.perl-IO-Pager.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-IO-Pager" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-IO-Pager/perl-IO-Pager.changes 2012-03-09 21:25:39.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.perl-IO-Pager.new/perl-IO-Pager.changes 2013-06-06 12:20:47.000000000 +0200 @@ -1,0 +2,22 @@ +Wed Jun 5 07:34:25 UTC 2013 - [email protected] + +- updated to 0.31 + Add missing IO::Handle fallback for ::Unbuffered (RT#82351) + + Bogus fix for Windoze automatic line-ending failure of t/11 (RT#79950), + improvements welcomed. + + Implement feature request #78270 to include support say + + Preserve layers of passed hilehandle on instantiation. + + Fixed tests under Win32 & cygwin, bug #75181. + + Swap IO::Pager:new and ::open, alter subclass::open to + remove unnecessary level of subroutine calls + + Return IO::Handle objects when not connected to a TTY for + transparent use of IO::Pager when programming OO. + NOTE: This is broken, see ::less in TODO + +------------------------------------------------------------------- Old: ---- IO-Pager-0.24.tgz New: ---- IO-Pager-0.31.tgz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-IO-Pager.spec ++++++ --- /var/tmp/diff_new_pack.lBRU4G/_old 2013-06-06 12:20:47.000000000 +0200 +++ /var/tmp/diff_new_pack.lBRU4G/_new 2013-06-06 12:20:47.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-IO-Pager # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: perl-IO-Pager -Version: 0.24 +Version: 0.31 Release: 0 %define cpan_name IO-Pager Summary: Select a pager and pipe text to it if destination is a TTY ++++++ IO-Pager-0.24.tgz -> IO-Pager-0.31.tgz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/CHANGES new/IO-Pager-0.31/CHANGES --- old/IO-Pager-0.24/CHANGES 2012-02-18 23:36:42.000000000 +0100 +++ new/IO-Pager-0.31/CHANGES 2013-04-06 17:23:37.000000000 +0200 @@ -1,5 +1,26 @@ Revision history for Perl extension IO::Pager. +0.31 Sat Apr 06 2013 + + Add missing IO::Handle fallback for ::Unbuffered (RT#82351) + + Bogus fix for Windoze automatic line-ending failure of t/11 (RT#79950), + improvements welcomed. + +0.30 Tue Sep 04 2012 + Implement feature request #78270 to include support say + + Preserve layers of passed hilehandle on instantiation. + + Fixed tests under Win32 & cygwin, bug #75181. + + Swap IO::Pager:new and ::open, alter subclass::open to + remove unnecessary level of subroutine calls + + Return IO::Handle objects when not connected to a TTY for + transparent use of IO::Pager when programming OO. + NOTE: This is broken, see ::less in TODO + 0.24 Sat Feb 18 2012 Fixed bug #74691, tests fail if CPANTS folk don't have a perl in PATH! diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/MANIFEST new/IO-Pager-0.31/MANIFEST --- old/IO-Pager-0.24/MANIFEST 2012-02-19 15:59:58.000000000 +0100 +++ new/IO-Pager-0.31/MANIFEST 2013-04-06 17:25:42.000000000 +0200 @@ -20,5 +20,8 @@ t/08-redirect.t t/09-open.t t/10-close_interactive.t +t/11-redirect-oo.pl +t/11-redirect-oo.t t/TestUtils.pm -META.yml Module meta-data (added by MakeMaker) +META.yml Module YAML meta-data (added by MakeMaker) +META.json Module JSON meta-data (added by MakeMaker) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/META.json new/IO-Pager-0.31/META.json --- old/IO-Pager-0.24/META.json 1970-01-01 01:00:00.000000000 +0100 +++ new/IO-Pager-0.31/META.json 2013-04-06 17:25:42.000000000 +0200 @@ -0,0 +1,53 @@ +{ + "abstract" : "Select a pager and pipe text to it if destination is a TTY", + "author" : [ + "Jerrad Pierce <[email protected]>, Florent Angly <[email protected]>" + ], + "dynamic_config" : 1, + "generated_by" : "ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.112621", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "IO-Pager", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "Config" : 0, + "Env" : 0, + "Exporter" : 0, + "File::Temp" : 0, + "Test::More" : 0 + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : { + "Env" : 0, + "File::Spec" : 0, + "File::Which" : 0, + "IO::Handle" : 0, + "PerlIO" : 0, + "SelectSaver" : 0, + "Symbol" : 0, + "Tie::Handle" : 0, + "base" : 0 + } + } + }, + "release_status" : "stable", + "version" : "0.31" +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/META.yml new/IO-Pager-0.31/META.yml --- old/IO-Pager-0.24/META.yml 2012-02-19 15:59:58.000000000 +0100 +++ new/IO-Pager-0.31/META.yml 2013-04-06 17:25:41.000000000 +0200 @@ -1,36 +1,34 @@ ---- #YAML:1.0 -name: IO-Pager -version: 0.24 -abstract: Select a pager and pipe text to it if destination is a TTY +--- +abstract: 'Select a pager and pipe text to it if destination is a TTY' author: - - Jerrad Pierce <[email protected]>, Florent Angly <[email protected]> -license: unknown -distribution_type: module -configure_requires: - ExtUtils::MakeMaker: 0 + - 'Jerrad Pierce <[email protected]>, Florent Angly <[email protected]>' build_requires: - Config: 0 - Env: 0 - Exporter: 0 - File::Temp: 0 - Test::More: 0 -requires: - base: 0 - Config: 0 - Env: 0 - Exporter: 0 - File::Spec: 0 - File::Temp: 0 - File::Which: 0 - SelectSaver: 0 - Symbol: 0 - Test::More: 0 - Tie::Handle: 0 -no_index: - directory: - - t - - inc -generated_by: ExtUtils::MakeMaker version 6.55_02 + Config: 0 + Env: 0 + Exporter: 0 + File::Temp: 0 + Test::More: 0 +configure_requires: + ExtUtils::MakeMaker: 0 +dynamic_config: 1 +generated_by: 'ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.112621' +license: unknown meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: 1.4 +name: IO-Pager +no_index: + directory: + - t + - inc +requires: + Env: 0 + File::Spec: 0 + File::Which: 0 + IO::Handle: 0 + PerlIO: 0 + SelectSaver: 0 + Symbol: 0 + Tie::Handle: 0 + base: 0 +version: 0.31 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/Makefile.PL new/IO-Pager-0.31/Makefile.PL --- old/IO-Pager-0.24/Makefile.PL 2012-02-18 19:27:11.000000000 +0100 +++ new/IO-Pager-0.31/Makefile.PL 2012-09-05 01:13:02.000000000 +0200 @@ -15,7 +15,9 @@ 'base' => 0, 'Env' => 0, 'File::Spec' => 0, - 'File::Which' =>0, + 'File::Which' => 0, + 'IO::Handle' => 0, + 'PerlIO' => 0, 'SelectSaver' => 0, 'Symbol' => 0, 'Tie::Handle' => 0, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/README new/IO-Pager-0.31/README --- old/IO-Pager-0.24/README 2012-02-18 23:36:10.000000000 +0100 +++ new/IO-Pager-0.31/README 2012-09-05 01:13:02.000000000 +0200 @@ -1,4 +1,4 @@ -IO::Pager version 0.24 +IO::Pager version 0.30 ===================== IO::Pager - Select a pager and pipe text to it if destination is a TTY @@ -29,7 +29,7 @@ DEPENDENCIES Multiple core modules are used: -base, Env, File::Spec, File::Which, SelectSaver, Symbol, Tie::Handle +base, Env, File::Spec, File::Which, IO::Handle, PerlIO, SelectSaver, Symbol, Tie::Handle Test::More is used during the installation procedure. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/TODO new/IO-Pager-0.31/TODO --- old/IO-Pager-0.24/TODO 2012-02-19 15:52:19.000000000 +0100 +++ new/IO-Pager-0.31/TODO 2012-09-05 01:13:02.000000000 +0200 @@ -1,5 +1,11 @@ Important things here and in code flagged with XXX +0.30 + Create a tee sub-class/layer? + + Complete the ::less subclass so that non-interactive fallback + for OO interaction works. + 0.20 "Fix" multi-pseudo-STDOUT disabled in 09-open.t implementation? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/lib/IO/Pager/Buffered.pm new/IO-Pager-0.31/lib/IO/Pager/Buffered.pm --- old/IO-Pager-0.24/lib/IO/Pager/Buffered.pm 2012-02-18 23:37:14.000000000 +0100 +++ new/IO-Pager-0.31/lib/IO/Pager/Buffered.pm 2012-09-05 01:13:02.000000000 +0200 @@ -1,5 +1,5 @@ package IO::Pager::Buffered; -our $VERSION = 0.24; +our $VERSION = 0.30; use strict; use base qw( IO::Pager ); @@ -10,8 +10,15 @@ my($class, $tied_fh); eval { ($class, $tied_fh) = &IO::Pager::_init }; - # leave filehandle alone - return $_[1] if defined($class) && $class eq '0' or $@ =~ '!TTY'; + #We're not on a TTY so... + if( defined($class) && $class eq '0' or $@ =~ '!TTY' ){ + #...leave filehandle alone if procedural + return $_[1] if defined($_[2]) && $_[2] eq 'procedural'; + + #...fall back to IO::Handle for transparent OO programming + eval "require IO::Handle" or die $@; + return IO::Handle->new_from_fd(fileno($_[1]), 'w'); + } $!=$@, return 0 if $@ =~ 'pipe'; tie *$tied_fh, $class, $tied_fh or return 0; @@ -19,7 +26,8 @@ #Punt to base, preserving FH ($_[0]) for pass by reference to gensym sub open(;$) { # [FH] - IO::Pager::open($_[0], 'IO::Pager::Buffered'); +# IO::Pager::open($_[0], 'IO::Pager::Buffered'); + &new('IO::Pager::Buffered', $_[0]); } @@ -109,13 +117,18 @@ Class-specific method specifics below, others are inherited from IO::Pager. -=head2 new( [FILEHANDLE] ) +=head2 open( [FILEHANDLE] ) Instantiate a new IO::Pager to paginate FILEHANDLE if necessary. I<Assign the return value to a scoped variable>. Output does not occur until all references to this variable are destroyed eg; upon leaving the current scope. See L</DESCRIPTION>. +=head2 new( [FILEHANDLE] ) + +Almost identical to open, except that you will get an L<IO::Handle> +back if there's no TTY to allow for IO::Pager agnostic programming. + =head2 tell( FILEHANDLE ) Returns the size of the buffer in bytes. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/lib/IO/Pager/Unbuffered.pm new/IO-Pager-0.31/lib/IO/Pager/Unbuffered.pm --- old/IO-Pager-0.24/lib/IO/Pager/Unbuffered.pm 2012-02-18 20:13:41.000000000 +0100 +++ new/IO-Pager-0.31/lib/IO/Pager/Unbuffered.pm 2013-04-06 16:08:01.000000000 +0200 @@ -1,17 +1,23 @@ package IO::Pager::Unbuffered; -our $VERSION = 0.20; +our $VERSION = 0.31; use strict; use base qw( IO::Pager ); use SelectSaver; -sub new(;$) { # [FH] +sub new(;$) { # [FH], procedural my($class, $tied_fh); eval { ($class, $tied_fh) = &IO::Pager::_init }; - # leave filehandle alone - return $_[1] if defined($class) && $class eq '0' or $@ =~ '!TTY'; + #We're not on a TTY so... + if( defined($class) && $class eq '0' or $@ =~ '!TTY' ){ + #...leave filehandle alone if procedural + return $_[1] if defined($_[2]) && $_[2] eq 'procedural'; + + #...fall back to IO::Handle for transparent OO programming + eval "require IO::Handle" && return IO::Handle->new_from_fd(fileno($_[1]), 'w'); + } $!=$@, return 0 if $@ =~ 'pipe'; my $self = tie *$tied_fh, $class, $tied_fh or return 0; @@ -24,7 +30,8 @@ #Punt to base, preserving FH ($_[0]) for pass by reference to gensym sub open(;$) { # [FH] - IO::Pager::open($_[0], 'IO::Pager::Unbuffered'); +# IO::Pager::open($_[0], 'IO::Pager::Unbuffered'); + &new('IO::Pager::procedural', $_[0], 'procedural'); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/lib/IO/Pager.pm new/IO-Pager-0.31/lib/IO/Pager.pm --- old/IO-Pager-0.24/lib/IO/Pager.pm 2012-02-19 15:46:41.000000000 +0100 +++ new/IO-Pager-0.31/lib/IO/Pager.pm 2013-04-06 16:08:21.000000000 +0200 @@ -1,11 +1,12 @@ package IO::Pager; -our $VERSION = 0.24; +our $VERSION = 0.31; #Really 0.30 use 5.008; #At least, for decent perlio, and other modernisms use strict; use base qw( Tie::Handle ); use Env qw( PAGER ); use File::Spec; +use PerlIO; use Symbol; use overload '+' => "PID", bool=> "PID"; @@ -76,6 +77,13 @@ #Factory sub open(;$$) { # [FH], [CLASS] + &new(undef, @_, 'procedural'); +} + +#Alternate entrance: drop class but leave FH, subclass +sub new(;$$) { # [FH], [CLASS] + shift; + #Leave filehandle in @_ for pass by reference to allow gensym my $subclass = $_[1] if exists($_[1]); $subclass ||= 'IO::Pager::Unbuffered'; @@ -84,17 +92,11 @@ $subclass->new($_[0]); } -#Alternate entrance: drop class but leave FH, subclass -sub new(;$$) { # [FH], [CLASS] - shift, &IO::Pager::open; -} - sub _init{ # CLASS, [FH] ## Note reversal of order due to CLASS from new() #Assign by reference if empty scalar given as filehandle $_[1] = gensym() if !defined($_[1]); -# my ($class, $real_fh) = @_; no strict 'refs'; $_[1] ||= *{select()}; @@ -123,7 +125,19 @@ die "The PAGER environment variable is not defined, you may need to set it manually."; } my($real_fh, $child); - unless ( $child = CORE::open($real_fh, "| $PAGER") ){ + if ( $child = CORE::open($real_fh, "| $PAGER") ){ + my @oLayers = PerlIO::get_layers($tied_fh, details=>1, output=>1); + my $layers = ''; + for(my $i=0;$i<$#oLayers;$i+=3){ + #An extra base layer requires more keystrokes to exit + next if $oLayers[$i] =~ /unix|stdio/ && !defined($oLayers[+1]); + + $layers .= ":$oLayers[$i]"; + $layers .= '(' . ($oLayers[$i+1]) . ')' if defined($oLayers[$i+1]); + } + CORE::binmode($real_fh, $layers); + } + else{ die "Could not pipe to PAGER ('$PAGER'): $!\n"; } return bless { @@ -150,6 +164,12 @@ $self->PRINT(sprintf($format, @args)); } +sub say { + my ($self, @args) = @_; + $args[-1] .= "\n"; + $self->PRINT(@args); +} + sub WRITE { my ($self, $scalar, $length, $offset) = @_; $self->PRINT(substr($scalar, $offset||0, $length)); @@ -243,7 +263,8 @@ =head2 new( [FILEHANDLE], [SUBCLASS] ) -An alias for open. +Almost identical to open, except that you will get an L<IO::Handle> +back if there's no TTY to allow for IO::Pager agnostic programming. =head2 open( [FILEHANDLE], [SUBCLASS] ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/t/07-oo_interactive.t new/IO-Pager-0.31/t/07-oo_interactive.t --- old/IO-Pager-0.24/t/07-oo_interactive.t 2012-02-18 19:27:11.000000000 +0100 +++ new/IO-Pager-0.31/t/07-oo_interactive.t 2012-09-05 01:13:02.000000000 +0200 @@ -29,8 +29,8 @@ isa_ok $BOB, 'IO::Pager::Unbuffered'; - $BOB->print("OO subclass filehandle\n"); - $BOB->print("\nEnd of text, try pressing 'Q' to exit.\n"); + $BOB->say("OO subclass filehandle\n"); + $BOB->say("\nEnd of text, try pressing 'Q' to exit.\n"); #XXX Close required because pager is not terminated on DESTROY $BOB->close(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/t/08-redirect.t new/IO-Pager-0.31/t/08-redirect.t --- old/IO-Pager-0.24/t/08-redirect.t 2012-02-18 21:39:23.000000000 +0100 +++ new/IO-Pager-0.31/t/08-redirect.t 2012-09-05 01:13:02.000000000 +0200 @@ -4,17 +4,19 @@ use Test::More; use t::TestUtils; -my $temp = File::Temp->new(); -my $tempname = $temp->filename(); -$temp->unlink_on_destroy(1); +#Disable warnings for awkard test file mechanism required by Windows +my(undef, $tempname) = do{ $^W=0; File::Temp::tempfile(OPEN=>0)}; +END{ close(TMP); unlink $tempname or die "Could not unlink '$tempname': $!" } #Print the heredoc in 08-redirect.pl to temp file via redirection -system qq($^X -Mblib -MIO::Pager::Page -e 'require "t/08-redirect.pl"; print \$txt' >$tempname); +my $q = q[']; +$q = q["] if $^O =~ /MSWin32/; +system qq($^X -Mblib -MIO::Pager::Page -e $q require q[t/08-redirect.pl]; print \$txt $q >$tempname); open(TMP, $tempname) or die "Could not open tmpfile: $!\n"; my $slurp = do{ undef $/; <TMP> }; our $txt; require 't/08-redirect.pl'; -ok($txt eq $slurp, 'Redirection'); +ok($txt eq $slurp, 'Redirection (IO::Pager::Page)'); done_testing; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/t/09-open.t new/IO-Pager-0.31/t/09-open.t --- old/IO-Pager-0.24/t/09-open.t 2012-02-18 19:27:11.000000000 +0100 +++ new/IO-Pager-0.31/t/09-open.t 2012-09-05 01:13:02.000000000 +0200 @@ -7,13 +7,18 @@ use IO::Pager; -undef $ENV{PAGER}; -eval{ my $token = new IO::Pager }; -like($@, qr/The PAGER environment variable is not defined/, 'PAGER undefined since find_pager()'); +SKIP: { + skip("Skiping because Windows has to be different^Wdifficult", 1) + if $^O =~ /MSWin32|cygwin/; -$ENV{PAGER} = File::Spec->devnull(); -eval{ my $token = new IO::Pager or die $!}; -like($@, qr/Could not pipe to PAGER/, 'Could not create pipe'); + undef $ENV{PAGER}; + eval{ my $token = new IO::Pager }; + like($@, qr/The PAGER environment variable is not defined/, 'PAGER undefined since find_pager()'); + + $ENV{PAGER} = File::Spec->devnull(); + eval{ my $token = new IO::Pager or die $!}; + like($@, qr/Could not pipe to PAGER/, 'Could not create pipe'); +} done_testing; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/t/11-redirect-oo.pl new/IO-Pager-0.31/t/11-redirect-oo.pl --- old/IO-Pager-0.24/t/11-redirect-oo.pl 1970-01-01 01:00:00.000000000 +0100 +++ new/IO-Pager-0.31/t/11-redirect-oo.pl 2012-09-05 01:13:02.000000000 +0200 @@ -0,0 +1,7 @@ +use blib; +use IO::Pager; + +our $txt; require 't/08-redirect.pl'; + +my $FH = new IO::Pager; +$FH->print($txt); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pager-0.24/t/11-redirect-oo.t new/IO-Pager-0.31/t/11-redirect-oo.t --- old/IO-Pager-0.24/t/11-redirect-oo.t 1970-01-01 01:00:00.000000000 +0100 +++ new/IO-Pager-0.31/t/11-redirect-oo.t 2013-04-06 17:25:18.000000000 +0200 @@ -0,0 +1,24 @@ +use strict; +use warnings; +use File::Temp; +use Test::More; +use t::TestUtils; + +#Disable warnings for awkard test file mechanism required by Windows +my(undef, $tempname) = do{ $^W=0; File::Temp::tempfile(OPEN=>0)}; +END{ close(TMP); unlink $tempname or die "Could not unlink '$tempname': $!" } + +#Print the heredoc in 11-redirect.pl to temp file via redirection +system qq($^X t/11-redirect-oo.pl >$tempname); + +open(TMP, $tempname) or die "Could not open tmpfile: $!\n"; +my $slurp = do{ undef $/; <TMP> }; + +#XXX Perl on Windoze lamely appends an extra newline +#Experimentation with C<use open> layers failed to find a suitable remedy +chop($slurp) if $^O =~ /MSWin32/; + +our $txt; require 't/08-redirect.pl'; +ok($txt eq $slurp, 'Redirection with OO'); + +done_testing; -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
