Fix various mis-uses of Environment::forEachEntry()

Most of them introduced with 08bacd3f19.

Fixes: QTCREATORBUG-29857
Change-Id: Ia897958865f00cb5f8f141659a652aee05aa1355
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2023-11-06 16:46:26 +01:00
parent 824fee183c
commit d62309bbb2
5 changed files with 24 additions and 13 deletions

View File

@@ -356,8 +356,9 @@ void TerminalInterface::start()
return; return;
} }
QTextStream stream(d->envListFile.get()); QTextStream stream(d->envListFile.get());
finalEnv.forEachEntry([&stream](const QString &key, const QString &value, bool) { finalEnv.forEachEntry([&stream](const QString &key, const QString &value, bool enabled) {
stream << key << '=' << value << '\0'; if (enabled)
stream << key << '=' << value << '\0';
}); });
if (d->envListFile->error() != QFile::NoError) { if (d->envListFile->error() != QFile::NoError) {

View File

@@ -116,8 +116,10 @@ static Environment getEnvCombined(const std::optional<Environment> &optPresetEnv
Environment result = env; Environment result = env;
if (optPresetEnv) { if (optPresetEnv) {
optPresetEnv->forEachEntry([&result](const QString &key, const QString &value, bool) { optPresetEnv->forEachEntry([&result](const QString &key, const QString &value,
result.set(key, value); bool enabled) {
if (enabled)
result.set(key, value);
}); });
} }
@@ -128,7 +130,9 @@ template<class PresetType>
void expand(const PresetType &preset, Environment &env, const FilePath &sourceDirectory) void expand(const PresetType &preset, Environment &env, const FilePath &sourceDirectory)
{ {
const Environment presetEnv = getEnvCombined(preset.environment, env); const Environment presetEnv = getEnvCombined(preset.environment, env);
presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool) { presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool enabled) {
if (!enabled)
return;
QString value = value_; QString value = value_;
expandAllButEnv(preset, sourceDirectory, value); expandAllButEnv(preset, sourceDirectory, value);
value = expandMacroEnv("env", value, [presetEnv](const QString &macroName) { value = expandMacroEnv("env", value, [presetEnv](const QString &macroName) {
@@ -163,7 +167,9 @@ template<class PresetType>
void expand(const PresetType &preset, EnvironmentItems &envItems, const FilePath &sourceDirectory) void expand(const PresetType &preset, EnvironmentItems &envItems, const FilePath &sourceDirectory)
{ {
const Environment presetEnv = preset.environment ? *preset.environment : Environment(); const Environment presetEnv = preset.environment ? *preset.environment : Environment();
presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool) { presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool enabled) {
if (!enabled)
return;
QString value = value_; QString value = value_;
expandAllButEnv(preset, sourceDirectory, value); expandAllButEnv(preset, sourceDirectory, value);
value = expandMacroEnv("env", value, [presetEnv](const QString &macroName) { value = expandMacroEnv("env", value, [presetEnv](const QString &macroName) {

View File

@@ -662,9 +662,11 @@ CommandLine DockerDevicePrivate::withDockerExecCmd(const CommandLine &cmd,
dockerCmd.addArg("-t"); dockerCmd.addArg("-t");
if (env) { if (env) {
env->forEachEntry([&](const QString &key, const QString &value, bool) { env->forEachEntry([&](const QString &key, const QString &value, bool enabled) {
dockerCmd.addArg("-e"); if (enabled) {
dockerCmd.addArg(key + "=" + env->expandVariables(value)); dockerCmd.addArg("-e");
dockerCmd.addArg(key + "=" + env->expandVariables(value));
}
}); });
} }

View File

@@ -867,8 +867,9 @@ QtSupport::ProFileReader *QmakeBuildSystem::createProFileReader(const QmakeProFi
rootProFileName, rootProFileName,
deviceRoot()); deviceRoot());
env.forEachEntry([&](const QString &key, const QString &value, bool) { env.forEachEntry([&](const QString &key, const QString &value, bool enabled) {
m_qmakeGlobals->environment.insert(key, env.expandVariables(value)); if (enabled)
m_qmakeGlobals->environment.insert(key, env.expandVariables(value));
}); });
m_qmakeGlobals->setCommandLineArguments(rootProFileName, qmakeArgs); m_qmakeGlobals->setCommandLineArguments(rootProFileName, qmakeArgs);

View File

@@ -768,8 +768,9 @@ CommandLine SshProcessInterfacePrivate::fullLocalCommandLine() const
inner.addArgs(QString("echo ") + s_pidMarker + "$$" + s_pidMarker + " && ", CommandLine::Raw); inner.addArgs(QString("echo ") + s_pidMarker + "$$" + s_pidMarker + " && ", CommandLine::Raw);
const Environment &env = q->m_setup.m_environment; const Environment &env = q->m_setup.m_environment;
env.forEachEntry([&](const QString &key, const QString &value, bool) { env.forEachEntry([&](const QString &key, const QString &value, bool enabled) {
inner.addArgs(key + "='" + env.expandVariables(value) + '\'', CommandLine::Raw); if (enabled)
inner.addArgs(key + "='" + env.expandVariables(value) + '\'', CommandLine::Raw);
}); });
if (!useTerminal && !commandLine.isEmpty()) if (!useTerminal && !commandLine.isEmpty())