From e3b2b4e08a35888b3b921eed96554882ed7ba800 Mon Sep 17 00:00:00 2001 From: Moshe Katz Date: Thu, 20 Nov 2014 10:59:17 -0500 Subject: [PATCH] changes copied from https://github.com/TheCjw/cmder/commit/0f295234cc95427ccef82bb23c5493d3abeb7a57 and https://github.com/TheCjw/cmder/commit/18fea0ac0375b912eb0b3fd7a9dff14893d50b92 --- launcher/src/CmderLauncher.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/launcher/src/CmderLauncher.cpp b/launcher/src/CmderLauncher.cpp index fcdeb60..893e33c 100644 --- a/launcher/src/CmderLauncher.cpp +++ b/launcher/src/CmderLauncher.cpp @@ -79,7 +79,7 @@ optpair GetOption() return pair; } -void StartCmder(std::wstring path) +void StartCmder(std::wstring path, bool is_single_mode) { #if USE_TASKBAR_API wchar_t appId[MAX_PATH] = { 0 }; @@ -102,7 +102,14 @@ void StartCmder(std::wstring path) PathCombine(cfgPath, exeDir, L"config\\ConEmu.xml"); PathCombine(conEmuPath, exeDir, L"vendor\\conemu-maximus5\\ConEmu.exe"); - swprintf_s(args, L"/Icon \"%s\" /Title Cmder /LoadCfgFile \"%s\"", icoPath, cfgPath); + if (is_single_mode) + { + swprintf_s(args, L"/single /Icon \"%s\" /Title Cmder /LoadCfgFile \"%s\"", icoPath, cfgPath); + } + else + { + swprintf_s(args, L"/Icon \"%s\" /Title Cmder /LoadCfgFile \"%s\"", icoPath, cfgPath); + } SetEnvironmentVariable(L"CMDER_ROOT", exeDir); SetEnvironmentVariable(L"CMDER_START", path.c_str()); @@ -229,7 +236,11 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, if (streqi(opt.first.c_str(), L"/START")) { - StartCmder(opt.second); + StartCmder(opt.second, false); + } + else if (streqi(opt.first.c_str(), L"/SINGLE")) + { + StartCmder(opt.second, true); } else if (streqi(opt.first.c_str(), L"/REGISTER")) { @@ -243,7 +254,7 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, } else { - MessageBox(NULL, L"Unrecognized parameter.\n\nValid options:\n /START \n /REGISTER [USER/ALL]\n /UNREGISTER [USER/ALL]", MB_TITLE, MB_OK); + MessageBox(NULL, L"Unrecognized parameter.\n\nValid options:\n /START \n /SINGLE \n /REGISTER [USER/ALL]\n /UNREGISTER [USER/ALL]", MB_TITLE, MB_OK); return 1; }