From 2d006eaa7b30551b23447fe87bb278367197e158 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 24 Mar 2025 13:05:59 +0000 Subject: [PATCH] Ensure newlines are stripped from command line input * These can be inserted via copy-paste even though Qt says that QLineEdit only does single line editing :( --- qrenderdoc/Windows/Dialogs/CaptureDialog.cpp | 11 +++++++++-- qrenderdoc/Windows/Dialogs/CaptureDialog.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Windows/Dialogs/CaptureDialog.cpp b/qrenderdoc/Windows/Dialogs/CaptureDialog.cpp index 0da6ba79e..a9c1ea5e0 100644 --- a/qrenderdoc/Windows/Dialogs/CaptureDialog.cpp +++ b/qrenderdoc/Windows/Dialogs/CaptureDialog.cpp @@ -963,7 +963,7 @@ CaptureSettings CaptureDialog::Settings() ret.executable = ui->exePath->text(); ret.workingDir = ui->workDirPath->text(); - ret.commandLine = ui->cmdline->text(); + ret.commandLine = GetCommandLine(); ret.environment = m_EnvModifications; @@ -1081,6 +1081,13 @@ void CaptureDialog::SetCommandLine(const rdcstr &cmd) ui->cmdline->setText(cmd); } +QString CaptureDialog::GetCommandLine() +{ + return ui->cmdline->text() + .replace(QLatin1Char('\n'), QLatin1Char(' ')) + .replace(QLatin1Char('\r'), QLatin1Char(' ')); +} + void CaptureDialog::LoadSettings(const rdcstr &filename) { SetSettings(LoadSettingsFromDisk(filename)); @@ -1227,7 +1234,7 @@ void CaptureDialog::TriggerCapture() workingDir = ui->workDirPath->text(); } - QString cmdLine = ui->cmdline->text(); + QString cmdLine = GetCommandLine(); SaveSettings(mostRecentFilename()); diff --git a/qrenderdoc/Windows/Dialogs/CaptureDialog.h b/qrenderdoc/Windows/Dialogs/CaptureDialog.h index 106561e17..1d4bbaa7c 100644 --- a/qrenderdoc/Windows/Dialogs/CaptureDialog.h +++ b/qrenderdoc/Windows/Dialogs/CaptureDialog.h @@ -67,6 +67,7 @@ public: void SetWorkingDirectory(const rdcstr &dir) override; void SetCommandLine(const rdcstr &cmd) override; + QString GetCommandLine(); void SetEnvironmentModifications(const rdcarray &modifications) override; void SetSettings(CaptureSettings settings) override;