forked from qt-creator/qt-creator
Terminal: Fix default environment vars
Fixes: QTCREATORBUG-29515 Change-Id: I1d14f228f946a64a8d3cdb17f57ae9058db549ff Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
20
src/libs/3rdparty/libptyqt/unixptyprocess.cpp
vendored
20
src/libs/3rdparty/libptyqt/unixptyprocess.cpp
vendored
@@ -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);
|
||||
|
@@ -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"))
|
||||
|
Reference in New Issue
Block a user