aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects/class_xmlreader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/objects/class_xmlreader.cpp')
-rw-r--r--src/modules/objects/class_xmlreader.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/modules/objects/class_xmlreader.cpp b/src/modules/objects/class_xmlreader.cpp
index d3c355c0a..927dcd80a 100644
--- a/src/modules/objects/class_xmlreader.cpp
+++ b/src/modules/objects/class_xmlreader.cpp
@@ -29,6 +29,8 @@
#include "kvi_kvs_variantlist.h"
#include "kvi_kvs_hash.h"
+#include "kvi_qstring.h"
+
/*
@doc: xmlreader
@@ -316,7 +318,13 @@ bool KviKvsObject_xmlreader::function_parse(KviKvsObjectFunctionCall *c)
m_szLastError = "";
KviXmlHandler handler(this);
QXmlInputSource source;
- source.setData(szString);
+ // We have a problem here.. most kvirc functions already interpret the data
+ // read from files. We should have binary data handling features to get this to work correctly.
+ // The following snippet of code tries to provide a best-effort workaround.
+ KviQCString utf8data = KviQString::toUtf8(szString);
+ QByteArray data = utf8data;
+ data.truncate(utf8data.length()); // don't include the null terminator in data
+ source.setData(data);
//debug("PARSING(%s) LEN(%d)",szString.utf8().data(),szString.utf8().length());
QXmlSimpleReader reader;
reader.setContentHandler(&handler);