From 64b852e18648a9f7501a1c121da404a6cea0858b Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Fri, 18 Aug 2023 16:12:06 +0200 Subject: [PATCH] Terminal: Fix default environment vars Fixes: QTCREATORBUG-29515 Change-Id: I1d14f228f946a64a8d3cdb17f57ae9058db549ff Reviewed-by: Cristian Adam --- src/libs/3rdparty/libptyqt/unixptyprocess.cpp | 20 +------------------ src/plugins/terminal/terminalwidget.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/libs/3rdparty/libptyqt/unixptyprocess.cpp b/src/libs/3rdparty/libptyqt/unixptyprocess.cpp index 4c67ee28fb0..a72712c1eb4 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 dd105223536..a2c566c8f0a 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"))