Xcode: Invert quoting logic to whitelist of characters

Our explicit list of characters that require quoting does not account
for non-ascii characters (e.g. UTF-8) that also need quoting.  Invert
the logic to quote a string unless it contains exclusively a set of
characters we whitelist.
This commit is contained in:
Gregor Jasny 2015-08-02 00:06:49 +02:00 committed by Brad King
parent f7a9ed7e90
commit 2eee2943cc
1 changed files with 5 additions and 1 deletions

View File

@ -243,7 +243,11 @@ void cmXCodeObject::PrintString(std::ostream& os,std::string String)
bool needQuote =
(String.empty() ||
String.find("//") != String.npos ||
String.find_first_of(" <>+-*=@[](){},~") != String.npos);
String.find_first_not_of(
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789"
"$_./") != String.npos);
const char* quote = needQuote? "\"" : "";
// Print the string, quoted and escaped as necessary.