VS: Adapt project parsers to support "ProjectGUID" without curly brackets

This is needed to correctly parse Windows Installer "wiproj" projects,
that by default contain "ProjectGUID" tags with GUID values without
surrounding curly brackets.  Otherwise CMake truncates the first & last
character from the GUID value for these projects.
This commit is contained in:
Fredrik Orderud 2017-09-26 14:29:03 +02:00 committed by Brad King
parent c40d130034
commit b3e6514c2a
2 changed files with 10 additions and 2 deletions

View File

@ -17,7 +17,12 @@ public:
virtual void CharacterDataHandler(const char* data, int length)
{
if (this->DoGUID) {
this->GUID.assign(data + 1, length - 2);
if (data[0] == '{') {
// remove surrounding curly brackets
this->GUID.assign(data + 1, length - 2);
} else {
this->GUID.assign(data, length);
}
this->DoGUID = false;
}
}

View File

@ -2079,7 +2079,10 @@ public:
if (strcmp(atts[i], "ProjectGUID") == 0) {
if (atts[i + 1]) {
this->GUID = atts[i + 1];
this->GUID = this->GUID.substr(1, this->GUID.size() - 2);
if (this->GUID[0] == '{') {
// remove surrounding curly brackets
this->GUID = this->GUID.substr(1, this->GUID.size() - 2);
}
} else {
this->GUID.clear();
}