Prior to 5.16, if you decoded an undef value, you got undef back
From 5.16 onwards, decoding a value always returns a string, even if
its a null string (defined, but zero length: "")
This was a major problem in EPrints::Repository::param for me, as it is
used in EPrints::Plugin::Export::param:
EPrints::Plugin::Export
sub param
{
my( $self, $paramid ) = @_;
# Allow args to override mimetype
if( $self->{session}->get_online
&& $paramid eq "mimetype"
&& defined $self->{session}->param( "mimetype" ) )
{
flawed as $self->{session}->param( "mimetype" ) always
In 3.2.9, there are not that many files that use itf8::decode
From my review of them, the following already address the problem:
perl_lib/EPrints/XML.pm
perl_lib/EPrints/XHTML.pm
The following need to be reviewed, as they may now have unforseen
side-effects:
perl_lib/EPrints/Repository.pm
perl_lib/EPrints/Update/Views.pm
perl_lib/EPrints/MetaField/Id.pm
The following I'm not sure about, but I think are basically safe:
perl_lib/URI/OpenURL.pm
perl_lib/EPrints/Index/Tokenizer.pm
perl_lib/EPrints/XML/LibXML.pm
perl_lib/EPrints/XML/GDOME.pm
perl_lib/EPrints/XML/DOM.pm
... this may have been addressed in 3.3.
The text was updated successfully, but these errors were encountered:
See Ian Stuart's email on ep-tech about this and check how this will affect EPrints:
I don't know if this has surfaced as an issue yet, however Perl has
changed the behaviour of utf8::decode() as of 5.16
(see https://rt.perl.org/rt3/Public/Bug/Display.html?id=115196)
Prior to 5.16, if you decoded an undef value, you got undef back
From 5.16 onwards, decoding a value always returns a string, even if
its a null string (defined, but zero length: "")
This was a major problem in EPrints::Repository::param for me, as it is
used in EPrints::Plugin::Export::param:
EPrints::Plugin::Export
sub param
{
my( $self, $paramid ) = @_;
flawed as $self->{session}->param( "mimetype" ) always
returns defined
}
In 3.2.9, there are not that many files that use itf8::decode
From my review of them, the following already address the problem:
perl_lib/EPrints/XML.pm
perl_lib/EPrints/XHTML.pm
The following need to be reviewed, as they may now have unforseen
side-effects:
perl_lib/EPrints/Repository.pm
perl_lib/EPrints/Update/Views.pm
perl_lib/EPrints/MetaField/Id.pm
The following I'm not sure about, but I think are basically safe:
perl_lib/URI/OpenURL.pm
perl_lib/EPrints/Index/Tokenizer.pm
perl_lib/EPrints/XML/LibXML.pm
perl_lib/EPrints/XML/GDOME.pm
perl_lib/EPrints/XML/DOM.pm
... this may have been addressed in 3.3.
The text was updated successfully, but these errors were encountered: