- From: Ville Skytta via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 23 Oct 2009 19:18:02 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/validator/httpd/cgi-bin In directory hutz:/tmp/cvs-serv9482 Modified Files: check Log Message: Avoid some charset encoder lookups. Index: check =================================================================== RCS file: /sources/public/validator/httpd/cgi-bin/check,v retrieving revision 1.713 retrieving revision 1.714 diff -u -d -r1.713 -r1.714 --- check 23 Oct 2009 19:09:44 -0000 1.713 +++ check 23 Oct 2009 19:18:00 -0000 1.714 @@ -2680,9 +2680,9 @@ } # Does the system support decoding this encoding? - eval { Encode::decode($cs, ''); }; + my $enc = Encode::find_encoding($cs); - if ($@) { + if (!$enc) { # This system's Encode installation does not support # the character encoding; might need additional modules @@ -2708,15 +2708,17 @@ # Try to transcode eval { - $output = Encode::decode($cs, $input, Encode::FB_CROAK); + $output = $enc->decode($input, Encode::FB_CROAK); }; - # Transcoding failed if ($@) { + # Transcoding failed - do it again line by line to find out exactly where my $line_num = 0; foreach my $input_line (split /\r\n|\n|\r/, $input) { $line_num++; - eval { Encode::decode($cs, $input_line, Encode::FB_CROAK); }; + eval { + $enc->decode($input_line, Encode::FB_CROAK); + }; if ($@) { my $croak_message = $@; $croak_message =~ s/ at .*//;
Received on Friday, 23 October 2009 19:18:06 UTC