Skip Menu |
 

This queue is for tickets about the XML-RSS CPAN distribution.

Report information
The Basics
Id: 4832
Status: resolved
Priority: 0/
Queue: XML-RSS

People
Owner: Nobody in particular
Requestors: am [...] ejelta.com
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 1.02
Fixed in: (no value)



Subject: Uninitialized value -- bug report and a patch to fix it
Download (untitled) / with headers
text/plain 2.3k
1.02 displays a warning on line 1432 on some rss feeds (yahoo top stories for instance). My perl version is 5.8.0, but it looks like it's going to be the same in all versions. The following patch will fix it: --- lib/RSS.pm.orig-1.02 2003-02-20 11:19:07.000000000 -0800 +++ lib/RSS.pm 2004-01-04 23:38:44.000000000 -0800 @@ -1427,7 +1427,9 @@ my $self = shift; my $el = shift; my %attribs = @_; - + + my $ns=$self->namespace($el); + # beginning of RSS 0.91 if ($el eq 'rss') { if (exists($attribs{version})) { @@ -1475,8 +1477,6 @@ # beginning of item element } elsif ($el eq 'item') { # deal with trouble makers who use mod_content :) - my $ns = $self->namespace( $el ); - if ( (!$ns && !$self->{rss_namespace}) || ($ns eq $self->{rss_namespace}) @@ -1503,12 +1503,11 @@ $self->{'modules'}->{'http://purl.org/rss/1.0/modules/taxonomy/'} = 'taxo'; } # beginning of a channel element that stores its info in rdf:resource - elsif ( exists( $rdf_resource_fields{ $self->namespace($el) } ) and - exists( $rdf_resource_fields{ $self->namespace($el) }{ $el } ) and + elsif ( $ns and + exists( $rdf_resource_fields{ $ns } ) and + exists( $rdf_resource_fields{ $ns }->{ $el } ) and $self->current_element eq 'channel' ) { - my $ns = $self->namespace( $el ); - if ( $ns eq $self->{rss_namespace} ) { $self->{channel}->{$el} = $attribs{resource}; } @@ -1523,12 +1522,11 @@ } } # beginning of an item element that stores its info in rdf:resource - elsif ( exists( $rdf_resource_fields{ $self->namespace($el) } ) and - exists( $rdf_resource_fields{ $self->namespace($el) }{ $el } ) and + elsif ( $ns and + exists( $rdf_resource_fields{ $ns } ) and + exists( $rdf_resource_fields{ $ns }->{ $el } ) and $self->current_element eq 'item' ) { - my $ns = $self->namespace( $el ); - if ( $ns eq $self->{rss_namespace} ) { $self->{'items'}->[$self->{num_items}-1]->{ $el } = $attribs{resource}; } else {
Download (untitled) / with headers
text/plain 2.5k
Thanks. This should be resolved in 1.04 [guest - Mon Jan 5 02:47:35 2004]: Show quoted text
> 1.02 displays a warning on line 1432 on some rss feeds (yahoo top > stories for instance). My perl version is 5.8.0, but it looks like > it's going to be the same in all versions. > > The following patch will fix it: > > --- lib/RSS.pm.orig-1.02 2003-02-20 11:19:07.000000000 -0800 > +++ lib/RSS.pm 2004-01-04 23:38:44.000000000 -0800 > @@ -1427,7 +1427,9 @@ > my $self = shift; > my $el = shift; > my %attribs = @_; > - > + > + my $ns=$self->namespace($el); > + > # beginning of RSS 0.91 > if ($el eq 'rss') { > if (exists($attribs{version})) { > @@ -1475,8 +1477,6 @@ > # beginning of item element > } elsif ($el eq 'item') { > # deal with trouble makers who use mod_content :) > - my $ns = $self->namespace( $el ); > - > if ( > (!$ns && !$self->{rss_namespace}) || > ($ns eq $self->{rss_namespace}) > @@ -1503,12 +1503,11 @@ > $self->{'modules'}- > } > # beginning of a channel element that stores its info in > rdf:resource > - elsif ( exists( $rdf_resource_fields{ $self->namespace($el) } > ) and > - exists( $rdf_resource_fields{ $self-
> >namespace($el) }{ $el } ) and
> + elsif ( $ns and > + exists( $rdf_resource_fields{ $ns } ) and > + exists( $rdf_resource_fields{ $ns }->{ $el } ) > and > $self->current_element eq 'channel' ) > { > - my $ns = $self->namespace( $el ); > - > if ( $ns eq $self->{rss_namespace} ) { > $self->{channel}->{$el} = $attribs{resource}; > } > @@ -1523,12 +1522,11 @@ > } > } > # beginning of an item element that stores its info in > rdf:resource > - elsif ( exists( $rdf_resource_fields{ $self->namespace($el) } > ) and > - exists( $rdf_resource_fields{ $self-
> >namespace($el) }{ $el } ) and
> + elsif ( $ns and > + exists( $rdf_resource_fields{ $ns } ) and > + exists( $rdf_resource_fields{ $ns }->{ $el } ) > and > $self->current_element eq 'item' ) > { > - my $ns = $self->namespace( $el ); > - > if ( $ns eq $self->{rss_namespace} ) { > $self->{'items'}->[$self->{num_items}-1]->{ $el } = > $attribs{resource}; > } else {


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.