void XMLTreeBuilder::processHTMLEntity(const AtomicXMLToken& token) { HTMLEntitySearch search; const AtomicString& name = token.name(); for (size_t i = 0; i < name.length(); ++i) { search.advance(name[i]); if (!search.isEntityPrefix()) { m_parser->stopParsing(); return; } } search.advance(';'); if (!search.isEntityPrefix()) { m_parser->stopParsing(); return; } UChar32 entityValue = search.mostRecentMatch()->firstValue; // FIXME: We need to account for secondValue if any XML entities are longer // than one unicode character. ASSERT_NOT_REACHED(); // Darin Adler writes: // You can see given the code above that this else is dead code. This code is in a strange state. // And the reinterpret_cast to UChar* makes the code little-endian-specific. That is not good! if (entityValue <= 0xFFFF) appendToText(reinterpret_cast<UChar*>(&entityValue), 1); else { UChar utf16Pair[2] = { U16_LEAD(entityValue), U16_TRAIL(entityValue) }; appendToText(utf16Pair, 2); } }
void XMLTreeBuilder::processXMLEntity(const AtomicXMLToken& token) { DEFINE_STATIC_LOCAL(AtomicString, amp, ("amp")); DEFINE_STATIC_LOCAL(AtomicString, apos, ("apos")); DEFINE_STATIC_LOCAL(AtomicString, gt, ("gt")); DEFINE_STATIC_LOCAL(AtomicString, lt, ("lt")); DEFINE_STATIC_LOCAL(AtomicString, quot, ("quot")); DEFINE_STATIC_LOCAL(String, ampS, ("&")); DEFINE_STATIC_LOCAL(String, aposS, ("'")); DEFINE_STATIC_LOCAL(String, gtS, (">")); DEFINE_STATIC_LOCAL(String, ltS, ("<")); DEFINE_STATIC_LOCAL(String, quotS, ("\"")); if (token.name() == amp) appendToText(ampS.characters(), 1); else if (token.name() == apos) appendToText(aposS.characters(), 1); else if (token.name() == gt) appendToText(gtS.characters(), 1); else if (token.name() == lt) appendToText(ltS.characters(), 1); else if (token.name() == quot) appendToText(quotS.characters(), 1); else m_parser->stopParsing(); }
RSButtonOnText::RSButtonOnText(QTextEdit *textEdit, QWidget *parent) : QPushButton(parent) //: RSButtonOnText(parent)//delegating constructors only available with -std=c++11 or -std=gnu++11 { _uuid = QUuid::createUuid().toString(); _lenght = -1; _mouseOver = false; _pressed = false; appendToText(textEdit); }
void XMLTreeBuilder::processHTMLEntity(const AtomicXMLToken& token) { HTMLEntitySearch search; const AtomicString& name = token.name(); for (size_t i = 0; i < name.length(); ++i) { search.advance(name[i]); if (!search.isEntityPrefix()) { m_parser->stopParsing(); return; } } search.advance(';'); UChar32 entityValue = search.currentValue(); if (entityValue <= 0xFFFF) appendToText(reinterpret_cast<UChar*>(&entityValue), 1); else { UChar utf16Pair[2] = { U16_LEAD(entityValue), U16_TRAIL(entityValue) }; appendToText(utf16Pair, 2); } }
void XMLTreeBuilder::processCharacter(const AtomicXMLToken& token) { appendToText(token.characters().data(), token.characters().size()); }