diff options
author | Johan Björk <phb@spotify.com> | 2011-04-05 13:25:58 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2011-04-07 17:17:03 (GMT) |
commit | c519bb2bb60a95c8b9145af0d9c90900f5b48f3d (patch) | |
tree | a74d402bce402c782e911bc2c22b2a9fefd76093 /Source | |
parent | c2f8a137152d9dc4cc08b156284f916561e1455c (diff) | |
download | CMake-c519bb2bb60a95c8b9145af0d9c90900f5b48f3d.zip CMake-c519bb2bb60a95c8b9145af0d9c90900f5b48f3d.tar.gz CMake-c519bb2bb60a95c8b9145af0d9c90900f5b48f3d.tar.bz2 |
XCode: Also qoute [] as needed to set build-configurations.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmXCodeObject.cxx | 30 | ||||
-rw-r--r-- | Source/cmXCodeObject.h | 1 |
2 files changed, 21 insertions, 10 deletions
diff --git a/Source/cmXCodeObject.cxx b/Source/cmXCodeObject.cxx index 5920470..71c7c25 100644 --- a/Source/cmXCodeObject.cxx +++ b/Source/cmXCodeObject.cxx @@ -146,13 +146,15 @@ void cmXCodeObject::Print(std::ostream& out) if(j->second->TypeValue == STRING) { - out << j->first << " = "; + cmXCodeObject::PrintString(out,j->first); + out << " = "; j->second->PrintString(out); out << ";"; } else if(j->second->TypeValue == OBJECT_LIST) { - out << j->first << " = ("; + cmXCodeObject::PrintString(out,j->first); + out << " = ("; for(unsigned int k = 0; k < j->second->List.size(); k++) { if(j->second->List[k]->TypeValue == STRING) @@ -169,7 +171,8 @@ void cmXCodeObject::Print(std::ostream& out) } else { - out << j->first << " = error_unexpected_TypeValue_" << + cmXCodeObject::PrintString(out,j->first); + out << " = error_unexpected_TypeValue_" << j->second->TypeValue << ";"; } @@ -180,7 +183,8 @@ void cmXCodeObject::Print(std::ostream& out) } else if(object->TypeValue == OBJECT_REF) { - out << i->first << " = " << object->Object->Id; + cmXCodeObject::PrintString(out,i->first); + out << " = " << object->Object->Id; if(object->Object->HasComment() && i->first != "remoteGlobalIDString") { out << " "; @@ -190,7 +194,8 @@ void cmXCodeObject::Print(std::ostream& out) } else if(object->TypeValue == STRING) { - out << i->first << " = "; + cmXCodeObject::PrintString(out,i->first); + out << " = "; object->PrintString(out); out << ";" << separator; } @@ -230,19 +235,19 @@ void cmXCodeObject::CopyAttributes(cmXCodeObject* copy) } //---------------------------------------------------------------------------- -void cmXCodeObject::PrintString(std::ostream& os) const +void cmXCodeObject::PrintString(std::ostream& os,cmStdString String) { // The string needs to be quoted if it contains any characters // considered special by the Xcode project file parser. bool needQuote = - (this->String.empty() || - this->String.find_first_of(" <>.+-=@$") != this->String.npos); + (String.empty() || + String.find_first_of(" <>.+-=@$[]") != String.npos); const char* quote = needQuote? "\"" : ""; // Print the string, quoted and escaped as necessary. os << quote; - for(std::string::const_iterator i = this->String.begin(); - i != this->String.end(); ++i) + for(std::string::const_iterator i = String.begin(); + i != String.end(); ++i) { if(*i == '"') { @@ -254,6 +259,11 @@ void cmXCodeObject::PrintString(std::ostream& os) const os << quote; } +void cmXCodeObject::PrintString(std::ostream& os) const +{ + cmXCodeObject::PrintString(os,this->String); +} + //---------------------------------------------------------------------------- void cmXCodeObject::SetString(const char* s) { diff --git a/Source/cmXCodeObject.h b/Source/cmXCodeObject.h index 2bea63b..bdb4f15 100644 --- a/Source/cmXCodeObject.h +++ b/Source/cmXCodeObject.h @@ -141,6 +141,7 @@ public: } std::vector<cmXCodeObject*> const& GetObjectList() { return this->List;} void SetComment(const char* c) { this->Comment = c;} + static void PrintString(std::ostream& os,cmStdString String); protected: void PrintString(std::ostream& os) const; |