aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Tillmanns <marcus.tillmanns@qt.io>2023-08-18 16:12:06 +0200
committerMarcus Tillmanns <marcus.tillmanns@qt.io>2023-08-21 06:43:01 +0000
commit64b852e18648a9f7501a1c121da404a6cea0858b (patch)
tree2a8b704418d52a552cfdf5a4c030325138c905e5
parente9b3cd548cd3e9f872344f518c01387dc6af814b (diff)
Terminal: Fix default environment vars
Fixes: QTCREATORBUG-29515 Change-Id: I1d14f228f946a64a8d3cdb17f57ae9058db549ff Reviewed-by: Cristian Adam <cristian.adam@qt.io>
-rw-r--r--src/libs/3rdparty/libptyqt/unixptyprocess.cpp20
-rw-r--r--src/plugins/terminal/terminalwidget.cpp7
2 files changed, 8 insertions, 19 deletions
diff --git a/src/libs/3rdparty/libptyqt/unixptyprocess.cpp b/src/libs/3rdparty/libptyqt/unixptyprocess.cpp
index 4c67ee28fb..a72712c1eb 100644
--- a/src/libs/3rdparty/libptyqt/unixptyprocess.cpp
+++ b/src/libs/3rdparty/libptyqt/unixptyprocess.cpp
@@ -184,34 +184,16 @@ bool UnixPtyProcess::startProcess(const QString &shellPath,
m_readMasterNotify->disconnect();
});
- QStringList defaultVars;
-
- defaultVars.append("TERM=xterm-256color");
- defaultVars.append("ITERM_PROFILE=Default");
- defaultVars.append("XPC_FLAGS=0x0");
- defaultVars.append("XPC_SERVICE_NAME=0");
- defaultVars.append("LANG=en_US.UTF-8");
- defaultVars.append("LC_ALL=en_US.UTF-8");
- defaultVars.append("LC_CTYPE=UTF-8");
- defaultVars.append("INIT_CWD=" + QCoreApplication::applicationDirPath());
- defaultVars.append("COMMAND_MODE=unix2003");
- defaultVars.append("COLORTERM=truecolor");
-
QStringList varNames;
foreach (QString line, environment) {
varNames.append(line.split("=").first());
}
- //append default env vars only if they don't exists in current env
- foreach (QString defVar, defaultVars) {
- if (!varNames.contains(defVar.split("=").first()))
- environment.append(defVar);
- }
-
QProcessEnvironment envFormat;
foreach (QString line, environment) {
envFormat.insert(line.split("=").first(), line.split("=").last());
}
+
m_shellProcess.setWorkingDirectory(workingDir);
m_shellProcess.setProcessEnvironment(envFormat);
m_shellProcess.setReadChannel(QProcess::StandardOutput);
diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp
index dd10522353..a2c566c8f0 100644
--- a/src/plugins/terminal/terminalwidget.cpp
+++ b/src/plugins/terminal/terminalwidget.cpp
@@ -149,6 +149,13 @@ void TerminalWidget::setupPty()
Environment env = m_openParameters.environment.value_or(Environment{})
.appliedToEnvironment(shellCommand.executable().deviceEnvironment());
+ // Set some useful defaults
+ env.setFallback("TERM", "xterm-256color");
+ env.setFallback("TERM_PROGRAM", QCoreApplication::applicationName());
+ env.setFallback("COLORTERM", "truecolor");
+ env.setFallback("COMMAND_MODE", "unix2003");
+ env.setFallback("INIT_CWD", QCoreApplication::applicationDirPath());
+
// For git bash on Windows
env.prependOrSetPath(shellCommand.executable().parentDir());
if (env.hasKey("CLINK_NOAUTORUN"))