rpms/perl-XML-TreeBuilder/F-10 XML-TreeBuilder-NoExpand.patch, 1.2, 1.3 perl-XML-TreeBuilder.spec, 1.2, 1.3

Jeff Fearn jfearn at fedoraproject.org
Mon Sep 28 23:44:22 UTC 2009


Author: jfearn

Update of /cvs/pkgs/rpms/perl-XML-TreeBuilder/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30185/F-10

Modified Files:
	XML-TreeBuilder-NoExpand.patch perl-XML-TreeBuilder.spec 
Log Message:
fix entites being eaten by NoExpnad switch


XML-TreeBuilder-NoExpand.patch:
 Changes                |    7 ++
 lib/XML/TreeBuilder.pm |  116 +++++++++++++++++++++++++++++++++----------------
 t/10main.t             |   26 +++++++++-
 3 files changed, 108 insertions(+), 41 deletions(-)

Index: XML-TreeBuilder-NoExpand.patch
===================================================================
RCS file: /cvs/pkgs/rpms/perl-XML-TreeBuilder/F-10/XML-TreeBuilder-NoExpand.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- XML-TreeBuilder-NoExpand.patch	15 Oct 2008 03:29:04 -0000	1.2
+++ XML-TreeBuilder-NoExpand.patch	28 Sep 2009 23:44:21 -0000	1.3
@@ -1,22 +1,22 @@
-diff -rubB --exclude=.svn XML-TreeBuilder-3.09/Changes XML-TreeBuilder-patched/Changes
+diff -rubB --exclude=.svn --exclude='*.swp' XML-TreeBuilder-3.09/Changes XML-TreeBuilder-patched/Changes
 --- XML-TreeBuilder-3.09/Changes	2004-06-11 14:28:41.000000000 +1000
-+++ XML-TreeBuilder-patched/Changes	2008-10-15 12:17:13.000000000 +1000
-@@ -1,5 +1,11 @@
- # Time-stamp: "2004-06-10 20:28:41 ADT"
++++ XML-TreeBuilder-patched/Changes	2009-03-16 14:30:51.000000000 +1000
+@@ -1,5 +1,10 @@
+-# Time-stamp: "2004-06-10 20:28:41 ADT"
++2009-16-03 Jeff Fearn <jfearn at redhat.com>
  
-+2007-12-01   Jeff Fearn <jfearn at redhat.com>
-+
-+   Release 3.10
++   Release 3.09.x
 +
 +   Added NoExpand option to allow entities to be left untouched in xml.
-+
++   Added ErrorContext option to allow better reporting of error locations.
++   Expanded tests to test these options.
  
  2004-06-10   Sean M. Burke <sburke at cpan.org>
  
-diff -rubB --exclude=.svn XML-TreeBuilder-3.09/lib/XML/TreeBuilder.pm XML-TreeBuilder-patched/lib/XML/TreeBuilder.pm
+diff -rubB --exclude=.svn --exclude='*.swp' XML-TreeBuilder-3.09/lib/XML/TreeBuilder.pm XML-TreeBuilder-patched/lib/XML/TreeBuilder.pm
 --- XML-TreeBuilder-3.09/lib/XML/TreeBuilder.pm	2004-06-11 13:59:14.000000000 +1000
-+++ XML-TreeBuilder-patched/lib/XML/TreeBuilder.pm	2008-10-15 12:38:59.000000000 +1000
-@@ -5,6 +5,7 @@
++++ XML-TreeBuilder-patched/lib/XML/TreeBuilder.pm	2009-09-29 09:21:18.000000000 +1000
+@@ -5,6 +7,7 @@
  use strict;
  use XML::Element ();
  use XML::Parser ();
@@ -24,81 +24,210 @@ diff -rubB --exclude=.svn XML-TreeBuilde
  use vars qw(@ISA $VERSION);
  
  $VERSION = '3.09';
-@@ -12,8 +13,15 @@
+@@ -12,8 +15,15 @@
  
  #==========================================================================
  sub new {
 -  my $class = ref($_[0]) || $_[0];
 -  # that's the only parameter it knows
-+  my ($this, $arg) = @_;
-+  my $class = ref($this) || $this;
++    my ( $this, $arg ) = @_;
++    my $class = ref($this) || $this;
 +
-+  my $NoExpand = defined $arg->{'NoExpand'} ? delete $arg->{'NoExpand'} : 0;
-+  my $ErrorContext = defined $arg->{'ErrorContext'} ? delete $arg->{'ErrorContext'} : 0;
++    my $NoExpand     = ( delete $arg->{'NoExpand'}     || undef );
++    my $ErrorContext = ( delete $arg->{'ErrorContext'} || undef );
 +
-+  if ( %{$arg} ) {
-+    croak "unknown args: " . join( ", ", keys %{$arg} );
-+  }
++    if ( %{$arg} ) {
++        croak "unknown args: " . join( ", ", keys %{$arg} );
++    }
    
    my $self = XML::Element->new('NIL');
    bless $self, $class; # and rebless
-@@ -21,11 +29,19 @@
+@@ -21,57 +31,76 @@
    $self->{'_store_comments'}     = 0;
    $self->{'_store_pis'}          = 0;
    $self->{'_store_declarations'} = 0;
-+  $self->{'NoExpand'}            = $NoExpand;
-+  $self->{'ErrorContext'}        = $ErrorContext;
++    $self->{'NoExpand'}            = $NoExpand if ($NoExpand);
++    $self->{'ErrorContext'}        = $ErrorContext if ($ErrorContext);
    
    my @stack;
++
    # Compare the simplicity of this to the sheer nastiness of HTML::TreeBuilder!
    
-   $self->{'_xml_parser'} = XML::Parser->new( 'Handlers' => {
-+    'Default' => sub {
-+        if ( ( $self->{'NoExpand'} ) && ( $_[1] =~ /&.*\;/ ) ) {
-+            $stack[-1]->push_content( $_[1] );
-+        }
-+        return;
-+    },
+-  $self->{'_xml_parser'} = XML::Parser->new( 'Handlers' => {
++    $self->{'_xml_parser'} = XML::Parser->new(
++        'Handlers' => {
++            'Default' => sub {
++                if ( ( $self->{'NoExpand'} ) && ( $_[1] =~ /&.*\;/ ) ) {
++                    $stack[-1]->push_content( $_[1] );
++                }
++                return;
++            },
      'Start' => sub {
        shift;
-       if(@stack) {
-@@ -103,7 +119,22 @@
+-      if(@stack) {
++                if (@stack) {
+          push @stack, $self->{'_element_class'}->new(@_);
+          $stack[-2]->push_content( $stack[-1] );
+-       } else {
++                }
++                else {
+          $self->tag(shift);
+-         while(@_) { $self->attr(splice(@_,0,2)) };
++                    while (@_) { $self->attr( splice( @_, 0, 2 ) ) }
+          push @stack, $self;
+        }
+     },
+     
+     'End'  => sub { pop @stack; return },
+     
+-    'Char' => sub { $stack[-1]->push_content($_[1]) },
++            'Char' => sub { $stack[-1]->push_content( $_[1] ) },
+     
+     'Comment' => sub {
+        return unless $self->{'_store_comments'};
+-       (
+-        @stack ? $stack[-1] : $self
+-       )->push_content(
+-         $self->{'_element_class'}->new('~comment', 'text' => $_[1])
+-       );
++                ( @stack ? $stack[-1] : $self )
++                    ->push_content( $self->{'_element_class'}
++                        ->new( '~comment', 'text' => $_[1] ) );
+        return;
+     },
+     
+     'Proc' => sub {
+        return unless $self->{'_store_pis'};
+-       (
+-        @stack ? $stack[-1] : $self
+-       )->push_content(
+-         $self->{'_element_class'}->new('~pi', 'text' => "$_[1] $_[2]")
+-       );
++                ( @stack ? $stack[-1] : $self )
++                    ->push_content( $self->{'_element_class'}
++                        ->new( '~pi', 'text' => "$_[1] $_[2]" ) );
+        return;
+     },
+     
++            'Final' => sub {
++                $self->root()->traverse(
++                    sub {
++                        my ( $node, $start ) = @_;
++                        if ( ref $node ) {    # it's an element
++                            $node->attr( 'NoExpand',     undef );
++                            $node->attr( 'ErrorContext', undef );
++                        }
++                    }
++                );
++            },
++
+     # And now, declarations:
+     
+     'Attlist' => sub {
+        return unless $self->{'_store_declarations'};
+        shift;
+-       (
+-        @stack ? $stack[-1] : $self
+-       )->push_content(
+-         $self->{'_element_class'}->new('~declaration',
+-          'text' => join ' ', 'ATTLIST', @_
++                ( @stack ? $stack[-1] : $self )->push_content(
++                    $self->{'_element_class'}->new(
++                        '~declaration',
++                        'text' => join ' ',
++                        'ATTLIST', @_
+          )
+        );
+        return;
+@@ -80,11 +109,11 @@
+     'Element' => sub {
+        return unless $self->{'_store_declarations'};
+        shift;
+-       (
+-        @stack ? $stack[-1] : $self
+-       )->push_content(
+-         $self->{'_element_class'}->new('~declaration',
+-          'text' => join ' ', 'ELEMENT', @_
++                ( @stack ? $stack[-1] : $self )->push_content(
++                    $self->{'_element_class'}->new(
++                        '~declaration',
++                        'text' => join ' ',
++                        'ELEMENT', @_
+          )
+        );
+        return;
+@@ -93,17 +122,32 @@
+     'Doctype' => sub {
+        return unless $self->{'_store_declarations'};
+        shift;
+-       (
+-        @stack ? $stack[-1] : $self
+-       )->push_content(
+-         $self->{'_element_class'}->new('~declaration',
+-          'text' => join ' ', 'DOCTYPE', @_
++                ( @stack ? $stack[-1] : $self )->push_content(
++                    $self->{'_element_class'}->new(
++                        '~declaration',
++                        'text' => join ' ',
++                        'DOCTYPE', @_
+          )
+        );
         return;
      },
      
 -  });
-+    'Entity' => sub {
-+       return unless $self->{'_store_declarations'};
-+       shift;
-+       (
-+        @stack ? $stack[-1] : $self
-+       )->push_content(
-+         $self->{'_element_class'}->new('~declaration',
-+          'text' => join ' ', 'ENTITY', @_
-+         )
-+       );
-+       return;
-+    },
-+  },
-+  'NoExpand' => $self->{'NoExpand'},
-+  'ErrorContext' => $self->{'ErrorContext'}
-+  );
++            'Entity' => sub {
++                return unless $self->{'_store_declarations'};
++                shift;
++                ( @stack ? $stack[-1] : $self )->push_content(
++                    $self->{'_element_class'}->new(
++                        '~declaration',
++                        'text' => join ' ',
++                        'ENTITY', @_
++                    )
++                );
++                return;
++            },
++        },
++        'NoExpand'     => $self->{'NoExpand'},
++        'ErrorContext' => $self->{'ErrorContext'}
++    );
    
    return $self;
  }
-Only in XML-TreeBuilder-patched/lib/XML: .TreeBuilder.pm.swp
-diff -rubB --exclude=.svn XML-TreeBuilder-3.09/t/10main.t XML-TreeBuilder-patched/t/10main.t
---- XML-TreeBuilder-3.09/t/10main.t	2004-06-11 14:22:53.000000000 +1000
-+++ XML-TreeBuilder-patched/t/10main.t	2008-10-15 12:17:13.000000000 +1000
-@@ -21,6 +21,7 @@
- 
- my $y = XML::Element->new_from_lol(
-  ['Gee',
-+   { 'NoExpand' => '0', 'ErrorContext' => '0'},
-    ['~comment', {'text' => ' myorp '}],
-    ['foo', {'Id'=> 'me', 'xml:foo' => 'lal'}, 'Hello World'],
-    ['lor'],
-@@ -29,8 +30,7 @@
+@@ -110,15 +155,15 @@
+ #==========================================================================
+ sub _elem # universal accessor...
+ {
+-  my($self, $elem, $val) = @_;
++    my ( $self, $elem, $val ) = @_;
+   my $old = $self->{$elem};
+   $self->{$elem} = $val if defined $val;
+   return $old;
+ }
+ 
+-sub store_comments { shift->_elem('_store_comments', @_); }
+-sub store_declarations { shift->_elem('_store_declarations', @_); }
+-sub store_pis      { shift->_elem('_store_pis', @_); }
++sub store_comments     { shift->_elem( '_store_comments',     @_ ); }
++sub store_declarations { shift->_elem( '_store_declarations', @_ ); }
++sub store_pis          { shift->_elem( '_store_pis',          @_ ); }
+ 
+ #==========================================================================
+ 
+diff -rubB --exclude=.svn --exclude='*.swp' XML-TreeBuilder-3.09/t/10main.t XML-TreeBuilder-patched/t/10main.t
+--- XML-TreeBuilder-3.09/t/10main.t	2009-09-28 14:00:50.000000000 +1000
++++ XML-TreeBuilder-patched/t/10main.t	2009-09-28 14:00:54.000000000 +1000
+@@ -2,7 +2,7 @@
+ # Time-stamp: "2004-06-10 20:22:53 ADT" 
+ 
+ use Test;
+-BEGIN { plan tests => 3 }
++BEGIN { plan tests => 4 }
+ 
+ use XML::TreeBuilder;
+ 
+@@ -29,8 +29,7 @@
   ]
  );
  
@@ -108,3 +237,31 @@ diff -rubB --exclude=.svn XML-TreeBuilde
  
  unless( $ENV{'HARNESS_ACTIVE'} ) {
    $x->dump;
+@@ -43,6 +44,27 @@
+ $x->delete;
+ $y->delete;
+ 
++$x = XML::TreeBuilder->new({ 'NoExpand' => "1", 'ErrorContext' => "2" });
++$x->store_comments(1);
++$x->store_pis(1);
++$x->store_declarations(1);
++$x->parse(
++  qq{<!-- myorp --><Gee><foo Id="me" xml:foo="lal">Hello World</foo>} .
++  qq{<lor/><!-- foo --></Gee><!-- glarg -->}
++);
++
++$y = XML::Element->new_from_lol(
++ ['Gee',
++   ['~comment', {'text' => ' myorp '}],
++   ['foo', {'Id'=> 'me', 'xml:foo' => 'lal'}, 'Hello World'],
++   ['lor'],
++   ['~comment', {'text' => ' foo '}],
++   ['~comment', {'text' => ' glarg '}],
++ ]
++);
++
++ok($x->same_as($y));
++
+ ok 1;
+ print "# Bye from ", __FILE__, "\n";
+ 


Index: perl-XML-TreeBuilder.spec
===================================================================
RCS file: /cvs/pkgs/rpms/perl-XML-TreeBuilder/F-10/perl-XML-TreeBuilder.spec,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- perl-XML-TreeBuilder.spec	15 Oct 2008 03:29:05 -0000	1.2
+++ perl-XML-TreeBuilder.spec	28 Sep 2009 23:44:22 -0000	1.3
@@ -1,7 +1,7 @@
 Summary:	Parser that builds a tree of XML::Element objects
 Name:		perl-XML-TreeBuilder
 Version:	3.09
-Release:	11%{?dist}
+Release:	16%{?dist}
 License:	GPL+ or Artistic
 Group:		Development/Libraries
 URL:		http://search.cpan.org/dist/XML-TreeBuilder/
@@ -50,6 +50,21 @@ find $RPM_BUILD_ROOT -name .packlist -ex
 %{perl_vendorlib}/XML/
 
 %changelog
+* Tue Sep 29 2009  Jeff Fearn <jfearn at redhat.com> - 3.09-16
+- Stupid man! Don't eat entities :(
+
+* Mon Sep 28 2009  Jeff Fearn <jfearn at redhat.com> - 3.09-15
+- Always remove NoExpand and ErrorContext from output
+
+* Sun Jul 26 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.09-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Mon Mar 16 2009 Jeff Fearn <jfearn at redhat.com> - 3.09-13
+- Remove NoExpand and ErrorContext from output if they aren't set.
+
+* Thu Feb 26 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.09-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
 * Wed Oct 15 2008 Jeff Fearn <jfearn at redhat.com> - 3.09-11
 - Add ErrorContext pass through
 - Fix crash on Entity declaration. BZ #461557




More information about the Fedora-perl-devel-list mailing list