- From: Olivier Thereaux via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 17 Jan 2008 08:09:26 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/validator/httpd/cgi-bin
In directory hutz:/tmp/cvs-serv17922/httpd/cgi-bin
Modified Files:
check
Log Message:
check that in a DOCTYPE declaration for a known document type, FPI and SI match
Index: check
===================================================================
RCS file: /sources/public/validator/httpd/cgi-bin/check,v
retrieving revision 1.578
retrieving revision 1.579
diff -u -d -r1.578 -r1.579
--- check 21 Nov 2007 06:55:48 -0000 1.578
+++ check 17 Jan 2008 08:09:23 -0000 1.579
@@ -1879,6 +1879,17 @@
return \@source;
}
+
+sub match_DTD_FPI_SI {
+ my ($File, $FPI, $SI) = @_;
+ if ($CFG->{Types}->{$FPI}) {
+ if ($CFG->{Types}->{$FPI}->{SysID}){
+ if ($SI ne $CFG->{Types}->{$FPI}->{SysID}) {
+ &add_warning('W26', {W26_dtd_pub => $CFG->{Types}->{$FPI}->{Display}, W26_dtd_sys=> $SI, W26_dtd_sys_recommend=> $CFG->{Types}->{$FPI}->{SysID}});
+ }
+ }
+ }
+}
#
# Do an initial parse of the Document Entity to extract FPI.
sub preparse_doctype {
@@ -1892,7 +1903,13 @@
my $dtd = sub {
return if $File->{Root};
# TODO: The \s and \w are probably wrong now that the strings are utf8_on
- ($File->{Root}, $File->{DOCTYPE}) = shift =~ m(<!DOCTYPE\s+(\w[\w\.-]+)\s+(?:PUBLIC|SYSTEM)\s+(?:[\'\"])([^\"\']+)(?:[\"\']).*>)si;
+ my $declaration = shift;
+ my $doctype_type;
+ my $doctype_secondpart;
+ ($File->{Root}, $doctype_type, $File->{DOCTYPE}, $doctype_secondpart) = $declaration =~ m(<!DOCTYPE\s+(\w[\w\.-]+)\s+(PUBLIC|SYSTEM)\s+(?:[\'\"])([^\"\']+)(?:[\"\'])(.*)>)si;
+ if (($doctype_type eq "PUBLIC") and (($doctype_secondpart) = $doctype_secondpart =~ m(\s+(?:[\'\"])([^\"\']+)(?:[\"\']).*)si)){
+ &match_DTD_FPI_SI($File, $File->{DOCTYPE}, $doctype_secondpart);
+ }
};
my $start = sub {
@@ -2519,7 +2536,6 @@
}
}
-
sub W3C::Validator::SAXHandler::start_element
{
my ($self, $element) = @_;
Received on Thursday, 17 January 2008 08:09:34 UTC