void MarkupAccumulator::appendText(StringBuilder& result, Text& text) { const String& str = text.data(); unsigned length = str.length(); unsigned start = 0; if (m_range) { if (text == m_range->endContainer()) length = m_range->endOffset(); if (text == m_range->startContainer()) { start = m_range->startOffset(); length -= start; } } appendCharactersReplacingEntities(result, str, start, length, entityMaskForText(text)); }
void MarkupAccumulator::appendNodeValue(StringBuilder& result, const Node& node, const Range* range, EntityMask entityMask) { const String str = node.nodeValue(); unsigned length = str.length(); unsigned start = 0; if (range) { if (&node == range->endContainer()) length = range->endOffset(); if (&node == range->startContainer()) { start = range->startOffset(); length -= start; } } appendCharactersReplacingEntities(result, str, start, length, entityMask); }
void MarkupAccumulator::appendNodeValue(StringBuilder& out, const Node* node, const Range* range, EntityMask entityMask) { String str = node->nodeValue(); const UChar* characters = str.characters(); size_t length = str.length(); if (range) { ExceptionCode ec; if (node == range->endContainer(ec)) length = range->endOffset(ec); if (node == range->startContainer(ec)) { size_t start = range->startOffset(ec); characters += start; length -= start; } } appendCharactersReplacingEntities(out, characters, length, entityMask); }
void MarkupAccumulator::appendAttributeValue(StringBuilder& result, const String& attribute, bool documentIsHTML) { appendCharactersReplacingEntities(result, attribute.characters(), attribute.length(), documentIsHTML ? EntityMaskInHTMLAttributeValue : EntityMaskInAttributeValue); }
void MarkupFormatter::appendText(StringBuilder& result, Text& text) { const String& str = text.data(); appendCharactersReplacingEntities(result, str, 0, str.length(), entityMaskForText(text)); }