<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">difforig XML-SAX-0.99-6RthvH

diff -u  XML-SAX-0.99-6RthvH/SAX/PurePerl.pm.orig
--- XML-SAX-0.99-6RthvH/SAX/PurePerl.pm.orig	2016-06-10 10:06:25.000000000 +0200
+++ XML-SAX-0.99-6RthvH/SAX/PurePerl.pm	2016-06-10 10:05:48.000000000 +0200
@@ -96,7 +96,7 @@
         $reader-&gt;set_encoding($self-&gt;{ParseOptions}{Source}{Encoding});
     }
     else {
-        $self-&gt;encoding_detect($reader);
+        $self-&gt;encoding_detect_nowarn($reader);
     }
     
     # parse a document
@@ -412,7 +412,7 @@
             if ($self-&gt;_is_external($name)) {
                 my $value = $self-&gt;_get_entity($name);
                 my $ent_reader = XML::SAX::PurePerl::Reader::URI-&gt;new($value);
-                $self-&gt;encoding_detect($ent_reader);
+                $self-&gt;encoding_detect_nowarn($ent_reader);
                 $self-&gt;extParsedEnt($ent_reader);
             }
             else {
diff -u  XML-SAX-0.99-6RthvH/SAX/PurePerl/EncodingDetect.pm.orig
--- XML-SAX-0.99-6RthvH/SAX/PurePerl/EncodingDetect.pm.orig	2009-10-10 23:16:30.000000000 +0200
+++ XML-SAX-0.99-6RthvH/SAX/PurePerl/EncodingDetect.pm	2016-06-10 12:01:16.000000000 +0200
@@ -5,11 +5,16 @@
 use strict;
 
 sub encoding_detect {
+    my $warn =  encoding_detect_nowarn(@_);
+    warn "$warn\n" if $warn;
+}
+
+sub encoding_detect_nowarn {
     my ($parser, $reader) = @_;
     
     my $error = "Invalid byte sequence at start of file";
     
-    my $data = $reader-&gt;data;
+    my $data = $reader-&gt;data();
     if ($data =~ /^\x00\x00\xFE\xFF/) {
         # BO-UCS4-be
         $reader-&gt;move_along(4);
@@ -96,9 +101,16 @@
         $reader-&gt;set_encoding('EBCDIC');
         return;
     }
-    
-    warn("Unable to recognise encoding of this document");
-    return;
+    elsif ($data =~ /^&lt;\?xml [^&gt;]+encoding="(\w+)"\?&gt;/) {
+        $reader-&gt;set_encoding($1);
+        return;
+    }
+
+    # $parser-&gt;parser_error($error, $reader);
+
+    my $doc = $parser-&gt;{Source}{SystemId};
+    $doc = "this document" unless $doc;
+    return "No BOM, unable to recognise encoding of $doc";
 }
 
 1;
diff -u  XML-SAX-0.99-6RthvH/SAX/PurePerl/Reader.pm.orig
--- XML-SAX-0.99-6RthvH/SAX/PurePerl/Reader.pm.orig	2016-06-10 10:41:46.000000000 +0200
+++ XML-SAX-0.99-6RthvH/SAX/PurePerl/Reader.pm	2016-06-10 10:41:21.000000000 +0200
@@ -78,7 +78,8 @@
 }
 
 sub data {
-    my ($self, $min_length) = (@_, 1);
+    my $self = shift;
+    my $min_length = 1;
     if (length($self-&gt;[BUFFER]) &lt; $min_length) {
         $self-&gt;read_more;
     }
</pre></body></html>