Fix parsing of cache variables without a type
These mainly come from the command line or manual entries in the CMakeCache.txt file. We want to stop at the first '=' because this is what is most likely to have been meant. The variable can be quoted if the '=' is intended. Caveat: What if one wants both '"' and '=' in a variable name?
This commit is contained in:
parent
40b9336b31
commit
6fe8624b7f
|
@ -97,10 +97,10 @@ bool cmCacheManager::ParseEntry(const char* entry,
|
|||
std::string& var,
|
||||
std::string& value)
|
||||
{
|
||||
// input line is: key:type=value
|
||||
// input line is: key=value
|
||||
static cmsys::RegularExpression reg(
|
||||
"^([^:]*)=(.*[^\r\t ]|[\r\t ]*)[\r\t ]*$");
|
||||
// input line is: "key":type=value
|
||||
"^([^=]*)=(.*[^\r\t ]|[\r\t ]*)[\r\t ]*$");
|
||||
// input line is: "key"=value
|
||||
static cmsys::RegularExpression regQuoted(
|
||||
"^\"([^\"]*)\"=(.*[^\r\t ]|[\r\t ]*)[\r\t ]*$");
|
||||
bool flag = false;
|
||||
|
|
Loading…
Reference in New Issue