From: <ad...@us...> - 2010-11-18 01:15:38
|
Revision: 1210 http://jtidy.svn.sourceforge.net/jtidy/?rev=1210&view=rev Author: aditsu Date: 2010-11-18 01:15:32 +0000 (Thu, 18 Nov 2010) Log Message: ----------- fixed test 586562 - added check for existing doctype in insertDocType Modified Paths: -------------- branches/CodeUpdateAndJava5/src/main/java/org/w3c/tidy/Node.java Modified: branches/CodeUpdateAndJava5/src/main/java/org/w3c/tidy/Node.java =================================================================== --- branches/CodeUpdateAndJava5/src/main/java/org/w3c/tidy/Node.java 2010-11-18 00:58:15 UTC (rev 1209) +++ branches/CodeUpdateAndJava5/src/main/java/org/w3c/tidy/Node.java 2010-11-18 01:15:32 UTC (rev 1210) @@ -857,16 +857,18 @@ * @param element document * @param doctype doctype node to insert at the beginning of element */ - public static void insertDocType(Lexer lexer, Node element, Node doctype) - { - lexer.report.warning(lexer, element, doctype, ErrorCode.DOCTYPE_AFTER_TAGS); - - while (!element.is(TagId.HTML)) - { - element = element.parent; - } - - insertNodeBeforeElement(element, doctype); + public static void insertDocType(final Lexer lexer, Node element, final Node doctype) { + Node existing = lexer.root.findDocType(); + if (existing != null) { + lexer.report.warning(lexer, element, doctype, ErrorCode.DISCARDING_UNEXPECTED); + } + else { + lexer.report.warning(lexer, element, doctype, ErrorCode.DOCTYPE_AFTER_TAGS); + while (!element.is(TagId.HTML)) { + element = element.parent; + } + insertNodeBeforeElement(element, doctype); + } } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |