MCPcopy Create free account
hub / github.com/ConEmu/ConEmu / CmdTaskGetByName

Method CmdTaskGetByName

src/ConEmu/Options.cpp:5294–5353  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5292}
5293
5294const CommandTasks* Settings::CmdTaskGetByName(LPCWSTR asTaskName)
5295{
5296 if (!asTaskName || !*asTaskName)
5297 return nullptr;
5298
5299 const CommandTasks* pGrp = nullptr;
5300
5301 wchar_t szName[MAX_PATH]; lstrcpyn(szName, asTaskName, countof(szName));
5302 wchar_t* psz = wcschr(szName, TaskBracketRight);
5303 if (psz) psz[1] = 0;
5304
5305 if (lstrcmp(szName, AutoStartTaskName) == 0)
5306 {
5307 pGrp = CmdTaskGet(-1);
5308 }
5309 else
5310 {
5311 // Validate if it is a Task
5312 _ASSERTE(szName[0] == TaskBracketLeft && szName[wcslen(szName)-1] == TaskBracketRight);
5313
5314 for (int i = 0; (pGrp = CmdTaskGet(i)) != nullptr; i++)
5315 {
5316 if (pGrp->pszName && (lstrcmpi(pGrp->pszName, szName) == 0))
5317 {
5318 break;
5319 }
5320 }
5321
5322 // May be task was requested without subfolder or subfolder was stripped from task?
5323 if (!pGrp)
5324 {
5325 LPCWSTR pszCmpName = wcsstr(szName, L"::");
5326
5327 if (!pszCmpName)
5328 pszCmpName = szName + 1; // Skip "{"
5329 else
5330 pszCmpName += 2; // Skip "::"
5331
5332 for (int i = 0; (pGrp = CmdTaskGet(i)) != nullptr; i++)
5333 {
5334 if (!pGrp->pszName)
5335 continue;
5336
5337 // Compare only task name, stripping "{Folder::"
5338 LPCWSTR pszTaskName = wcsstr(pGrp->pszName, L"::");
5339 if (!pszTaskName)
5340 pszTaskName = pGrp->pszName + 1; // Skip "{"
5341 else
5342 pszTaskName += 2; // Skip "::"
5343
5344 if (lstrcmpi(pszTaskName, pszCmpName) == 0)
5345 {
5346 break;
5347 }
5348 }
5349 }
5350 }
5351

Callers 7

LoadConsoleBatch_TaskMethod · 0.80
PageDlgProcMethod · 0.80
GuiServerCommandMethod · 0.80
cmdGetTaskCmdMethod · 0.80
FindStartupTaskFunction · 0.80
GetStartupCommandFunction · 0.80
CreateDefaultTaskFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected