[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdev-python/python3] parser: fix string decoding in python
From: Sven Brauch <svenbrauch () googlemail ! com>
Date: 2012-10-24 23:59:02
Message-ID: 20121024235902.9D690A60CB () git ! kde ! org
[Download RAW message or body]
Git commit 85afad6419aca502a5964cf4a3efe603fea0f98c by Sven Brauch.
Committed on 25/10/2012 at 01:58.
Pushed by brauch into branch 'python3'.
fix string decoding in python
M +3 -16 parser/astbuilder.cpp
http://commits.kde.org/kdev-python/85afad6419aca502a5964cf4a3efe603fea0f98c
diff --git a/parser/astbuilder.cpp b/parser/astbuilder.cpp
index 9e37221..6222309 100644
--- a/parser/astbuilder.cpp
+++ b/parser/astbuilder.cpp
@@ -69,11 +69,8 @@ QMutex AstBuilder::pyInitLock;
QString AstBuilder::pyHomeDir = KStandardDirs::locate("data", "");
QString PyUnicodeObjectToQString(PyObject* obj) {
-#ifdef Q_OS_WIN32
- return QString::fromWCharArray((wchar_t*)PyUnicode_AS_DATA(PyObject_Str(obj)));
-#else
- return QLatin1String((char*)PyUnicode_AS_DATA(PyObject_Str(obj)));
-#endif
+ ushort* data = (ushort*) PyUnicode_AS_DATA(PyObject_Str(obj));
+ return QString::fromUtf16(data);
}
QPair<QString, int> fileHeaderHack(QString& contents, const KUrl& filename)
@@ -154,19 +151,12 @@ CodeAst* AstBuilder::parse(KUrl filename, QString& contents)
int lineOffset = hacked.second;
AstBuilder::pyInitLock.lock();
-#ifdef _WIN32
- QString myHomeDir = AstBuilder::pyHomeDir;
- wchar_t *we = new wchar_t[AstBuilder::pyHomeDir.size()+1];
- AstBuilder::pyHomeDir.toWCharArray(we);
- we[AstBuilder::pyHomeDir.size()] = 0;
- Py_SetPythonHome(we);
-#else
+
wchar_t* homedir = (wchar_t*) malloc((AstBuilder::pyHomeDir.size() + 1) * sizeof(wchar_t));
AstBuilder::pyHomeDir.toWCharArray(homedir);
homedir[AstBuilder::pyHomeDir.size()] = 0x0;
kWarning() << AstBuilder::pyHomeDir;
Py_SetPythonHome(homedir);
-#endif
kDebug() << "Not initialized, calling init func.";
Py_Initialize();
Q_ASSERT(Py_IsInitialized());
@@ -353,9 +343,6 @@ CodeAst* AstBuilder::parse(KUrl filename, QString& contents)
RangeUpdateVisitor v;
v.visitNode(t.ast);
-#ifdef _WIN32
- delete[] we;
-#endif
return t.ast;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic