- From: Ville Skytta via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 07 May 2010 17:41:32 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/validator/httpd/cgi-bin In directory hutz:/tmp/cvs-serv15868/httpd/cgi-bin Modified Files: check Log Message: Avoid malformed comments when overriding doctype or charset. Index: check =================================================================== RCS file: /sources/public/validator/httpd/cgi-bin/check,v retrieving revision 1.775 retrieving revision 1.776 diff -u -d -r1.775 -r1.776 --- check 7 May 2010 17:22:58 -0000 1.775 +++ check 7 May 2010 17:41:29 -0000 1.776 @@ -1892,6 +1892,16 @@ } # +# Escape text to be included in markup comment. +sub escape_comment +{ + local $_ = shift; + return '' unless defined; + s/--/- /g; + return $_; +} + +# # Return $_[0] encoded for HTML entities (cribbed from merlyn). # # Note that this is used both for HTML and XML escaping. @@ -2008,7 +2018,7 @@ $HTML .= $text; # Stash it as is... } else { - $HTML .= "$dtd<!-- $text -->"; + $HTML .= "$dtd<!-- " . &escape_comment($text) . " -->"; } }; @@ -2088,14 +2098,16 @@ (^<\?xml\b[^>]*?${ws}encoding${ws}*=${ws}*(["'])) (${cs}) (\3.*?\?>) - )/lc($4) eq lc($charset) ? "$1" : "$2$charset$5<!-- $1 -->"/esx; + )/lc($4) eq lc($charset) ? + "$1" : "$2$charset$5<!-- " . &escape_comment($1) ." -->"/esx; # <meta charset="charset"> $content =~ s/( (<meta\b[^>]*?${ws}charset${ws}*=${ws}*["']?${ws}*) (${cs}) (.*?>) - )/lc($3) eq lc($charset) ? "$1" : "$2$charset$4<!-- $1 -->"/esix; + )/lc($3) eq lc($charset) ? + "$1" : "$2$charset$4<!-- " . &escape_comment($1) . " -->"/esix; # <meta http-equiv="content-type" content="some/type; charset=charset"> $content =~ s/( @@ -2104,7 +2116,8 @@ content${ws}*=${ws}*["']?[^"'>]+?;${ws}*charset${ws}*=${ws}*) (${cs}) (.*?>) - )/lc($3) eq lc($charset) ? "$1" : "$2$charset$4<!-- $1 -->"/esix; + )/lc($3) eq lc($charset) ? + "$1" : "$2$charset$4<!-- " . &escape_comment($1) . " -->"/esix; # <meta content="some/type; charset=charset" http-equiv="content-type"> $content =~ s/( @@ -2112,7 +2125,8 @@ content${ws}*=${ws}*["']?[^"'>]+?;${ws}*charset${ws}*=${ws}*) (${cs}) ([^>]*?${ws}http-equiv${ws}*=${ws}*["']?${ws}*content-type\b.*?>) - )/lc($3) eq lc($charset) ? "$1" : "$2$charset$4<!-- $1 -->"/esix; + )/lc($3) eq lc($charset) ? + "$1" : "$2$charset$4<!-- " . &escape_comment($1) . " -->"/esix; $File->{Content} = [split /\n/, $content]; }
Received on Friday, 7 May 2010 17:41:33 UTC