From 653dc64720ae78c633c2282519b9b21fb6491b3b Mon Sep 17 00:00:00 2001 From: Hugo Lima Date: Thu, 24 Sep 2009 16:59:56 -0300 Subject: Fix bug#38. --- docparser.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'docparser.cpp') diff --git a/docparser.cpp b/docparser.cpp index ddff5ffe9..d6e8bf468 100644 --- a/docparser.cpp +++ b/docparser.cpp @@ -95,7 +95,19 @@ QString DocParser::applyDocModifications(const DocModificationList& mods, const if (mods.isEmpty()) return xml; - QString xsl = QLatin1String("\n" + bool hasXPathBasedModification = false; + foreach (DocModification mod, mods) { + if (mod.mode() == DocModification::XPathReplace) { + hasXPathBasedModification = true; + break; + } + } + + if (!hasXPathBasedModification) + return xml; + + QString xsl = QLatin1String("\n" + "\n" "\n" " \n" "\n" @@ -140,7 +152,7 @@ QString DocParser::applyDocModifications(const DocModificationList& mods, const int bufferSize; QString result; if (!xsltSaveResultToString(&buffer, &bufferSize, res.xslResult, res.xslt)) { - result = QByteArray(reinterpret_cast(buffer), bufferSize); + result = QString::fromUtf8(reinterpret_cast(buffer), bufferSize); std::free(buffer); } else { result = xml; -- cgit v1.2.3