[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