Bug 612527 - Implement spec tweaks to U+0000 handling in the HTML5 parser. rs=jonas, a=blocking2.0-betaN.

This commit is contained in:
Henri Sivonen
2010-12-09 11:27:58 +02:00
parent 0e46554119
commit 034b529d7e
9 changed files with 66 additions and 12 deletions

View File

@@ -1214,10 +1214,24 @@ public abstract class TreeBuilder<T> implements TokenHandler,
/**
* @see nu.validator.htmlparser.common.TokenHandler#zeroOriginatingReplacementCharacter()
*/
public void zeroOriginatingReplacementCharacter()
throws SAXException {
if (isInForeign() || mode == TEXT) {
characters(REPLACEMENT_CHARACTER, 0, 1);
public void zeroOriginatingReplacementCharacter() throws SAXException {
if (mode == TEXT) {
accumulateCharacters(REPLACEMENT_CHARACTER, 0, 1);
return;
}
if (currentPtr >= 0) {
StackNode<T> stackNode = stack[currentPtr];
if (stackNode.ns == "http://www.w3.org/1999/xhtml") {
return;
}
if (stackNode.isHtmlIntegrationPoint()) {
return;
}
if (stackNode.ns == "http://www.w3.org/1998/Math/MathML"
&& stackNode.getGroup() == MI_MO_MN_MS_MTEXT) {
return;
}
accumulateCharacters(REPLACEMENT_CHARACTER, 0, 1);
}
}