Fixed that Rainmeter crashes when [] is in bang. E.g. !SetVariable test "blaa[]"

This commit is contained in:
Birunthan Mohanathas 2011-07-29 17:46:21 +00:00
parent e74d6f4619
commit 5c1334dbd6

View File

@ -3167,18 +3167,11 @@ std::wstring CRainmeter::ParseCommand(const WCHAR* command, CMeterWindow* meterW
start = strCommand.find(L'[', start); start = strCommand.find(L'[', start);
if (start != std::wstring::npos) if (start != std::wstring::npos)
{ {
end = strCommand.find(L']', start); end = strCommand.find(L']', start + 1);
if (end != std::wstring::npos) if (end != std::wstring::npos)
{ {
std::wstring measureName = strCommand.substr(start + 1, end - (start + 1)); std::wstring measureName = strCommand.substr(start + 1, end - (start + 1));
if (!measureName.empty()) if (!measureName.empty() && measureName[0] != L'!') // Ignore bangs
{
// Ignore bangs
if (measureName[0] == L'!')
{
start = end + 1;
}
else
{ {
if (meterWindow) if (meterWindow)
{ {
@ -3210,6 +3203,9 @@ std::wstring CRainmeter::ParseCommand(const WCHAR* command, CMeterWindow* meterW
} }
} }
} }
else
{
start = end + 1;
} }
} }
} }