Bug 6752: Be stricter with utf-8 encoding of output
[koha_gimpoz] / opac / oai.pl
index 370f3e7..2ef3f28 100755 (executable)
@@ -11,7 +11,7 @@ use C4::Context;
 
 BEGIN {
     eval { require PerlIO::gzip };
-    $GZIP = $@ ? 0 : 1;
+    $GZIP = ($@) ? 0 : 1;
 }
 
 unless ( C4::Context->preference('OAI-PMH') ) {
@@ -41,7 +41,7 @@ else {
     );
 }
 
-binmode( STDOUT, ":utf8" );
+binmode STDOUT, ':encoding(UTF-8)';
 my $repository = C4::OAI::Repository->new();
 
 # __END__ Main Prog
@@ -156,7 +156,7 @@ sub new {
     my $self = $class->SUPER::new();
 
     if ( $repository->{ conf } ) {
-        foreach my $name ( @{ $self->{ koha_metadata_formats } } ) {
+        foreach my $name ( @{ $repository->{ koha_metadata_format } } ) {
             my $format = $repository->{ conf }->{ format }->{ $name };
             $self->metadataFormat( HTTP::OAI::MetadataFormat->new(
                 metadataPrefix    => $format->{metadataPrefix},
@@ -303,7 +303,7 @@ sub new {
         metadataPrefix  => $token->{metadata_prefix},
         from            => $token->{from},
         until           => $token->{until},
-        offset          => $pos ) );
+        offset          => $pos ) ) if ($pos > $token->{offset});
 
     return $self;
 }
@@ -350,7 +350,7 @@ sub new {
         metadataPrefix  => $token->{metadata_prefix},
         from            => $token->{from},
         until           => $token->{until},
-        offset          => $pos ) );
+        offset          => $pos ) ) if ($pos > $token->{offset});
 
     return $self;
 }
@@ -373,7 +373,7 @@ use HTTP::OAI::Repository qw/:validate/;
 use XML::SAX::Writer;
 use XML::LibXML;
 use XML::LibXSLT;
-use YAML::XS qw( LoadFile );
+use YAML::Syck qw( LoadFile );
 use CGI qw/:standard -oldstyle_urls/;
 
 use C4::Context;
@@ -459,10 +459,10 @@ sub stylesheet {
     unless ( $stylesheet ) {
         my $xsl_file = $self->{ conf }
                        ? $self->{ conf }->{ format }->{ $format }->{ xsl_file }
-                       : ( C4::Context->config('intranetdir') .
-                         "/koha-tmpl/intranet-tmpl/prog/en/xslt/" .
+                       : ( C4::Context->config('intrahtdocs') .
+                         '/prog/en/xslt/' .
                          C4::Context->preference('marcflavour') .
-                         "slim2OAIDC.xsl" );
+                         'slim2OAIDC.xsl' );
         my $parser = XML::LibXML->new();
         my $xslt = XML::LibXSLT->new();
         my $style_doc = $parser->parse_file( $xsl_file );