diff --git a/src/plugins/terminal/shellintegration.cpp b/src/plugins/terminal/shellintegration.cpp index c0cad7f3dd2..8cd6acd7443 100644 --- a/src/plugins/terminal/shellintegration.cpp +++ b/src/plugins/terminal/shellintegration.cpp @@ -79,10 +79,15 @@ bool ShellIntegration::canIntegrate(const Utils::CommandLine &cmdLine) void ShellIntegration::onOsc(int cmd, std::string_view str, bool initial, bool final) { - Q_UNUSED(initial); - Q_UNUSED(final); + if (initial) + m_oscBuffer.clear(); - QString d = QString::fromLocal8Bit(str); + m_oscBuffer.append(str); + + if (!final) + return; + + QString d = QString::fromLocal8Bit(m_oscBuffer); const auto [command, data] = Utils::splitAtFirst(d, ';'); if (cmd == 1337) { diff --git a/src/plugins/terminal/shellintegration.h b/src/plugins/terminal/shellintegration.h index 22cf4e79a34..4f1215fad94 100644 --- a/src/plugins/terminal/shellintegration.h +++ b/src/plugins/terminal/shellintegration.h @@ -34,6 +34,7 @@ signals: private: QTemporaryDir m_tempDir; + QByteArray m_oscBuffer; }; } // namespace Terminal