- From: Olivier Thereaux via cvs-syncmail <cvsmail@w3.org>
- Date: Sun, 20 May 2007 23:17:30 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/validator/httpd/cgi-bin
In directory hutz:/tmp/cvs-serv15793/httpd/cgi-bin
Modified Files:
check
Log Message:
bringing back line count for fatal_byte_error, output of raw decoding error message
Index: check
===================================================================
RCS file: /sources/public/validator/httpd/cgi-bin/check,v
retrieving revision 1.522
retrieving revision 1.523
diff -u -d -r1.522 -r1.523
--- check 18 May 2007 10:54:37 -0000 1.522
+++ check 20 May 2007 23:17:28 -0000 1.523
@@ -2049,17 +2049,20 @@
# Transcoding failed
if ($@) {
- $File->{'Error Flagged'} = TRUE;
-
- # @@FIXME might need better text, in particular, this does not tell
- # where the error occured; it might be possible to emulate that
- # using a Encode CHECK parameter that modifies the input, then split
- # the decodable string to give line / column information, or don't
- # split and report the offset calculated from the result.
- $File->{Templates}->{Error}->param(fatal_byte_error => TRUE);
- $File->{Templates}->{Error}->param(fatal_byte_lines => 0);
- $File->{Templates}->{Error}->param(fatal_byte_charset => $cs);
-
+ 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); };
+ if ($@) {
+ $File->{'Error Flagged'} = TRUE;
+ $File->{Templates}->{Error}->param(fatal_byte_error => TRUE);
+ $File->{Templates}->{Error}->param(fatal_byte_lines => $line_num);
+ $File->{Templates}->{Error}->param(fatal_byte_charset => $cs);
+ my $croak_message = $@;
+ $croak_message =~ s/ at .*//;
+ $File->{Templates}->{Error}->param(fatal_byte_error_msg => $croak_message);
+ }
+ }
return $File;
}
Received on Sunday, 20 May 2007 23:17:33 UTC