diff options
author | Honglei Zhang <honglei.zhang@nokia.com> | 2011-08-24 11:13:35 (GMT) |
---|---|---|
committer | Honglei Zhang <honglei.zhang@nokia.com> | 2011-08-24 11:13:35 (GMT) |
commit | 49dd6e2978759a3fc46016d82a46d8ee8b609221 (patch) | |
tree | 7a760744b6d6c62822ccb1710f2c862607b1ba13 | |
parent | a28832bb61e7e60ac0fb856daf27b78ff1728520 (diff) | |
parent | e8b49d0e33ea6c8a2814fcad70015dbcc28e9a5d (diff) | |
download | Qt-49dd6e2978759a3fc46016d82a46d8ee8b609221.zip Qt-49dd6e2978759a3fc46016d82a46d8ee8b609221.tar.gz Qt-49dd6e2978759a3fc46016d82a46d8ee8b609221.tar.bz2 |
Merge branch 'xmlExtRefBuffer'
-rw-r--r-- | src/xml/sax/qxml.cpp | 8 | ||||
-rwxr-xr-x | tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.ent | bin | 0 -> 2130 bytes | |||
-rw-r--r-- | tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml | 6 | ||||
-rw-r--r-- | tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml.ref | 10 |
4 files changed, 23 insertions, 1 deletions
diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp index 2f5384b..0c7f2ab 100644 --- a/src/xml/sax/qxml.cpp +++ b/src/xml/sax/qxml.cpp @@ -7748,7 +7748,13 @@ bool QXmlSimpleReaderPrivate::processReference() return false; } if (ret) { - QString xmlRefString = ret->data(); + QString xmlRefString; + QString buffer = ret->data(); + while (buffer.length()>0){ + xmlRefString += buffer; + ret->fetchData(); + buffer = ret->data(); + } delete ret; if (!stripTextDecl(xmlRefString)) { reportParseError(QLatin1String(XMLERR_ERRORINTEXTDECL)); diff --git a/tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.ent b/tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.ent Binary files differnew file mode 100755 index 0000000..86a8679 --- /dev/null +++ b/tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.ent diff --git a/tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml b/tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml new file mode 100644 index 0000000..5550dab --- /dev/null +++ b/tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml @@ -0,0 +1,6 @@ +<!DOCTYPE doc [
+<!ELEMENT doc k(#PCDATA)>
+<!ENTITY e SYSTEM "015.ent">
+]>
+<doc>&e;</doc>
+
diff --git a/tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml.ref b/tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml.ref new file mode 100644 index 0000000..1ec309a --- /dev/null +++ b/tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml.ref @@ -0,0 +1,10 @@ +setDocumentLocator(locator={columnNumber=1, lineNumber=1}) +startDocument() + startDTD(name="doc", publicId="", systemId="") + externalEntityDecl(name="e", publicId="", systemId="015.ent") + endDTD() + startElement(namespaceURI="", localName="doc", qName="doc", atts=[]) + resolveEntity(publicId="", systemId="015.ent", ret={}) + skippedEntity(name="e") + endElement(namespaceURI="", localName="doc", qName="doc") +endDocument() |