From bd704d49268ecfb399b05d74a3a16593e672bbd4 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Wed, 12 Jan 2011 15:31:40 +0100
Subject: [PATCH] Debugger: Fix python path for Windows.

Fix 07cac21957dac9f69126fa13b37b5842fb219a44.

Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
---
 src/plugins/debugger/gdb/gdbengine.cpp | 31 +++++++++++++++-----------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 57190e22b71..a7c0ac61e44 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -4122,26 +4122,31 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr
     const QString pythonPathVariable = QLatin1String("PYTHONPATH");
     QString pythonPath;
 
+    const QString environmentPythonPath = environment.value(pythonPathVariable);
     if (dir.exists(winPythonVersion)) {
         pythonPath = QDir::toNativeSeparators(dir.absoluteFilePath(winPythonVersion));
     } else if (dir.exists(QLatin1String("lib"))) { // Needed for our gdb 7.2 packages
         pythonPath = QDir::toNativeSeparators(dir.absoluteFilePath(QLatin1String("lib")));
     } else {
-        if (environment.contains(pythonPathVariable)) {
-            pythonPath = environment.value(pythonPathVariable);
-        } else {
-            showMessage(_("GDB %1 CANNOT FIND PYTHON INSTALLATION.").arg(m_gdb));
-            showStatusMessage(_("Gdb at %1 cannot find python").arg(m_gdb));
-            const QString msg = tr("The gdb installed at %1 cannot "
-                "find a valid python installation in its %2 subdirectory.\n"
-                "You may set the PYTHONPATH to your installation.")
-                    .arg(m_gdb).arg(winPythonVersion);
-            handleAdapterStartFailed(msg, settingsIdHint);
-            return false;
-        }
+        pythonPath = environmentPythonPath;
+    }
+    if (pythonPath.isEmpty()) {
+        const QString nativeGdb = QDir::toNativeSeparators(m_gdb);
+        showMessage(_("GDB %1 CANNOT FIND THE PYTHON INSTALLATION.").arg(nativeGdb));
+        showStatusMessage(_("%1 cannot find python").arg(nativeGdb));
+        const QString msg = tr("The gdb installed at %1 cannot "
+                               "find a valid python installation in its %2 subdirectory.\n"
+                               "You may set the PYTHONPATH to your installation.")
+                .arg(nativeGdb).arg(winPythonVersion);
+        handleAdapterStartFailed(msg, settingsIdHint);
+        return false;
     }
-    environment.insert(pythonPathVariable, pythonPath);
     showMessage(_("Python path: %1").arg(pythonPath), LogMisc);
+    // Apply to process
+    if (pythonPath != environmentPythonPath) {
+        environment.insert(pythonPathVariable, pythonPath);
+        gdbProc()->setProcessEnvironment(environment);
+    }
 #endif
 
     connect(gdbProc(), SIGNAL(error(QProcess::ProcessError)),
-- 
GitLab