From fe82fbf4f62f701417786365879a397f0e19260e Mon Sep 17 00:00:00 2001 From: David Refoua Date: Mon, 15 Jun 2026 00:31:02 +0330 Subject: [PATCH] Normalize ConEmu task names --- launcher/src/CmderLauncher.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/launcher/src/CmderLauncher.cpp b/launcher/src/CmderLauncher.cpp index 3fe20c5..b4609f1 100644 --- a/launcher/src/CmderLauncher.cpp +++ b/launcher/src/CmderLauncher.cpp @@ -105,6 +105,18 @@ bool FileExists(const wchar_t * filePath) return false; } +std::wstring NormalizeTaskName(std::wstring taskName) +{ + // ConEmu task labels are commonly passed as "{task}" on the command line. + // Strip the outer braces so we do not add a second pair later when building /run. + if (taskName.length() > 1 && taskName.front() == L'{' && taskName.back() == L'}') + { + return taskName.substr(1, taskName.length() - 2); + } + + return taskName; +} + void StartCmder(std::wstring path = L"", bool is_single_mode = false, std::wstring taskName = L"", std::wstring title = L"", std::wstring iconPath = L"", std::wstring cfgRoot = L"", bool use_user_cfg = true, std::wstring conemu_args = L"") { #if USE_TASKBAR_API @@ -132,6 +144,7 @@ void StartCmder(std::wstring path = L"", bool is_single_mode = false, std::wstr std::wstring cmderStart = path; std::wstring cmderTask = taskName; + cmderTask = NormalizeTaskName(cmderTask); std::wstring cmderTitle = title; std::wstring cmderConEmuArgs = conemu_args;