diff options
author | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2023-08-18 16:12:06 +0200 |
---|---|---|
committer | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2023-08-21 06:43:01 +0000 |
commit | 64b852e18648a9f7501a1c121da404a6cea0858b (patch) | |
tree | 2a8b704418d52a552cfdf5a4c030325138c905e5 | |
parent | e9b3cd548cd3e9f872344f518c01387dc6af814b (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.cpp | 20 | ||||
-rw-r--r-- | 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 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")) |