Don't rewrite user-defined env vars
This commit is contained in:
+28
-13
@@ -176,16 +176,31 @@ bool UnixPtyProcess::startProcess(const QString &shellPath, QStringList environm
|
||||
m_shellProcess.emitReadyRead();
|
||||
});
|
||||
|
||||
environment.append("TERM=xterm-256color");
|
||||
environment.append("ITERM_PROFILE=Default");
|
||||
environment.append("XPC_FLAGS=0x0");
|
||||
environment.append("XPC_SERVICE_NAME=0");
|
||||
environment.append("LANG=en_US.UTF-8");
|
||||
environment.append("LC_ALL=en_US.UTF-8");
|
||||
environment.append("LC_CTYPE=UTF-8");
|
||||
environment.append("INIT_CWD=" + QCoreApplication::applicationDirPath());
|
||||
environment.append("COMMAND_MODE=unix2003");
|
||||
environment.append("COLORTERM=truecolor");
|
||||
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)
|
||||
@@ -266,9 +281,9 @@ IPtyProcess::PtyType UnixPtyProcess::type()
|
||||
QString UnixPtyProcess::dumpDebugInfo()
|
||||
{
|
||||
return QString("PID: %1, In: %2, Out: %3, Type: %4, Cols: %5, Rows: %6, IsRunning: %7, Shell: %8, SlaveName: %9")
|
||||
.arg(m_pid).arg(m_shellProcess.m_handleMaster).arg(m_shellProcess.m_handleSlave).arg(type())
|
||||
.arg(m_size.first).arg(m_size.second).arg(m_shellProcess.state() == QProcess::Running)
|
||||
.arg(m_shellPath).arg(m_shellProcess.m_handleSlaveName);
|
||||
.arg(m_pid).arg(m_shellProcess.m_handleMaster).arg(m_shellProcess.m_handleSlave).arg(type())
|
||||
.arg(m_size.first).arg(m_size.second).arg(m_shellProcess.state() == QProcess::Running)
|
||||
.arg(m_shellPath).arg(m_shellProcess.m_handleSlaveName);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user